Browse Source

wip threads lists

Rafał Pitoń 9 years ago
parent
commit
657ea71dac
51 changed files with 969 additions and 800 deletions
  1. 1 1
      frontend/src/components/categories/category.js
  2. 0 20
      frontend/src/components/categories/empty-message.js
  3. 4 45
      frontend/src/components/categories/root.js
  4. 3 3
      frontend/src/initializers/components/categories.js
  5. 1 1
      frontend/tests/components/categories/category.js
  6. 0 23
      frontend/tests/components/categories/empty-message.js
  7. 1 118
      frontend/tests/components/categories/root.js
  8. 6 0
      misago/categories/categorytypes.py
  9. 0 1
      misago/categories/models.py
  10. 2 24
      misago/categories/tests/test_utils.py
  11. 1 15
      misago/categories/utils.py
  12. 2 1
      misago/core/context_processors.py
  13. 4 1
      misago/core/forms.py
  14. 4 0
      misago/core/tests/test_context_processors.py
  15. 1 1
      misago/project_template/requirements.txt
  16. 1 1
      misago/readtracker/categoriestracker.py
  17. 1 24
      misago/readtracker/threadstracker.py
  18. 10 10
      misago/static/misago/js/misago.js
  19. 1 1
      misago/static/misago/js/misago.js.map
  20. 0 5
      misago/templates/misago/base.html
  21. 1 1
      misago/templates/misago/categories/category.html
  22. 17 14
      misago/templates/misago/categories/list.html
  23. 1 1
      misago/templates/misago/profile/username_history.html
  24. 106 1
      misago/templates/misago/threadslist/base.html
  25. 43 0
      misago/templates/misago/threadslist/category.html
  26. 43 4
      misago/templates/misago/threadslist/threads.html
  27. 0 113
      misago/threads/counts.py
  28. 0 0
      misago/threads/management/__init__.py
  29. 0 0
      misago/threads/management/commands/__init__.py
  30. 39 0
      misago/threads/management/commands/synchronizethreads.py
  31. 6 41
      misago/threads/moderation/threads.py
  32. 2 9
      misago/threads/permissions/threads.py
  33. 2 2
      misago/threads/tests/-test_floodprotection_middleware.py
  34. 0 0
      misago/threads/tests/__init__.py
  35. 0 158
      misago/threads/tests/test_counters.py
  36. 8 6
      misago/threads/tests/test_event_model.py
  37. 6 5
      misago/threads/tests/test_events.py
  38. 11 13
      misago/threads/tests/test_participants.py
  39. 26 18
      misago/threads/tests/test_post_model.py
  40. 3 3
      misago/threads/tests/test_posts_moderation.py
  41. 4 4
      misago/threads/tests/test_synchronizethreads.py
  42. 44 29
      misago/threads/tests/test_thread_model.py
  43. 8 6
      misago/threads/tests/test_threadparticipant_model.py
  44. 21 51
      misago/threads/tests/test_threads_moderation.py
  45. 272 0
      misago/threads/tests/test_threadslists_views.py
  46. 69 0
      misago/threads/urls/__init__.py
  47. 0 15
      misago/threads/urls/threads.py
  48. 22 0
      misago/threads/utils.py
  49. 163 2
      misago/threads/views/threadslist.py
  50. 1 1
      misago/urls.py
  51. 8 8
      misago/users/views/profile.py

+ 1 - 1
frontend/src/components/categories/category.js

@@ -65,7 +65,7 @@ export default class extends React.Component {
   getSubcategorySubcategories(category) {
   getSubcategorySubcategories(category) {
     if (category.subcategories.length) {
     if (category.subcategories.length) {
       /* jshint ignore:start */
       /* jshint ignore:start */
-      return <ul className="list-inline subcategory-subcategories">
+      return <ul className="list-inline subcategories-list">
         {category.subcategories.map((category) => {
         {category.subcategories.map((category) => {
           return <li key={category.id}>
           return <li key={category.id}>
             <a href={category.absolute_url}
             <a href={category.absolute_url}

+ 0 - 20
frontend/src/components/categories/empty-message.js

@@ -1,20 +0,0 @@
-import React from 'react';
-
-export default class extends React.Component {
-  render() {
-    /* jshint ignore:start */
-    return <div className="message-panel">
-
-      <div className="message-icon">
-        <span className="material-icon">info_outline</span>
-      </div>
-
-      <div className="message-body">
-        <p className="lead">{gettext("No categories are available.")}</p>
-        <p>{gettext("No categories are currently defined or you don't have permission to see them.")}</p>
-      </div>
-
-    </div>;
-    /* jshint ignore:end */
-  }
-}

+ 4 - 45
frontend/src/components/categories/root.js

@@ -1,7 +1,6 @@
 import moment from 'moment';
 import moment from 'moment';
 import React from 'react';
 import React from 'react';
 import Category from 'misago/components/categories/category'; // jshint ignore:line
 import Category from 'misago/components/categories/category'; // jshint ignore:line
-import EmptyMessage from 'misago/components/categories/empty-message'; // jshint ignore:line
 import misago from 'misago/index';
 import misago from 'misago/index';
 import polls from 'misago/services/polls';
 import polls from 'misago/services/polls';
 
 
@@ -40,52 +39,12 @@ export default class extends React.Component {
   };
   };
   /* jshint ignore:end */
   /* jshint ignore:end */
 
 
-  getClassName() {
-    if (this.state.categories.length) {
-      return 'page page-categories';
-    } else {
-      return 'page page-categories page-message';
-    }
-  }
-
-  getHeading() {
-    if (misago.get('CATEGORIES_ON_INDEX')) {
-      return misago.get('SETTINGS').forum_name;
-    } else {
-      return gettext("Categories");
-    }
-  }
-
-  getCategoriesList() {
-    if (this.state.categories.length) {
-      /* jshint ignore:start */
-      return <div className="categories-list">
-        {this.state.categories.map(function(category) {
-          return <Category category={category} key={category.id} />;
-        })}
-      </div>;
-      /* jshint ignore:end */
-    } else {
-      /* jshint ignore:start */
-      return <EmptyMessage />;
-    /* jshint ignore:end */
-    }
-  }
-
   render() {
   render() {
     /* jshint ignore:start */
     /* jshint ignore:start */
-    return <div className={this.getClassName()}>
-
-      <div className="page-header">
-        <div className="container">
-          <h1>{this.getHeading()}</h1>
-        </div>
-      </div>
-
-      <div className="container">
-        {this.getCategoriesList()}
-      </div>
-
+    return <div className="categories-list">
+      {this.state.categories.map(function(category) {
+        return <Category category={category} key={category.id} />;
+      })}
     </div>;
     </div>;
     /* jshint ignore:end */
     /* jshint ignore:end */
   }
   }

+ 3 - 3
frontend/src/initializers/components/categories.js

@@ -3,9 +3,9 @@ import Categories, { select } from 'misago/components/categories/root';
 import misago from 'misago/index';
 import misago from 'misago/index';
 import mount from 'misago/utils/mount-component';
 import mount from 'misago/utils/mount-component';
 
 
-export default function initializer(context) {
-  if (context.has('CATEGORIES')) {
-    mount(connect(select)(Categories), 'page-mount');
+export default function initializer() {
+  if (document.getElementById('categories-mount')) {
+    mount(connect(select)(Categories), 'categories-mount');
   }
   }
 }
 }
 
 

+ 1 - 1
frontend/tests/components/categories/category.js

@@ -282,7 +282,7 @@ describe("Categories List Category", function() {
     testUtils.render(<Category category={category} />);
     testUtils.render(<Category category={category} />);
     /* jshint ignore:end */
     /* jshint ignore:end */
 
 
-    let element = $('#test-mount .subcategory-subcategories');
+    let element = $('#test-mount .list-inline.subcategories-list');
 
 
     assert.equal(element.length, 1, "component renders subsubcategory");
     assert.equal(element.length, 1, "component renders subsubcategory");
 
 

+ 0 - 23
frontend/tests/components/categories/empty-message.js

@@ -1,23 +0,0 @@
-import assert from 'assert';
-import React from 'react'; // jshint ignore:line
-import EmptyMessage from 'misago/components/categories/empty-message'; // jshint ignore:line
-import * as testUtils from 'misago/utils/test-utils';
-
-describe("Categories List Empty Message", function() {
-  afterEach(function() {
-    testUtils.unmountComponents();
-  });
-
-  it("renders", function() {
-    /* jshint ignore:start */
-    testUtils.render(<EmptyMessage />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount .material-icon').text(), 'info_outline',
-      "proper icon is displayed");
-
-    assert.equal($('#test-mount p.lead').text(),
-      "No categories are available.",
-      "proper message is displayed");
-  });
-});

+ 1 - 118
frontend/tests/components/categories/root.js

@@ -145,16 +145,6 @@ let categories = [
   }
   }
 ];
 ];
 
 
-let noopAjax = {
-  get: function() {
-    return {
-      then: function() {
-        /* noop */
-      }
-    };
-  }
-};
-
 describe("Categories List", function() {
 describe("Categories List", function() {
   beforeEach(function() {
   beforeEach(function() {
     misago._context = {
     misago._context = {
@@ -190,7 +180,7 @@ describe("Categories List", function() {
       "two categories rendered initially");
       "two categories rendered initially");
 
 
     window.setTimeout(function() {
     window.setTimeout(function() {
-      let element = $('#test-mount .page-categories');
+      let element = $('#test-mount .categories-list');
       assert.ok(element.length, "component renders");
       assert.ok(element.length, "component renders");
 
 
       assert.equal(element.find('.panel-category').length, 2,
       assert.equal(element.find('.panel-category').length, 2,
@@ -200,113 +190,6 @@ describe("Categories List", function() {
     }, 200);
     }, 200);
   });
   });
 
 
-  it("renders and loads empty list", function(done) {
-    misago._context.CATEGORIES = [];
-
-    $.mockjax({
-      url: '/test-api/categories/',
-      status: 200,
-      responseText: []
-    });
-
-    /* jshint ignore:start */
-    testUtils.render(<CategoriesList />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount .panel-category').length, 0,
-      "no categories rendered initially");
-
-    window.setTimeout(function() {
-      let element = $('#test-mount .page-message .message-body');
-      assert.ok(element.length, "component renders message about no data");
-
-      assert.equal(element.find('.panel-category').length, 0,
-        "no categories rendered");
-
-      done();
-    }, 200);
-  });
-
-  it("renders and empties list", function(done) {
-    $.mockjax({
-      url: '/test-api/categories/',
-      status: 200,
-      responseText: []
-    });
-
-    /* jshint ignore:start */
-    testUtils.render(<CategoriesList />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount .panel-category').length, 2,
-      "two categories rendered initially");
-
-    testUtils.onElement('#test-mount .page-message .message-body', function() {
-      let element = $('#test-mount .page-message .message-body');
-      assert.ok(element.length, "component renders message about no data");
-
-      assert.equal(element.find('.panel-category').length, 0,
-        "no categories rendered");
-
-      done();
-    });
-  });
-
-  it("renders empty and populates list", function(done) {
-    misago._context.CATEGORIES = [];
-
-    $.mockjax({
-      url: '/test-api/categories/',
-      status: 200,
-      responseText: categories
-    });
-
-    /* jshint ignore:start */
-    testUtils.render(<CategoriesList />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount .panel-category').length, 0,
-      "no categories rendered initially");
-
-    testUtils.onElement('#test-mount .categories-list', function(element) {
-      assert.equal(element.find('.panel-category').length, 2,
-        "two categories rendered");
-
-      done();
-    });
-  });
-
-  it("has valid header if not forum index", function() {
-    misago._context.CATEGORIES = [];
-    misago._context.CATEGORIES_ON_INDEX = false;
-
-    polls.init(noopAjax, snackbar);
-
-    /* jshint ignore:start */
-    testUtils.render(<CategoriesList />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount h1').text(), "Categories",
-      "renders with non-home header");
-  });
-
-  it("has valid header if forum index", function() {
-    misago._context.CATEGORIES = [];
-    misago._context.CATEGORIES_ON_INDEX = true;
-    misago._context.SETTINGS = {
-      forum_name: "Test Misago Forum"
-    };
-
-    polls.init(noopAjax, snackbar);
-
-    /* jshint ignore:start */
-    testUtils.render(<CategoriesList />);
-    /* jshint ignore:end */
-
-    assert.equal($('#test-mount h1').text(), "Test Misago Forum",
-      "renders with forum name in header");
-  });
-
   it("handles backend error", function(done) {
   it("handles backend error", function(done) {
     $.mockjax({
     $.mockjax({
       url: '/test-api/categories/',
       url: '/test-api/categories/',

+ 6 - 0
misago/categories/categorytypes.py

@@ -10,6 +10,9 @@ class RootCategory(ThreadTypeBase):
     def get_category_name(self, category):
     def get_category_name(self, category):
         return _('None (will become top level category)')
         return _('None (will become top level category)')
 
 
+    def get_category_absolute_url(self, category):
+        return reverse('misago:threads')
+
 
 
 class Category(ThreadTypeBase):
 class Category(ThreadTypeBase):
     type_name = 'category'
     type_name = 'category'
@@ -23,6 +26,9 @@ class Category(ThreadTypeBase):
             'category_id': category.id,
             'category_id': category.id,
         })
         })
 
 
+    def get_thread_absolute_url(self, thread):
+        return '/thread/not-yet-%s/' % thread.pk
+
     def get_last_thread_url(self, category):
     def get_last_thread_url(self, category):
         if category.last_thread_id:
         if category.last_thread_id:
             return '/not-yet-implemented/'
             return '/not-yet-implemented/'

+ 0 - 1
misago/categories/models.py

@@ -3,7 +3,6 @@ from urlparse import urlparse
 from django.core.urlresolvers import reverse
 from django.core.urlresolvers import reverse
 from django.db import models
 from django.db import models
 from django.utils.translation import ugettext_lazy as _
 from django.utils.translation import ugettext_lazy as _
-
 from mptt.managers import TreeManager
 from mptt.managers import TreeManager
 from mptt.models import MPTTModel, TreeForeignKey
 from mptt.models import MPTTModel, TreeForeignKey
 
 

+ 2 - 24
misago/categories/tests/test_utils.py

@@ -2,8 +2,7 @@ from misago.acl.testutils import override_acl
 from misago.core import threadstore
 from misago.core import threadstore
 from misago.users.testutils import AuthenticatedUserTestCase
 from misago.users.testutils import AuthenticatedUserTestCase
 
 
-from misago.categories.utils import (
-    get_categories_tree, get_category_path, get_category_next_parent)
+from misago.categories.utils import get_categories_tree, get_category_path
 from misago.categories.models import Category
 from misago.categories.models import Category
 
 
 
 
@@ -99,25 +98,4 @@ class CategoriesUtilsTests(AuthenticatedUserTestCase):
         """get_categories_tree returns all children of root nodes"""
         """get_categories_tree returns all children of root nodes"""
         for node in get_categories_tree(self.user):
         for node in get_categories_tree(self.user):
             parent_nodes = len(get_category_path(node))
             parent_nodes = len(get_category_path(node))
-            self.assertEqual(parent_nodes, node.level)
-
-    def test_get_category_next_parent(self):
-        """get_category_next_parent returns next parent of node"""
-        parent = get_category_next_parent(self.category_a)
-        self.assertIsNone(parent)
-
-        parent = get_category_next_parent(
-            Category.objects.get(slug='subcategory-f'), self.root)
-        self.assertEqual(parent, Category.objects.get(slug='category-e'))
-
-        parent = get_category_next_parent(
-            Category.objects.get(slug='category-b'), self.root)
-        self.assertEqual(parent, Category.objects.get(slug='category-a'))
-
-        parent = get_category_next_parent(
-            Category.objects.get(slug='subcategory-c'), self.root)
-        self.assertEqual(parent, Category.objects.get(slug='category-a'))
-
-        parent = get_category_next_parent(
-            Category.objects.get(slug='subcategory-d'), self.root)
-        self.assertEqual(parent, Category.objects.get(slug='category-a'))
+            self.assertEqual(parent_nodes, node.level)

+ 1 - 15
misago/categories/utils.py

@@ -84,18 +84,4 @@ def get_category_path(category):
     while category.level > 0:
     while category.level > 0:
         category_path.append(category)
         category_path.append(category)
         category = categories_dict[category.parent_id]
         category = categories_dict[category.parent_id]
-    return [f for f in reversed(category_path)]
-
-
-def get_category_next_parent(category, parent=None):
-    if not parent:
-        return None
-
-    cache_key = 'path_next_parent_item_%s_%s' % (category.parent_id, parent.id)
-    if threadstore.get(cache_key, 'nada') == 'nada':
-        if parent.pk == category.parent_id:
-            threadstore.set(cache_key, None)
-        else:
-            path = get_category_path(category)
-            threadstore.set(cache_key, path[parent.level])
-    return threadstore.get(cache_key)
+    return [f for f in reversed(category_path)]

+ 2 - 1
misago/core/context_processors.py

@@ -11,7 +11,8 @@ def site_address(request):
     return {
     return {
         'SITE_PROTOCOL': site_protocol,
         'SITE_PROTOCOL': site_protocol,
         'SITE_HOST': host,
         'SITE_HOST': host,
-        'SITE_ADDRESS': address_template % host
+        'SITE_ADDRESS': address_template % host,
+        'REQUEST_PATH': request.path_info,
     }
     }
 
 
 
 

+ 4 - 1
misago/core/forms.py

@@ -20,7 +20,10 @@ Fields
 class YesNoSwitchBase(TypedChoiceField):
 class YesNoSwitchBase(TypedChoiceField):
     def prepare_value(self, value):
     def prepare_value(self, value):
         """normalize bools to binary 1/0 so field works on them too"""
         """normalize bools to binary 1/0 so field works on them too"""
-        return value in (True, 'True', 'true', 1, '1')
+        if value in (True, 'True', 'true', 1, '1'):
+            return 1
+        else:
+            return 0
 
 
     def clean(self, value):
     def clean(self, value):
         return self.prepare_value(value)
         return self.prepare_value(value)

+ 4 - 0
misago/core/tests/test_context_processors.py

@@ -3,6 +3,8 @@ from misago.core import context_processors
 
 
 
 
 class MockRequest(object):
 class MockRequest(object):
+    path_info = '/'
+
     def __init__(self, secure, host):
     def __init__(self, secure, host):
         self.secure = secure
         self.secure = secure
         self.host = host
         self.host = host
@@ -21,6 +23,7 @@ class SiteAddressTests(TestCase):
         self.assertEqual(
         self.assertEqual(
             context_processors.site_address(mock_request),
             context_processors.site_address(mock_request),
             {
             {
+                'REQUEST_PATH': '/',
                 'SITE_ADDRESS': 'http://somewhere.com',
                 'SITE_ADDRESS': 'http://somewhere.com',
                 'SITE_HOST': 'somewhere.com',
                 'SITE_HOST': 'somewhere.com',
                 'SITE_PROTOCOL': 'http',
                 'SITE_PROTOCOL': 'http',
@@ -32,6 +35,7 @@ class SiteAddressTests(TestCase):
         self.assertEqual(
         self.assertEqual(
             context_processors.site_address(mock_request),
             context_processors.site_address(mock_request),
             {
             {
+                'REQUEST_PATH': '/',
                 'SITE_ADDRESS': 'https://somewhere.com',
                 'SITE_ADDRESS': 'https://somewhere.com',
                 'SITE_HOST': 'somewhere.com',
                 'SITE_HOST': 'somewhere.com',
                 'SITE_PROTOCOL': 'https',
                 'SITE_PROTOCOL': 'https',

+ 1 - 1
misago/project_template/requirements.txt

@@ -5,7 +5,7 @@ bleach==1.4.1
 django-debug-toolbar==1.3.2
 django-debug-toolbar==1.3.2
 django-crispy-forms==1.4.0
 django-crispy-forms==1.4.0
 django-htmlmin==0.7
 django-htmlmin==0.7
-django-mptt==0.6.1
+django-mptt==0.7.4
 django-pipeline==1.4.2
 django-pipeline==1.4.2
 fake-factory==0.4.2
 fake-factory==0.4.2
 markdown==2.4.1
 markdown==2.4.1

+ 1 - 1
misago/readtracker/categoriestracker.py

@@ -62,7 +62,7 @@ def sync_record(user, category):
 
 
     recorded_threads = category.thread_set.filter(last_post_on__gt=cutoff_date)
     recorded_threads = category.thread_set.filter(last_post_on__gt=cutoff_date)
     recorded_threads = exclude_invisible_threads(
     recorded_threads = exclude_invisible_threads(
-        recorded_threads, user, category)
+        user, [category], recorded_threads)
 
 
     all_threads_count = recorded_threads.count()
     all_threads_count = recorded_threads.count()
 
 

+ 1 - 24
misago/readtracker/threadstracker.py

@@ -16,16 +16,12 @@ def make_read_aware(user, target):
         make_thread_read_aware(user, target)
         make_thread_read_aware(user, target)
 
 
 
 
-def make_threads_read_aware(user, threads, category=None):
+def make_threads_read_aware(user, threads):
     if not threads:
     if not threads:
         return None
         return None
 
 
     if user.is_anonymous():
     if user.is_anonymous():
         make_read(threads)
         make_read(threads)
-        return None
-
-    if category:
-        make_category_threads_read_aware(user, category, threads)
     else:
     else:
         make_categories_threads_read_aware(user, threads)
         make_categories_threads_read_aware(user, threads)
 
 
@@ -37,25 +33,6 @@ def make_read(threads):
         thread.is_new = False
         thread.is_new = False
 
 
 
 
-def make_category_threads_read_aware(user, category, threads):
-    if category.is_read:
-        make_read(threads)
-    else:
-        threads_dict = {}
-        for thread in threads:
-            thread.is_read = not is_date_tracked(
-                thread.last_post_on, user, category.last_read_on)
-            thread.is_new = True
-            if thread.is_read:
-                thread.unread_replies = 0
-            else:
-                thread.unread_replies = thread.replies
-                threads_dict[thread.pk] = thread
-
-        if threads_dict:
-            make_threads_dict_read_aware(user, threads_dict)
-
-
 def make_categories_threads_read_aware(user, threads):
 def make_categories_threads_read_aware(user, threads):
     categories_cutoffs = fetch_categories_cutoffs_for_threads(user, threads)
     categories_cutoffs = fetch_categories_cutoffs_for_threads(user, threads)
 
 

+ 10 - 10
misago/static/misago/js/misago.js

@@ -1,11 +1,11 @@
-!function e(t,n,a){function r(s,i){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!i&&u)return u(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return r(n?n:e)},c,c.exports,e,t,n,a)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<a.length;s++)r(a[s]);return r}({1:[function(e,t,n){function a(){c=!1,i.length?l=i.concat(l):f=-1,l.length&&r()}function r(){if(!c){var e=setTimeout(a);c=!0;for(var t=l.length;t;){for(i=l,l=[];++f<t;)i&&i[f].run();f=-1,t=l.length}i=null,c=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function s(){}var i,u=t.exports={},l=[],c=!1,f=-1;u.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new o(e,t)),1!==l.length||c||setTimeout(r,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=s,u.addListener=s,u.once=s,u.off=s,u.removeListener=s,u.removeAllListeners=s,u.emit=s,u.binding=function(e){throw new Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(e){throw new Error("process.chdir is not supported")},u.umask=function(){return 0}},{}],2:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var s=e("../../../misago/frontend/src/utils/ordered-list"),i=a(s),u=n.Misago=function(){function e(){r(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 i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../../misago/frontend/src/utils/ordered-list":151}],3:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(s["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/ajax"),u=a(i);s["default"].addInitializer({name:"ajax",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/ajax":135}],4:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(d["default"],m["default"],c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/auth"),u=a(i),l=e("../../../../misago/frontend/src/services/modal"),c=a(l),f=e("../../../../misago/frontend/src/services/store"),d=a(f),p=e("../../../../misago/frontend/src/services/local-storage"),m=a(p);s["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/auth":136,"../../../../misago/frontend/src/services/local-storage":139,"../../../../misago/frontend/src/services/modal":141,"../../../../misago/frontend/src/services/store":145}],5:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,u["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/ajax"),u=a(i),l=e("../../../../misago/frontend/src/services/captcha"),c=a(l),f=e("../../../../misago/frontend/src/services/include"),d=a(f),p=e("../../../../misago/frontend/src/services/snackbar"),m=a(p);s["default"].addInitializer({name:"captcha",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/ajax":135,"../../../../misago/frontend/src/services/captcha":137,"../../../../misago/frontend/src/services/include":138,"../../../../misago/frontend/src/services/snackbar":144}],6:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,f["default"])((0,o.connect)(u.select)(l["default"]),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../misago/frontend/src/index"),i=a(s),u=e("../../../../../misago/frontend/src/components/auth-message"),l=a(u),c=e("../../../../../misago/frontend/src/utils/mount-component"),f=a(c);i["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/auth-message":53,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150,"react-redux":"react-redux"}],7:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("BAN_MESSAGE")&&(0,u["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/utils/banned-page"),u=a(i);s["default"].addInitializer({name:"component:baned-page",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/banned-page":147}],8:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("CATEGORIES")&&(0,f["default"])((0,o.connect)(s.select)(i["default"]),"page-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../misago/frontend/src/components/categories/root"),i=a(s),u=e("../../../../../misago/frontend/src/index"),l=a(u),c=e("../../../../../misago/frontend/src/utils/mount-component"),f=a(c);l["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/categories/root":61,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150,"react-redux":"react-redux"}],9:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USER_OPTIONS")&&(0,c["default"])({root:u["default"].get("USERCP_URL"),component:s["default"],paths:(0,o.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/components/options/root"),s=a(o),i=e("../../../../../misago/frontend/src/index"),u=a(i),l=e("../../../../../misago/frontend/src/utils/routed-component"),c=a(l);u["default"].addInitializer({name:"component:options",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/options/root":80,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/routed-component":154}],10:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("PROFILE")&&e.has("PROFILE_PAGES")&&(0,f["default"])({root:l["default"].get("PROFILE").absolute_url,component:(0,o.connect)(s.select)(i["default"]),paths:(0,s.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../misago/frontend/src/components/profile/root"),i=a(s),u=e("../../../../../misago/frontend/src/index"),l=a(u),c=e("../../../../../misago/frontend/src/utils/routed-component"),f=a(c);l["default"].addInitializer({name:"component:profile",initializer:r,after:"reducer:profile-dehydrate"})},{"../../../../../misago/frontend/src/components/profile/root":97,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/routed-component":154,"react-redux":"react-redux"}],11:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(u["default"],"request-activation-link-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/components/request-activation-link"),u=a(i),l=e("../../../../../misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/request-activation-link":101,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150}],12:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-password-reset-mount")&&(0,c["default"])(u["default"],"request-password-reset-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/components/request-password-reset"),u=a(i),l=e("../../../../../misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:request-password-reset",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/request-password-reset":102,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150}],13:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("reset-password-form-mount")&&(0,c["default"])(u["default"],"reset-password-form-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/components/reset-password-form"),u=a(i),l=e("../../../../../misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/reset-password-form":103,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150}],14:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(u.select)(u.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../misago/frontend/src/index"),i=a(s),u=e("../../../../../misago/frontend/src/components/snackbar"),l=e("../../../../../misago/frontend/src/utils/mount-component"),c=a(l);i["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../../../../../misago/frontend/src/components/snackbar":107,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150,"react-redux":"react-redux"}],15:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(u.select)(u.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(u.select)(u.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../misago/frontend/src/index"),i=a(s),u=e("../../../../../misago/frontend/src/components/user-menu/root"),l=e("../../../../../misago/frontend/src/utils/mount-component"),c=a(l);i["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/user-menu/root":109,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/mount-component":150,"react-redux":"react-redux"}],16:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USERS_LISTS")&&(0,c["default"])({root:u["default"].get("USERS_LIST_URL"),component:s["default"],paths:(0,o.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/components/users/root"),s=a(o),i=e("../../../../../misago/frontend/src/index"),u=a(i),l=e("../../../../../misago/frontend/src/utils/routed-component"),c=a(l);u["default"].addInitializer({name:"component:users",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/components/users/root":126,"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/utils/routed-component":154}],17:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){u["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/include"),u=a(i);s["default"].addInitializer({name:"include",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/include":138}],18:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/local-storage"),u=a(i);s["default"].addInitializer({name:"local-storage",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/local-storage":139}],19:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/mobile-navbar-dropdown"),u=a(i);s["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/mobile-navbar-dropdown":140}],20:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/modal"),u=a(i);s["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/modal":141}],21:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("moment"),s=a(o),i=e("../../../../misago/frontend/src/index"),u=a(i);u["default"].addInitializer({name:"moment",initializer:r})},{"../../../../misago/frontend/src/index":128,moment:"moment"}],22:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){u["default"].init(e.get("SETTINGS").forum_name)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/page-title"),u=a(i);s["default"].addInitializer({name:"page-title",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/page-title":142}],23:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){d["default"].init(u["default"],c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/ajax"),u=a(i),l=e("../../../../misago/frontend/src/services/snackbar"),c=a(l),f=e("../../../../misago/frontend/src/services/polls"),d=a(f);s["default"].addInitializer({name:"polls",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/ajax":135,"../../../../misago/frontend/src/services/polls":143,"../../../../misago/frontend/src/services/snackbar":144}],24:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].addReducer("auth",u["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},i.initialState))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/auth"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/auth":129,"../../../../../misago/frontend/src/services/store":145}],25:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].has("PROFILE")&&l["default"].dispatch((0,i.dehydrate)(s["default"].get("PROFILE")))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/profile"),u=e("../../../../../misago/frontend/src/services/store"),l=a(u);s["default"].addInitializer({name:"reducer:profile-dehydrate",initializer:r,after:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/profile":130,"../../../../../misago/frontend/src/services/store":145}],26:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("profile",u["default"],{})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/profile"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:profile",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/profile":130,"../../../../../misago/frontend/src/services/store":145}],27:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",u["default"],i.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/snackbar"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/snackbar":131,"../../../../../misago/frontend/src/services/store":145}],28:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",u["default"],i.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/tick"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/tick":132,"../../../../../misago/frontend/src/services/store":145}],29:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("username-history",u["default"],[])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/username-history"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:username-history",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/username-history":133,"../../../../../misago/frontend/src/services/store":145}],30:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("users",u["default"],[])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../../misago/frontend/src/reducers/users"),u=a(i),l=e("../../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:users",initializer:r,before:"store"})},{"../../../../../misago/frontend/src/index":128,"../../../../../misago/frontend/src/reducers/users":134,"../../../../../misago/frontend/src/services/store":145}],31:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/snackbar"),u=a(i),l=e("../../../../misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/snackbar":144,"../../../../misago/frontend/src/services/store":145}],32:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/store"),u=a(i);s["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/store":145}],33:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){l["default"].dispatch((0,i.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/reducers/tick"),u=e("../../../../misago/frontend/src/services/store"),l=a(u),c=5e4;s["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/reducers/tick":132,"../../../../misago/frontend/src/services/store":145}],34:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(u["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../misago/frontend/src/index"),s=a(o),i=e("../../../../misago/frontend/src/services/include"),u=a(i),l=e("../../../../misago/frontend/src/services/zxcvbn"),c=a(l);s["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../../../../misago/frontend/src/index":128,"../../../../misago/frontend/src/services/include":138,"../../../../misago/frontend/src/services/zxcvbn":146}],35:[function(e,t,n){function a(e){return null===e||void 0===e}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function o(e,t,n){var o,c;if(a(e)||a(t))return!1;if(e.prototype!==t.prototype)return!1;if(u(e))return u(t)?(e=s.call(e),t=s.call(t),l(e,t,n)):!1;if(r(e)){if(!r(t))return!1;if(e.length!==t.length)return!1;for(o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}try{var f=i(e),d=i(t)}catch(p){return!1}if(f.length!=d.length)return!1;for(f.sort(),d.sort(),o=f.length-1;o>=0;o--)if(f[o]!=d[o])return!1;for(o=f.length-1;o>=0;o--)if(c=f[o],!l(e[c],t[c],n))return!1;return typeof e==typeof t}var s=Array.prototype.slice,i=e("./lib/keys.js"),u=e("./lib/is_arguments.js"),l=t.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:o(e,t,n)}},{"./lib/is_arguments.js":36,"./lib/keys.js":37}],36:[function(e,t,n){function a(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();n=t.exports=o?a:r,n.supported=a,n.unsupported=r},{}],37:[function(e,t,n){function a(e){var t=[];for(var n in e)t.push(n);return t}n=t.exports="function"==typeof Object.keys?Object.keys:a,n.shim=a},{}],38:[function(e,t,n){"use strict";n.__esModule=!0;var a="PUSH";n.PUSH=a;var r="REPLACE";n.REPLACE=r;var o="POP";n.POP=o,n["default"]={PUSH:a,REPLACE:r,POP:o}},{}],39:[function(e,t,n){"use strict";function a(e,t,n){function a(){s=!0,n.apply(this,arguments)}function r(){s||(e>o?t.call(this,o++,r,a):a.apply(this,arguments))}var o=0,s=!1;r()}n.__esModule=!0,n.loopAsync=a},{}],40:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return l+e}function o(e,n){try{window.sessionStorage.setItem(r(e),JSON.stringify(n))}catch(a){if(a.name===f)return void("production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to save state; sessionStorage is not available due to security settings"):void 0);if(a.name===c&&0===window.sessionStorage.length)return void("production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode"):void 0);throw a}}function s(e){var n=void 0;try{n=window.sessionStorage.getItem(r(e))}catch(a){if(a.name===f)return"production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to read state; sessionStorage is not available due to security settings"):void 0,null}if(n)try{return JSON.parse(n)}catch(a){}return null}n.__esModule=!0,n.saveState=o,n.readState=s;var i=e("warning"),u=a(i),l="@@History/",c="QuotaExceededError",f="SecurityError"}).call(this,e("_process"))},{_process:1,warning:52}],41:[function(e,t,n){"use strict";function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function o(){return window.location.href.split("#")[1]||""}function s(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function i(){return window.location.pathname+window.location.search+window.location.hash}function u(e){e&&window.history.go(e)}function l(e,t){t(window.confirm(e))}function c(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?-1!==e.indexOf("CriOS")?!1:window.history&&"pushState"in window.history:!1}function f(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}n.__esModule=!0,n.addEventListener=a,n.removeEventListener=r,n.getHashPath=o,n.replaceHashPath=s,n.getWindowPath=i,n.go=u,n.getUserConfirmation=l,n.supportsHistory=c,n.supportsGoWithoutReloadUsingHash=f},{}],42:[function(e,t,n){"use strict";n.__esModule=!0;var a=!("undefined"==typeof window||!window.document||!window.document.createElement);n.canUseDOM=a},{}],43:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){function e(e){e=e||window.history.state||{};var t=f.getWindowPath(),n=e,a=n.key,r=void 0;a?r=d.readState(a):(r=null,a=_.createKey(),b&&window.history.replaceState(s({},e,{key:a}),null,t));var o=g["default"](t);return _.createLocation(s({},o,{state:r}),void 0,a)}function t(t){function n(t){void 0!==t.state&&a(e(t.state))}var a=t.transitionTo;return f.addEventListener(window,"popstate",n),function(){f.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,a=e.search,r=e.hash,o=e.state,s=e.action,i=e.key;if(s!==l.POP){d.saveState(i,o);var u=(t||"")+n+a+r,c={key:i};if(s===l.PUSH){if(y)return window.location.href=u,!1;window.history.pushState(c,null,u)}else{if(y)return window.location.replace(u),!1;window.history.replaceState(c,null,u)}}}function r(e){1===++w&&(E=t(_));var n=_.listenBefore(e);return function(){n(),0===--w&&E()}}function o(e){1===++w&&(E=t(_));var n=_.listen(e);return function(){n(),0===--w&&E()}}function i(e){1===++w&&(E=t(_)),_.registerTransitionHook(e)}function p(e){_.unregisterTransitionHook(e),0===--w&&E()}var h=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c.canUseDOM?void 0:"production"!==a.env.NODE_ENV?u["default"](!1,"Browser history needs a DOM"):u["default"](!1);var v=h.forceRefresh,b=f.supportsHistory(),y=!b||v,_=m["default"](s({},h,{getCurrentLocation:e,finishTransition:n,saveState:d.saveState})),w=0,E=void 0;return s({},_,{listenBefore:r,listen:o,registerTransitionHook:i,unregisterTransitionHook:p})}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i=e("invariant"),u=r(i),l=e("./Actions"),c=e("./ExecutionEnvironment"),f=e("./DOMUtils"),d=e("./DOMStateStorage"),p=e("./createDOMHistory"),m=r(p),h=e("./parsePath"),g=r(h);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./Actions":38,"./DOMStateStorage":40,"./DOMUtils":41,"./ExecutionEnvironment":42,"./createDOMHistory":44,"./parsePath":49,_process:1,invariant:51}],44:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return l.canUseDOM?void 0:"production"!==a.env.NODE_ENV?u["default"](!1,"DOM history needs a DOM"):u["default"](!1),n.listen(e)}var n=d["default"](s({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return s({},n,{listen:t})}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i=e("invariant"),u=r(i),l=e("./ExecutionEnvironment"),c=e("./DOMUtils"),f=e("./createHistory"),d=r(f);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./DOMUtils":41,"./ExecutionEnvironment":42,"./createHistory":45,_process:1,invariant:51}],45:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Math.random().toString(36).substr(2,e)}function o(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&l["default"](e.state,t.state)}function s(){function e(e){return U.push(e),function(){U=U.filter(function(t){return t!==e})}}function t(){return H&&H.action===f.POP?D.indexOf(H.key):B?D.indexOf(B.key):-1}function n(e){var n=t();B=e,B.action===f.PUSH?D=[].concat(D.slice(0,n+1),[B.key]):B.action===f.REPLACE&&(D[n]=B.key),z.forEach(function(e){e(B)})}function a(e){
-if(z.push(e),B)e(B);else{var t=M();D=[t.key],n(t)}return function(){z=z.filter(function(t){return t!==e})}}function s(e,t){c.loopAsync(U.length,function(t,n,a){h["default"](U[t],e,function(e){null!=e?a(e):n()})},function(e){A&&"string"==typeof e?A(e,function(e){t(e!==!1)}):t(e!==!1)})}function u(e){B&&o(B,e)||(H=e,s(e,function(t){if(H===e)if(t){if(e.action===f.PUSH){var a=w(B),r=w(e);r===a&&(e.action=f.REPLACE)}T(e)!==!1&&n(e)}else if(B&&e.action===f.POP){var o=D.indexOf(B.key),s=D.indexOf(e.key);-1!==o&&-1!==s&&R(o-s)}}))}function l(e){u(O(e,f.PUSH,b()))}function d(e){u(O(e,f.REPLACE,b()))}function m(){R(-1)}function g(){R(1)}function b(){return r(I)}function w(e){if(null==e||"string"==typeof e)return e;var t=e.pathname,n=e.search,a=e.hash,r=t;return n&&(r+=n),a&&(r+=a),r}function E(e){return w(e)}function O(e,t){var n=arguments.length<=2||void 0===arguments[2]?b():arguments[2];return"object"==typeof t&&("string"==typeof e&&(e=v["default"](e)),e=i({},e,{state:t}),t=n,n=arguments[3]||b()),p["default"](e,t,n)}function k(e){B?(N(B,e),n(B)):N(M(),e)}function N(e,t){e.state=i({},e.state,t),L(e.key,e.state)}function x(e){-1===U.indexOf(e)&&U.push(e)}function j(e){U=U.filter(function(t){return t!==e})}function P(e,t){"string"==typeof t&&(t=v["default"](t)),l(i({state:e},t))}function S(e,t){"string"==typeof t&&(t=v["default"](t)),d(i({state:e},t))}var C=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],M=C.getCurrentLocation,T=C.finishTransition,L=C.saveState,R=C.go,I=C.keyLength,A=C.getUserConfirmation;"number"!=typeof I&&(I=_);var U=[],D=[],z=[],B=void 0,H=void 0;return{listenBefore:e,listen:a,transitionTo:u,push:l,replace:d,go:R,goBack:m,goForward:g,createKey:b,createPath:w,createHref:E,createLocation:O,setState:y["default"](k,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:y["default"](x,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:y["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:y["default"](P,"pushState is deprecated; use push instead"),replaceState:y["default"](S,"replaceState is deprecated; use replace instead")}}n.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=e("deep-equal"),l=a(u),c=e("./AsyncUtils"),f=e("./Actions"),d=e("./createLocation"),p=a(d),m=e("./runTransitionHook"),h=a(m),g=e("./parsePath"),v=a(g),b=e("./deprecate"),y=a(b),_=6;n["default"]=s,t.exports=n["default"]},{"./Actions":38,"./AsyncUtils":39,"./createLocation":46,"./deprecate":47,"./parsePath":49,"./runTransitionHook":50,"deep-equal":35}],46:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?s.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],a=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=u["default"](e)),"object"==typeof t&&(e=o({},e,{state:t}),t=n||s.POP,n=a);var r=e.pathname||"/",i=e.search||"",l=e.hash||"",c=e.state||null;return{pathname:r,search:i,hash:l,state:c,action:t,key:n}}n.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},s=e("./Actions"),i=e("./parsePath"),u=a(i);n["default"]=r,t.exports=n["default"]},{"./Actions":38,"./parsePath":49}],47:[function(e,t,n){"use strict";function a(e){return e}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],48:[function(e,t,n){"use strict";function a(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],49:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=l["default"](e),n="",r="";"production"!==a.env.NODE_ENV?i["default"](e===t,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',e):void 0;var o=t.indexOf("#");-1!==o&&(r=t.substring(o),t=t.substring(0,o));var s=t.indexOf("?");return-1!==s&&(n=t.substring(s),t=t.substring(0,s)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}n.__esModule=!0;var s=e("warning"),i=r(s),u=e("./extractPath"),l=r(u);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./extractPath":48,_process:1,warning:52}],50:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=e(t,n);e.length<2?n(r):"production"!==a.env.NODE_ENV?i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}n.__esModule=!0;var s=e("warning"),i=r(s);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{_process:1,warning:52}],51:[function(e,t,n){"use strict";var a=function(e,t,n,a,r,o,s,i){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,a,r,o,s,i],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=a},{}],52:[function(e,t,n){"use strict";var a=function(){};t.exports=a},{}],53:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("react"),c=a(l),f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component);n["default"]=f},{react:"react"}],54:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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"}],55:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(){if(this.props.expires){if(this.props.expires.isAfter((0,l["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.props.expires.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return 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"}],56:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":71,react:"react"}],57:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./last-activity"),f=a(c),d=e("./read-icon"),p=a(d),m=e("./stats"),h=a(m),g=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.category.css_class?"panel panel-default panel-category panel-category-"+this.props.category.css_class:"panel panel-default panel-category"}},{key:"getHeadingClassName",value:function(){return this.props.category.subcategories.length?"panel-heading":"panel-heading heading-alone"}},{key:"getCategoryDescription",value:function(){return this.props.category.description?l["default"].createElement("div",{className:"panel-body category-description",dangerouslySetInnerHTML:{__html:this.props.category.description.html}}):null}},{key:"getSubcategoryClass",value:function(e){return e.css_class?"list-group-item category-subcategory subcategory-"+e.css_class:"list-group-item category-subcategory"}},{key:"getSubcategoryDescription",value:function(e){return e.description?l["default"].createElement("div",{className:"subcategory-description",dangerouslySetInnerHTML:{__html:e.description.html}}):null}},{key:"getSubcategorySubcategoryClass",value:function(e){return e.css_class?"subcategory subcategory-"+e.css_class:"subcategory"}},{key:"getSubcategorySubcategories",value:function(e){var t=this;return e.subcategories.length?l["default"].createElement("ul",{className:"list-inline subcategory-subcategories"},e.subcategories.map(function(e){return l["default"].createElement("li",{key:e.id},l["default"].createElement("a",{href:e.absolute_url,className:t.getSubcategorySubcategoryClass(e)},e.name))})):null}},{key:"getSubcategories",value:function(){var e=this;return this.props.category.subcategories.length?l["default"].createElement("ul",{className:"list-group category-subcategories"},this.props.category.subcategories.map(function(t){return l["default"].createElement("li",{className:e.getSubcategoryClass(t),key:t.id},l["default"].createElement("div",{className:"title-row"},l["default"].createElement("h4",null,l["default"].createElement(p["default"],{category:t}),l["default"].createElement("a",{href:t.absolute_url,className:"item-title"},t.name)),l["default"].createElement(h["default"],{category:t})),l["default"].createElement(f["default"],{category:t}),e.getSubcategoryDescription(t),e.getSubcategorySubcategories(t))})):null}},{key:"render",value:function(){return l["default"].createElement("div",{id:"panel-category-"+this.props.category.id,className:this.getClassName()},l["default"].createElement("div",{className:this.getHeadingClassName()},l["default"].createElement("div",{className:"panel-heading-inblock"},l["default"].createElement("div",{className:"panel-heading-top-row"},l["default"].createElement("h3",{className:"panel-title"},l["default"].createElement(p["default"],{category:this.props.category}),l["default"].createElement("a",{href:this.props.category.absolute_url,className:"item-title"},this.props.category.name)),l["default"].createElement(h["default"],{category:this.props.category})),l["default"].createElement(f["default"],{category:this.props.category}))),this.getCategoryDescription(),this.getSubcategories())}}]),t}(l["default"].Component);n["default"]=g},{"./last-activity":59,"./read-icon":60,"./stats":62,react:"react"}],58:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"message-panel"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},gettext("No categories are available.")),l["default"].createElement("p",null,gettext("No categories are currently defined or you don't have permission to see them."))))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],59:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getLastPoster",value:function(){return this.props.category.last_poster_url?l["default"].createElement("a",{href:this.props.category.last_poster_url,className:"item-title"},this.props.category.last_poster_name):l["default"].createElement("span",{className:"item-title"},this.props.category.last_poster_name)}},{key:"getThreadDetails",value:function(){return[l["default"].createElement("li",{className:"thread-title",key:"title"},l["default"].createElement("a",{href:this.props.category.last_thread_url,className:"item-title"},this.props.category.last_thread_title)),l["default"].createElement("li",{className:"poster-name",key:"poster"},this.getLastPoster()),l["default"].createElement("li",{className:"thread-date",key:"date"},l["default"].createElement("abbr",{title:this.props.category.last_post_on.format("LL, LT")},this.props.category.last_post_on.fromNow()))]}},{key:"getLastActivity",value:function(){return this.props.category.acl.can_browse?this.props.category.acl.can_see_all_threads?this.props.category.last_thread_title?this.getThreadDetails():l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"error_outline"),gettext("This category is empty.")):l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"info_outline"),gettext("This category is private. You can see only your own threads within it.")):l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"highlight_off"),gettext("This category is protected. You can't browse it's contents."))}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"list-inline category-last-activity"},this.getLastActivity())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],60:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.category.is_read?"material-icon read-status item-read":"material-icon read-status item-new"}},{key:"getTitle",value:function(){return this.props.category.is_closed?this.props.category.is_read?gettext("This category has no new posts. (closed)"):gettext("This category has new posts. (closed)"):this.props.category.is_read?gettext("This category has no new posts."):gettext("This category has new posts.")}},{key:"getIcon",value:function(){return this.props.category.is_closed?this.props.category.is_read?"lock_outline":"lock":this.props.category.is_read?"chat_bubble_outline":"chat_bubble"}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClassName(),title:this.getTitle()},this.getIcon())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],61:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("moment"),c=a(l),f=e("react"),d=a(f),p=e("./category"),m=a(p),h=e("./empty-message"),g=a(h),v=e("../../index"),b=a(v),y=e("../../services/polls"),_=a(y),w=function O(e){return Object.assign({},e,{last_post_on:e.last_post_on?(0,c["default"])(e.last_post_on):null,subcategories:e.subcategories.map(O)})},E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){n.setState({categories:e.map(w)})},n.state={categories:b["default"].get("CATEGORIES").map(w)},n.startPolling(b["default"].get("CATEGORIES_API")),n}return s(t,e),u(t,[{key:"startPolling",value:function(e){_["default"].start({poll:"categories",url:e,frequency:18e4,update:this.update})}},{key:"getClassName",value:function(){return this.state.categories.length?"page page-categories":"page page-categories page-message"}},{key:"getHeading",value:function(){return b["default"].get("CATEGORIES_ON_INDEX")?b["default"].get("SETTINGS").forum_name:gettext("Categories")}},{key:"getCategoriesList",value:function(){return this.state.categories.length?d["default"].createElement("div",{className:"categories-list"},this.state.categories.map(function(e){return d["default"].createElement(m["default"],{category:e,key:e.id})})):d["default"].createElement(g["default"],null)}},{key:"render",value:function(){return d["default"].createElement("div",{className:this.getClassName()},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",null,this.getHeading()))),d["default"].createElement("div",{className:"container"},this.getCategoriesList()))}}]),t}(d["default"].Component);n["default"]=E},{"../../index":128,"../../services/polls":143,"./category":57,"./empty-message":58,moment:"moment",react:"react"}],62:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getThreadsCount",value:function(){var e=ngettext("%(threads)s thread","%(threads)s threads",this.props.category.threads);return interpolate(e,{threads:this.props.category.threads},!0)}},{key:"getPostsCount",value:function(){var e=ngettext("%(posts)s post","%(posts)s posts",this.props.category.posts);return interpolate(e,{posts:this.props.category.posts},!0)}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"list-inline category-stats"},l["default"].createElement("li",{className:"category-threads"},this.getThreadsCount()),l["default"].createElement("li",{className:"category-posts"},this.getPostsCount()))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],63:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=(a(c),e("../button")),d=a(f),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),g=a(h),v=$("base").attr("href")+"user-avatar",b=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.cropAvatar=function(){if(n.state.isLoading)return!1;n.setState({isLoading:!0});var e=n.props.upload?"crop_tmp":"crop_org",t=$(".crop-form");m["default"].post(n.props.user.api_url.avatar,{avatar:e,crop:{offset:t.cropit("offset"),zoom:t.cropit("zoom")}}).then(function(e){n.props.onComplete(e.avatar_hash,e.options),g["default"].success(e.detail)},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)})},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_org.size}},{key:"getAvatarSecret",value:function(){return this.props.upload?this.props.options.crop_tmp.secret:this.props.options.crop_org.secret}},{key:"getAvatarHash",value:function(){return this.props.upload||this.props.user.avatar_hash}},{key:"getImagePath",value:function(){return[v,this.getAvatarSecret()+":"+this.getAvatarHash(),this.props.user.id+".png"].join("/")}},{key:"componentDidMount",value:function(){var e=this,t=$(".crop-form");t.width(this.getAvatarSize()),t.cropit({width:this.getAvatarSize(),height:this.getAvatarSize(),imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var n=t.cropit("zoom"),a=t.cropit("imageSize");if(a.width>a.height){var r=a.width*n,o=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:o,y:0})}else if(a.width<a.height){var s=a.height*n,i=(s-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:i})}}else{var u=e.props.options.crop_org.crop;u&&(t.cropit("zoom",u.zoom),t.cropit("offset",{x:u.x,y:u.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{
-className:"modal-body modal-avatar-crop"},l["default"].createElement("div",{className:"crop-form"},l["default"].createElement("div",{className:"cropit-image-preview"}),l["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(d["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),l["default"].createElement(d["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(l["default"].Component);n["default"]=b},{"../../services/ajax":135,"../../services/snackbar":144,"../avatar":54,"../button":56,react:"react"}],64:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Gallery=n.GalleryItem=void 0;var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../../index"),p=a(d),m=e("../../services/ajax"),h=a(m),g=e("../../services/snackbar"),v=a(g),b=e("../../utils/batch"),y=a(b),_=n.GalleryItem=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.select=function(){a.props.select(a.props.image)},s=n,o(a,s)}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.image?this.props.disabled?"btn btn-avatar btn-disabled avatar-selected":"btn btn-avatar avatar-selected":this.props.disabled?"btn btn-avatar btn-disabled":"btn btn-avatar"}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},l["default"].createElement("img",{src:p["default"].get("MEDIA_URL")+this.props.image}))}}]),t}(l["default"].Component),w=n.Gallery=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"avatars-gallery"},l["default"].createElement("h3",null,this.props.name),l["default"].createElement("div",{className:"avatars-gallery-images"},(0,y["default"])(this.props.images,4,null).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t,n){return l["default"].createElement("div",{className:"col-xs-3",key:n},t?l["default"].createElement(_,{image:t,disabled:e.props.disabled,select:e.props.select,selection:e.props.selection}):l["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(l["default"].Component),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.select=function(e){n.setState({selection:e})},n.save=function(){return n.state.isLoading?!1:(n.setState({isLoading:!0}),void h["default"].post(n.props.user.api_url.avatar,{avatar:"galleries",image:n.state.selection}).then(function(e){n.setState({isLoading:!1}),v["default"].success(e.detail),n.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)}))},n.state={selection:null,isLoading:!1},n}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,n){return l["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:n})})),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(f["default"],{onClick:this.save,loading:this.state.isLoading,disabled:!this.state.selection,className:"btn-primary btn-block"},this.state.selection?gettext("Save choice"):gettext("Select avatar")),l["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(l["default"].Component);n["default"]=E},{"../../index":128,"../../services/ajax":135,"../../services/snackbar":144,"../../utils/batch":148,"../button":56,react:"react"}],65:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../button"),p=a(d),m=e("../loader"),h=a(m),g=e("../../services/ajax"),v=a(g),b=e("../../services/snackbar"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.setGravatar=function(){n.callApi("gravatar")},n.setGenerated=function(){n.callApi("generated")},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"callApi",value:function(e){var t=this;return this.state.isLoading?!1:(this.setState({isLoading:!0}),void v["default"].post(this.props.user.api_url.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),y["default"].success(e.detail),t.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(y["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_org?l["default"].createElement(p["default"],{onClick:this.props.showCrop,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-crop"},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?l["default"].createElement(p["default"],{onClick:this.props.showUpload,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-upload"},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?l["default"].createElement(p["default"],{onClick:this.props.showGallery,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gallery"},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){var e={id:this.props.user.id,avatar_hash:this.props.options.avatar_hash};return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(f["default"],{user:e,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(f["default"],{user:e,size:"200"}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-index"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),l["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),l["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":135,"../../services/snackbar":144,"../avatar":54,"../button":56,"../loader":71,react:"react"}],66:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangeAvatarError=void 0,n.select=i;var l=e("react"),c=a(l),f=e("./index"),d=a(f),p=e("./crop"),m=a(p),h=e("./upload"),g=a(h),v=e("./gallery"),b=a(v),y=e("../modal-loader"),_=a(y),w=e("../../reducers/users"),E=e("../../services/ajax"),O=a(E),k=e("../../services/store"),N=a(k),x=n.ChangeAvatarError=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getErrorReason",value:function(){return this.props.reason?c["default"].createElement("p",{dangerouslySetInnerHTML:{__html:this.props.reason}}):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.props.message),this.getErrorReason()))}}]),t}(c["default"].Component),j=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showError=function(e){a.setState({error:e})},a.showIndex=function(){a.setState({component:d["default"]})},a.showUpload=function(){a.setState({component:g["default"]})},a.showCrop=function(){a.setState({component:m["default"]})},a.showGallery=function(){a.setState({component:b["default"]})},a.completeFlow=function(e,t){N["default"].dispatch((0,w.updateAvatar)(a.props.user,e)),a.setState({component:d["default"],options:t})},s=n,o(a,s)}return s(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;O["default"].get(this.props.user.api_url.avatar).then(function(t){e.setState({component:d["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(x,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);n["default"]=j},{"../../reducers/users":134,"../../services/ajax":135,"../../services/store":145,"../modal-loader":72,"./crop":63,"./gallery":64,"./index":65,"./upload":67,react:"react"}],67:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./crop"),f=a(c),d=e("../button"),p=a(d),m=e("../../services/ajax"),h=a(m),g=e("../../services/snackbar"),v=a(g),b=e("../../utils/file-size"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},n.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0],t=n.validateFile(e);if(t)return void v["default"].error(t);n.setState({image:e,preview:URL.createObjectURL(e),progress:0});var a=new FormData;a.append("avatar","upload"),a.append("image",e),h["default"].upload(n.props.user.api_url.avatar,a,function(e){n.setState({progress:e})}).then(function(e){n.setState({options:e.options,uploaded:e.detail}),v["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1,image:null,progress:0})):n.props.showError(e)})},n.state={image:null,preview:null,progress:0,uploaded:null},n}return s(t,e),i(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,y["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(-1===this.props.options.upload.allowed_mime_types.indexOf(e.type))return t;var n=!1,a=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){a.substr(-1*e.length)===e&&(n=!0)}),n?!1:t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,y["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},l["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),l["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement("div",{className:"upload-progress"},l["default"].createElement("img",{src:this.state.preview}),l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{width:this.state.progress+"%"}},l["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return l["default"].createElement("div",null,l["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return l["default"].createElement(f["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":135,"../../services/snackbar":144,"../../utils/file-size":149,"../button":56,"./crop":63,react:"react"}],68:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],69:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("../utils/validators"),d=e("../services/snackbar"),p=a(d),m=(0,f.required)(),h=function(e){function t(){var e,n,a,i;o(this,t);for(var u=arguments.length,l=Array(u),c=0;u>c;c++)l[c]=arguments[c];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.bindInput=function(e){return function(t){var n=r({},e,t.target.value),o=a.state.errors||{};o[e]=a.validateField(e,n[e]),n.errors=o,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},i=n,s(a,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],o=this.validateField(a,this.state[a]);null===o?e[a]=null:o&&(e[a]=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=[];if(!this.state.validators)return n;var a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=m(t)||!1;if(a.required){if(r)n=[r];else for(var o in a.required){var s=a.required[o](t);s&&n.push(s)}return n.length?n:null}if(r===!1&&a.optional){for(var o in a.optional){var s=a.optional[o](t);s&&n.push(s)}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){p["default"].apiError(e)}}]),t}(c["default"].Component);n["default"]=h},{"../services/snackbar":144,"../utils/validators":155,react:"react"}],70:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"isActive",value:function(){return this.props.path?0===document.location.pathname.indexOf(this.props.path):!1}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],71:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:this.props.className||"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],72:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-loader"},l["default"].createElement(f["default"],null))}}]),t}(l["default"].Component);n["default"]=d},{"./loader":71,react:"react"}],73:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./panel-message"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(f["default"]);n["default"]=d},{"./panel-message":85,react:"react"}],74:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../panel-loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"
-},gettext("Change username"))),l["default"].createElement(f["default"],null))}}]),t}(l["default"].Component);n["default"]=d},{"../../panel-loader":84,react:"react"}],75:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../panel-message"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),l["default"].createElement(f["default"],{message:gettext("You can't change your username at the moment."),helpText:this.getHelpText()}))}}]),t}(l["default"].Component);n["default"]=d},{"../../panel-message":85,react:"react"}],76:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../services/ajax"),b=r(v),y=e("../../../services/snackbar"),_=r(y),w=e("../../../utils/validators"),E=a(w),O=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={username:"",validators:{username:[E.usernameContent(),E.usernameMinLength({username_length_min:e.options.length_min}),E.usernameMaxLength({username_length_max:e.options.length_max})]},isLoading:!1},n}return i(t,e),u(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var t=ngettext("Used changes redeem after %(name_changes_expire)s day.","Used changes redeem after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(t,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(_["default"].error(e.username[0]),!1):this.state.username.trim()===this.props.user.username?(_["default"].info(gettext("Your new username is same as current one.")),!1):!0}},{key:"send",value:function(){return b["default"].post(this.props.user.api_url.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",helpText:this.getHelpText()},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))))}}]),t}(m["default"]);n["default"]=O},{"../../../services/ajax":135,"../../../services/snackbar":144,"../../../utils/validators":155,"../../button":56,"../../form":69,"../../form-group":68,react:"react"}],77:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=e("./form-loading"),p=a(d),m=e("./form-locked"),h=a(m),g=e("./form"),v=a(g),b=e("../../username-history"),y=a(b),_=e("../../../index"),w=a(_),E=e("../../../reducers/username-history"),O=e("../../../reducers/users"),k=e("../../../services/ajax"),N=a(k),x=e("../../../services/page-title"),j=a(x),P=e("../../../services/snackbar"),S=a(P),C=e("../../../services/store"),M=a(C),T=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.onComplete=function(e,t,a){n.setState({options:a}),M["default"].dispatch((0,E.addNameChange)({username:e,slug:t},n.props.user,n.props.user)),M["default"].dispatch((0,O.updateUsername)(n.props.user,e,t)),S["default"].success(gettext("Your username has been changed successfully."))},n.state={isLoaded:!1,options:null},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([N["default"].get(this.props.user.api_url.username),N["default"].get(w["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){M["default"].dispatch((0,E.dehydrate)(t[1].results)),e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,l["default"])(t[0].next_on):null}})})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?this.state.options.changes_left>0?f["default"].createElement(v["default"],{user:this.props.user,options:this.state.options,complete:this.onComplete}):f["default"].createElement(h["default"],{options:this.state.options}):f["default"].createElement(p["default"],null)}},{key:"render",value:function(){return f["default"].createElement("div",null,this.getChangeForm(),f["default"].createElement(y["default"],{isLoaded:this.state.isLoaded,changes:this.props["username-history"]}))}}]),t}(f["default"].Component);n["default"]=T},{"../../../index":128,"../../../reducers/username-history":133,"../../../reducers/users":134,"../../../services/ajax":135,"../../../services/page-title":142,"../../../services/snackbar":144,"../../../services/store":145,"../../username-history":112,"./form":76,"./form-loading":74,"./form-locked":75,moment:"moment",react:"react"}],78:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../form"),p=a(d),m=e("../form-group"),h=a(m),g=e("../select"),v=a(g),b=e("../yes-no-switch"),y=a(b),_=e("../../reducers/auth"),w=e("../../services/ajax"),E=a(w),O=e("../../services/page-title"),k=a(O),N=e("../../services/snackbar"),x=a(N),j=e("../../services/store"),P=a(j),S=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},n.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],n.subscribeToChoices=[{value:0,icon:"bookmark_border",label:gettext("No")},{value:1,icon:"bookmark",label:gettext("Bookmark")},{value:2,icon:"mail",label:gettext("Bookmark with e-mail notification")}],n}return s(t,e),i(t,[{key:"send",value:function(){return E["default"].post(this.props.user.api_url.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patchUser)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),x["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?x["default"].error(gettext("Please reload page and try again.")):x["default"].apiError(e)}},{key:"componentDidMount",value:function(){k["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),l["default"].createElement("div",{className:"panel-body"},l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Privacy settings")),l["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(y["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility_off",iconOff:"visibility",labelOn:gettext("Hide my presence from other users"),labelOff:gettext("Show my presence to other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),l["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Automatic subscriptions")),l["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),l["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),l["default"].createElement("div",{className:"panel-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},l["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))))}}]),t}(p["default"]);n["default"]=S},{"../../reducers/auth":129,"../../services/ajax":135,"../../services/page-title":142,"../../services/snackbar":144,"../../services/store":145,"../button":56,"../form":69,"../form-group":68,"../select":105,"../yes-no-switch":127,react:"react"}],79:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index");a(p),n.SideNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.options.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.props.options.map(function(t){return l["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name))}))}}]),t}(l["default"].Component)},{"../../index":128,"../li":70,react:"react","react-router":"react-router"}],80:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function u(){return[{path:w["default"].get("USERCP_URL")+"forum-options/",component:(0,d.connect)(i)(h["default"])},{path:w["default"].get("USERCP_URL")+"change-username/",component:(0,d.connect)(i)(v["default"])},{path:w["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,d.connect)(i)(y["default"])}]}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("./navs"),m=e("./forum-options"),h=a(m),g=e("./change-username/root"),v=a(g),b=e("./sign-in-credentials/root"),y=a(b),_=e("../../index"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n}return s(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-options"},f["default"].createElement("div",{className:"page-header"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Change your options")),f["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},f["default"].createElement("i",{className:"material-icon"},"menu")))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(p.CompactNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL"),hideNav:this.hideNav})),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement(p.SideNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(f["default"].Component);n["default"]=E},{"../../index":128,"./change-username/root":77,"./forum-options":78,"./navs":79,"./sign-in-credentials/root":83,react:"react","react-redux":"react-redux"}],81:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../services/ajax"),b=r(v),y=e("../../../services/snackbar"),_=r(y),w=e("../../../utils/validators"),E=a(w),O=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_email:"",password:"",validators:{new_email:[E.email()],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(_["default"].error(gettext("Fill out all fields.")),!1):e.new_email?(_["default"].error(e.new_email[0]),!1):!0}},{key:"send",value:function(){return b["default"].post(this.props.user.api_url.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),_["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?_["default"].error(e.new_email):_["default"].error(e.password):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New e-mail"),"for":"id_new_email",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(g["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))))}}]),t}(m["default"]);n["default"]=O},{"../../../services/ajax":135,"../../../services/snackbar":144,"../../../utils/validators":155,"../../button":56,"../../form":69,"../../form-group":68,react:"react"}],82:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../index"),b=r(v),y=e("../../../services/ajax"),_=r(y),w=e("../../../services/snackbar"),E=r(w),O=e("../../../utils/validators"),k=a(O),N=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[k.passwordMinLength(b["default"].get("SETTINGS"))],repeat_password:[],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(E["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(E["default"].error(e.new_password[0]),!1):this.state.new_password.trim()!==this.state.repeat_password.trim()?(E["default"].error(gettext("New passwords are different.")),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),E["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?E["default"].error(e.new_password):E["default"].error(e.password):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New password"),"for":"id_new_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),c["default"].createElement(g["default"],{label:gettext("Repeat password"),"for":"id_repeat_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),c["default"].createElement("hr",null),c["default"].createElement(g["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))))}}]),t}(m["default"]);n["default"]=N},{"../../../index":128,"../../../services/ajax":135,"../../../services/snackbar":144,"../../../utils/validators":155,"../../button":56,"../../form":69,"../../form-group":68,react:"react"}],83:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./change-email"),f=a(c),d=e("./change-password"),p=a(d),m=e("../../../index"),h=a(m),g=e("../../../services/page-title"),v=a(g),b=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"componentDidMount",value:function(){v["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(f["default"],{user:this.props.user}),l["default"].createElement(p["default"],{user:this.props.user}),l["default"].createElement("p",{className:"message-line"},l["default"].createElement("span",{className:"material-icon"},"warning"),l["default"].createElement("a",{
-href:h["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(l["default"].Component);n["default"]=b},{"../../../index":128,"../../../services/page-title":142,"./change-email":81,"./change-password":82,react:"react"}],84:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"panel-body panel-body-loading"},l["default"].createElement(f["default"],{className:"loader loader-spaced"}))}}]),t}(l["default"].Component);n["default"]=d},{"./loader":71,react:"react"}],85:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"panel-body panel-message-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],86:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var u=e("react"),l=a(u),c=e("../services/zxcvbn"),f=a(c),d=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return s(t,e),i(t,[{key:"getScore",value:function(e,t){var n=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar "+d[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":146,react:"react"}],87:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("./follow-button"),p=a(d),m=e("./moderation/nav"),h=a(m),g=e("../user-status"),v=a(g),b=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUserStatus",value:function(){return l["default"].createElement("li",{className:"user-status-display"},l["default"].createElement(v["default"],{user:this.props.profile,status:this.props.profile.status},l["default"].createElement(g.StatusIcon,{user:this.props.profile,status:this.props.profile.status}),l["default"].createElement(g.StatusLabel,{user:this.props.profile,status:this.props.profile.status,className:"status-label"})))}},{key:"getUserRank",value:function(){return this.props.profile.rank.is_tab?l["default"].createElement("li",{className:"user-rank"},l["default"].createElement("a",{href:this.props.profile.rank.absolute_url,className:"item-title"},this.props.profile.rank.name)):l["default"].createElement("li",{className:"user-rank"},l["default"].createElement("span",{className:"item-title"},this.props.profile.rank.name))}},{key:"getUserTitle",value:function(){return this.props.profile.title?l["default"].createElement("li",{className:"user-title"},this.props.profile.title):this.props.profile.rank.title?l["default"].createElement("li",{className:"user-title"},this.props.profile.rank.title):null}},{key:"getJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.profile.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.profile.joined_on.fromNow()},!0);return l["default"].createElement("li",{className:"user-joined-on"},l["default"].createElement("abbr",{title:e},t))}},{key:"getEmail",value:function(){return this.props.profile.email?l["default"].createElement("li",{className:"user-email"},l["default"].createElement("a",{href:"mailto:"+this.props.profile.email,className:"item-title"},this.props.profile.email)):null}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?l["default"].createElement(p["default"],{className:"btn btn-aligned hidden-xs hidden-sm",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?l["default"].createElement("div",{className:"btn-group btn-aligned hidden-xs hidden-sm"},l["default"].createElement("button",{className:"btn btn-default btn-moderate dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},l["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")),l["default"].createElement(h["default"],{profile:this.props.profile})):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"page-header"},l["default"].createElement("div",{className:"container"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},l["default"].createElement("h1",{className:"pull-left"},l["default"].createElement(f["default"],{user:this.props.profile,size:"100"}),l["default"].createElement("span",{className:"user-name"},this.props.profile.username)),this.getFollowButton(),this.getModerationButton(),l["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.props.toggleNav,"aria-haspopup":"true","aria-expanded":this.props.dropdown?"true":"false"},l["default"].createElement("i",{className:"material-icon"},"menu"))))),l["default"].createElement("div",{className:"header-stats"},l["default"].createElement("div",{className:"container"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},l["default"].createElement("ul",{className:"list-inline"},this.getUserStatus(),this.getUserRank(),this.getUserTitle(),this.getJoinedOn(),this.getEmail()))))))}}]),t}(l["default"].Component);n["default"]=b},{"../avatar":54,"../user-status":111,"./follow-button":89,"./moderation/nav":95,react:"react"}],88:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=e("../panel-loader"),p=a(d),m=e("../panel-message"),h=a(m),g=e("../../index"),v=a(g),b=e("../../services/polls"),y=a(b),_=e("../../services/page-title"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){e.expires_on&&(e.expires_on=(0,l["default"])(e.expires_on)),n.setState({isLoaded:!0,error:null,ban:e})},n.error=function(e){n.setState({isLoaded:!0,error:e.detail,ban:null})},v["default"].has("PROFILE_BAN")?n.initWithPreloadedData(v["default"].pop("PROFILE_BAN")):n.initWithoutPreloadedData(),n.startPolling(e.profile.api_url.ban),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){e.expires_on&&(e.expires_on=(0,l["default"])(e.expires_on)),this.state={isLoaded:!0,ban:e}}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){y["default"].start({poll:"ban-details",url:e,frequency:9e4,update:this.update,error:this.error})}},{key:"componentDidMount",value:function(){w["default"].set({title:gettext("Ban details"),parent:this.props.profile.username})}},{key:"componentWillUnmount",value:function(){y["default"].stop("ban-details")}},{key:"getUserMessage",value:function(){return this.state.ban.user_message?f["default"].createElement("div",{className:"panel-body ban-message ban-user-message"},f["default"].createElement("h4",null,gettext("User-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.user_message.html}})):null}},{key:"getStaffMessage",value:function(){return this.state.ban.staff_message?f["default"].createElement("div",{className:"panel-body ban-message ban-staff-message"},f["default"].createElement("h4",null,gettext("Team-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.staff_message.html}})):null}},{key:"getExpirationMessage",value:function(){if(this.state.ban.expires_on){if(this.state.ban.expires_on.isAfter((0,l["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.state.ban.expires_on.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.state.ban.expires_on.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return interpolate(gettext("%(username)s's ban is permanent."),{username:this.props.profile.username},!0)}},{key:"getPanelBody",value:function(){return this.state.ban?Object.keys(this.state.ban).length?f["default"].createElement("div",null,this.getUserMessage(),this.getStaffMessage(),f["default"].createElement("div",{className:"panel-body ban-expires"},f["default"].createElement("h4",null,gettext("Ban expiration")),f["default"].createElement("p",{className:"lead"},this.getExpirationMessage()))):f["default"].createElement("div",null,f["default"].createElement(h["default"],{message:gettext("No ban is active at the moment.")})):this.state.error?f["default"].createElement("div",null,f["default"].createElement(h["default"],{icon:"error_outline",message:this.state.error})):f["default"].createElement("div",null,f["default"].createElement(p["default"],null))}},{key:"render",value:function(){return f["default"].createElement("div",{className:"profile-ban-details"},f["default"].createElement("div",{className:"panel panel-default"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Ban details"))),this.getPanelBody()))}}]),t}(f["default"].Component);n["default"]=E},{"../../index":128,"../../services/page-title":142,"../../services/polls":143,"../panel-loader":84,"../panel-message":85,moment:"moment",react:"react"}],89:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../../reducers/profile"),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),g=a(h),v=e("../../services/store"),b=a(v),y=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.action=function(){n.setState({isLoading:!0}),n.props.profile.is_followed?b["default"].dispatch((0,d.patchProfile)({is_followed:!1,followers:n.props.profile.followers-1})):b["default"].dispatch((0,d.patchProfile)({is_followed:!0,followers:n.props.profile.followers+1})),m["default"].post(n.props.profile.api_url.follow).then(function(e){n.setState({isLoading:!1}),b["default"].dispatch((0,d.patchProfile)(e))},function(e){n.setState({isLoading:!1}),g["default"].apiError(e)})},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.profile.is_followed?this.props.className+" btn-default btn-following":this.props.className+" btn-default btn-follow"}},{key:"getIcon",value:function(){return this.props.profile.is_followed?"favorite":"favorite_border"}},{key:"getLabel",value:function(){return this.props.profile.is_followed?gettext("Following"):gettext("Follow")}},{key:"render",value:function(){return l["default"].createElement(f["default"],{className:this.getClassName(),disabled:this.state.isLoading,onClick:this.action},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=y},{"../../reducers/profile":130,"../../services/ajax":135,"../../services/snackbar":144,"../../services/store":145,"../button":56,react:"react"}],90:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("../button"),d=a(f),p=e("../search"),m=a(p),h=e("../users-list/root"),g=a(h),v=e("../../index"),b=a(v),y=e("../../reducers/users"),_=e("../../services/ajax"),w=a(_),E=e("../../services/snackbar"),O=a(E),k=e("../../services/store"),N=a(k),x=e("../../services/page-title"),j=a(x),P=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.loadMore=function(){n.setState({isBusy:!0}),n.loadUsers(n.state.page+1,n.state.search)},n.search=function(e){n.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),n.loadUsers(1,e.target.value)},n.setSpecialProps(),b["default"].has(n.PRELOADED_DATA_KEY)?n.initWithPreloadedData(b["default"].pop(n.PRELOADED_DATA_KEY)):n.initWithoutPreloadedData(),n}return i(t,e),u(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWERS",this.TITLE=gettext("Followers"),this.API_FILTER="followers"}},{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},N["default"].dispatch((0,y.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadUsers()}},{key:"loadUsers",value:function(){var e,t=this,n=arguments.length<=0||void 0===arguments[0]?1:arguments[0],a=arguments.length<=1||void 0===arguments[1]?null:arguments[1];w["default"].get(b["default"].get("USERS_API"),(e={},r(e,this.API_FILTER,this.props.profile.id),r(e,"name",a),r(e,"page",n||1),e),"user-"+this.API_FILTER).then(function(e){1===n?N["default"].dispatch((0,y.dehydrate)(e.results)):N["default"].dispatch((0,y.append)(e.results)),t.setState({isLoaded:!0,isBusy:!1,count:e.count,more:e.more,page:e.page,pages:e.pages})},function(e){O["default"].apiError(e)})}},{key:"componentDidMount",value:function(){j["default"].set({title:this.TITLE,parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("You have %(users)s follower.","You have %(users)s followers.",this.state.count);return interpolate(e,{users:this.state.count},!0)}var e=ngettext("%(username)s has %(users)s follower.","%(username)s has %(users)s followers.",this.state.count);return interpolate(e,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You have no followers."):interpolate(gettext("%(username)s has no followers."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show more (%(more)s)"),{more:this.state.more},!0))):null}},{key:"getListBody",value:function(){return this.state.isLoaded&&0===this.state.count?c["default"].createElement("p",{className:"lead"},this.getEmptyMessage()):c["default"].createElement("div",null,c["default"].createElement(g["default"],{isLoaded:this.state.isLoaded,users:this.props.users,showRank:!0,cols:2}),this.getMoreButton())}},{key:"getClassName",value:function(){return"profile-"+this.API_FILTER}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("nav",{className:"toolbar"},c["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),c["default"].createElement(m["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),this.getListBody())}}]),t}(c["default"].Component);n["default"]=P},{"../../index":128,"../../reducers/users":134,"../../services/ajax":135,"../../services/page-title":142,"../../services/snackbar":144,"../../services/store":145,"../button":56,"../search":104,"../users-list/root":113,react:"react"}],91:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=(a(u),e("./followers")),c=a(l),f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWS",this.TITLE=gettext("Follows"),this.API_FILTER="follows"}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("You are following %(users)s user.","You are following %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}var e=ngettext("%(username)s is following %(users)s user.","%(username)s is following %(users)s users.",this.state.count);return interpolate(e,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You are not following any users."):interpolate(gettext("%(username)s is not following any users."),{username:this.props.profile.username},!0)}}]),t}(c["default"]);n["default"]=f},{"./followers":90,react:"react"}],92:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),m=e("../../form-group"),h=a(m),g=e("../../modal-loader"),v=a(g),b=e("../../yes-no-switch"),y=a(b),_=e("../../modal-message"),w=a(_),E=e("../../../reducers/users"),O=e("../../../services/ajax"),k=a(O),N=e("../../../services/snackbar"),x=a(N),j=e("../../../services/store"),P=a(j),S=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoaded:!1,isLoading:!1,error:null,is_avatar_locked:"",avatar_lock_user_message:"",avatar_lock_staff_message:""},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.profile.api_url.moderate_avatar).then(function(t){e.setState({isLoaded:!0,is_avatar_locked:t.is_avatar_locked,avatar_lock_user_message:t.avatar_lock_user_message,avatar_lock_staff_message:t.avatar_lock_staff_message})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(x["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return k["default"].post(this.props.profile.api_url.moderate_avatar,{is_avatar_locked:this.state.is_avatar_locked,avatar_lock_user_message:this.state.avatar_lock_user_message,avatar_lock_staff_message:this.state.avatar_lock_staff_message})}},{key:"handleSuccess",value:function(e){P["default"].dispatch((0,E.updateAvatar)(this.props.profile,e.avatar_hash)),x["default"].success(gettext("Avatar controls have been changed."))}},{key:"getFormBody",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement(h["default"],{label:gettext("Lock avatar"),helpText:gettext("Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one."),"for":"id_is_avatar_locked"},l["default"].createElement(y["default"],{id:"id_is_avatar_locked",disabled:this.state.isLoading,iconOn:"lock_outline",iconOff:"lock_open",labelOn:gettext("Disallow user from changing avatar"),labelOff:gettext("Allow user to change avatar"),onChange:this.bindInput("is_avatar_locked"),value:this.state.is_avatar_locked})),l["default"].createElement(h["default"],{label:gettext("User message"),helpText:gettext("Optional message for user explaining why he/she is prohibited form changing avatar."),"for":"id_avatar_lock_user_message"},l["default"].createElement("textarea",{id:"id_avatar_lock_user_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_user_message"),value:this.state.avatar_lock_user_message})),l["default"].createElement(h["default"],{label:gettext("Staff message"),helpText:gettext("Optional message for forum team members explaining why user is prohibited form changing avatar."),"for":"id_avatar_lock_staff_message"},l["default"].createElement("textarea",{id:"id_avatar_lock_staff_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_staff_message"),value:this.state.avatar_lock_staff_message}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),l["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}},{key:"getModalBody",value:function(){return this.state.error?l["default"].createElement(w["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():l["default"].createElement(v["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-avatar-controls":"modal-dialog modal-avatar-controls"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName(),role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Avatar controls"))),this.getModalBody()))}}]),t}(p["default"]);n["default"]=S},{"../../../reducers/users":134,"../../../services/ajax":135,"../../../services/snackbar":144,"../../../services/store":145,"../../button":56,"../../form":69,"../../form-group":68,"../../modal-loader":72,"../../modal-message":73,"../../yes-no-switch":127,react:"react"}],93:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){
-if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../modal-loader"),b=r(v),y=e("../../modal-message"),_=r(y),w=e("../../../index"),E=r(w),O=e("../../../reducers/username-history"),k=e("../../../reducers/users"),N=e("../../../services/ajax"),x=r(N),j=e("../../../services/snackbar"),P=r(j),S=e("../../../services/store"),C=r(S),M=e("../../../utils/validators"),T=a(M),L=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoaded:!1,isLoading:!1,error:null,username:"",validators:{username:[T.usernameContent(),T.usernameMinLength(E["default"].get("SETTINGS")),T.usernameMaxLength(E["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;x["default"].get(this.props.profile.api_url.moderate_username).then(function(){e.setState({isLoaded:!0})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(P["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return x["default"].post(this.props.profile.api_url.moderate_username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),C["default"].dispatch((0,O.addNameChange)(e,this.props.profile,this.props.user)),C["default"].dispatch((0,k.updateUsername)(this.props.profile,e.username,e.slug)),P["default"].success(gettext("Username has been changed."))}},{key:"getFormBody",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(g["default"],{label:gettext("New username"),"for":"id_username"},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username"))))}},{key:"getModalBody",value:function(){return this.state.error?c["default"].createElement(_["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():c["default"].createElement(b["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-rename-user":"modal-dialog modal-rename-user"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change username"))),this.getModalBody()))}}]),t}(m["default"]);n["default"]=L},{"../../../index":128,"../../../reducers/username-history":133,"../../../reducers/users":134,"../../../services/ajax":135,"../../../services/snackbar":144,"../../../services/store":145,"../../../utils/validators":155,"../../button":56,"../../form":69,"../../form-group":68,"../../modal-loader":72,"../../modal-message":73,react:"react"}],94:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),m=e("../../form-group"),h=a(m),g=e("../../modal-loader"),v=a(g),b=e("../../modal-message"),y=a(b),_=e("../../yes-no-switch"),w=a(_),E=e("../../../index"),O=a(E),k=e("../../../services/ajax"),N=a(k),x=e("../../../services/polls"),j=a(x),P=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.countdown=function(){window.setTimeout(function(){n.state.countdown>1?(n.setState({countdown:n.state.countdown-1}),n.countdown()):n.state.confirm||n.setState({confirm:!0})},1e3)},n.state={isLoaded:!1,isLoading:!1,isDeleted:!1,error:null,countdown:5,confirm:!1,with_content:!1},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;N["default"].get(this.props.profile.api_url["delete"]).then(function(){e.setState({isLoaded:!0}),e.countdown()},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"send",value:function(){return N["default"].post(this.props.profile.api_url["delete"],{with_content:this.state.with_content})}},{key:"handleSuccess",value:function(){j["default"].stop("user-profile"),this.state.with_content?this.setState({isDeleted:interpolate(gettext("%(username)s's account, threads, posts and other content has been deleted."),{username:this.props.profile.username},!0)}):this.setState({isDeleted:interpolate(gettext("%(username)s's account has been deleted and other content has been hidden."),{username:this.props.profile.username},!0)})}},{key:"getButtonLabel",value:function(){return this.state.confirm?interpolate(gettext("Delete %(username)s"),{username:this.props.profile.username},!0):interpolate(gettext("Please wait... (%(countdown)ss)"),{countdown:this.state.countdown},!0)}},{key:"getForm",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement(h["default"],{label:gettext("User content"),labelClass:"col-sm-4",controlClass:"col-sm-8","for":"id_with_content"},l["default"].createElement(w["default"],{id:"id_with_content",disabled:this.state.isLoading,labelOn:gettext("Delete together with user's account"),labelOff:gettext("Hide after deleting user's account"),onChange:this.bindInput("with_content"),value:this.state.with_content}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Cancel")),l["default"].createElement(f["default"],{className:"btn-danger",loading:this.state.isLoading,disabled:!this.state.confirm},this.getButtonLabel())))}},{key:"getDeletedBody",value:function(){return l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.state.isDeleted),l["default"].createElement("p",null,l["default"].createElement("a",{href:O["default"].get("USERS_LIST_URL")},gettext("Return to users list")))))}},{key:"getModalBody",value:function(){return this.state.error?l["default"].createElement(y["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.state.isDeleted?this.getDeletedBody():this.getForm():l["default"].createElement(v["default"],null)}},{key:"getClassName",value:function(){return this.state.error||this.state.isDeleted?"modal-dialog modal-message modal-delete-account":"modal-dialog modal-delete-account"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName(),role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Delete user account"))),this.getModalBody()))}}]),t}(p["default"]);n["default"]=P},{"../../../index":128,"../../../services/ajax":135,"../../../services/polls":143,"../../button":56,"../../form":69,"../../form-group":68,"../../modal-loader":72,"../../modal-message":73,"../../yes-no-switch":127,react:"react"}],95:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-redux"),f=e("./avatar-controls"),d=a(f),p=e("./change-username"),m=a(p),h=e("./delete-account"),g=a(h),v=e("../../../services/modal"),b=a(v),y=function(e){return{tick:e.tick,user:e.auth,profile:e.profile}},_=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showAvatarDialog=function(){b["default"].show((0,c.connect)(y)(d["default"]))},a.showRenameDialog=function(){b["default"].show((0,c.connect)(y)(m["default"]))},a.showDeleteDialog=function(){b["default"].show((0,c.connect)(y)(g["default"]))},s=n,o(a,s)}return s(t,e),i(t,[{key:"getAvatarButton",value:function(){return this.props.profile.acl.can_moderate_avatar?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showAvatarDialog},l["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Avatar controls"))):null}},{key:"getRenameButton",value:function(){return this.props.profile.acl.can_rename?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showRenameDialog},l["default"].createElement("span",{className:"material-icon"},"credit_card"),gettext("Change username"))):null}},{key:"getDeleteButton",value:function(){return this.props.profile.acl.can_delete?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showDeleteDialog},l["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete account"))):null}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu dropdown-menu-right",role:"menu"},this.getAvatarButton(),this.getRenameButton(),this.getDeleteButton(),l["default"].createElement("li",{className:"divider hidden-md hidden-lg"}),l["default"].createElement("li",{className:"dropdown-buttons hidden-md hidden-lg"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleNav},l["default"].createElement("span",{className:"material-icon"},"menu"),gettext("Menu"))))}}]),t}(l["default"].Component);n["default"]=_},{"../../../services/modal":141,"./avatar-controls":92,"./change-username":93,"./delete-account":94,react:"react","react-redux":"react-redux"}],96:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("./follow-button"),m=a(p),h=e("../../index"),g=(a(h),n.SideNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMeta",value:function(e){return e?l["default"].createElement("span",{className:"badge"},this.props.profile[e.attr]):null}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.pages.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta))}))}}]),t}(l["default"].Component));n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSpecialOptions",value:function(){return this.props.profile.acl.can_follow||this.props.profile.acl.can_moderate}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?l["default"].createElement(m["default"],{className:"btn btn-block",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleModeration},l["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")):null}},{key:"getSpecialOptions",value:function(){return this.showSpecialOptions()?l["default"].createElement("li",{className:"dropdown-buttons"},this.getFollowButton(),this.getModerationButton()):null}},{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.getSpecialOptions(),this.showSpecialOptions()?l["default"].createElement("li",{className:"divider"}):null,this.props.pages.map(function(t){return l["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta)))}))}}]),t}(g)},{"../../index":128,"../li":70,"./follow-button":89,react:"react","react-router":"react-router"}],97:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users,profile:e.profile,"username-history":e["username-history"]}}function u(){var e=[];return S["default"].get("PROFILE_PAGES").forEach(function(t){e.push(Object.assign({},t,{path:S["default"].get("PROFILE").absolute_url+t.component+"/",component:(0,d.connect)(i)(U[t.component])}))}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../avatar"),m=a(p),h=e("./ban-details"),g=a(h),v=e("./followers"),b=a(v),y=e("./follows"),_=a(y),w=e("./username-history"),E=a(w),O=e("./Header"),k=a(O),N=e("./moderation/nav"),x=a(N),j=e("./navs"),P=e("../../index"),S=a(P),C=e("../../reducers/profile"),M=e("../../services/polls"),T=a(M),L=e("../../services/store"),R=a(L),I=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){R["default"].dispatch((0,C.dehydrate)(e))},n.toggleNav=function(){"pages"===n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:"pages"})},n.toggleModeration=function(){"moderation"===n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:"moderation"})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n.startPolling(e.profile.api_url.root),n}return s(t,e),l(t,[{key:"startPolling",value:function(e){T["default"].start({poll:"user-profile",url:e,frequency:9e4,update:this.update})}},{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"getNavDropdown",value:function(){return"pages"===this.state.dropdown?f["default"].createElement(j.CompactNav,{pages:S["default"].get("PROFILE_PAGES"),baseUrl:S["default"].get("PROFILE").absolute_url,profile:this.props.profile,toggleModeration:this.toggleModeration,hideNav:this.hideNav}):"moderation"===this.state.dropdown?f["default"].createElement(x["default"],{profile:this.props.profile,toggleNav:this.toggleNav,hideNav:this.hideNav}):null}},{key:"getClassName",value:function(){var e="page page-user-profile";return e}},{key:"render",value:function(){return f["default"].createElement("div",{className:this.getClassName()},f["default"].createElement(k["default"],{user:this.props.user,profile:this.props.profile,toggleNav:this.toggleNav,toggleModeration:this.toggleModeration}),f["default"].createElement("div",{className:this.getCompactNavClassName()},this.getNavDropdown()),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement("div",{className:"profile-side-avatar"},f["default"].createElement(m["default"],{user:this.props.profile,size:"400"})),f["default"].createElement(j.SideNav,{pages:S["default"].get("PROFILE_PAGES"),baseUrl:S["default"].get("PROFILE").absolute_url,profile:this.props.profile})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(f["default"].Component);n["default"]=I;var A=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"container"},f["default"].createElement("p",null,"Hello, I'm placeholder for "+this.props.route.name))}}]),t}(f["default"].Component),U={posts:A,threads:A,followers:b["default"],follows:_["default"],"username-history":E["default"],"ban-details":g["default"]}},{"../../index":128,"../../reducers/profile":130,"../../services/polls":143,"../../services/store":145,"../avatar":54,"./Header":87,"./ban-details":88,"./followers":90,"./follows":91,"./moderation/nav":95,"./navs":96,"./username-history":98,react:"react","react-redux":"react-redux"}],98:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../search"),p=a(d),m=e("../username-history"),h=a(m),g=e("../../index"),v=a(g),b=e("../../reducers/username-history"),y=e("../../services/ajax"),_=a(y),w=e("../../services/snackbar"),E=a(w),O=e("../../services/store"),k=a(O),N=e("../../services/page-title"),x=a(N),j=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.loadMore=function(){n.setState({isBusy:!0}),n.loadChanges(n.state.page+1,n.state.search)},n.search=function(e){n.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),n.loadChanges(1,e.target.value)},v["default"].has("PROFILE_NAME_HISTORY")?n.initWithPreloadedData(v["default"].pop("PROFILE_NAME_HISTORY")):n.initWithoutPreloadedData(),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},k["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadChanges()}},{key:"loadChanges",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?1:arguments[0],n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];_["default"].get(v["default"].get("USERNAME_CHANGES_API"),{user:this.props.profile.id,search:n,page:t||1},"search-username-history").then(function(n){1===t?k["default"].dispatch((0,b.dehydrate)(n.results)):k["default"].dispatch((0,b.append)(n.results)),e.setState({isLoaded:!0,isBusy:!1,count:n.count,more:n.more,page:n.page,pages:n.pages})},function(e){E["default"].apiError(e)})}},{key:"componentDidMount",value:function(){x["default"].set({title:gettext("Username history"),parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(changes)s username change.","Found %(changes)s username changes.",this.state.count);return interpolate(e,{changes:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("Your username was changed %(changes)s time.","Your username was changed %(changes)s times.",this.state.count);return interpolate(e,{changes:this.state.count},!0)}var e=ngettext("%(username)s's username was changed %(changes)s time.","%(username)s's username was changed %(changes)s times.",this.state.count);return interpolate(e,{username:this.props.profile.username,changes:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no username changes matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("No name changes have been recorded for your account."):interpolate(gettext("%(username)s's username was never changed."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?l["default"].createElement("div",{className:"pager-more"},l["default"].createElement(f["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show older (%(more)s)"),{more:this.state.more},!0))):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"profile-username-history"},l["default"].createElement("nav",{className:"toolbar"},l["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),l["default"].createElement(p["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),l["default"].createElement(h["default"],{isLoaded:this.state.isLoaded,emptyMessage:this.getEmptyMessage(),changes:this.props["username-history"]}),this.getMoreButton())}}]),t}(l["default"].Component);n["default"]=j},{"../../index":128,"../../reducers/username-history":133,"../../services/ajax":135,"../../services/page-title":142,"../../services/snackbar":144,"../../services/store":145,"../button":56,"../search":104,"../username-history":112,react:"react"}],99:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),m=e("../services/captcha"),h=a(m),g=e("../services/modal"),v=a(g),b=e("../services/snackbar"),y=a(b),_=e("../services/zxcvbn"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?y["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?v["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),v["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":137,"../services/modal":141,"../services/snackbar":144,"../services/zxcvbn":146,"./loader":71,"./register.js":100,react:"react"}],100:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),f=e("./button"),d=r(f),p=e("./form"),m=r(p),h=e("./form-group"),g=r(h),v=e("./password-strength"),b=r(v),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),O=e("../services/auth"),k=r(O),N=e("../services/captcha"),x=r(N),j=e("../services/modal"),P=r(j),S=e("../services/snackbar"),C=r(S),M=e("../utils/banned-page"),T=r(M),L=e("../utils/validators"),R=a(L),I=n.RegisterForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[R.usernameContent(),R.usernameMinLength(_["default"].get("SETTINGS")),R.usernameMaxLength(_["default"].get("SETTINGS"))],email:[R.email()],password:[R.passwordMinLength(_["default"].get("SETTINGS"))],captcha:x["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(C["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return E["default"].post(_["default"].get("USERS_API"),{username:this.state.username,email:this.state.email,password:this.state.password,captcha:this.state.captcha})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),C["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),P["default"].hide()):C["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal",
-"aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(g["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(g["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(g["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(b["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control","aria-describedby":"id_password_status",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password})),x["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(m["default"]),A=n.RegisterComplete=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Registration complete"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),k["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(A,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(I,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=U},{"../index":128,"../services/ajax":135,"../services/auth":136,"../services/captcha":137,"../services/modal":141,"../services/snackbar":144,"../utils/banned-page":147,"../utils/validators":155,"./button":56,"./form":69,"./form-group":68,"./password-strength":86,react:"react"}],101:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),f=e("../index"),d=r(f),p=e("./button"),m=r(p),h=e("./form"),g=r(h),v=e("../services/ajax"),b=r(v),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),O=e("../utils/banned-page"),k=r(O),N=n.RequestLinkForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[E.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return b["default"].post(d["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,k["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(g["default"]),x=n.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),j=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(x,{user:this.state.complete,callback:this.reset}):c["default"].createElement(N,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=j},{"../index":128,"../services/ajax":135,"../services/snackbar":144,"../utils/banned-page":147,"../utils/validators":155,"./button":56,"./form":69,react:"react"}],102:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AccountInactivePage=n.LinkSent=n.RequestResetForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),g=r(h),v=e("./form"),b=r(v),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),O=e("../utils/validators"),k=a(O),N=e("../utils/banned-page"),x=r(N),j=n.RequestResetForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[k.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,x["default"])(e.ban):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(g["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),P=n.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),S=n.AccountInactivePage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),C=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"showInactivePage",value:function(e){d["default"].render(c["default"].createElement(S,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(P,{user:this.state.complete,callback:this.reset}):c["default"].createElement(j,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=C},{"../index":128,"../services/ajax":135,"../services/snackbar":144,"../utils/banned-page":147,"../utils/validators":155,"./button":56,"./form":69,react:"react","react-dom":"react-dom"}],103:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.PasswordChangedPage=n.ResetPasswordForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),g=r(h),v=e("./form"),b=r(v),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),O=e("../services/auth"),k=r(O),N=e("../services/modal"),x=r(N),j=e("../services/snackbar"),P=r(j),S=e("../utils/validators"),C=a(S),M=e("../utils/banned-page"),T=r(M),L=n.ResetPasswordForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,password:"",validators:{password:[C.passwordMinLength(m["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(m["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(g["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),R=n.PasswordChangedPage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){x["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),I=function(e){function t(){var e,n,a,r;o(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.complete=function(e){k["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),d["default"].render(c["default"].createElement(R,{user:e}),document.getElementById("page-mount"))},r=n,s(a,r)}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=I},{"../index":128,"../services/ajax":135,"../services/auth":136,"../services/modal":141,"../services/snackbar":144,"../utils/banned-page":147,"../utils/validators":155,"./button":56,"./form":69,"./sign-in.js":106,react:"react","react-dom":"react-dom"}],104:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className?"form-search "+this.props.className:"form-search"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("input",{type:"text",className:"form-control",value:this.props.value,onChange:this.props.onChange,placeholder:this.props.placeholder||gettext("Search...")}),l["default"].createElement("span",{className:"material-icon"},"search"))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],105:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},s=n,o(a,s)}return s(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(n){n.value===e.props.value&&(t=n)}),t}},{key:"getIcon",value:function(){return this.getChoice().icon}},{key:"getLabel",value:function(){return this.getChoice().label}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"btn-group btn-select-group"},l["default"].createElement("button",{type:"button",className:"btn btn-select dropdown-toggle",id:this.props.id||null,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),l["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,n){return l["default"].createElement("li",{key:n},l["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},l["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],106:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../index"),f=a(c),d=e("./button"),p=a(d),m=e("./form"),h=a(m),g=e("../services/ajax"),v=a(g),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),O=a(E),k=function(e){function t(e){r(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 s(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return v["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(v["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,O["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,O["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:f["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},gettext("Activate account")):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("password"),value:this.state.password})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=k},{"../index":128,"../services/ajax":135,"../services/modal":141,"../services/snackbar":144,"../utils/banned-page":147,"./button":56,"./form":69,react:"react"}],107:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.snackbar}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=i;var l=e("react"),c=a(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getSnackbarClass",value:function(){var e="alerts-snackbar";return e+=this.props.isVisible?" in":" out"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getSnackbarClass()},c["default"].createElement("p",{className:"alert "+f[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],108:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),m=e("../sign-in.js"),h=a(m),g=e("../../services/mobile-navbar-dropdown"),v=a(g),b=e("../../services/modal"),y=a(b),_=n.GuestMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSignInModal",value:function(){y["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal
-},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showGuestMenu",value:function(){v["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(f["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":140,"../../services/modal":141,"../avatar":54,"../register-button":99,"../sign-in.js":106,react:"react"}],109:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.auth}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=i;var l=e("react"),c=a(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.UserNav,{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.CompactUserNav,{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":108,"./user-nav":110,react:"react"}],110:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=i;var l=e("react"),c=a(l),f=e("react-redux"),d=e("../avatar"),p=a(d),m=e("../change-avatar/root"),h=a(m),g=e("../../index"),v=a(g),b=e("../../services/mobile-navbar-dropdown"),y=a(b),_=e("../../services/modal"),w=a(_),E=n.UserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){w["default"].show((0,f.connect)(m.select)(h["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:v["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-buttons"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(E,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"showUserMenu",value:function(){y["default"].showConnected("user-menu",(0,f.connect)(i)(E))}},{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":128,"../../services/mobile-navbar-dropdown":140,"../../services/modal":141,"../avatar":54,"../change-avatar/root":66,react:"react","react-redux":"react-redux"}],111:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StatusLabel=n.StatusIcon=void 0;var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c;n.StatusIcon=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(l["default"].Component),n.StatusLabel=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hidden"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(l["default"].Component)},{react:"react"}],112:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("./avatar"),d=r(f),p=e("../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"renderUserAvatar",value:function(e){return e.changed_by?c["default"].createElement("a",{href:e.changed_by.absolute_url,className:"user-avatar"},c["default"].createElement(d["default"],{user:e.changed_by,size:"100"})):c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"100"}))}},{key:"renderUsername",value:function(e){return e.changed_by?c["default"].createElement("a",{href:e.changed_by.absolute_url,className:"item-title"},e.changed_by.username):c["default"].createElement("span",{className:"item-title"},e.changed_by_username)}},{key:"renderHistory",value:function(){var e=this;return c["default"].createElement("div",{className:"username-history ui-ready"},c["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(t){return c["default"].createElement("li",{className:"list-group-item",key:t.id},c["default"].createElement("div",{className:"username-change-avatar"},e.renderUserAvatar(t)),c["default"].createElement("div",{className:"username-change-author"},e.renderUsername(t)),c["default"].createElement("div",{className:"username-change"},t.old_username,c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),t.new_username),c["default"].createElement("div",{className:"username-change-date"},c["default"].createElement("abbr",{title:t.changed_on.format("LLL")},t.changed_on.fromNow())))})))}},{key:"getEmptyMessage",value:function(){return this.props.emptyMessage?this.props.emptyMessage:gettext("No name changes have been recorded for your account.")}},{key:"renderEmptyHistory",value:function(){return c["default"].createElement("div",{className:"username-history ui-ready"},c["default"].createElement("ul",{className:"list-group"},c["default"].createElement("li",{className:"list-group-item empty-message"},this.getEmptyMessage())))}},{key:"renderHistoryPreview",value:function(){return c["default"].createElement("div",{className:"username-history ui-preview"},c["default"].createElement("ul",{className:"list-group"},m.range(3,5).map(function(e){return c["default"].createElement("li",{className:"list-group-item",key:e},c["default"].createElement("div",{className:"username-change-avatar"},c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"100"}))),c["default"].createElement("div",{className:"username-change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"username-change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("div",{className:"username-change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](50,100)+"px"}}," ")))})))}},{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?this.renderHistory():this.renderEmptyHistory():this.renderHistoryPreview()}}]),t}(c["default"].Component);n["default"]=h},{"../utils/random":152,"./avatar":54,react:"react"}],113:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./user-card"),f=a(c),d=e("./user-preview"),p=a(d),m=e("../../utils/batch"),h=a(m),g=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?l["default"].createElement(Pager,this.props):null}},{key:"getClassName",value:function(){return this.props.className?"users-cards-list "+this.props.className+" ui-ready":"users-cards-list ui-ready"}},{key:"getColClassName",value:function(){return"col-md-"+12/this.props.cols}},{key:"getBody",value:function(){var e=this;if(this.props.isLoaded)return(0,h["default"])(this.props.users,this.props.cols).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t){return l["default"].createElement("div",{className:e.getColClassName(),key:t.id},l["default"].createElement(f["default"],{user:t,showStatus:e.props.showStatus,showRank:e.props.showRank}))}))});for(var t=[],n=0;n<this.props.cols;n++)t.push(n);return l["default"].createElement("div",{className:"row"},t.map(function(t){return l["default"].createElement("div",{className:e.getColClassName(),key:t},l["default"].createElement(p["default"],{showStatus:e.props.showStatus}))}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"users-cards-list ui-ready"},this.getBody())}}]),t}(l["default"].Component);n["default"]=g},{"../../utils/batch":148,"./user-card":114,"./user-preview":115,react:"react"}],114:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../user-status"),p=a(d),m=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.user.rank.css_class?"user-card user-card-"+this.props.user.rank.css_class+" ui-ready":"user-card ui-ready"}},{key:"getUserStatus",value:function(){return this.props.showStatus?this.props.user.status?l["default"].createElement(p["default"],{user:this.props.user,status:this.props.user.status},l["default"].createElement(d.StatusIcon,{user:this.props.user,status:this.props.user.status}),l["default"].createElement(d.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label"})):l["default"].createElement("span",{className:"user-status"},l["default"].createElement("span",{className:"status-icon ui-preview"}," "),l["default"].createElement("span",{className:"status-label ui-preview"}," ")):null}},{key:"getRankName",value:function(){return this.props.showRank?this.props.user.rank.is_tab?l["default"].createElement("a",{href:this.props.user.rank.absolute_url,className:"item-title rank-name"},this.props.user.rank.name):l["default"].createElement("span",{className:"item-title rank-name"},this.props.user.rank.name):null}},{key:"getUserTitle",value:function(){return this.props.user.title?l["default"].createElement("span",{className:"user-title"},this.props.user.title):null}},{key:"getUserJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.user.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.user.joined_on.fromNow()},!0);return l["default"].createElement("span",{className:"user-joined-on",title:e},t)}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("div",{className:"user-card-bg-image"},l["default"].createElement(f["default"],{user:this.props.user,size:"400",className:"bg-image"}),l["default"].createElement("div",{className:"user-card-bg"},l["default"].createElement("div",{className:"user-details"},l["default"].createElement("div",{className:"user-avatar"},l["default"].createElement("a",{href:this.props.user.absolute_url},l["default"].createElement(f["default"],{user:this.props.user,size:"400"}))),l["default"].createElement("h4",{className:"user-name"},l["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),l["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),this.getRankName(),this.getUserTitle(),this.getUserJoinedOn())),l["default"].createElement("div",{className:"user-card-stats"},l["default"].createElement("ul",{className:"list-unstyled"},l["default"].createElement("li",{className:"user-posts-count"},l["default"].createElement("strong",null,this.props.user.posts),l["default"].createElement("small",null,gettext("posts"))),l["default"].createElement("li",{className:"user-threads-count"},l["default"].createElement("strong",null,this.props.user.threads),l["default"].createElement("small",null,gettext("threads"))),l["default"].createElement("li",{className:"user-followers-count"},l["default"].createElement("strong",null,this.props.user.followers),l["default"].createElement("small",null,gettext("followers"))))))))}}]),t}(l["default"].Component);n["default"]=m},{"../avatar":54,"../user-status":111,react:"react"}],115:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../avatar"),d=r(f),p=e("../../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getUserStatus",value:function(){return this.props.showStatus?c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview"}," ")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"user-card ui-preview"},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"400"})),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," "))),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),c["default"].createElement("span",{className:"user-joined-on"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("posts"))),c["default"].createElement("li",{className:"user-threads-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("threads"))),c["default"].createElement("li",{className:"user-followers-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("followers"))))))))}}]),t}(c["default"].Component);n["default"]=h},{"../../utils/random":152,"../avatar":54,react:"react"}],116:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return l["default"].createElement("div",{className:"active-posters-list"},l["default"].createElement("div",{className:"container"},l["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],117:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-router"),f=e("../../avatar"),d=a(f),p=e("../../user-status"),m=a(p),h=e("../../../index"),g=a(h),v=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?l["default"].createElement(m["default"],{user:this.props.user,status:this.props.user.status},l["default"].createElement(p.StatusIcon,{user:this.props.user,status:this.props.user.status}),l["default"].createElement(p.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):l["default"].createElement("span",{className:"user-status"},l["default"].createElement("span",{className:"status-icon ui-preview"}," "),l["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=g["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return l["default"].createElement(c.Link,{to:e,className:"item-title rank-name"},this.props.rank.name)}return l["default"].createElement("span",{className:"item-title rank-name"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?l["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},l["default"].createElement("div",{className:"rank-user-avatar"},l["default"].createElement("a",{href:this.props.user.absolute_url},l["default"].createElement(d["default"],{user:this.props.user,size:"50"}))),l["default"].createElement("div",{className:"rank-user"},l["default"].createElement("div",{className:"user-name"},l["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),this.getUserStatus(),this.getRankName(),this.getUserTitle()),l["default"].createElement("div",{className:"rank-position"},l["default"].createElement("strong",null,"#",this.props.counter),l["default"].createElement("small",null,gettext("Rank"))),l["default"].createElement("div",{className:"rank-posts-counted"},l["default"].createElement("strong",null,this.props.user.meta.score),l["default"].createElement("small",null,gettext("Ranked posts"))),l["default"].createElement("div",{className:"rank-posts-total"},l["default"].createElement("strong",null,this.props.user.posts),l["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(l["default"].Component);n["default"]=v},{"../../../index":128,"../../avatar":54,"../../user-status":111,react:"react","react-router":"react-router"}],118:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function");
-}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../avatar"),d=r(f),p=e("../../../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview-paragraph"},m.range(3,4).map(function(e){return c["default"].createElement("span",{key:e,className:"ui-preview-text",style:{width:m["int"](50,120)+"px"}}," ")})),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},m.range(5,10).map(function(e,t){return c["default"].createElement("li",{key:e,className:"list-group-item"},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(d["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,80)+"px"}}," "))),c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))})))))}}]),t}(c["default"].Component);n["default"]=h},{"../../../utils/random":152,"../../avatar":54,react:"react"}],119:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./list-item"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return l["default"].createElement("div",{className:"active-posters-list"},l["default"].createElement("div",{className:"container"},l["default"].createElement("p",{className:"lead"},this.getLeadMessage()),l["default"].createElement("div",{className:"active-posters ui-ready"},l["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return l["default"].createElement(f["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(l["default"].Component);n["default"]=d},{"./list-item":117,react:"react"}],120:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./list-empty"),f=a(c),d=e("./list-loading"),p=a(d),m=e("./list"),h=a(m),g=e("../../../index"),v=a(g),b=e("../../../reducers/users"),y=e("../../../services/polls"),_=a(y),w=e("../../../services/store"),E=a(w),O=e("../../../services/page-title"),k=a(O),N=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){E["default"].dispatch((0,b.dehydrate)(e.results)),n.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},v["default"].has("USERS")?n.initWithPreloadedData(v["default"].pop("USERS")):n.initWithoutPreloadedData(),n.startPolling(),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},E["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:v["default"].get("USERS_API"),data:{list:"active"},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){k["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){_["default"].stop("active-posters")}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?l["default"].createElement(h["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):l["default"].createElement(f["default"],{trackedPeriod:this.state.trackedPeriod}):l["default"].createElement(p["default"],null)}}]),t}(l["default"].Component);n["default"]=N},{"../../../index":128,"../../../reducers/users":134,"../../../services/page-title":142,"../../../services/polls":143,"../../../services/store":145,"./list":119,"./list-empty":116,"./list-loading":118,react:"react"}],121:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.TabsNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index"),m=(a(p),function(e,t){var n=e;return n+="rank"===t.component?t.slug:t.component,n+"/"}),h=function(e,t,n){return t.map(function(t){var a=m(e,t);return l["default"].createElement(d["default"],{path:a,key:a},l["default"].createElement(c.Link,{to:a,onClick:n},t.name))})};n.TabsNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"nav nav-pills"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},h(this.props.baseUrl,this.props.lists,this.props.hideNav))}}]),t}(l["default"].Component)},{"../../index":128,"../li":70,react:"react","react-router":"react-router"}],122:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../users-list/root"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(f["default"],{isLoaded:!1,cols:3,showStatus:!0}))}}]),t}(l["default"].Component);n["default"]=d},{"../../users-list/root":113,react:"react"}],123:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./pager"),f=a(c),d=e("../../users-list/root"),p=a(d),m=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?l["default"].createElement(f["default"],this.props):null}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(p["default"],{users:this.props.users,showStatus:!0,cols:3,isLoaded:!0}),this.getPager())}}]),t}(l["default"].Component);n["default"]=m},{"../../users-list/root":113,"./pager":124,react:"react"}],124:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-router"),f=e("../../../utils/reset-scroll"),d=a(f),p=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPreviousPage",value:function(){if(this.props.previous||this.props.first){var e=this.props.baseUrl;return this.props.previous&&(e+=this.props.previous+"/"),l["default"].createElement("li",{className:"previous"},l["default"].createElement(c.Link,{to:e,onClick:d["default"]},l["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_back")))}return null}},{key:"getNextPage",value:function(){if(this.props.next){var e=this.props.baseUrl+this.props.next+"/";return l["default"].createElement("li",{className:"next"},l["default"].createElement(c.Link,{to:e,onClick:d["default"]},l["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_forward")))}return null}},{key:"getProgessBar",value:function(){var e=this;return l["default"].createElement("ul",{className:"pager-progress-bar"},this.props.page_range.map(function(t){var n=t===e.props.page?"active":null,a=e.props.baseUrl;return t>1&&(a+=t+"/"),l["default"].createElement("li",{key:t,className:n},l["default"].createElement(c.Link,{to:a,onClick:d["default"]},t))}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"pager-undercontent"},l["default"].createElement("nav",null,l["default"].createElement("ul",{className:"pager"},this.getPreviousPage(),this.getNextPage()),this.getProgessBar()))}}]),t}(l["default"].Component);n["default"]=p},{"../../../utils/reset-scroll":153,react:"react","react-router":"react-router"}],125:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("./list"),d=a(f),p=e("./list-loading"),m=a(p),h=e("../../../index"),g=a(h),v=e("../../../reducers/users"),b=e("../../../services/polls"),y=a(b),_=e("../../../services/store"),w=a(_),E=e("../../../services/page-title"),O=a(E),k=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){w["default"].dispatch((0,v.dehydrate)(e.results)),e.isLoaded=!0,n.setState(e)},g["default"].has("USERS")?n.initWithPreloadedData(g["default"].pop("USERS")):n.initWithoutPreloadedData(),n.startPolling(e.params.page||1),n}return s(t,e),u(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),w["default"].dispatch((0,v.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){y["default"].start({poll:"rank-users",url:g["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){O["default"].set({title:this.props.route.rank.name,page:this.props.params.page||null,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){y["default"].stop("rank-users")}},{key:"componentWillReceiveProps",value:function(e){this.props.params.page!==e.params.page&&(O["default"].set({title:this.props.route.rank.name,page:e.params.page||null,parent:gettext("Users")}),this.setState({isLoaded:!1}),y["default"].stop("rank-users"),this.startPolling(e.params.page))}},{key:"getClassName",value:function(){return this.props.route.rank.css_class?"rank-users-list rank-users-"+this.props.route.rank.css_class:"rank-users-list"}},{key:"getRankDescription",value:function(){return this.props.route.rank.description?c["default"].createElement("div",{className:"rank-description"},c["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.route.rank.description.html}})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=g["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(d["default"],i({baseUrl:e,users:this.props.users},this.state))}return c["default"].createElement("p",{className:"lead"},gettext("There are no users with this rank at the moment."))}return c["default"].createElement(m["default"],null)}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},this.getRankDescription(),this.getComponent()))}}]),t}(c["default"].Component);n["default"]=k},{"../../../index":128,"../../../reducers/users":134,"../../../services/page-title":142,"../../../services/polls":143,"../../../services/store":145,"./list":123,"./list-loading":122,react:"react"}],126:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function u(){var e=[];return y["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?(e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/:page/",component:(0,d.connect)(i)(v["default"]),rank:t}),e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,d.connect)(i)(v["default"]),rank:t})):"active-posters"===t.component&&e.push({path:y["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,d.connect)(i)(h["default"]),extra:{name:t.name}})}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("./navs"),m=e("./active-posters/root"),h=a(m),g=e("./rank/root"),v=a(g),b=e("../../index"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n}return s(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-users-lists"},f["default"].createElement("div",{className:"page-header tabbed"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Users")),f["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},f["default"].createElement("i",{className:"material-icon"},"menu"))),f["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},f["default"].createElement("div",{className:"container"},f["default"].createElement(p.TabsNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(p.CompactNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL"),hideNav:this.hideNav})),this.props.children)}}]),t}(f["default"].Component);n["default"]=_},{"../../index":128,"./active-posters/root":120,"./navs":121,"./rank/root":125,react:"react","react-redux":"react-redux"}],127:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.toggle=function(){a.props.onChange({target:{value:!a.props.value}})},s=n,o(a,s)}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],128:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var s=e("./utils/ordered-list"),i=a(s),u=n.Misago=function(){function e(){r(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 i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":151}],129:[function(e,t,n){"use strict";function a(e){return{type:l,patch:e}}function r(e){return{type:c,user:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:f,soft:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?u:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case l:var n=Object.assign({},e);return n.user=Object.assign({},e.user,t.patch),n;case c:return Object.assign({},e,{signedIn:t.user});case f:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case i.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var a=Object.assign({},e);return a.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),a}return e;case i.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.PATCH_USER=n.initialState=void 0,n.patchUser=a,n.signIn=r,n.signOut=o,n["default"]=s;var i=e("./users"),u=n.initialState={signedIn:!1,signedOut:!1},l=n.PATCH_USER="PATCH_USER",c=n.SIGN_IN="SIGN_IN",f=n.SIGN_OUT="SIGN_OUT"},{"./users":134}],130:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:c,profile:e}}function o(e){return{type:f,patch:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case c:return Object.assign({},t.profile,{joined_on:(0,u["default"])(t.profile.joined_on),status:(0,l.dehydrateStatus)(t.profile.status)});case f:return Object.assign({},e,t.patch);case l.UPDATE_AVATAR:return e.id===t.userId?Object.assign({},e,{avatar_hash:t.avatarHash}):e;case l.UPDATE_USERNAME:return e.id===t.userId?Object.assign({},e,{username:t.username,slug:t.slug}):e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.PATCH_PROFILE=n.DEHYDRATE_PROFILE=void 0,n.dehydrate=r,n.patchProfile=o,n["default"]=s;var i=e("moment"),u=a(i),l=e("./users"),c=n.DEHYDRATE_PROFILE="DEHYDRATE_PROFILE",f=n.PATCH_PROFILE="PATCH_PROFILE"},{"./users":134,moment:"moment"}],131:[function(e,t,n){"use strict";function a(e,t){return{type:i,message:e,messageType:t}}function r(){return{type:u}}function o(){var e=arguments.length<=0||void 0===arguments[0]?s:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===i?{type:t.messageType,message:t.message,isVisible:!0}:t.type===u?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=a,n.hideSnackbar=r,n["default"]=o;var s=n.initialState={type:"info",message:"",isVisible:!1},i=n.SHOW_SNACKBAR="SHOW_SNACKBAR",u=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],132:[function(e,t,n){"use strict";function a(){return{type:s}}function r(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===s?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=a,n["default"]=r;var o=n.initialState={tick:0},s=n.TICK="TICK"},{}],133:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return{type:f,change:e,user:t,changedBy:n}}function o(e){return{type:d,items:e}}function s(e){return{type:p,items:e}}function i(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case f:var n=e.slice();return n.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,c["default"])(),new_username:t.change.username,old_username:t.user.username}),n;case d:return e.concat(t.items.map(function(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})}));case p:return t.items.map(function(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})});case u.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatar_hash:t.avatarHash})),e});case u.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.DEHYDRATE_HISTORY=n.APPEND_HISTORY=n.ADD_NAME_CHANGE=void 0,n.addNameChange=r,n.append=o,n.dehydrate=s,n["default"]=i;var u=e("./users"),l=e("moment"),c=a(l),f=n.ADD_NAME_CHANGE="ADD_NAME_CHANGE",d=n.APPEND_HISTORY="APPEND_HISTORY",p=n.DEHYDRATE_HISTORY="DEHYDRATE_HISTORY"},{"./users":134,moment:"moment"}],134:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:d,items:e}}function o(e){return{type:p,items:e}}function s(e){return e?Object.assign({},e,{last_click:e.last_click?(0,f["default"])(e.last_click):null,banned_until:e.banned_until?(0,
-f["default"])(e.banned_until):null}):null}function i(e,t){return{type:m,userId:e.id,avatarHash:t}}function u(e,t,n){return{type:h,userId:e.id,username:t,slug:n}}function l(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case d:return e.concat(t.items.map(function(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:s(e.status)})}));case p:return t.items.map(function(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:s(e.status)})});case m:return e.map(function(e){return e=Object.assign({},e),e.id===t.userId&&(e.avatar_hash=t.avatarHash),e});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.UPDATE_USERNAME=n.UPDATE_AVATAR=n.DEHYDRATE_USERS=n.APPEND_USERS=void 0,n.append=r,n.dehydrate=o,n.dehydrateStatus=s,n.updateAvatar=i,n.updateUsername=u,n["default"]=l;var c=e("moment"),f=a(c),d=n.APPEND_USERS="APPEND_USERS",p=n.DEHYDRATE_USERS="DEHYDRATE_USERS",m=n.UPDATE_AVATAR="UPDATE_AVATAR",h=n.UPDATE_USERNAME="UPDATE_USERNAME"},{moment:"moment"}],135:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null,this._locks={}}return o(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n?JSON.stringify(n):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}},{key:"get",value:function(e,t,n){var a=this;if(t&&(e+="?"+$.param(t)),!n)return this.request("GET",e);var o=function(){var t=a;return a._locks[n]&&(a._locks[n].url=e),a._locks[n]&&a._locks[n].waiter?{v:{then:function(){}}}:a._locks[n]&&a._locks[n].wait?(a._locks[n].waiter=!0,{v:new Promise(function(a,r){var o=function s(e){t._locks[n].wait?window.setTimeout(function(){s(e)},300):t._locks[n].url!==e?s(t._locks[n].url):(t._locks[n].waiter=!1,t.request("GET",t._locks[n].url).then(function(r){t._locks[n].url===e?a(r):(t._locks[n].waiter=!0,s(t._locks[n].url))},function(a){t._locks[n].url===e?r(a):(t._locks[n].waiter=!0,s(t._locks[n].url))}))};window.setTimeout(function(){o(e)},300)})}):(a._locks[n]={url:e,wait:!0,waiter:!1},{v:new Promise(function(a,r){t.request("GET",e).then(function(r){t._locks[n].wait=!1,t._locks[n].url===e&&a(r)},function(a){t._locks[n].wait=!1,t._locks[n].url===e&&r(a)})})})}();return"object"===("undefined"==typeof o?"undefined":r(o))?o.v:void 0}},{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)}},{key:"upload",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:e,method:"POST",headers:{"X-CSRFToken":a._csrfToken},data:t,contentType:!1,processData:!1,xhr:function i(){var i=new window.XMLHttpRequest;return i.upload.addEventListener("progress",function(e){e.lengthComputable&&n(Math.round(e.loaded/e.total*100))},!1),i},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}}]),e}();n["default"]=new s},{}],136:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var o=e("../reducers/auth"),s=n.Auth=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t,n){this._store=e,this._local=t,this._modal=n,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,o.signIn)({username:t.username})):e._store.dispatch((0,o.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,o.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,o.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,o.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();n["default"]=new s},{"../reducers/auth":129}],137:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var u=e("react"),l=a(u),c=e("../components/form-group"),f=a(c),d=n.BaseCaptcha=function(){function e(){s(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(d),m=n.QACaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(d),h=n.ReCaptchaComponent=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),g=n.ReCaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(d),v=n.Captcha=function(){function e(){s(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new g}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new v},{"../components/form-group":68,react:"react"}],138:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new o},{}],139:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=window.localStorage,s=n.LocalStorage=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){o.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=o.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new s},{}],140:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var s=e("../utils/mount-component"),i=a(s),u=n.MobileNavbarDropdown=function(){function e(){r(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,i["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,i["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new u},{"../utils/mount-component":150}],141:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var s=e("react-dom"),i=a(s),u=e("../utils/mount-component"),l=a(u),c=n.Modal=function(){function e(){r(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(){i["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":150,"react-dom":"react-dom"}],142:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.PageTitle=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._forumName=e}},{key:"set",value:function(e){"string"==typeof e&&(e={title:e});var t=e.title;if(e.page){var n=interpolate(gettext("page: %(page)s"),{page:e.page},!0);t+=" ("+n+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();n["default"]=new o},{}],143:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Polls=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t){this._ajax=e,this._snackbar=t,this._polls={}}},{key:"start",value:function(e){var t=this,n=function a(){t._polls[e.poll]=e,t._ajax.get(e.url,e.data||null).then(function(n){t._polls[e.poll]._stopped||(e.update(n),t._polls[e.poll].timeout=window.setTimeout(a,e.frequency))},function(n){t._polls[e.poll]._stopped||(e.error?e.error(n):t._snackbar.apiError(n))})};n()}},{key:"stop",value:function(e){this._polls[e]&&(window.clearTimeout(this._polls[e].timeout),this._polls[e]._stopped=!0)}}]),e}();n["default"]=new o},{}],144:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var o=e("../reducers/snackbar"),s=300,i=5e3,u=n.Snackbar=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},s)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,o.hideSnackbar)()),n._timeout=null},i))}},{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=e.detail;t||(t=404===e.status?gettext("Action link is invalid."):gettext("Unknown error has occured.")),403===e.status&&"Permission denied"===t&&(t=gettext("You don't have permission to perform this action.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":131}],145:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var o=e("redux"),s=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,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 s},{redux:"redux"}],146:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Zxcvbn=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new o},{}],147:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(i["default"].createElement(c.Provider,{store:g["default"].getStore()},i["default"].createElement(b,{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 r=e("moment"),o=a(r),s=e("react"),i=a(s),u=e("react-dom"),l=a(u),c=e("react-redux"),f=e("../components/banned-page"),d=a(f),p=e("../index"),m=a(p),h=e("../services/store"),g=a(h),v=function(e){return e.tick},b=(0,c.connect)(v)(d["default"])},{"../components/banned-page":55,"../index":128,"../services/store":145,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],148:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],a=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(a.push(r),r=[])}),n!==!1&&r.length>0&&r.length<t)for(var o=r.length;t>o;o++)r.push(n);return r.length&&a.push(r),a}},{}],149:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){return e>1e9?Math.round(100*e/1e9)/100+" GB":e>1e6?Math.round(100*e/1e6)/100+" MB":e>1e3?Math.round(100*e/1e3)/100+" KB":Math.round(100*e)/100+" B"}},{}],150:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t),r=e.props?e:o["default"].createElement(e,null);a&&(n?i["default"].render(o["default"].createElement(u.Provider,{store:c["default"].getStore()},r),a):i["default"].render(r,a))};var r=e("react"),o=a(r),s=e("react-dom"),i=a(s),u=e("react-redux"),l=e("../services/store"),c=a(l)},{"../services/store":145,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],151:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var o=200;o>0&&n.length!==r.length;)o-=1,e.forEach(t);return a}}]),e}();n["default"]=o},{}],152:[function(e,t,n){"use strict";function a(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var n=new Array(a(e,t)),r=0;r<n.length;r++)n[r]=r;return n}Object.defineProperty(n,"__esModule",{value:!0}),n["int"]=a,n.range=r},{}],153:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(){window.scrollTo(0,0)}},{}],154:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){var t={component:e.component,childRoutes:[{path:e.root,onEnter:function(t,n){n(null,e.paths[0].path)}}].concat(e.paths.map(function(e){return e}))};i["default"].render(o["default"].createElement(u.Provider,{store:p["default"].getStore()},o["default"].createElement(l.Router,{routes:t,history:h})),m)};var r=e("react"),o=a(r),s=e("react-dom"),i=a(s),u=e("react-redux"),l=e("react-router"),c=e("history/lib/createBrowserHistory"),f=a(c),d=e("../services/store"),p=a(d),m=document.getElementById("page-mount"),h=new f["default"]},{"../services/store":145,"history/lib/createBrowserHistory":43,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],155:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function s(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function i(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function u(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=a,n.email=r,n.minLength=o,n.maxLength=s,n.usernameMinLength=i,n.usernameMaxLength=u,n.usernameContent=l,n.passwordMinLength=c;var f=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,d=new RegExp("^[0-9a-z]+$","i")},{}]},{},[2,3,4,5,17,18,19,20,21,22,23,31,32,33,34,6,7,8,9,10,11,12,13,14,15,16,24,25,26,27,28,29,30]);
+!function e(t,n,a){function r(s,i){if(!n[s]){if(!t[s]){var u="function"==typeof require&&require;if(!i&&u)return u(s,!0);if(o)return o(s,!0);var l=new Error("Cannot find module '"+s+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[s]={exports:{}};t[s][0].call(c.exports,function(e){var n=t[s][1][e];return r(n?n:e)},c,c.exports,e,t,n,a)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s<a.length;s++)r(a[s]);return r}({1:[function(e,t,n){function a(){c=!1,i.length?l=i.concat(l):f=-1,l.length&&r()}function r(){if(!c){var e=setTimeout(a);c=!0;for(var t=l.length;t;){for(i=l,l=[];++f<t;)i&&i[f].run();f=-1,t=l.length}i=null,c=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function s(){}var i,u=t.exports={},l=[],c=!1,f=-1;u.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new o(e,t)),1!==l.length||c||setTimeout(r,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=s,u.addListener=s,u.once=s,u.off=s,u.removeListener=s,u.removeAllListeners=s,u.emit=s,u.binding=function(e){throw new Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(e){throw new Error("process.chdir is not supported")},u.umask=function(){return 0}},{}],2:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var s=e("../../../../documents/misago/frontend/src/utils/ordered-list"),i=a(s),u=n.Misago=function(){function e(){r(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 i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../../../documents/misago/frontend/src/utils/ordered-list":150}],3:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(s["default"].get("CSRF_COOKIE_NAME"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/ajax"),u=a(i);s["default"].addInitializer({name:"ajax",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/ajax":134}],4:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(d["default"],m["default"],c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/auth"),u=a(i),l=e("../../../../../documents/misago/frontend/src/services/modal"),c=a(l),f=e("../../../../../documents/misago/frontend/src/services/store"),d=a(f),p=e("../../../../../documents/misago/frontend/src/services/local-storage"),m=a(p);s["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/auth":135,"../../../../../documents/misago/frontend/src/services/local-storage":138,"../../../../../documents/misago/frontend/src/services/modal":140,"../../../../../documents/misago/frontend/src/services/store":144}],5:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].init(e,u["default"],d["default"],m["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/ajax"),u=a(i),l=e("../../../../../documents/misago/frontend/src/services/captcha"),c=a(l),f=e("../../../../../documents/misago/frontend/src/services/include"),d=a(f),p=e("../../../../../documents/misago/frontend/src/services/snackbar"),m=a(p);s["default"].addInitializer({name:"captcha",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/ajax":134,"../../../../../documents/misago/frontend/src/services/captcha":136,"../../../../../documents/misago/frontend/src/services/include":137,"../../../../../documents/misago/frontend/src/services/snackbar":143}],6:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,f["default"])((0,o.connect)(u.select)(l["default"]),"auth-message-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../../documents/misago/frontend/src/index"),i=a(s),u=e("../../../../../../documents/misago/frontend/src/components/auth-message"),l=a(u),c=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),f=a(c);i["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/auth-message":53,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149,"react-redux":"react-redux"}],7:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("BAN_MESSAGE")&&(0,u["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/utils/banned-page"),u=a(i);s["default"].addInitializer({name:"component:baned-page",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/banned-page":146}],8:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("categories-mount")&&(0,f["default"])((0,o.connect)(s.select)(i["default"]),"categories-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../../documents/misago/frontend/src/components/categories/root"),i=a(s),u=e("../../../../../../documents/misago/frontend/src/index"),l=a(u),c=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),f=a(c);l["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/categories/root":60,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149,"react-redux":"react-redux"}],9:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USER_OPTIONS")&&(0,c["default"])({root:u["default"].get("USERCP_URL"),component:s["default"],paths:(0,o.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/components/options/root"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/index"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/utils/routed-component"),c=a(l);u["default"].addInitializer({name:"component:options",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/options/root":79,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/routed-component":153}],10:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("PROFILE")&&e.has("PROFILE_PAGES")&&(0,f["default"])({root:l["default"].get("PROFILE").absolute_url,component:(0,o.connect)(s.select)(i["default"]),paths:(0,s.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../../documents/misago/frontend/src/components/profile/root"),i=a(s),u=e("../../../../../../documents/misago/frontend/src/index"),l=a(u),c=e("../../../../../../documents/misago/frontend/src/utils/routed-component"),f=a(c);l["default"].addInitializer({name:"component:profile",initializer:r,after:"reducer:profile-dehydrate"})},{"../../../../../../documents/misago/frontend/src/components/profile/root":96,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/routed-component":153,"react-redux":"react-redux"}],11:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-activation-link-mount")&&(0,c["default"])(u["default"],"request-activation-link-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/components/request-activation-link"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:request-activation-link",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/request-activation-link":100,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149}],12:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("request-password-reset-mount")&&(0,c["default"])(u["default"],"request-password-reset-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/components/request-password-reset"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:request-password-reset",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/request-password-reset":101,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149}],13:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){document.getElementById("reset-password-form-mount")&&(0,c["default"])(u["default"],"reset-password-form-mount",!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/components/reset-password-form"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),c=a(l);s["default"].addInitializer({name:"component:reset-password-form",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/reset-password-form":102,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149}],14:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(u.select)(u.Snackbar),"snackbar-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../../documents/misago/frontend/src/index"),i=a(s),u=e("../../../../../../documents/misago/frontend/src/components/snackbar"),l=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),c=a(l);i["default"].addInitializer({name:"component:snackbar",initializer:r,after:"snackbar"})},{"../../../../../../documents/misago/frontend/src/components/snackbar":106,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149,"react-redux":"react-redux"}],15:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,c["default"])((0,o.connect)(u.select)(u.UserMenu),"user-menu-mount"),(0,c["default"])((0,o.connect)(u.select)(u.CompactUserMenu),"user-menu-compact-mount")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("react-redux"),s=e("../../../../../../documents/misago/frontend/src/index"),i=a(s),u=e("../../../../../../documents/misago/frontend/src/components/user-menu/root"),l=e("../../../../../../documents/misago/frontend/src/utils/mount-component"),c=a(l);i["default"].addInitializer({name:"component:user-menu",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/user-menu/root":108,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/mount-component":149,"react-redux":"react-redux"}],16:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.has("USERS_LISTS")&&(0,c["default"])({root:u["default"].get("USERS_LIST_URL"),component:s["default"],paths:(0,o.paths)()})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/components/users/root"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/index"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/utils/routed-component"),c=a(l);u["default"].addInitializer({name:"component:users",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/components/users/root":125,"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/utils/routed-component":153}],17:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){u["default"].init(e.get("STATIC_URL"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/include"),u=a(i);s["default"].addInitializer({name:"include",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/include":137}],18:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init("misago_")}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/local-storage"),u=a(i);s["default"].addInitializer({name:"local-storage",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/local-storage":138}],19:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("mobile-navbar-dropdown-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown"),u=a(i);s["default"].addInitializer({name:"dropdown",initializer:r,before:"store"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown":139}],20:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=document.getElementById("modal-mount");e&&u["default"].init(e)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/modal"),u=a(i);s["default"].addInitializer({name:"modal",initializer:r,before:"store"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/modal":140}],21:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].locale($("html").attr("lang"))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("moment"),s=a(o),i=e("../../../../../documents/misago/frontend/src/index"),u=a(i);u["default"].addInitializer({name:"moment",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,moment:"moment"}],22:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){u["default"].init(e.get("SETTINGS").forum_name)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/page-title"),u=a(i);s["default"].addInitializer({name:"page-title",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/page-title":141}],23:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){d["default"].init(u["default"],c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/ajax"),u=a(i),l=e("../../../../../documents/misago/frontend/src/services/snackbar"),c=a(l),f=e("../../../../../documents/misago/frontend/src/services/polls"),d=a(f);s["default"].addInitializer({name:"polls",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/ajax":134,"../../../../../documents/misago/frontend/src/services/polls":142,"../../../../../documents/misago/frontend/src/services/snackbar":143}],24:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){c["default"].addReducer("auth",u["default"],Object.assign({isAuthenticated:e.get("isAuthenticated"),isAnonymous:!e.get("isAuthenticated"),user:e.get("user")},i.initialState))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/auth"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:auth",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/auth":128,"../../../../../../documents/misago/frontend/src/services/store":144}],25:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){s["default"].has("PROFILE")&&l["default"].dispatch((0,i.dehydrate)(s["default"].get("PROFILE")))}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/profile"),u=e("../../../../../../documents/misago/frontend/src/services/store"),l=a(u);s["default"].addInitializer({name:"reducer:profile-dehydrate",initializer:r,after:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/profile":129,"../../../../../../documents/misago/frontend/src/services/store":144}],26:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("profile",u["default"],{})}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/profile"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:profile",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/profile":129,"../../../../../../documents/misago/frontend/src/services/store":144}],27:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("snackbar",u["default"],i.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/snackbar"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:snackbar",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/snackbar":130,"../../../../../../documents/misago/frontend/src/services/store":144}],28:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("tick",u["default"],i.initialState)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/tick"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:tick",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/tick":131,"../../../../../../documents/misago/frontend/src/services/store":144}],29:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("username-history",u["default"],[])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/username-history"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:username-history",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/username-history":132,"../../../../../../documents/misago/frontend/src/services/store":144}],30:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].addReducer("users",u["default"],[])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../../documents/misago/frontend/src/reducers/users"),u=a(i),l=e("../../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"reducer:users",initializer:r,before:"store"})},{"../../../../../../documents/misago/frontend/src/index":127,"../../../../../../documents/misago/frontend/src/reducers/users":133,"../../../../../../documents/misago/frontend/src/services/store":144}],31:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(c["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/snackbar"),u=a(i),l=e("../../../../../documents/misago/frontend/src/services/store"),c=a(l);s["default"].addInitializer({name:"snackbar",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/snackbar":143,"../../../../../documents/misago/frontend/src/services/store":144}],32:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init()}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/store"),u=a(i);s["default"].addInitializer({name:"store",initializer:r,before:"_end"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/store":144}],33:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){window.setInterval(function(){l["default"].dispatch((0,i.doTick)())},c)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/reducers/tick"),u=e("../../../../../documents/misago/frontend/src/services/store"),l=a(u),c=5e4;s["default"].addInitializer({name:"tick-start",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/reducers/tick":131,"../../../../../documents/misago/frontend/src/services/store":144}],34:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){c["default"].init(u["default"])}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var o=e("../../../../../documents/misago/frontend/src/index"),s=a(o),i=e("../../../../../documents/misago/frontend/src/services/include"),u=a(i),l=e("../../../../../documents/misago/frontend/src/services/zxcvbn"),c=a(l);s["default"].addInitializer({name:"zxcvbn",initializer:r})},{"../../../../../documents/misago/frontend/src/index":127,"../../../../../documents/misago/frontend/src/services/include":137,"../../../../../documents/misago/frontend/src/services/zxcvbn":145}],35:[function(e,t,n){function a(e){return null===e||void 0===e}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length?"function"!=typeof e.copy||"function"!=typeof e.slice?!1:e.length>0&&"number"!=typeof e[0]?!1:!0:!1}function o(e,t,n){var o,c;if(a(e)||a(t))return!1;if(e.prototype!==t.prototype)return!1;if(u(e))return u(t)?(e=s.call(e),t=s.call(t),l(e,t,n)):!1;if(r(e)){if(!r(t))return!1;if(e.length!==t.length)return!1;for(o=0;o<e.length;o++)if(e[o]!==t[o])return!1;return!0}try{var f=i(e),d=i(t)}catch(p){return!1}if(f.length!=d.length)return!1;for(f.sort(),d.sort(),o=f.length-1;o>=0;o--)if(f[o]!=d[o])return!1;for(o=f.length-1;o>=0;o--)if(c=f[o],!l(e[c],t[c],n))return!1;return typeof e==typeof t}var s=Array.prototype.slice,i=e("./lib/keys.js"),u=e("./lib/is_arguments.js"),l=t.exports=function(e,t,n){return n||(n={}),e===t?!0:e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:o(e,t,n)}},{"./lib/is_arguments.js":36,"./lib/keys.js":37}],36:[function(e,t,n){function a(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();n=t.exports=o?a:r,n.supported=a,n.unsupported=r},{}],37:[function(e,t,n){function a(e){var t=[];for(var n in e)t.push(n);return t}n=t.exports="function"==typeof Object.keys?Object.keys:a,n.shim=a},{}],38:[function(e,t,n){"use strict";n.__esModule=!0;var a="PUSH";n.PUSH=a;var r="REPLACE";n.REPLACE=r;var o="POP";n.POP=o,n["default"]={PUSH:a,REPLACE:r,POP:o}},{}],39:[function(e,t,n){"use strict";function a(e,t,n){function a(){s=!0,n.apply(this,arguments)}function r(){s||(e>o?t.call(this,o++,r,a):a.apply(this,arguments))}var o=0,s=!1;r()}n.__esModule=!0,n.loopAsync=a},{}],40:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return l+e}function o(e,n){try{window.sessionStorage.setItem(r(e),JSON.stringify(n))}catch(a){if(a.name===f)return void("production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to save state; sessionStorage is not available due to security settings"):void 0);if(a.name===c&&0===window.sessionStorage.length)return void("production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to save state; sessionStorage is not available in Safari private mode"):void 0);throw a}}function s(e){var n=void 0;try{n=window.sessionStorage.getItem(r(e))}catch(a){if(a.name===f)return"production"!==t.env.NODE_ENV?u["default"](!1,"[history] Unable to read state; sessionStorage is not available due to security settings"):void 0,null}if(n)try{return JSON.parse(n)}catch(a){}return null}n.__esModule=!0,n.saveState=o,n.readState=s;var i=e("warning"),u=a(i),l="@@History/",c="QuotaExceededError",f="SecurityError"}).call(this,e("_process"))},{_process:1,warning:52}],41:[function(e,t,n){"use strict";function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)}function r(e,t,n){e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)}function o(){return window.location.href.split("#")[1]||""}function s(e){window.location.replace(window.location.pathname+window.location.search+"#"+e)}function i(){return window.location.pathname+window.location.search+window.location.hash}function u(e){e&&window.history.go(e)}function l(e,t){t(window.confirm(e))}function c(){var e=navigator.userAgent;return-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone")?-1!==e.indexOf("CriOS")?!1:window.history&&"pushState"in window.history:!1}function f(){var e=navigator.userAgent;return-1===e.indexOf("Firefox")}n.__esModule=!0,n.addEventListener=a,n.removeEventListener=r,n.getHashPath=o,n.replaceHashPath=s,n.getWindowPath=i,n.go=u,n.getUserConfirmation=l,n.supportsHistory=c,n.supportsGoWithoutReloadUsingHash=f},{}],42:[function(e,t,n){"use strict";n.__esModule=!0;var a=!("undefined"==typeof window||!window.document||!window.document.createElement);n.canUseDOM=a},{}],43:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){function e(e){e=e||window.history.state||{};var t=f.getWindowPath(),n=e,a=n.key,r=void 0;a?r=d.readState(a):(r=null,a=_.createKey(),b&&window.history.replaceState(s({},e,{key:a}),null,t));var o=g["default"](t);return _.createLocation(s({},o,{state:r}),void 0,a)}function t(t){function n(t){void 0!==t.state&&a(e(t.state))}var a=t.transitionTo;return f.addEventListener(window,"popstate",n),function(){f.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,a=e.search,r=e.hash,o=e.state,s=e.action,i=e.key;if(s!==l.POP){d.saveState(i,o);var u=(t||"")+n+a+r,c={key:i};if(s===l.PUSH){if(y)return window.location.href=u,!1;window.history.pushState(c,null,u)}else{if(y)return window.location.replace(u),!1;window.history.replaceState(c,null,u)}}}function r(e){1===++w&&(E=t(_));var n=_.listenBefore(e);return function(){n(),0===--w&&E()}}function o(e){1===++w&&(E=t(_));var n=_.listen(e);return function(){n(),0===--w&&E()}}function i(e){1===++w&&(E=t(_)),_.registerTransitionHook(e)}function p(e){_.unregisterTransitionHook(e),
+0===--w&&E()}var h=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];c.canUseDOM?void 0:"production"!==a.env.NODE_ENV?u["default"](!1,"Browser history needs a DOM"):u["default"](!1);var v=h.forceRefresh,b=f.supportsHistory(),y=!b||v,_=m["default"](s({},h,{getCurrentLocation:e,finishTransition:n,saveState:d.saveState})),w=0,E=void 0;return s({},_,{listenBefore:r,listen:o,registerTransitionHook:i,unregisterTransitionHook:p})}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i=e("invariant"),u=r(i),l=e("./Actions"),c=e("./ExecutionEnvironment"),f=e("./DOMUtils"),d=e("./DOMStateStorage"),p=e("./createDOMHistory"),m=r(p),h=e("./parsePath"),g=r(h);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./Actions":38,"./DOMStateStorage":40,"./DOMUtils":41,"./ExecutionEnvironment":42,"./createDOMHistory":44,"./parsePath":49,_process:1,invariant:51}],44:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return l.canUseDOM?void 0:"production"!==a.env.NODE_ENV?u["default"](!1,"DOM history needs a DOM"):u["default"](!1),n.listen(e)}var n=d["default"](s({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return s({},n,{listen:t})}n.__esModule=!0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},i=e("invariant"),u=r(i),l=e("./ExecutionEnvironment"),c=e("./DOMUtils"),f=e("./createHistory"),d=r(f);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./DOMUtils":41,"./ExecutionEnvironment":42,"./createHistory":45,_process:1,invariant:51}],45:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return Math.random().toString(36).substr(2,e)}function o(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.key===t.key&&l["default"](e.state,t.state)}function s(){function e(e){return U.push(e),function(){U=U.filter(function(t){return t!==e})}}function t(){return H&&H.action===f.POP?D.indexOf(H.key):B?D.indexOf(B.key):-1}function n(e){var n=t();B=e,B.action===f.PUSH?D=[].concat(D.slice(0,n+1),[B.key]):B.action===f.REPLACE&&(D[n]=B.key),z.forEach(function(e){e(B)})}function a(e){if(z.push(e),B)e(B);else{var t=M();D=[t.key],n(t)}return function(){z=z.filter(function(t){return t!==e})}}function s(e,t){c.loopAsync(U.length,function(t,n,a){h["default"](U[t],e,function(e){null!=e?a(e):n()})},function(e){A&&"string"==typeof e?A(e,function(e){t(e!==!1)}):t(e!==!1)})}function u(e){B&&o(B,e)||(H=e,s(e,function(t){if(H===e)if(t){if(e.action===f.PUSH){var a=w(B),r=w(e);r===a&&(e.action=f.REPLACE)}T(e)!==!1&&n(e)}else if(B&&e.action===f.POP){var o=D.indexOf(B.key),s=D.indexOf(e.key);-1!==o&&-1!==s&&R(o-s)}}))}function l(e){u(O(e,f.PUSH,b()))}function d(e){u(O(e,f.REPLACE,b()))}function m(){R(-1)}function g(){R(1)}function b(){return r(I)}function w(e){if(null==e||"string"==typeof e)return e;var t=e.pathname,n=e.search,a=e.hash,r=t;return n&&(r+=n),a&&(r+=a),r}function E(e){return w(e)}function O(e,t){var n=arguments.length<=2||void 0===arguments[2]?b():arguments[2];return"object"==typeof t&&("string"==typeof e&&(e=v["default"](e)),e=i({},e,{state:t}),t=n,n=arguments[3]||b()),p["default"](e,t,n)}function k(e){B?(N(B,e),n(B)):N(M(),e)}function N(e,t){e.state=i({},e.state,t),L(e.key,e.state)}function x(e){-1===U.indexOf(e)&&U.push(e)}function j(e){U=U.filter(function(t){return t!==e})}function P(e,t){"string"==typeof t&&(t=v["default"](t)),l(i({state:e},t))}function S(e,t){"string"==typeof t&&(t=v["default"](t)),d(i({state:e},t))}var C=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],M=C.getCurrentLocation,T=C.finishTransition,L=C.saveState,R=C.go,I=C.keyLength,A=C.getUserConfirmation;"number"!=typeof I&&(I=_);var U=[],D=[],z=[],B=void 0,H=void 0;return{listenBefore:e,listen:a,transitionTo:u,push:l,replace:d,go:R,goBack:m,goForward:g,createKey:b,createPath:w,createHref:E,createLocation:O,setState:y["default"](k,"setState is deprecated; use location.key to save state instead"),registerTransitionHook:y["default"](x,"registerTransitionHook is deprecated; use listenBefore instead"),unregisterTransitionHook:y["default"](j,"unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead"),pushState:y["default"](P,"pushState is deprecated; use push instead"),replaceState:y["default"](S,"replaceState is deprecated; use replace instead")}}n.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=e("deep-equal"),l=a(u),c=e("./AsyncUtils"),f=e("./Actions"),d=e("./createLocation"),p=a(d),m=e("./runTransitionHook"),h=a(m),g=e("./parsePath"),v=a(g),b=e("./deprecate"),y=a(b),_=6;n["default"]=s,t.exports=n["default"]},{"./Actions":38,"./AsyncUtils":39,"./createLocation":46,"./deprecate":47,"./parsePath":49,"./runTransitionHook":50,"deep-equal":35}],46:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?"/":arguments[0],t=arguments.length<=1||void 0===arguments[1]?s.POP:arguments[1],n=arguments.length<=2||void 0===arguments[2]?null:arguments[2],a=arguments.length<=3||void 0===arguments[3]?null:arguments[3];"string"==typeof e&&(e=u["default"](e)),"object"==typeof t&&(e=o({},e,{state:t}),t=n||s.POP,n=a);var r=e.pathname||"/",i=e.search||"",l=e.hash||"",c=e.state||null;return{pathname:r,search:i,hash:l,state:c,action:t,key:n}}n.__esModule=!0;var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},s=e("./Actions"),i=e("./parsePath"),u=a(i);n["default"]=r,t.exports=n["default"]},{"./Actions":38,"./parsePath":49}],47:[function(e,t,n){"use strict";function a(e){return e}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],48:[function(e,t,n){"use strict";function a(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}n.__esModule=!0,n["default"]=a,t.exports=n["default"]},{}],49:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=l["default"](e),n="",r="";"production"!==a.env.NODE_ENV?i["default"](e===t,'A path must be pathname + search + hash only, not a fully qualified URL like "%s"',e):void 0;var o=t.indexOf("#");-1!==o&&(r=t.substring(o),t=t.substring(0,o));var s=t.indexOf("?");return-1!==s&&(n=t.substring(s),t=t.substring(0,s)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}n.__esModule=!0;var s=e("warning"),i=r(s),u=e("./extractPath"),l=r(u);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{"./extractPath":48,_process:1,warning:52}],50:[function(e,t,n){(function(a){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=e(t,n);e.length<2?n(r):"production"!==a.env.NODE_ENV?i["default"](void 0===r,'You should not "return" in a transition hook with a callback argument; call the callback instead'):void 0}n.__esModule=!0;var s=e("warning"),i=r(s);n["default"]=o,t.exports=n["default"]}).call(this,e("_process"))},{_process:1,warning:52}],51:[function(e,t,n){"use strict";var a=function(e,t,n,a,r,o,s,i){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,a,r,o,s,i],c=0;u=new Error(t.replace(/%s/g,function(){return l[c++]})),u.name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=a},{}],52:[function(e,t,n){"use strict";var a=function(){};t.exports=a},{}],53:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("react"),c=a(l),f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"refresh",value:function(){window.location.reload()}},{key:"getMessage",value:function(){return this.props.signedIn?interpolate(gettext("You have signed in as %(username)s. Please refresh the page before continuing."),{username:this.props.signedIn.username},!0):this.props.signedOut?interpolate(gettext("%(username)s, you have been signed out. Please refresh the page before continuing."),{username:this.props.user.username},!0):void 0}},{key:"getClassName",value:function(){return this.props.signedIn||this.props.signedOut?"auth-message show":"auth-message"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-default",onClick:this.refresh},gettext("Reload page"))," ",c["default"].createElement("span",{className:"hidden-xs hidden-sm text-muted"},gettext("or press F5 key.")))))}}]),t}(c["default"].Component);n["default"]=f},{react:"react"}],54:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=$("base").attr("href")+"user-avatar/",f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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"}],55:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(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(){if(this.props.expires){if(this.props.expires.isAfter((0,l["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.props.expires.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return 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"}],56:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),l["default"].createElement("button",{type:this.props.onClick?"button":"submit",className:e,disabled:t,onClick:this.props.onClick},this.props.children,this.props.loading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=d,d.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":70,react:"react"}],57:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./last-activity"),f=a(c),d=e("./read-icon"),p=a(d),m=e("./stats"),h=a(m),g=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.category.css_class?"panel panel-default panel-category panel-category-"+this.props.category.css_class:"panel panel-default panel-category"}},{key:"getHeadingClassName",value:function(){return this.props.category.subcategories.length?"panel-heading":"panel-heading heading-alone"}},{key:"getCategoryDescription",value:function(){return this.props.category.description?l["default"].createElement("div",{className:"panel-body category-description",dangerouslySetInnerHTML:{__html:this.props.category.description.html}}):null}},{key:"getSubcategoryClass",value:function(e){return e.css_class?"list-group-item category-subcategory subcategory-"+e.css_class:"list-group-item category-subcategory"}},{key:"getSubcategoryDescription",value:function(e){return e.description?l["default"].createElement("div",{className:"subcategory-description",dangerouslySetInnerHTML:{__html:e.description.html}}):null}},{key:"getSubcategorySubcategoryClass",value:function(e){return e.css_class?"subcategory subcategory-"+e.css_class:"subcategory"}},{key:"getSubcategorySubcategories",value:function(e){var t=this;return e.subcategories.length?l["default"].createElement("ul",{className:"list-inline subcategories-list"},e.subcategories.map(function(e){return l["default"].createElement("li",{key:e.id},l["default"].createElement("a",{href:e.absolute_url,className:t.getSubcategorySubcategoryClass(e)},e.name))})):null}},{key:"getSubcategories",value:function(){var e=this;return this.props.category.subcategories.length?l["default"].createElement("ul",{className:"list-group category-subcategories"},this.props.category.subcategories.map(function(t){return l["default"].createElement("li",{className:e.getSubcategoryClass(t),key:t.id},l["default"].createElement("div",{className:"title-row"},l["default"].createElement("h4",null,l["default"].createElement(p["default"],{category:t}),l["default"].createElement("a",{href:t.absolute_url,className:"item-title"},t.name)),l["default"].createElement(h["default"],{category:t})),l["default"].createElement(f["default"],{category:t}),e.getSubcategoryDescription(t),e.getSubcategorySubcategories(t))})):null}},{key:"render",value:function(){return l["default"].createElement("div",{id:"panel-category-"+this.props.category.id,className:this.getClassName()},l["default"].createElement("div",{className:this.getHeadingClassName()},l["default"].createElement("div",{className:"panel-heading-inblock"},l["default"].createElement("div",{className:"panel-heading-top-row"},l["default"].createElement("h3",{className:"panel-title"},l["default"].createElement(p["default"],{category:this.props.category}),l["default"].createElement("a",{href:this.props.category.absolute_url,className:"item-title"},this.props.category.name)),l["default"].createElement(h["default"],{category:this.props.category})),l["default"].createElement(f["default"],{category:this.props.category}))),this.getCategoryDescription(),this.getSubcategories())}}]),t}(l["default"].Component);n["default"]=g},{"./last-activity":58,"./read-icon":59,"./stats":61,react:"react"}],58:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getLastPoster",value:function(){return this.props.category.last_poster_url?l["default"].createElement("a",{href:this.props.category.last_poster_url,className:"item-title"},this.props.category.last_poster_name):l["default"].createElement("span",{className:"item-title"},this.props.category.last_poster_name)}},{key:"getThreadDetails",value:function(){return[l["default"].createElement("li",{className:"thread-title",key:"title"},l["default"].createElement("a",{href:this.props.category.last_thread_url,className:"item-title"},this.props.category.last_thread_title)),l["default"].createElement("li",{className:"poster-name",key:"poster"},this.getLastPoster()),l["default"].createElement("li",{className:"thread-date",key:"date"},l["default"].createElement("abbr",{title:this.props.category.last_post_on.format("LL, LT")},this.props.category.last_post_on.fromNow()))]}},{key:"getLastActivity",value:function(){return this.props.category.acl.can_browse?this.props.category.acl.can_see_all_threads?this.props.category.last_thread_title?this.getThreadDetails():l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"error_outline"),gettext("This category is empty.")):l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"info_outline"),gettext("This category is private. You can see only your own threads within it.")):l["default"].createElement("li",{className:"thread-message"},l["default"].createElement("span",{className:"material-icon"},"highlight_off"),gettext("This category is protected. You can't browse it's contents."))}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"list-inline category-last-activity"},this.getLastActivity())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],59:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.category.is_read?"material-icon read-status item-read":"material-icon read-status item-new"}},{key:"getTitle",value:function(){return this.props.category.is_closed?this.props.category.is_read?gettext("This category has no new posts. (closed)"):gettext("This category has new posts. (closed)"):this.props.category.is_read?gettext("This category has no new posts."):gettext("This category has new posts.")}},{key:"getIcon",value:function(){return this.props.category.is_closed?this.props.category.is_read?"lock_outline":"lock":this.props.category.is_read?"chat_bubble_outline":"chat_bubble"}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClassName(),title:this.getTitle()},this.getIcon())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],60:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i;var l=e("moment"),c=a(l),f=e("react"),d=a(f),p=e("./category"),m=a(p),h=e("../../index"),g=a(h),v=e("../../services/polls"),b=a(v),y=function w(e){return Object.assign({},e,{last_post_on:e.last_post_on?(0,c["default"])(e.last_post_on):null,subcategories:e.subcategories.map(w)})},_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){n.setState({categories:e.map(y)})},n.state={categories:g["default"].get("CATEGORIES").map(y)},n.startPolling(g["default"].get("CATEGORIES_API")),n}return s(t,e),u(t,[{key:"startPolling",value:function(e){b["default"].start({poll:"categories",url:e,frequency:18e4,update:this.update})}},{key:"render",value:function(){return d["default"].createElement("div",{className:"categories-list"},this.state.categories.map(function(e){return d["default"].createElement(m["default"],{category:e,key:e.id})}))}}]),t}(d["default"].Component);n["default"]=_},{"../../index":127,"../../services/polls":142,"./category":57,moment:"moment",react:"react"}],61:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getThreadsCount",value:function(){var e=ngettext("%(threads)s thread","%(threads)s threads",this.props.category.threads);return interpolate(e,{threads:this.props.category.threads},!0)}},{key:"getPostsCount",value:function(){var e=ngettext("%(posts)s post","%(posts)s posts",this.props.category.posts);return interpolate(e,{posts:this.props.category.posts},!0)}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"list-inline category-stats"},l["default"].createElement("li",{className:"category-threads"},this.getThreadsCount()),l["default"].createElement("li",{className:"category-posts"},this.getPostsCount()))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],62:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=(a(c),e("../button")),d=a(f),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),g=a(h),v=$("base").attr("href")+"user-avatar",b=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.cropAvatar=function(){if(n.state.isLoading)return!1;n.setState({isLoading:!0});var e=n.props.upload?"crop_tmp":"crop_org",t=$(".crop-form");m["default"].post(n.props.user.api_url.avatar,{avatar:e,crop:{offset:t.cropit("offset"),zoom:t.cropit("zoom")}}).then(function(e){n.props.onComplete(e.avatar_hash,e.options),g["default"].success(e.detail)},function(e){400===e.status?(g["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)})},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_org.size}},{key:"getAvatarSecret",value:function(){return this.props.upload?this.props.options.crop_tmp.secret:this.props.options.crop_org.secret}},{key:"getAvatarHash",value:function(){return this.props.upload||this.props.user.avatar_hash}},{key:"getImagePath",value:function(){return[v,this.getAvatarSecret()+":"+this.getAvatarHash(),this.props.user.id+".png"].join("/")}},{key:"componentDidMount",value:function(){var e=this,t=$(".crop-form");t.width(this.getAvatarSize()),t.cropit({width:this.getAvatarSize(),height:this.getAvatarSize(),imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var n=t.cropit("zoom"),a=t.cropit("imageSize");if(a.width>a.height){var r=a.width*n,o=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:o,y:0})}else if(a.width<a.height){var s=a.height*n,i=(s-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:i})}}else{var u=e.props.options.crop_org.crop;u&&(t.cropit("zoom",u.zoom),t.cropit("offset",{x:u.x,y:u.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement("div",{
+className:"modal-body modal-avatar-crop"},l["default"].createElement("div",{className:"crop-form"},l["default"].createElement("div",{className:"cropit-image-preview"}),l["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(d["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),l["default"].createElement(d["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(l["default"].Component);n["default"]=b},{"../../services/ajax":134,"../../services/snackbar":143,"../avatar":54,"../button":56,react:"react"}],63:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Gallery=n.GalleryItem=void 0;var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../../index"),p=a(d),m=e("../../services/ajax"),h=a(m),g=e("../../services/snackbar"),v=a(g),b=e("../../utils/batch"),y=a(b),_=n.GalleryItem=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.select=function(){a.props.select(a.props.image)},s=n,o(a,s)}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.image?this.props.disabled?"btn btn-avatar btn-disabled avatar-selected":"btn btn-avatar avatar-selected":this.props.disabled?"btn btn-avatar btn-disabled":"btn btn-avatar"}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},l["default"].createElement("img",{src:p["default"].get("MEDIA_URL")+this.props.image}))}}]),t}(l["default"].Component),w=n.Gallery=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"avatars-gallery"},l["default"].createElement("h3",null,this.props.name),l["default"].createElement("div",{className:"avatars-gallery-images"},(0,y["default"])(this.props.images,4,null).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t,n){return l["default"].createElement("div",{className:"col-xs-3",key:n},t?l["default"].createElement(_,{image:t,disabled:e.props.disabled,select:e.props.select,selection:e.props.selection}):l["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(l["default"].Component),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.select=function(e){n.setState({selection:e})},n.save=function(){return n.state.isLoading?!1:(n.setState({isLoading:!0}),void h["default"].post(n.props.user.api_url.avatar,{avatar:"galleries",image:n.state.selection}).then(function(e){n.setState({isLoading:!1}),v["default"].success(e.detail),n.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1})):n.props.showError(e)}))},n.state={selection:null,isLoading:!1},n}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",null,l["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,n){return l["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:n})})),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(f["default"],{onClick:this.save,loading:this.state.isLoading,disabled:!this.state.selection,className:"btn-primary btn-block"},this.state.selection?gettext("Save choice"):gettext("Select avatar")),l["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(l["default"].Component);n["default"]=E},{"../../index":127,"../../services/ajax":134,"../../services/snackbar":143,"../../utils/batch":147,"../button":56,react:"react"}],64:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../button"),p=a(d),m=e("../loader"),h=a(m),g=e("../../services/ajax"),v=a(g),b=e("../../services/snackbar"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.setGravatar=function(){n.callApi("gravatar")},n.setGenerated=function(){n.callApi("generated")},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"callApi",value:function(e){var t=this;return this.state.isLoading?!1:(this.setState({isLoading:!0}),void v["default"].post(this.props.user.api_url.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),y["default"].success(e.detail),t.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?(y["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_org?l["default"].createElement(p["default"],{onClick:this.props.showCrop,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-crop"},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?l["default"].createElement(p["default"],{onClick:this.props.showUpload,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-upload"},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?l["default"].createElement(p["default"],{onClick:this.props.showGallery,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gallery"},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){var e={id:this.props.user.id,avatar_hash:this.props.options.avatar_hash};return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(f["default"],{user:e,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(f["default"],{user:e,size:"200"}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-index"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),l["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),l["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":134,"../../services/snackbar":143,"../avatar":54,"../button":56,"../loader":70,react:"react"}],65:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.ChangeAvatarError=void 0,n.select=i;var l=e("react"),c=a(l),f=e("./index"),d=a(f),p=e("./crop"),m=a(p),h=e("./upload"),g=a(h),v=e("./gallery"),b=a(v),y=e("../modal-loader"),_=a(y),w=e("../../reducers/users"),E=e("../../services/ajax"),O=a(E),k=e("../../services/store"),N=a(k),x=n.ChangeAvatarError=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getErrorReason",value:function(){return this.props.reason?c["default"].createElement("p",{dangerouslySetInnerHTML:{__html:this.props.reason}}):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"remove_circle_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.props.message),this.getErrorReason()))}}]),t}(c["default"].Component),j=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showError=function(e){a.setState({error:e})},a.showIndex=function(){a.setState({component:d["default"]})},a.showUpload=function(){a.setState({component:g["default"]})},a.showCrop=function(){a.setState({component:m["default"]})},a.showGallery=function(){a.setState({component:b["default"]})},a.completeFlow=function(e,t){N["default"].dispatch((0,w.updateAvatar)(a.props.user,e)),a.setState({component:d["default"],options:t})},s=n,o(a,s)}return s(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;O["default"].get(this.props.user.api_url.avatar).then(function(t){e.setState({component:d["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(x,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);n["default"]=j},{"../../reducers/users":133,"../../services/ajax":134,"../../services/store":144,"../modal-loader":71,"./crop":62,"./gallery":63,"./index":64,"./upload":66,react:"react"}],66:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./crop"),f=a(c),d=e("../button"),p=a(d),m=e("../../services/ajax"),h=a(m),g=e("../../services/snackbar"),v=a(g),b=e("../../utils/file-size"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},n.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0],t=n.validateFile(e);if(t)return void v["default"].error(t);n.setState({image:e,preview:URL.createObjectURL(e),progress:0});var a=new FormData;a.append("avatar","upload"),a.append("image",e),h["default"].upload(n.props.user.api_url.avatar,a,function(e){n.setState({progress:e})}).then(function(e){n.setState({options:e.options,uploaded:e.detail}),v["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status?(v["default"].error(e.detail),n.setState({isLoading:!1,image:null,progress:0})):n.props.showError(e)})},n.state={image:null,preview:null,progress:0,uploaded:null},n}return s(t,e),i(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,y["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(-1===this.props.options.upload.allowed_mime_types.indexOf(e.type))return t;var n=!1,a=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){a.substr(-1*e.length)===e&&(n=!0)}),n?!1:t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,y["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},l["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),l["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return l["default"].createElement("div",{className:"modal-body modal-avatar-upload"},l["default"].createElement("div",{className:"upload-progress"},l["default"].createElement("img",{src:this.state.preview}),l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{width:this.state.progress+"%"}},l["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return l["default"].createElement("div",null,l["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},l["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return l["default"].createElement(f["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":134,"../../services/snackbar":143,"../../utils/file-size":148,"../button":56,"./crop":62,react:"react"}],67:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?l["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,n){return l["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+n},t)})):null}},{key:"getFeedbackIcon",value:function(){return this.isValidated()?l["default"].createElement("span",{className:"material-icon form-control-feedback","aria-hidden":"true",key:this.props["for"]+"FeedbackIcon"},this.props.validation?"clear":"check"):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?l["default"].createElement("span",{id:this.props["for"]+"_status",className:"sr-only"},this.props.validation?gettext("(error)"):gettext("(success)")):null}},{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),l["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackIcon(),this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],68:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("../utils/validators"),d=e("../services/snackbar"),p=a(d),m=(0,f.required)(),h=function(e){function t(){var e,n,a,i;o(this,t);for(var u=arguments.length,l=Array(u),c=0;u>c;c++)l[c]=arguments[c];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(l))),a.bindInput=function(e){return function(t){var n=r({},e,t.target.value),o=a.state.errors||{};o[e]=a.validateField(e,n[e]),n.errors=o,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},i=n,s(a,i)}return i(t,e),u(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],o=this.validateField(a,this.state[a]);null===o?e[a]=null:o&&(e[a]=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=[];if(!this.state.validators)return n;var a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=m(t)||!1;if(a.required){if(r)n=[r];else for(var o in a.required){var s=a.required[o](t);s&&n.push(s)}return n.length?n:null}if(r===!1&&a.optional){for(var o in a.optional){var s=a.optional[o](t);s&&n.push(s)}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){p["default"].apiError(e)}}]),t}(c["default"].Component);n["default"]=h},{"../services/snackbar":143,"../utils/validators":154,react:"react"}],69:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"isActive",value:function(){return this.props.path?0===document.location.pathname.indexOf(this.props.path):!1}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],70:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:this.props.className||"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],71:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body modal-loader"},l["default"].createElement(f["default"],null))}}]),t}(l["default"].Component);n["default"]=d},{"./loader":70,react:"react"}],72:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./panel-message"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(f["default"]);n["default"]=d},{"./panel-message":84,react:"react"}],73:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../panel-loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"
+},gettext("Change username"))),l["default"].createElement(f["default"],null))}}]),t}(l["default"].Component);n["default"]=d},{"../../panel-loader":83,react:"react"}],74:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../panel-message"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),l["default"].createElement(f["default"],{message:gettext("You can't change your username at the moment."),helpText:this.getHelpText()}))}}]),t}(l["default"].Component);n["default"]=d},{"../../panel-message":84,react:"react"}],75:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../services/ajax"),b=r(v),y=e("../../../services/snackbar"),_=r(y),w=e("../../../utils/validators"),E=a(w),O=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={username:"",validators:{username:[E.usernameContent(),E.usernameMinLength({username_length_min:e.options.length_min}),E.usernameMaxLength({username_length_max:e.options.length_max})]},isLoading:!1},n}return i(t,e),u(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var t=ngettext("Used changes redeem after %(name_changes_expire)s day.","Used changes redeem after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(t,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(_["default"].error(e.username[0]),!1):this.state.username.trim()===this.props.user.username?(_["default"].info(gettext("Your new username is same as current one.")),!1):!0}},{key:"send",value:function(){return b["default"].post(this.props.user.api_url.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",helpText:this.getHelpText()},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))))}}]),t}(m["default"]);n["default"]=O},{"../../../services/ajax":134,"../../../services/snackbar":143,"../../../utils/validators":154,"../../button":56,"../../form":68,"../../form-group":67,react:"react"}],76:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=e("./form-loading"),p=a(d),m=e("./form-locked"),h=a(m),g=e("./form"),v=a(g),b=e("../../username-history"),y=a(b),_=e("../../../index"),w=a(_),E=e("../../../reducers/username-history"),O=e("../../../reducers/users"),k=e("../../../services/ajax"),N=a(k),x=e("../../../services/page-title"),j=a(x),P=e("../../../services/snackbar"),S=a(P),C=e("../../../services/store"),M=a(C),T=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.onComplete=function(e,t,a){n.setState({options:a}),M["default"].dispatch((0,E.addNameChange)({username:e,slug:t},n.props.user,n.props.user)),M["default"].dispatch((0,O.updateUsername)(n.props.user,e,t)),S["default"].success(gettext("Your username has been changed successfully."))},n.state={isLoaded:!1,options:null},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([N["default"].get(this.props.user.api_url.username),N["default"].get(w["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){M["default"].dispatch((0,E.dehydrate)(t[1].results)),e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,l["default"])(t[0].next_on):null}})})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?this.state.options.changes_left>0?f["default"].createElement(v["default"],{user:this.props.user,options:this.state.options,complete:this.onComplete}):f["default"].createElement(h["default"],{options:this.state.options}):f["default"].createElement(p["default"],null)}},{key:"render",value:function(){return f["default"].createElement("div",null,this.getChangeForm(),f["default"].createElement(y["default"],{isLoaded:this.state.isLoaded,changes:this.props["username-history"]}))}}]),t}(f["default"].Component);n["default"]=T},{"../../../index":127,"../../../reducers/username-history":132,"../../../reducers/users":133,"../../../services/ajax":134,"../../../services/page-title":141,"../../../services/snackbar":143,"../../../services/store":144,"../../username-history":111,"./form":75,"./form-loading":73,"./form-locked":74,moment:"moment",react:"react"}],77:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../form"),p=a(d),m=e("../form-group"),h=a(m),g=e("../select"),v=a(g),b=e("../yes-no-switch"),y=a(b),_=e("../../reducers/auth"),w=e("../../services/ajax"),E=a(w),O=e("../../services/page-title"),k=a(O),N=e("../../services/snackbar"),x=a(N),j=e("../../services/store"),P=a(j),S=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},n.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],n.subscribeToChoices=[{value:0,icon:"bookmark_border",label:gettext("No")},{value:1,icon:"bookmark",label:gettext("Bookmark")},{value:2,icon:"mail",label:gettext("Bookmark with e-mail notification")}],n}return s(t,e),i(t,[{key:"send",value:function(){return E["default"].post(this.props.user.api_url.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patchUser)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),x["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?x["default"].error(gettext("Please reload page and try again.")):x["default"].apiError(e)}},{key:"componentDidMount",value:function(){k["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"panel panel-default panel-form"},l["default"].createElement("div",{className:"panel-heading"},l["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),l["default"].createElement("div",{className:"panel-body"},l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Privacy settings")),l["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(y["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility_off",iconOff:"visibility",labelOn:gettext("Hide my presence from other users"),labelOff:gettext("Show my presence to other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),l["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),l["default"].createElement("fieldset",null,l["default"].createElement("legend",null,gettext("Automatic subscriptions")),l["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),l["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads",labelClass:"col-sm-4",controlClass:"col-sm-8"},l["default"].createElement(v["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),l["default"].createElement("div",{className:"panel-footer"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},l["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))))}}]),t}(p["default"]);n["default"]=S},{"../../reducers/auth":128,"../../services/ajax":134,"../../services/page-title":141,"../../services/snackbar":143,"../../services/store":144,"../button":56,"../form":68,"../form-group":67,"../select":104,"../yes-no-switch":126,react:"react"}],78:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index");a(p),n.SideNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.options.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.props.options.map(function(t){return l["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name))}))}}]),t}(l["default"].Component)},{"../../index":127,"../li":69,react:"react","react-router":"react-router"}],79:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function u(){return[{path:w["default"].get("USERCP_URL")+"forum-options/",component:(0,d.connect)(i)(h["default"])},{path:w["default"].get("USERCP_URL")+"change-username/",component:(0,d.connect)(i)(v["default"])},{path:w["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,d.connect)(i)(y["default"])}]}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("./navs"),m=e("./forum-options"),h=a(m),g=e("./change-username/root"),v=a(g),b=e("./sign-in-credentials/root"),y=a(b),_=e("../../index"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n}return s(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-options"},f["default"].createElement("div",{className:"page-header"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Change your options")),f["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},f["default"].createElement("i",{className:"material-icon"},"menu")))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(p.CompactNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL"),hideNav:this.hideNav})),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement(p.SideNav,{options:w["default"].get("USER_OPTIONS"),baseUrl:w["default"].get("USERCP_URL")})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(f["default"].Component);n["default"]=E},{"../../index":127,"./change-username/root":76,"./forum-options":77,"./navs":78,"./sign-in-credentials/root":82,react:"react","react-redux":"react-redux"}],80:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../services/ajax"),b=r(v),y=e("../../../services/snackbar"),_=r(y),w=e("../../../utils/validators"),E=a(w),O=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_email:"",password:"",validators:{new_email:[E.email()],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(_["default"].error(gettext("Fill out all fields.")),!1):e.new_email?(_["default"].error(e.new_email[0]),!1):!0}},{key:"send",value:function(){return b["default"].post(this.props.user.api_url.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),_["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?_["default"].error(e.new_email):_["default"].error(e.password):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New e-mail"),"for":"id_new_email",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(g["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))))}}]),t}(m["default"]);n["default"]=O},{"../../../services/ajax":134,"../../../services/snackbar":143,"../../../utils/validators":154,"../../button":56,"../../form":68,"../../form-group":67,react:"react"}],81:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../../index"),b=r(v),y=e("../../../services/ajax"),_=r(y),w=e("../../../services/snackbar"),E=r(w),O=e("../../../utils/validators"),k=a(O),N=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[k.passwordMinLength(b["default"].get("SETTINGS"))],repeat_password:[],password:[]},isLoading:!1},n}return i(t,e),u(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return-1!==t.indexOf(0)?(E["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(E["default"].error(e.new_password[0]),!1):this.state.new_password.trim()!==this.state.repeat_password.trim()?(E["default"].error(gettext("New passwords are different.")),!1):!0}},{key:"send",value:function(){return _["default"].post(this.props.user.api_url.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),E["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?E["default"].error(e.new_password):E["default"].error(e.password):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(g["default"],{label:gettext("New password"),"for":"id_new_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),c["default"].createElement(g["default"],{label:gettext("Repeat password"),"for":"id_repeat_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),c["default"].createElement("hr",null),c["default"].createElement(g["default"],{label:gettext("Your current password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-sm-8 col-sm-offset-4"},c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))))}}]),t}(m["default"]);n["default"]=N},{"../../../index":127,"../../../services/ajax":134,"../../../services/snackbar":143,"../../../utils/validators":154,"../../button":56,"../../form":68,"../../form-group":67,react:"react"}],82:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./change-email"),f=a(c),d=e("./change-password"),p=a(d),m=e("../../../index"),h=a(m),g=e("../../../services/page-title"),v=a(g),b=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"componentDidMount",value:function(){v["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(f["default"],{user:this.props.user}),l["default"].createElement(p["default"],{user:this.props.user}),l["default"].createElement("p",{className:"message-line"},l["default"].createElement("span",{className:"material-icon"},"warning"),l["default"].createElement("a",{
+href:h["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(l["default"].Component);n["default"]=b},{"../../../index":127,"../../../services/page-title":141,"./change-email":80,"./change-password":81,react:"react"}],83:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"panel-body panel-body-loading"},l["default"].createElement(f["default"],{className:"loader loader-spaced"}))}}]),t}(l["default"].Component);n["default"]=d},{"./loader":70,react:"react"}],84:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelpText",value:function(){return this.props.helpText?l["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"panel-body panel-message-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],85:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LABELS=n.STYLES=void 0;var u=e("react"),l=a(u),c=e("../services/zxcvbn"),f=a(c),d=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=n.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n._score=0,n._password=null,n._inputs=[],n}return s(t,e),i(t,[{key:"getScore",value:function(e,t){var n=this,a=!1;return e.trim()!==this._password&&(a=!0),t.length!==this._inputs.length?a=!0:t.map(function(e,t){e.trim()!==n._inputs[t]&&(a=!0)}),a&&(this._score=f["default"].scorePassword(e,t),this._password=e.trim(),this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){var e=this.getScore(this.props.password,this.props.inputs);return l["default"].createElement("div",{className:"help-block password-strength"},l["default"].createElement("div",{className:"progress"},l["default"].createElement("div",{className:"progress-bar "+d[e],style:{width:20+20*e+"%"},role:"progress-bar","aria-valuenow":e,"aria-valuemin":"0","aria-valuemax":"4"},l["default"].createElement("span",{className:"sr-only"},p[e]))),l["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(l["default"].Component);n["default"]=m},{"../services/zxcvbn":145,react:"react"}],86:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("./follow-button"),p=a(d),m=e("./moderation/nav"),h=a(m),g=e("../user-status"),v=a(g),b=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getUserStatus",value:function(){return l["default"].createElement("li",{className:"user-status-display"},l["default"].createElement(v["default"],{user:this.props.profile,status:this.props.profile.status},l["default"].createElement(g.StatusIcon,{user:this.props.profile,status:this.props.profile.status}),l["default"].createElement(g.StatusLabel,{user:this.props.profile,status:this.props.profile.status,className:"status-label"})))}},{key:"getUserRank",value:function(){return this.props.profile.rank.is_tab?l["default"].createElement("li",{className:"user-rank"},l["default"].createElement("a",{href:this.props.profile.rank.absolute_url,className:"item-title"},this.props.profile.rank.name)):l["default"].createElement("li",{className:"user-rank"},l["default"].createElement("span",{className:"item-title"},this.props.profile.rank.name))}},{key:"getUserTitle",value:function(){return this.props.profile.title?l["default"].createElement("li",{className:"user-title"},this.props.profile.title):this.props.profile.rank.title?l["default"].createElement("li",{className:"user-title"},this.props.profile.rank.title):null}},{key:"getJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.profile.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.profile.joined_on.fromNow()},!0);return l["default"].createElement("li",{className:"user-joined-on"},l["default"].createElement("abbr",{title:e},t))}},{key:"getEmail",value:function(){return this.props.profile.email?l["default"].createElement("li",{className:"user-email"},l["default"].createElement("a",{href:"mailto:"+this.props.profile.email,className:"item-title"},this.props.profile.email)):null}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?l["default"].createElement(p["default"],{className:"btn btn-aligned hidden-xs hidden-sm",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?l["default"].createElement("div",{className:"btn-group btn-aligned hidden-xs hidden-sm"},l["default"].createElement("button",{className:"btn btn-default btn-moderate dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},l["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")),l["default"].createElement(h["default"],{profile:this.props.profile})):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"page-header"},l["default"].createElement("div",{className:"container"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},l["default"].createElement("h1",{className:"pull-left"},l["default"].createElement(f["default"],{user:this.props.profile,size:"100"}),l["default"].createElement("span",{className:"user-name"},this.props.profile.username)),this.getFollowButton(),this.getModerationButton(),l["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.props.toggleNav,"aria-haspopup":"true","aria-expanded":this.props.dropdown?"true":"false"},l["default"].createElement("i",{className:"material-icon"},"menu"))))),l["default"].createElement("div",{className:"header-stats"},l["default"].createElement("div",{className:"container"},l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-md-9 col-md-offset-3"},l["default"].createElement("ul",{className:"list-inline"},this.getUserStatus(),this.getUserRank(),this.getUserTitle(),this.getJoinedOn(),this.getEmail()))))))}}]),t}(l["default"].Component);n["default"]=b},{"../avatar":54,"../user-status":110,"./follow-button":88,"./moderation/nav":94,react:"react"}],87:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("moment"),l=a(u),c=e("react"),f=a(c),d=e("../panel-loader"),p=a(d),m=e("../panel-message"),h=a(m),g=e("../../index"),v=a(g),b=e("../../services/polls"),y=a(b),_=e("../../services/page-title"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){e.expires_on&&(e.expires_on=(0,l["default"])(e.expires_on)),n.setState({isLoaded:!0,error:null,ban:e})},n.error=function(e){n.setState({isLoaded:!0,error:e.detail,ban:null})},v["default"].has("PROFILE_BAN")?n.initWithPreloadedData(v["default"].pop("PROFILE_BAN")):n.initWithoutPreloadedData(),n.startPolling(e.profile.api_url.ban),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){e.expires_on&&(e.expires_on=(0,l["default"])(e.expires_on)),this.state={isLoaded:!0,ban:e}}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){y["default"].start({poll:"ban-details",url:e,frequency:9e4,update:this.update,error:this.error})}},{key:"componentDidMount",value:function(){w["default"].set({title:gettext("Ban details"),parent:this.props.profile.username})}},{key:"componentWillUnmount",value:function(){y["default"].stop("ban-details")}},{key:"getUserMessage",value:function(){return this.state.ban.user_message?f["default"].createElement("div",{className:"panel-body ban-message ban-user-message"},f["default"].createElement("h4",null,gettext("User-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.user_message.html}})):null}},{key:"getStaffMessage",value:function(){return this.state.ban.staff_message?f["default"].createElement("div",{className:"panel-body ban-message ban-staff-message"},f["default"].createElement("h4",null,gettext("Team-shown ban message")),f["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.state.ban.staff_message.html}})):null}},{key:"getExpirationMessage",value:function(){if(this.state.ban.expires_on){if(this.state.ban.expires_on.isAfter((0,l["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.state.ban.expires_on.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.state.ban.expires_on.fromNow()},!0);return f["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return interpolate(gettext("%(username)s's ban is permanent."),{username:this.props.profile.username},!0)}},{key:"getPanelBody",value:function(){return this.state.ban?Object.keys(this.state.ban).length?f["default"].createElement("div",null,this.getUserMessage(),this.getStaffMessage(),f["default"].createElement("div",{className:"panel-body ban-expires"},f["default"].createElement("h4",null,gettext("Ban expiration")),f["default"].createElement("p",{className:"lead"},this.getExpirationMessage()))):f["default"].createElement("div",null,f["default"].createElement(h["default"],{message:gettext("No ban is active at the moment.")})):this.state.error?f["default"].createElement("div",null,f["default"].createElement(h["default"],{icon:"error_outline",message:this.state.error})):f["default"].createElement("div",null,f["default"].createElement(p["default"],null))}},{key:"render",value:function(){return f["default"].createElement("div",{className:"profile-ban-details"},f["default"].createElement("div",{className:"panel panel-default"},f["default"].createElement("div",{className:"panel-heading"},f["default"].createElement("h3",{className:"panel-title"},gettext("Ban details"))),this.getPanelBody()))}}]),t}(f["default"].Component);n["default"]=E},{"../../index":127,"../../services/page-title":141,"../../services/polls":142,"../panel-loader":83,"../panel-message":84,moment:"moment",react:"react"}],88:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../../reducers/profile"),p=e("../../services/ajax"),m=a(p),h=e("../../services/snackbar"),g=a(h),v=e("../../services/store"),b=a(v),y=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.action=function(){n.setState({isLoading:!0}),n.props.profile.is_followed?b["default"].dispatch((0,d.patchProfile)({is_followed:!1,followers:n.props.profile.followers-1})):b["default"].dispatch((0,d.patchProfile)({is_followed:!0,followers:n.props.profile.followers+1})),m["default"].post(n.props.profile.api_url.follow).then(function(e){n.setState({isLoading:!1}),b["default"].dispatch((0,d.patchProfile)(e))},function(e){n.setState({isLoading:!1}),g["default"].apiError(e)})},n.state={isLoading:!1},n}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.profile.is_followed?this.props.className+" btn-default btn-following":this.props.className+" btn-default btn-follow"}},{key:"getIcon",value:function(){return this.props.profile.is_followed?"favorite":"favorite_border"}},{key:"getLabel",value:function(){return this.props.profile.is_followed?gettext("Following"):gettext("Follow")}},{key:"render",value:function(){return l["default"].createElement(f["default"],{className:this.getClassName(),disabled:this.state.isLoading,onClick:this.action},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=y},{"../../reducers/profile":129,"../../services/ajax":134,"../../services/snackbar":143,"../../services/store":144,"../button":56,react:"react"}],89:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("../button"),d=a(f),p=e("../search"),m=a(p),h=e("../users-list/root"),g=a(h),v=e("../../index"),b=a(v),y=e("../../reducers/users"),_=e("../../services/ajax"),w=a(_),E=e("../../services/snackbar"),O=a(E),k=e("../../services/store"),N=a(k),x=e("../../services/page-title"),j=a(x),P=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.loadMore=function(){n.setState({isBusy:!0}),n.loadUsers(n.state.page+1,n.state.search)},n.search=function(e){n.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),n.loadUsers(1,e.target.value)},n.setSpecialProps(),b["default"].has(n.PRELOADED_DATA_KEY)?n.initWithPreloadedData(b["default"].pop(n.PRELOADED_DATA_KEY)):n.initWithoutPreloadedData(),n}return i(t,e),u(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWERS",this.TITLE=gettext("Followers"),this.API_FILTER="followers"}},{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},N["default"].dispatch((0,y.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadUsers()}},{key:"loadUsers",value:function(){var e,t=this,n=arguments.length<=0||void 0===arguments[0]?1:arguments[0],a=arguments.length<=1||void 0===arguments[1]?null:arguments[1];w["default"].get(b["default"].get("USERS_API"),(e={},r(e,this.API_FILTER,this.props.profile.id),r(e,"name",a),r(e,"page",n||1),e),"user-"+this.API_FILTER).then(function(e){1===n?N["default"].dispatch((0,y.dehydrate)(e.results)):N["default"].dispatch((0,y.append)(e.results)),t.setState({isLoaded:!0,isBusy:!1,count:e.count,more:e.more,page:e.page,pages:e.pages})},function(e){O["default"].apiError(e)})}},{key:"componentDidMount",value:function(){j["default"].set({title:this.TITLE,parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("You have %(users)s follower.","You have %(users)s followers.",this.state.count);return interpolate(e,{users:this.state.count},!0)}var e=ngettext("%(username)s has %(users)s follower.","%(username)s has %(users)s followers.",this.state.count);return interpolate(e,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You have no followers."):interpolate(gettext("%(username)s has no followers."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?c["default"].createElement("div",{className:"pager-more"},c["default"].createElement(d["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show more (%(more)s)"),{more:this.state.more},!0))):null}},{key:"getListBody",value:function(){return this.state.isLoaded&&0===this.state.count?c["default"].createElement("p",{className:"lead"},this.getEmptyMessage()):c["default"].createElement("div",null,c["default"].createElement(g["default"],{isLoaded:this.state.isLoaded,users:this.props.users,showRank:!0,cols:2}),this.getMoreButton())}},{key:"getClassName",value:function(){return"profile-"+this.API_FILTER}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("nav",{className:"toolbar"},c["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),c["default"].createElement(m["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),this.getListBody())}}]),t}(c["default"].Component);n["default"]=P},{"../../index":127,"../../reducers/users":133,"../../services/ajax":134,"../../services/page-title":141,"../../services/snackbar":143,"../../services/store":144,"../button":56,"../search":103,"../users-list/root":112,react:"react"}],90:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=(a(u),e("./followers")),c=a(l),f=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"setSpecialProps",value:function(){this.PRELOADED_DATA_KEY="PROFILE_FOLLOWS",this.TITLE=gettext("Follows"),this.API_FILTER="follows"}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(users)s user.","Found %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("You are following %(users)s user.","You are following %(users)s users.",this.state.count);return interpolate(e,{users:this.state.count},!0)}var e=ngettext("%(username)s is following %(users)s user.","%(username)s is following %(users)s users.",this.state.count);return interpolate(e,{username:this.props.profile.username,users:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no users matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("You are not following any users."):interpolate(gettext("%(username)s is not following any users."),{username:this.props.profile.username},!0)}}]),t}(c["default"]);n["default"]=f},{"./followers":89,react:"react"}],91:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),m=e("../../form-group"),h=a(m),g=e("../../modal-loader"),v=a(g),b=e("../../yes-no-switch"),y=a(b),_=e("../../modal-message"),w=a(_),E=e("../../../reducers/users"),O=e("../../../services/ajax"),k=a(O),N=e("../../../services/snackbar"),x=a(N),j=e("../../../services/store"),P=a(j),S=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoaded:!1,isLoading:!1,error:null,is_avatar_locked:"",avatar_lock_user_message:"",avatar_lock_staff_message:""},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;k["default"].get(this.props.profile.api_url.moderate_avatar).then(function(t){e.setState({isLoaded:!0,is_avatar_locked:t.is_avatar_locked,avatar_lock_user_message:t.avatar_lock_user_message,avatar_lock_staff_message:t.avatar_lock_staff_message})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(x["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return k["default"].post(this.props.profile.api_url.moderate_avatar,{is_avatar_locked:this.state.is_avatar_locked,avatar_lock_user_message:this.state.avatar_lock_user_message,avatar_lock_staff_message:this.state.avatar_lock_staff_message})}},{key:"handleSuccess",value:function(e){P["default"].dispatch((0,E.updateAvatar)(this.props.profile,e.avatar_hash)),x["default"].success(gettext("Avatar controls have been changed."))}},{key:"getFormBody",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement(h["default"],{label:gettext("Lock avatar"),helpText:gettext("Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one."),"for":"id_is_avatar_locked"},l["default"].createElement(y["default"],{id:"id_is_avatar_locked",disabled:this.state.isLoading,iconOn:"lock_outline",iconOff:"lock_open",labelOn:gettext("Disallow user from changing avatar"),labelOff:gettext("Allow user to change avatar"),onChange:this.bindInput("is_avatar_locked"),value:this.state.is_avatar_locked})),l["default"].createElement(h["default"],{label:gettext("User message"),helpText:gettext("Optional message for user explaining why he/she is prohibited form changing avatar."),"for":"id_avatar_lock_user_message"},l["default"].createElement("textarea",{id:"id_avatar_lock_user_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_user_message"),value:this.state.avatar_lock_user_message})),l["default"].createElement(h["default"],{label:gettext("Staff message"),helpText:gettext("Optional message for forum team members explaining why user is prohibited form changing avatar."),"for":"id_avatar_lock_staff_message"},l["default"].createElement("textarea",{id:"id_avatar_lock_staff_message",className:"form-control",rows:"4",disabled:this.state.isLoading,onChange:this.bindInput("avatar_lock_staff_message"),value:this.state.avatar_lock_staff_message}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),l["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}},{key:"getModalBody",value:function(){return this.state.error?l["default"].createElement(w["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():l["default"].createElement(v["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-avatar-controls":"modal-dialog modal-avatar-controls"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName(),role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Avatar controls"))),this.getModalBody()))}}]),t}(p["default"]);n["default"]=S},{"../../../reducers/users":133,"../../../services/ajax":134,"../../../services/snackbar":143,"../../../services/store":144,"../../button":56,"../../form":68,"../../form-group":67,"../../modal-loader":71,"../../modal-message":72,"../../yes-no-switch":126,react:"react"}],92:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){
+if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../button"),d=r(f),p=e("../../form"),m=r(p),h=e("../../form-group"),g=r(h),v=e("../../modal-loader"),b=r(v),y=e("../../modal-message"),_=r(y),w=e("../../../index"),E=r(w),O=e("../../../reducers/username-history"),k=e("../../../reducers/users"),N=e("../../../services/ajax"),x=r(N),j=e("../../../services/snackbar"),P=r(j),S=e("../../../services/store"),C=r(S),M=e("../../../utils/validators"),T=a(M),L=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoaded:!1,isLoading:!1,error:null,username:"",validators:{username:[T.usernameContent(),T.usernameMinLength(E["default"].get("SETTINGS")),T.usernameMaxLength(E["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;x["default"].get(this.props.profile.api_url.moderate_username).then(function(){e.setState({isLoaded:!0})},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"clean",value:function(){return this.isValid()?!0:(P["default"].error(this.validate().username[0]),!1)}},{key:"send",value:function(){return x["default"].post(this.props.profile.api_url.moderate_username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),C["default"].dispatch((0,O.addNameChange)(e,this.props.profile,this.props.user)),C["default"].dispatch((0,k.updateUsername)(this.props.profile,e.username,e.slug)),P["default"].success(gettext("Username has been changed."))}},{key:"getFormBody",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(g["default"],{label:gettext("New username"),"for":"id_username"},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Close")),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username"))))}},{key:"getModalBody",value:function(){return this.state.error?c["default"].createElement(_["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.getFormBody():c["default"].createElement(b["default"],null)}},{key:"getClassName",value:function(){return this.state.error?"modal-dialog modal-message modal-rename-user":"modal-dialog modal-rename-user"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change username"))),this.getModalBody()))}}]),t}(m["default"]);n["default"]=L},{"../../../index":127,"../../../reducers/username-history":132,"../../../reducers/users":133,"../../../services/ajax":134,"../../../services/snackbar":143,"../../../services/store":144,"../../../utils/validators":154,"../../button":56,"../../form":68,"../../form-group":67,"../../modal-loader":71,"../../modal-message":72,react:"react"}],93:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../button"),f=a(c),d=e("../../form"),p=a(d),m=e("../../form-group"),h=a(m),g=e("../../modal-loader"),v=a(g),b=e("../../modal-message"),y=a(b),_=e("../../yes-no-switch"),w=a(_),E=e("../../../index"),O=a(E),k=e("../../../services/ajax"),N=a(k),x=e("../../../services/polls"),j=a(x),P=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.countdown=function(){window.setTimeout(function(){n.state.countdown>1?(n.setState({countdown:n.state.countdown-1}),n.countdown()):n.state.confirm||n.setState({confirm:!0})},1e3)},n.state={isLoaded:!1,isLoading:!1,isDeleted:!1,error:null,countdown:5,confirm:!1,with_content:!1},n}return s(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;N["default"].get(this.props.profile.api_url["delete"]).then(function(){e.setState({isLoaded:!0}),e.countdown()},function(t){e.setState({isLoaded:!0,error:t.detail})})}},{key:"send",value:function(){return N["default"].post(this.props.profile.api_url["delete"],{with_content:this.state.with_content})}},{key:"handleSuccess",value:function(){j["default"].stop("user-profile"),this.state.with_content?this.setState({isDeleted:interpolate(gettext("%(username)s's account, threads, posts and other content has been deleted."),{username:this.props.profile.username},!0)}):this.setState({isDeleted:interpolate(gettext("%(username)s's account has been deleted and other content has been hidden."),{username:this.props.profile.username},!0)})}},{key:"getButtonLabel",value:function(){return this.state.confirm?interpolate(gettext("Delete %(username)s"),{username:this.props.profile.username},!0):interpolate(gettext("Please wait... (%(countdown)ss)"),{countdown:this.state.countdown},!0)}},{key:"getForm",value:function(){return l["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement(h["default"],{label:gettext("User content"),labelClass:"col-sm-4",controlClass:"col-sm-8","for":"id_with_content"},l["default"].createElement(w["default"],{id:"id_with_content",disabled:this.state.isLoading,labelOn:gettext("Delete together with user's account"),labelOff:gettext("Hide after deleting user's account"),onChange:this.bindInput("with_content"),value:this.state.with_content}))),l["default"].createElement("div",{className:"modal-footer"},l["default"].createElement("button",{type:"button",className:"btn btn-default","data-dismiss":"modal"},gettext("Cancel")),l["default"].createElement(f["default"],{className:"btn-danger",loading:this.state.isLoading,disabled:!this.state.confirm},this.getButtonLabel())))}},{key:"getDeletedBody",value:function(){return l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"message-icon"},l["default"].createElement("span",{className:"material-icon"},"info_outline")),l["default"].createElement("div",{className:"message-body"},l["default"].createElement("p",{className:"lead"},this.state.isDeleted),l["default"].createElement("p",null,l["default"].createElement("a",{href:O["default"].get("USERS_LIST_URL")},gettext("Return to users list")))))}},{key:"getModalBody",value:function(){return this.state.error?l["default"].createElement(y["default"],{icon:"remove_circle_outline",message:this.state.error}):this.state.isLoaded?this.state.isDeleted?this.getDeletedBody():this.getForm():l["default"].createElement(v["default"],null)}},{key:"getClassName",value:function(){return this.state.error||this.state.isDeleted?"modal-dialog modal-message modal-delete-account":"modal-dialog modal-delete-account"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName(),role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Delete user account"))),this.getModalBody()))}}]),t}(p["default"]);n["default"]=P},{"../../../index":127,"../../../services/ajax":134,"../../../services/polls":142,"../../button":56,"../../form":68,"../../form-group":67,"../../modal-loader":71,"../../modal-message":72,"../../yes-no-switch":126,react:"react"}],94:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-redux"),f=e("./avatar-controls"),d=a(f),p=e("./change-username"),m=a(p),h=e("./delete-account"),g=a(h),v=e("../../../services/modal"),b=a(v),y=function(e){return{tick:e.tick,user:e.auth,profile:e.profile}},_=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.showAvatarDialog=function(){b["default"].show((0,c.connect)(y)(d["default"]))},a.showRenameDialog=function(){b["default"].show((0,c.connect)(y)(m["default"]))},a.showDeleteDialog=function(){b["default"].show((0,c.connect)(y)(g["default"]))},s=n,o(a,s)}return s(t,e),i(t,[{key:"getAvatarButton",value:function(){return this.props.profile.acl.can_moderate_avatar?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showAvatarDialog},l["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Avatar controls"))):null}},{key:"getRenameButton",value:function(){return this.props.profile.acl.can_rename?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showRenameDialog},l["default"].createElement("span",{className:"material-icon"},"credit_card"),gettext("Change username"))):null}},{key:"getDeleteButton",value:function(){return this.props.profile.acl.can_delete?l["default"].createElement("li",null,l["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.showDeleteDialog},l["default"].createElement("span",{className:"material-icon"},"clear"),gettext("Delete account"))):null}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu dropdown-menu-right",role:"menu"},this.getAvatarButton(),this.getRenameButton(),this.getDeleteButton(),l["default"].createElement("li",{className:"divider hidden-md hidden-lg"}),l["default"].createElement("li",{className:"dropdown-buttons hidden-md hidden-lg"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleNav},l["default"].createElement("span",{className:"material-icon"},"menu"),gettext("Menu"))))}}]),t}(l["default"].Component);n["default"]=_},{"../../../services/modal":140,"./avatar-controls":91,"./change-username":92,"./delete-account":93,react:"react","react-redux":"react-redux"}],95:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.SideNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("./follow-button"),m=a(p),h=e("../../index"),g=(a(h),n.SideNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getMeta",value:function(e){return e?l["default"].createElement("span",{className:"badge"},this.props.profile[e.attr]):null}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"list-group nav-side"},this.props.pages.map(function(t){return l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta))}))}}]),t}(l["default"].Component));n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSpecialOptions",value:function(){return this.props.profile.acl.can_follow||this.props.profile.acl.can_moderate}},{key:"getFollowButton",value:function(){return this.props.profile.acl.can_follow?l["default"].createElement(m["default"],{className:"btn btn-block",profile:this.props.profile}):null}},{key:"getModerationButton",value:function(){return this.props.profile.acl.can_moderate?l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.props.toggleModeration},l["default"].createElement("span",{className:"material-icon"},"tonality"),gettext("Moderation")):null}},{key:"getSpecialOptions",value:function(){return this.showSpecialOptions()?l["default"].createElement("li",{className:"dropdown-buttons"},this.getFollowButton(),this.getModerationButton()):null}},{key:"render",value:function(){var e=this;return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},this.getSpecialOptions(),this.showSpecialOptions()?l["default"].createElement("li",{className:"divider"}):null,this.props.pages.map(function(t){return l["default"].createElement(d["default"],{path:e.props.baseUrl+t.component+"/",key:t.component},l["default"].createElement(c.Link,{to:e.props.baseUrl+t.component+"/",onClick:e.props.hideNav},l["default"].createElement("span",{className:"material-icon"},t.icon),t.name,e.getMeta(t.meta)))}))}}]),t}(g)},{"../../index":127,"../li":69,"./follow-button":88,react:"react","react-router":"react-router"}],96:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users,profile:e.profile,"username-history":e["username-history"]}}function u(){var e=[];return S["default"].get("PROFILE_PAGES").forEach(function(t){e.push(Object.assign({},t,{path:S["default"].get("PROFILE").absolute_url+t.component+"/",component:(0,d.connect)(i)(U[t.component])}))}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("../avatar"),m=a(p),h=e("./ban-details"),g=a(h),v=e("./followers"),b=a(v),y=e("./follows"),_=a(y),w=e("./username-history"),E=a(w),O=e("./Header"),k=a(O),N=e("./moderation/nav"),x=a(N),j=e("./navs"),P=e("../../index"),S=a(P),C=e("../../reducers/profile"),M=e("../../services/polls"),T=a(M),L=e("../../services/store"),R=a(L),I=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){R["default"].dispatch((0,C.dehydrate)(e))},n.toggleNav=function(){"pages"===n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:"pages"})},n.toggleModeration=function(){"moderation"===n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:"moderation"})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n.startPolling(e.profile.api_url.root),n}return s(t,e),l(t,[{key:"startPolling",value:function(e){T["default"].start({poll:"user-profile",url:e,frequency:9e4,update:this.update})}},{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"getNavDropdown",value:function(){return"pages"===this.state.dropdown?f["default"].createElement(j.CompactNav,{pages:S["default"].get("PROFILE_PAGES"),baseUrl:S["default"].get("PROFILE").absolute_url,profile:this.props.profile,toggleModeration:this.toggleModeration,hideNav:this.hideNav}):"moderation"===this.state.dropdown?f["default"].createElement(x["default"],{profile:this.props.profile,toggleNav:this.toggleNav,hideNav:this.hideNav}):null}},{key:"getClassName",value:function(){var e="page page-user-profile";return e}},{key:"render",value:function(){return f["default"].createElement("div",{className:this.getClassName()},f["default"].createElement(k["default"],{user:this.props.user,profile:this.props.profile,toggleNav:this.toggleNav,toggleModeration:this.toggleModeration}),f["default"].createElement("div",{className:this.getCompactNavClassName()},this.getNavDropdown()),f["default"].createElement("div",{className:"container"},f["default"].createElement("div",{className:"row"},f["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},f["default"].createElement("div",{className:"profile-side-avatar"},f["default"].createElement(m["default"],{user:this.props.profile,size:"400"})),f["default"].createElement(j.SideNav,{pages:S["default"].get("PROFILE_PAGES"),baseUrl:S["default"].get("PROFILE").absolute_url,profile:this.props.profile})),f["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(f["default"].Component);n["default"]=I;var A=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),l(t,[{key:"render",value:function(){return f["default"].createElement("div",{className:"container"},f["default"].createElement("p",null,"Hello, I'm placeholder for "+this.props.route.name))}}]),t}(f["default"].Component),U={posts:A,threads:A,followers:b["default"],follows:_["default"],"username-history":E["default"],"ban-details":g["default"]}},{"../../index":127,"../../reducers/profile":129,"../../services/polls":142,"../../services/store":144,"../avatar":54,"./Header":86,"./ban-details":87,"./followers":89,"./follows":90,"./moderation/nav":94,"./navs":95,"./username-history":97,react:"react","react-redux":"react-redux"}],97:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../button"),f=a(c),d=e("../search"),p=a(d),m=e("../username-history"),h=a(m),g=e("../../index"),v=a(g),b=e("../../reducers/username-history"),y=e("../../services/ajax"),_=a(y),w=e("../../services/snackbar"),E=a(w),O=e("../../services/store"),k=a(O),N=e("../../services/page-title"),x=a(N),j=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.loadMore=function(){n.setState({isBusy:!0}),n.loadChanges(n.state.page+1,n.state.search)},n.search=function(e){n.setState({isLoaded:!1,isBusy:!0,search:e.target.value,count:0,more:0,page:1,pages:1}),n.loadChanges(1,e.target.value)},v["default"].has("PROFILE_NAME_HISTORY")?n.initWithPreloadedData(v["default"].pop("PROFILE_NAME_HISTORY")):n.initWithoutPreloadedData(),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,isBusy:!1,search:"",count:e.count,more:e.more,page:e.page,pages:e.pages},k["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1,isBusy:!1,search:"",count:0,more:0,page:1,pages:1},this.loadChanges()}},{key:"loadChanges",value:function(){var e=this,t=arguments.length<=0||void 0===arguments[0]?1:arguments[0],n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];_["default"].get(v["default"].get("USERNAME_CHANGES_API"),{user:this.props.profile.id,search:n,page:t||1},"search-username-history").then(function(n){1===t?k["default"].dispatch((0,b.dehydrate)(n.results)):k["default"].dispatch((0,b.append)(n.results)),e.setState({isLoaded:!0,isBusy:!1,count:n.count,more:n.more,page:n.page,pages:n.pages})},function(e){E["default"].apiError(e)})}},{key:"componentDidMount",value:function(){x["default"].set({title:gettext("Username history"),parent:this.props.profile.username})}},{key:"getLabel",value:function(){if(this.state.isLoaded){if(this.state.search){var e=ngettext("Found %(changes)s username change.","Found %(changes)s username changes.",this.state.count);return interpolate(e,{changes:this.state.count},!0)}if(this.props.profile.id===this.props.user.id){var e=ngettext("Your username was changed %(changes)s time.","Your username was changed %(changes)s times.",this.state.count);return interpolate(e,{changes:this.state.count},!0)}var e=ngettext("%(username)s's username was changed %(changes)s time.","%(username)s's username was changed %(changes)s times.",this.state.count);return interpolate(e,{username:this.props.profile.username,changes:this.state.count},!0)}return gettext("Loading...")}},{key:"getEmptyMessage",value:function(){return this.state.search?gettext("Search returned no username changes matching specified criteria."):this.props.user.id===this.props.profile.id?gettext("No name changes have been recorded for your account."):interpolate(gettext("%(username)s's username was never changed."),{username:this.props.profile.username},!0)}},{key:"getMoreButton",value:function(){return this.state.more?l["default"].createElement("div",{className:"pager-more"},l["default"].createElement(f["default"],{loading:this.state.isBusy,onClick:this.loadMore},interpolate(gettext("Show older (%(more)s)"),{more:this.state.more},!0))):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"profile-username-history"},l["default"].createElement("nav",{className:"toolbar"},l["default"].createElement("h3",{className:"toolbar-left"},this.getLabel()),l["default"].createElement(p["default"],{className:"toolbar-right",value:this.state.search,onChange:this.search,placeholder:gettext("Search history...")})),l["default"].createElement(h["default"],{isLoaded:this.state.isLoaded,emptyMessage:this.getEmptyMessage(),changes:this.props["username-history"]}),this.getMoreButton())}}]),t}(l["default"].Component);n["default"]=j},{"../../index":127,"../../reducers/username-history":132,"../../services/ajax":134,"../../services/page-title":141,"../../services/snackbar":143,"../../services/store":144,"../button":56,"../search":103,"../username-history":111,react:"react"}],98:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./loader"),f=a(c),d=e("./register.js"),p=a(d),m=e("../services/captcha"),h=a(m),g=e("../services/modal"),v=a(g),b=e("../services/snackbar"),y=a(b),_=e("../services/zxcvbn"),w=a(_),E=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.showRegisterModal=function(){"closed"===misago.get("SETTINGS").account_activation?y["default"].info(gettext("New registrations are currently disabled.")):n.state.isLoaded?v["default"].show(p["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),v["default"].show(p["default"])}))},n.state={isLoading:!1,isLoaded:!1},n}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className+(this.state.isLoading?" btn-loading":"")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showRegisterModal,className:"btn "+this.getClassName(),disabled:this.state.isLoaded},gettext("Register"),this.state.isLoading?l["default"].createElement(f["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":136,"../services/modal":140,"../services/snackbar":143,"../services/zxcvbn":145,"./loader":70,"./register.js":99,react:"react"}],99:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.RegisterComplete=n.RegisterForm=void 0;var l=e("react"),c=r(l),f=e("./button"),d=r(f),p=e("./form"),m=r(p),h=e("./form-group"),g=r(h),v=e("./password-strength"),b=r(v),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),O=e("../services/auth"),k=r(O),N=e("../services/captcha"),x=r(N),j=e("../services/modal"),P=r(j),S=e("../services/snackbar"),C=r(S),M=e("../utils/banned-page"),T=r(M),L=e("../utils/validators"),R=a(L),I=n.RegisterForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,username:"",email:"",password:"",captcha:"",validators:{username:[R.usernameContent(),R.usernameMinLength(_["default"].get("SETTINGS")),R.usernameMaxLength(_["default"].get("SETTINGS"))],email:[R.email()],password:[R.passwordMinLength(_["default"].get("SETTINGS"))],captcha:x["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(C["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return E["default"].post(_["default"].get("USERS_API"),{username:this.state.username,email:this.state.email,password:this.state.password,captcha:this.state.captcha})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){400===e.status?(this.setState({errors:Object.assign({},this.state.errors,e)}),C["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),P["default"].hide()):C["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal",
+"aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(g["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(g["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(g["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(b["default"],{password:this.state.password,inputs:[this.state.username,this.state.email]})},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control","aria-describedby":"id_password_status",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password})),x["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(m["default"]),A=n.RegisterComplete=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getLead",value:function(){return"user"===this.props.activation?gettext("%(username)s, your account has been created but you need to activate it before you will be able to sign in."):"admin"===this.props.activation?gettext("%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in."):void 0}},{key:"getSubscript",value:function(){return"user"===this.props.activation?gettext("We have sent an e-mail to %(email)s with link that you have to click to activate your account."):"admin"===this.props.activation?gettext("We will send an e-mail to %(email)s when this takes place."):void 0}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-message modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Registration complete"))),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},interpolate(this.getLead(),{username:this.props.username},!0)),c["default"].createElement("p",null,interpolate(this.getSubscript(),{email:this.props.email},!0))))))}}]),t}(c["default"].Component),U=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.completeRegistration=function(e){"active"===e.activation?(P["default"].hide(),k["default"].signIn(e)):n.setState({complete:e})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(A,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(I,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=U},{"../index":127,"../services/ajax":134,"../services/auth":135,"../services/captcha":136,"../services/modal":140,"../services/snackbar":143,"../utils/banned-page":146,"../utils/validators":154,"./button":56,"./form":68,"./form-group":67,"./password-strength":85,react:"react"}],100:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.LinkSent=n.RequestLinkForm=void 0;var l=e("react"),c=r(l),f=e("../index"),d=r(f),p=e("./button"),m=r(p),h=e("./form"),g=r(h),v=e("../services/ajax"),b=r(v),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),O=e("../utils/banned-page"),k=r(O),N=n.RequestLinkForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[E.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(_["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return b["default"].post(d["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,k["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(g["default"]),x=n.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Activation link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),j=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"render",value:function(){return this.state.complete?c["default"].createElement(x,{user:this.state.complete,callback:this.reset}):c["default"].createElement(N,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=j},{"../index":127,"../services/ajax":134,"../services/snackbar":143,"../utils/banned-page":146,"../utils/validators":154,"./button":56,"./form":68,react:"react"}],101:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.AccountInactivePage=n.LinkSent=n.RequestResetForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),g=r(h),v=e("./form"),b=r(v),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),O=e("../utils/validators"),k=a(O),N=e("../utils/banned-page"),x=r(N),j=n.RequestResetForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,email:"",validators:{email:[k.email()]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(E["default"].error(gettext("Enter a valid email address.")),!1)}},{key:"send",value:function(){return _["default"].post(m["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,x["default"])(e.ban):E["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(g["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),P=n.LinkSent=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("Reset password link was sent to %(email)s"),{email:this.props.user.email},!0)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-password-reset well-done"},c["default"].createElement("div",{className:"done-message"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",null,this.getMessage())),c["default"].createElement("button",{type:"button",className:"btn btn-primary btn-block",onClick:this.props.callback},gettext("Request another link"))))}}]),t}(c["default"].Component),S=n.AccountInactivePage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getActivateButton",value:function(){return"inactive_user"===this.props.activation?c["default"].createElement("p",null,c["default"].createElement("a",{href:m["default"].get("REQUEST_ACTIVATION_URL")},gettext("Activate your account."))):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-info page-forgotten-password-inactive"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"info_outline")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},gettext("Your account is inactive.")),c["default"].createElement("p",null,this.props.message),this.getActivateButton()))))}}]),t}(c["default"].Component),C=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.complete=function(e){n.setState({complete:e})},n.reset=function(){n.setState({complete:!1})},n.state={complete:!1},n}return i(t,e),u(t,[{key:"showInactivePage",value:function(e){d["default"].render(c["default"].createElement(S,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(P,{user:this.state.complete,callback:this.reset}):c["default"].createElement(j,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=C},{"../index":127,"../services/ajax":134,"../services/snackbar":143,"../utils/banned-page":146,"../utils/validators":154,"./button":56,"./form":68,react:"react","react-dom":"react-dom"}],102:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.PasswordChangedPage=n.ResetPasswordForm=void 0;var l=e("react"),c=r(l),f=e("react-dom"),d=r(f),p=e("../index"),m=r(p),h=e("./button"),g=r(h),v=e("./form"),b=r(v),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),O=e("../services/auth"),k=r(O),N=e("../services/modal"),x=r(N),j=e("../services/snackbar"),P=r(j),S=e("../utils/validators"),C=a(S),M=e("../utils/banned-page"),T=r(M),L=n.ResetPasswordForm=function(e){function t(e){o(this,t);var n=s(this,Object.getPrototypeOf(t).call(this,e));return n.state={isLoading:!1,password:"",validators:{password:[C.passwordMinLength(m["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?P["default"].error(this.state.errors.password[0]):P["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(m["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):P["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(g["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),R=n.PasswordChangedPage=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getMessage",value:function(){return interpolate(gettext("%(username)s, your password has been changed successfully."),{username:this.props.user.username},!0)}},{key:"showSignIn",value:function(){x["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),I=function(e){function t(){var e,n,a,r;o(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=s(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.complete=function(e){k["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),d["default"].render(c["default"].createElement(R,{user:e}),document.getElementById("page-mount"))},r=n,s(a,r)}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement(L,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=I},{"../index":127,"../services/ajax":134,"../services/auth":135,"../services/modal":140,"../services/snackbar":143,"../utils/banned-page":146,"../utils/validators":154,"./button":56,"./form":68,"./sign-in.js":105,react:"react","react-dom":"react-dom"}],103:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.className?"form-search "+this.props.className:"form-search"}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("input",{type:"text",className:"form-control",value:this.props.value,onChange:this.props.onChange,placeholder:this.props.placeholder||gettext("Search...")}),l["default"].createElement("span",{className:"material-icon"},"search"))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],104:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.change=function(e){return function(){a.props.onChange({target:{value:e}})}},s=n,o(a,s)}return s(t,e),i(t,[{key:"getChoice",value:function(){var e=this,t=null;return this.props.choices.map(function(n){n.value===e.props.value&&(t=n)}),t}},{key:"getIcon",value:function(){return this.getChoice().icon}},{key:"getLabel",value:function(){return this.getChoice().label}},{key:"render",value:function(){var e=this;return l["default"].createElement("div",{className:"btn-group btn-select-group"},l["default"].createElement("button",{type:"button",className:"btn btn-select dropdown-toggle",id:this.props.id||null,"data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel()),l["default"].createElement("ul",{className:"dropdown-menu"},this.props.choices.map(function(t,n){return l["default"].createElement("li",{key:n},l["default"].createElement("button",{type:"button",className:"btn-link",onClick:e.change(t.value)},l["default"].createElement("span",{className:"material-icon"},t.icon),t.label))})))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],105:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../index"),f=a(c),d=e("./button"),p=a(d),m=e("./form"),h=a(m),g=e("../services/ajax"),v=a(g),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),O=a(E),k=function(e){function t(e){r(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 s(t,e),i(t,[{key:"clean",value:function(){return this.isValid()?!0:(w["default"].error(gettext("Fill out both fields.")),!1)}},{key:"send",value:function(){return v["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(v["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,O["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,O["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:f["default"].get("REQUEST_ACTIVATION_URL"),className:"btn btn-success btn-block"},gettext("Activate account")):null}},{key:"render",value:function(){return l["default"].createElement("div",{className:"modal-dialog modal-sm modal-sign-in",role:"document"},l["default"].createElement("div",{className:"modal-content"},l["default"].createElement("div",{className:"modal-header"},l["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},l["default"].createElement("span",{"aria-hidden":"true"},"×")),l["default"].createElement("h4",{className:"modal-title"},gettext("Sign in"))),l["default"].createElement("form",{onSubmit:this.handleSubmit},l["default"].createElement("div",{className:"modal-body"},l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_username",className:"form-control",type:"text",disabled:this.state.isLoading,placeholder:gettext("Username or e-mail"),onChange:this.bindInput("username"),value:this.state.username}))),l["default"].createElement("div",{className:"form-group"},l["default"].createElement("div",{className:"control-input"},l["default"].createElement("input",{id:"id_password",className:"form-control",type:"password",disabled:this.state.isLoading,placeholder:gettext("Password"),onChange:this.bindInput("password"),value:this.state.password})))),l["default"].createElement("div",{className:"modal-footer"},this.getActivationButton(),l["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:f["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=k},{"../index":127,"../services/ajax":134,"../services/modal":140,"../services/snackbar":143,"../utils/banned-page":146,"./button":56,"./form":68,react:"react"}],106:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.snackbar}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0,n.select=i;var l=e("react"),c=a(l),f={info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-danger"};n.Snackbar=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"getSnackbarClass",value:function(){var e="alerts-snackbar";return e+=this.props.isVisible?" in":" out"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getSnackbarClass()},c["default"].createElement("p",{className:"alert "+f[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],107:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactGuestNav=n.GuestNav=n.GuestMenu=void 0;var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../register-button"),p=a(d),m=e("../sign-in.js"),h=a(m),g=e("../../services/mobile-navbar-dropdown"),v=a(g),b=e("../../services/modal"),y=a(b),_=n.GuestMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showSignInModal",value:function(){y["default"].show(h["default"])}},{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},l["default"].createElement("li",{className:"guest-preview"},l["default"].createElement("h4",null,gettext("You are browsing as guest.")),l["default"].createElement("p",null,gettext("Sign in or register to start and participate in discussions.")),l["default"].createElement("div",{className:"row"},l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.showSignInModal
+},gettext("Sign in"))),l["default"].createElement("div",{className:"col-xs-6"},l["default"].createElement(p["default"],{className:"btn-primary btn-block"},gettext("Register"))))))}}]),t}(l["default"].Component);n.GuestNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",{className:"nav nav-guest"},l["default"].createElement("button",{type:"button",className:"btn navbar-btn btn-default",onClick:this.showSignInModal},gettext("Sign in")),l["default"].createElement(p["default"],{className:"navbar-btn btn-primary"},gettext("Register")))}}]),t}(_),n.CompactGuestNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"showGuestMenu",value:function(){v["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(f["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":139,"../../services/modal":140,"../avatar":54,"../register-button":98,"../sign-in.js":105,react:"react"}],108:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return e.auth}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserMenu=n.UserMenu=void 0,n.select=i;var l=e("react"),c=a(l),f=e("./guest-nav"),d=e("./user-nav");n.UserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.UserNav,{user:this.props.user}):c["default"].createElement(f.GuestNav,null)}}]),t}(c["default"].Component),n.CompactUserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return this.props.isAuthenticated?c["default"].createElement(d.CompactUserNav,{user:this.props.user}):c["default"].createElement(f.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":107,"./user-nav":109,react:"react"}],109:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{user:e.auth.user}}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactUserNav=n.UserNav=n.UserMenu=void 0,n.selectUserMenu=i;var l=e("react"),c=a(l),f=e("react-redux"),d=e("../avatar"),p=a(d),m=e("../change-avatar/root"),h=a(m),g=e("../../index"),v=a(g),b=e("../../services/mobile-navbar-dropdown"),y=a(b),_=e("../../services/modal"),w=a(_),E=n.UserMenu=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"logout",value:function(){var e=confirm(gettext("Are you sure you want to sign out?"));e&&$("#hidden-logout-form").submit()}},{key:"changeAvatar",value:function(){w["default"].show((0,f.connect)(m.select)(h["default"]))}},{key:"render",value:function(){return c["default"].createElement("ul",{className:"dropdown-menu user-dropdown dropdown-menu-right",role:"menu"},c["default"].createElement("li",{className:"dropdown-header"},c["default"].createElement("strong",null,this.props.user.username)),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",null,c["default"].createElement("a",{href:this.props.user.absolute_url},c["default"].createElement("span",{className:"material-icon"},"account_circle"),gettext("See your profile"))),c["default"].createElement("li",null,c["default"].createElement("a",{href:v["default"].get("USERCP_URL")},c["default"].createElement("span",{className:"material-icon"},"done_all"),gettext("Change options"))),c["default"].createElement("li",null,c["default"].createElement("button",{type:"button",className:"btn-link",onClick:this.changeAvatar},c["default"].createElement("span",{className:"material-icon"},"portrait"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-buttons"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("ul",{className:"ul nav navbar-nav nav-user"},c["default"].createElement("li",{className:"dropdown"},c["default"].createElement("a",{href:this.props.user.absolute_url,className:"dropdown-toggle","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",role:"button"},c["default"].createElement(p["default"],{user:this.props.user,size:"64"})),c["default"].createElement(E,{user:this.props.user})))}}]),t}(c["default"].Component),n.CompactUserNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),u(t,[{key:"showUserMenu",value:function(){y["default"].showConnected("user-menu",(0,f.connect)(i)(E))}},{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":127,"../../services/mobile-navbar-dropdown":139,"../../services/modal":140,"../avatar":54,"../change-avatar/root":65,react:"react","react-redux":"react-redux"}],110:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StatusLabel=n.StatusIcon=void 0;var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClass",value:function(){var e="";return this.props.status.is_banned?e="banned":this.props.status.is_hidden?e="offline":this.props.status.is_online_hidden?e="online":this.props.status.is_offline_hidden?e="offline":this.props.status.is_online?e="online":this.props.status.is_offline&&(e="offline"),"user-status user-"+e}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.getClass()},this.props.children)}}]),t}(l["default"].Component);n["default"]=c;n.StatusIcon=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getIcon",value:function(){return this.props.status.is_banned?"remove_circle_outline":this.props.status.is_hidden?"help_outline":this.props.status.is_online_hidden?"label":this.props.status.is_offline_hidden?"label_outline":this.props.status.is_online?"lens":this.props.status.is_offline?"panorama_fish_eye":void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:"material-icon status-icon"},this.getIcon())}}]),t}(l["default"].Component),n.StatusLabel=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getHelp",value:function(){return this.props.status.is_banned?this.props.status.banned_until?interpolate(gettext("%(username)s is banned until %(ban_expires)s"),{username:this.props.user.username,ban_expires:this.props.status.banned_until.format("LL, LT")},!0):interpolate(gettext("%(username)s is banned"),{username:this.props.user.username},!0):this.props.status.is_hidden?interpolate(gettext("%(username)s is hiding presence"),{username:this.props.user.username},!0):this.props.status.is_online_hidden?interpolate(gettext("%(username)s is online (hidden)"),{username:this.props.user.username},!0):this.props.status.is_offline_hidden?interpolate(gettext("%(username)s was last seen %(last_click)s (hidden)"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):this.props.status.is_online?interpolate(gettext("%(username)s is online"),{username:this.props.user.username},!0):this.props.status.is_offline?interpolate(gettext("%(username)s was last seen %(last_click)s"),{username:this.props.user.username,last_click:this.props.status.last_click.fromNow()},!0):void 0}},{key:"getLabel",value:function(){return this.props.status.is_banned?gettext("Banned"):this.props.status.is_hidden?gettext("Hidden"):this.props.status.is_online_hidden?gettext("Online (hidden)"):this.props.status.is_offline_hidden?gettext("Offline (hidden)"):this.props.status.is_online?gettext("Online"):this.props.status.is_offline?gettext("Offline"):void 0}},{key:"render",value:function(){return l["default"].createElement("span",{className:this.props.className||"status-label",title:this.getHelp()},this.getLabel())}}]),t}(l["default"].Component)},{react:"react"}],111:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("./avatar"),d=r(f),p=e("../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"renderUserAvatar",value:function(e){return e.changed_by?c["default"].createElement("a",{href:e.changed_by.absolute_url,className:"user-avatar"},c["default"].createElement(d["default"],{user:e.changed_by,size:"100"})):c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"100"}))}},{key:"renderUsername",value:function(e){return e.changed_by?c["default"].createElement("a",{href:e.changed_by.absolute_url,className:"item-title"},e.changed_by.username):c["default"].createElement("span",{className:"item-title"},e.changed_by_username)}},{key:"renderHistory",value:function(){var e=this;return c["default"].createElement("div",{className:"username-history ui-ready"},c["default"].createElement("ul",{className:"list-group"},this.props.changes.map(function(t){return c["default"].createElement("li",{className:"list-group-item",key:t.id},c["default"].createElement("div",{className:"username-change-avatar"},e.renderUserAvatar(t)),c["default"].createElement("div",{className:"username-change-author"},e.renderUsername(t)),c["default"].createElement("div",{className:"username-change"},t.old_username,c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),t.new_username),c["default"].createElement("div",{className:"username-change-date"},c["default"].createElement("abbr",{title:t.changed_on.format("LLL")},t.changed_on.fromNow())))})))}},{key:"getEmptyMessage",value:function(){return this.props.emptyMessage?this.props.emptyMessage:gettext("No name changes have been recorded for your account.")}},{key:"renderEmptyHistory",value:function(){return c["default"].createElement("div",{className:"username-history ui-ready"},c["default"].createElement("ul",{className:"list-group"},c["default"].createElement("li",{className:"list-group-item empty-message"},this.getEmptyMessage())))}},{key:"renderHistoryPreview",value:function(){return c["default"].createElement("div",{className:"username-history ui-preview"},c["default"].createElement("ul",{className:"list-group"},m.range(3,5).map(function(e){return c["default"].createElement("li",{className:"list-group-item",key:e},c["default"].createElement("div",{className:"username-change-avatar"},c["default"].createElement("span",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"100"}))),c["default"].createElement("div",{className:"username-change-author"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,100)+"px"}}," ")),c["default"].createElement("div",{className:"username-change"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "),c["default"].createElement("span",{className:"material-icon"},"arrow_forward"),c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("div",{className:"username-change-date"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](50,100)+"px"}}," ")))})))}},{key:"render",value:function(){return this.props.isLoaded?this.props.changes.length?this.renderHistory():this.renderEmptyHistory():this.renderHistoryPreview()}}]),t}(c["default"].Component);n["default"]=h},{"../utils/random":151,"./avatar":54,react:"react"}],112:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./user-card"),f=a(c),d=e("./user-preview"),p=a(d),m=e("../../utils/batch"),h=a(m),g=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?l["default"].createElement(Pager,this.props):null}},{key:"getClassName",value:function(){return this.props.className?"users-cards-list "+this.props.className+" ui-ready":"users-cards-list ui-ready"}},{key:"getColClassName",value:function(){return"col-md-"+12/this.props.cols}},{key:"getBody",value:function(){var e=this;if(this.props.isLoaded)return(0,h["default"])(this.props.users,this.props.cols).map(function(t,n){return l["default"].createElement("div",{className:"row",key:n},t.map(function(t){return l["default"].createElement("div",{className:e.getColClassName(),key:t.id},l["default"].createElement(f["default"],{user:t,showStatus:e.props.showStatus,showRank:e.props.showRank}))}))});for(var t=[],n=0;n<this.props.cols;n++)t.push(n);return l["default"].createElement("div",{className:"row"},t.map(function(t){return l["default"].createElement("div",{className:e.getColClassName(),key:t},l["default"].createElement(p["default"],{showStatus:e.props.showStatus}))}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"users-cards-list ui-ready"},this.getBody())}}]),t}(l["default"].Component);n["default"]=g},{"../../utils/batch":147,"./user-card":113,"./user-preview":114,react:"react"}],113:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../avatar"),f=a(c),d=e("../user-status"),p=a(d),m=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.user.rank.css_class?"user-card user-card-"+this.props.user.rank.css_class+" ui-ready":"user-card ui-ready"}},{key:"getUserStatus",value:function(){return this.props.showStatus?this.props.user.status?l["default"].createElement(p["default"],{user:this.props.user,status:this.props.user.status},l["default"].createElement(d.StatusIcon,{user:this.props.user,status:this.props.user.status}),l["default"].createElement(d.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label"})):l["default"].createElement("span",{className:"user-status"},l["default"].createElement("span",{className:"status-icon ui-preview"}," "),l["default"].createElement("span",{className:"status-label ui-preview"}," ")):null}},{key:"getRankName",value:function(){return this.props.showRank?this.props.user.rank.is_tab?l["default"].createElement("a",{href:this.props.user.rank.absolute_url,className:"item-title rank-name"},this.props.user.rank.name):l["default"].createElement("span",{className:"item-title rank-name"},this.props.user.rank.name):null}},{key:"getUserTitle",value:function(){return this.props.user.title?l["default"].createElement("span",{className:"user-title"},this.props.user.title):null}},{key:"getUserJoinedOn",value:function(){var e=interpolate(gettext("Joined on %(joined_on)s"),{joined_on:this.props.user.joined_on.format("LL, LT")},!0),t=interpolate(gettext("Joined %(joined_on)s"),{joined_on:this.props.user.joined_on.fromNow()},!0);return l["default"].createElement("span",{className:"user-joined-on",title:e},t)}},{key:"render",value:function(){return l["default"].createElement("div",{className:this.getClassName()},l["default"].createElement("div",{className:"user-card-bg-image"},l["default"].createElement(f["default"],{user:this.props.user,size:"400",className:"bg-image"}),l["default"].createElement("div",{className:"user-card-bg"},l["default"].createElement("div",{className:"user-details"},l["default"].createElement("div",{className:"user-avatar"},l["default"].createElement("a",{href:this.props.user.absolute_url},l["default"].createElement(f["default"],{user:this.props.user,size:"400"}))),l["default"].createElement("h4",{className:"user-name"},l["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),l["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),this.getRankName(),this.getUserTitle(),this.getUserJoinedOn())),l["default"].createElement("div",{className:"user-card-stats"},l["default"].createElement("ul",{className:"list-unstyled"},l["default"].createElement("li",{className:"user-posts-count"},l["default"].createElement("strong",null,this.props.user.posts),l["default"].createElement("small",null,gettext("posts"))),l["default"].createElement("li",{className:"user-threads-count"},l["default"].createElement("strong",null,this.props.user.threads),l["default"].createElement("small",null,gettext("threads"))),l["default"].createElement("li",{className:"user-followers-count"},l["default"].createElement("strong",null,this.props.user.followers),l["default"].createElement("small",null,gettext("followers"))))))))}}]),t}(l["default"].Component);n["default"]=m},{"../avatar":54,"../user-status":110,react:"react"}],114:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../avatar"),d=r(f),p=e("../../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"getUserStatus",value:function(){return this.props.showStatus?c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview"}," ")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"user-card ui-preview"},c["default"].createElement("div",{className:"user-card-bg-image"},c["default"].createElement(d["default"],{size:"400",className:"bg-image"}),c["default"].createElement("div",{className:"user-card-bg"},c["default"].createElement("div",{className:"user-details"},c["default"].createElement("div",{className:"user-avatar"},c["default"].createElement(d["default"],{size:"400"})),c["default"].createElement("h4",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](60,150)+"px"}}," "))),c["default"].createElement("p",{className:"user-subscript"},this.getUserStatus(),c["default"].createElement("span",{className:"user-joined-on"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")))),c["default"].createElement("div",{className:"user-card-stats"},c["default"].createElement("ul",{className:"list-unstyled"},c["default"].createElement("li",{className:"user-posts-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("posts"))),c["default"].createElement("li",{className:"user-threads-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("threads"))),c["default"].createElement("li",{className:"user-followers-count"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text"}," ")),c["default"].createElement("small",null,gettext("followers"))))))))}}]),t}(c["default"].Component);n["default"]=h},{"../../utils/random":151,"../avatar":54,react:"react"}],115:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getEmptyMessage",value:function(){return interpolate(gettext("No users have posted any new messages during last %(days)s days."),{days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return l["default"].createElement("div",{className:"active-posters-list"},l["default"].createElement("div",{className:"container"},l["default"].createElement("p",{className:"lead"},this.getEmptyMessage())))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],116:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-router"),f=e("../../avatar"),d=a(f),p=e("../../user-status"),m=a(p),h=e("../../../index"),g=a(h),v=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.rank.css_class?"list-group-item list-group-rank-"+this.props.rank.css_class:"list-group-item"}},{key:"getUserStatus",value:function(){return this.props.user.status?l["default"].createElement(m["default"],{user:this.props.user,status:this.props.user.status},l["default"].createElement(p.StatusIcon,{user:this.props.user,status:this.props.user.status}),l["default"].createElement(p.StatusLabel,{user:this.props.user,status:this.props.user.status,className:"status-label hidden-xs hidden-sm"})):l["default"].createElement("span",{className:"user-status"},l["default"].createElement("span",{className:"status-icon ui-preview"}," "),l["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," "))}},{key:"getRankName",value:function(){if(this.props.rank.is_tab){var e=g["default"].get("USERS_LIST_URL")+this.props.rank.slug+"/";return l["default"].createElement(c.Link,{to:e,className:"item-title rank-name"},this.props.rank.name)}return l["default"].createElement("span",{className:"item-title rank-name"},this.props.rank.name)}},{key:"getUserTitle",value:function(){return this.props.user.title?l["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},this.props.user.title):null}},{key:"render",value:function(){return l["default"].createElement("li",{className:this.getClassName()},l["default"].createElement("div",{className:"rank-user-avatar"},l["default"].createElement("a",{href:this.props.user.absolute_url},l["default"].createElement(d["default"],{user:this.props.user,size:"50"}))),l["default"].createElement("div",{className:"rank-user"},l["default"].createElement("div",{className:"user-name"},l["default"].createElement("a",{href:this.props.user.absolute_url,className:"item-title"},this.props.user.username)),this.getUserStatus(),this.getRankName(),this.getUserTitle()),l["default"].createElement("div",{className:"rank-position"},l["default"].createElement("strong",null,"#",this.props.counter),l["default"].createElement("small",null,gettext("Rank"))),l["default"].createElement("div",{className:"rank-posts-counted"},l["default"].createElement("strong",null,this.props.user.meta.score),l["default"].createElement("small",null,gettext("Ranked posts"))),l["default"].createElement("div",{className:"rank-posts-total"},l["default"].createElement("strong",null,this.props.user.posts),l["default"].createElement("small",null,gettext("Total posts"))))}}]),t}(l["default"].Component);n["default"]=v},{"../../../index":127,"../../avatar":54,"../../user-status":110,react:"react","react-router":"react-router"}],117:[function(e,t,n){"use strict";function a(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function");
+}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=r(l),f=e("../../avatar"),d=r(f),p=e("../../../utils/random"),m=a(p),h=function(e){function t(){return o(this,t),s(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"render",value:function(){return c["default"].createElement("div",{className:"active-posters-list"},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead ui-preview-paragraph"},m.range(3,4).map(function(e){return c["default"].createElement("span",{key:e,className:"ui-preview-text",style:{width:m["int"](50,120)+"px"}}," ")})),c["default"].createElement("div",{className:"active-posters ui-preview"},c["default"].createElement("ul",{className:"list-group"},m.range(5,10).map(function(e,t){return c["default"].createElement("li",{key:e,className:"list-group-item"},c["default"].createElement("div",{className:"rank-user-avatar"},c["default"].createElement("span",null,c["default"].createElement(d["default"],{size:"50"}))),c["default"].createElement("div",{className:"rank-user"},c["default"].createElement("div",{className:"user-name"},c["default"].createElement("span",{className:"item-title"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,80)+"px"}}," "))),c["default"].createElement("span",{className:"user-status"},c["default"].createElement("span",{className:"status-icon ui-preview"}," "),c["default"].createElement("span",{className:"status-label ui-preview hidden-xs hidden-sm"}," ")),c["default"].createElement("span",{className:"rank-name"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," ")),c["default"].createElement("span",{className:"user-title hidden-xs hidden-sm"},c["default"].createElement("span",{className:"ui-preview-text",style:{width:m["int"](30,50)+"px"}}," "))),c["default"].createElement("div",{className:"rank-position"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Rank"))),c["default"].createElement("div",{className:"rank-posts-counted"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Ranked posts"))),c["default"].createElement("div",{className:"rank-posts-total"},c["default"].createElement("strong",null,c["default"].createElement("span",{className:"ui-preview-text",style:{width:"30px"}}," ")),c["default"].createElement("small",null,gettext("Total posts"))))})))))}}]),t}(c["default"].Component);n["default"]=h},{"../../../utils/random":151,"../../avatar":54,react:"react"}],118:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./list-item"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getLeadMessage",value:function(){var e=ngettext("%(posters)s most active poster from last %(days)s days.","%(posters)s most active posters from last %(days)s days.",this.props.count);return interpolate(e,{posters:this.props.count,days:this.props.trackedPeriod},!0)}},{key:"render",value:function(){return l["default"].createElement("div",{className:"active-posters-list"},l["default"].createElement("div",{className:"container"},l["default"].createElement("p",{className:"lead"},this.getLeadMessage()),l["default"].createElement("div",{className:"active-posters ui-ready"},l["default"].createElement("ul",{className:"list-group"},this.props.users.map(function(e,t){return l["default"].createElement(f["default"],{user:e,rank:e.rank,counter:t+1,key:e.id})})))))}}]),t}(l["default"].Component);n["default"]=d},{"./list-item":116,react:"react"}],119:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./list-empty"),f=a(c),d=e("./list-loading"),p=a(d),m=e("./list"),h=a(m),g=e("../../../index"),v=a(g),b=e("../../../reducers/users"),y=e("../../../services/polls"),_=a(y),w=e("../../../services/store"),E=a(w),O=e("../../../services/page-title"),k=a(O),N=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){E["default"].dispatch((0,b.dehydrate)(e.results)),n.setState({isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count})},v["default"].has("USERS")?n.initWithPreloadedData(v["default"].pop("USERS")):n.initWithoutPreloadedData(),n.startPolling(),n}return s(t,e),i(t,[{key:"initWithPreloadedData",value:function(e){this.state={isLoaded:!0,trackedPeriod:e.tracked_period,count:e.count},E["default"].dispatch((0,b.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(){_["default"].start({poll:"active-posters",url:v["default"].get("USERS_API"),data:{list:"active"},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){k["default"].set({title:this.props.route.extra.name,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){_["default"].stop("active-posters")}},{key:"render",value:function(){return this.state.isLoaded?this.state.count>0?l["default"].createElement(h["default"],{users:this.props.users,trackedPeriod:this.state.trackedPeriod,count:this.state.count}):l["default"].createElement(f["default"],{trackedPeriod:this.state.trackedPeriod}):l["default"].createElement(p["default"],null)}}]),t}(l["default"].Component);n["default"]=N},{"../../../index":127,"../../../reducers/users":133,"../../../services/page-title":141,"../../../services/polls":142,"../../../services/store":144,"./list":118,"./list-empty":115,"./list-loading":117,react:"react"}],120:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.CompactNav=n.TabsNav=void 0;var u=e("react"),l=a(u),c=e("react-router"),f=e("../li"),d=a(f),p=e("../../index"),m=(a(p),function(e,t){var n=e;return n+="rank"===t.component?t.slug:t.component,n+"/"}),h=function(e,t,n){return t.map(function(t){var a=m(e,t);return l["default"].createElement(d["default"],{path:a,key:a},l["default"].createElement(c.Link,{to:a,onClick:n},t.name))})};n.TabsNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"nav nav-pills"},h(this.props.baseUrl,this.props.lists))}}]),t}(l["default"].Component),n.CompactNav=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("ul",{className:"dropdown-menu",role:"menu"},h(this.props.baseUrl,this.props.lists,this.props.hideNav))}}]),t}(l["default"].Component)},{"../../index":127,"../li":69,react:"react","react-router":"react-router"}],121:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("../../users-list/root"),f=a(c),d=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(f["default"],{isLoaded:!1,cols:3,showStatus:!0}))}}]),t}(l["default"].Component);n["default"]=d},{"../../users-list/root":112,react:"react"}],122:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("./pager"),f=a(c),d=e("../../users-list/root"),p=a(d),m=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPager",value:function(){return this.props.pages>1?l["default"].createElement(f["default"],this.props):null}},{key:"render",value:function(){return l["default"].createElement("div",null,l["default"].createElement(p["default"],{users:this.props.users,showStatus:!0,cols:3,isLoaded:!0}),this.getPager())}}]),t}(l["default"].Component);n["default"]=m},{"../../users-list/root":112,"./pager":123,react:"react"}],123:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=e("react-router"),f=e("../../../utils/reset-scroll"),d=a(f),p=function(e){function t(){return r(this,t),o(this,Object.getPrototypeOf(t).apply(this,arguments))}return s(t,e),i(t,[{key:"getPreviousPage",value:function(){if(this.props.previous||this.props.first){var e=this.props.baseUrl;return this.props.previous&&(e+=this.props.previous+"/"),l["default"].createElement("li",{className:"previous"},l["default"].createElement(c.Link,{to:e,onClick:d["default"]},l["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_back")))}return null}},{key:"getNextPage",value:function(){if(this.props.next){var e=this.props.baseUrl+this.props.next+"/";return l["default"].createElement("li",{className:"next"},l["default"].createElement(c.Link,{to:e,onClick:d["default"]},l["default"].createElement("span",{"aria-hidden":"true",className:"material-icon"},"arrow_forward")))}return null}},{key:"getProgessBar",value:function(){var e=this;return l["default"].createElement("ul",{className:"pager-progress-bar"},this.props.page_range.map(function(t){var n=t===e.props.page?"active":null,a=e.props.baseUrl;return t>1&&(a+=t+"/"),l["default"].createElement("li",{key:t,className:n},l["default"].createElement(c.Link,{to:a,onClick:d["default"]},t))}))}},{key:"render",value:function(){return l["default"].createElement("div",{className:"pager-undercontent"},l["default"].createElement("nav",null,l["default"].createElement("ul",{className:"pager"},this.getPreviousPage(),this.getNextPage()),this.getProgessBar()))}}]),t}(l["default"].Component);n["default"]=p},{"../../../utils/reset-scroll":152,react:"react","react-router":"react-router"}],124:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var l=e("react"),c=a(l),f=e("./list"),d=a(f),p=e("./list-loading"),m=a(p),h=e("../../../index"),g=a(h),v=e("../../../reducers/users"),b=e("../../../services/polls"),y=a(b),_=e("../../../services/store"),w=a(_),E=e("../../../services/page-title"),O=a(E),k=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.update=function(e){w["default"].dispatch((0,v.dehydrate)(e.results)),e.isLoaded=!0,n.setState(e)},g["default"].has("USERS")?n.initWithPreloadedData(g["default"].pop("USERS")):n.initWithoutPreloadedData(),n.startPolling(e.params.page||1),n}return s(t,e),u(t,[{key:"initWithPreloadedData",value:function(e){this.state=Object.assign(e,{isLoaded:!0}),w["default"].dispatch((0,v.dehydrate)(e.results))}},{key:"initWithoutPreloadedData",value:function(){this.state={isLoaded:!1}}},{key:"startPolling",value:function(e){y["default"].start({poll:"rank-users",url:g["default"].get("USERS_API"),data:{rank:this.props.route.rank.id,page:e},frequency:9e4,update:this.update})}},{key:"componentDidMount",value:function(){O["default"].set({title:this.props.route.rank.name,page:this.props.params.page||null,parent:gettext("Users")})}},{key:"componentWillUnmount",value:function(){y["default"].stop("rank-users")}},{key:"componentWillReceiveProps",value:function(e){this.props.params.page!==e.params.page&&(O["default"].set({title:this.props.route.rank.name,page:e.params.page||null,parent:gettext("Users")}),this.setState({isLoaded:!1}),y["default"].stop("rank-users"),this.startPolling(e.params.page))}},{key:"getClassName",value:function(){return this.props.route.rank.css_class?"rank-users-list rank-users-"+this.props.route.rank.css_class:"rank-users-list"}},{key:"getRankDescription",value:function(){return this.props.route.rank.description?c["default"].createElement("div",{className:"rank-description"},c["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.route.rank.description.html}})):null}},{key:"getComponent",value:function(){if(this.state.isLoaded){if(this.state.count>0){var e=g["default"].get("USERS_LIST_URL")+this.props.route.rank.slug+"/";return c["default"].createElement(d["default"],i({baseUrl:e,users:this.props.users},this.state))}return c["default"].createElement("p",{className:"lead"},gettext("There are no users with this rank at the moment."))}return c["default"].createElement(m["default"],null)}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName()},c["default"].createElement("div",{className:"container"},this.getRankDescription(),this.getComponent()))}}]),t}(c["default"].Component);n["default"]=k},{"../../../index":127,"../../../reducers/users":133,"../../../services/page-title":141,"../../../services/polls":142,"../../../services/store":144,"./list":122,"./list-loading":121,react:"react"}],125:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return{tick:e.tick.tick,user:e.auth.user,users:e.users}}function u(){var e=[];return y["default"].get("USERS_LISTS").forEach(function(t){"rank"===t.component?(e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/:page/",component:(0,d.connect)(i)(v["default"]),rank:t}),e.push({path:y["default"].get("USERS_LIST_URL")+t.slug+"/",component:(0,d.connect)(i)(v["default"]),rank:t})):"active-posters"===t.component&&e.push({path:y["default"].get("USERS_LIST_URL")+t.component+"/",component:(0,d.connect)(i)(h["default"]),extra:{name:t.name}})}),e}var l=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.select=i,n.paths=u;var c=e("react"),f=a(c),d=e("react-redux"),p=e("./navs"),m=e("./active-posters/root"),h=a(m),g=e("./rank/root"),v=a(g),b=e("../../index"),y=a(b),_=function(e){function t(e){r(this,t);var n=o(this,Object.getPrototypeOf(t).call(this,e));return n.toggleNav=function(){n.state.dropdown?n.setState({dropdown:!1}):n.setState({dropdown:!0})},n.hideNav=function(){n.setState({dropdown:!1})},n.state={dropdown:!1},n}return s(t,e),l(t,[{key:"getToggleNavClassName",value:function(){return this.state.dropdown?"btn btn-default btn-icon open":"btn btn-default btn-icon"}},{key:"getCompactNavClassName",value:function(){return this.state.dropdown?"compact-nav open":"compact-nav"}},{key:"render",value:function(){return f["default"].createElement("div",{className:"page page-users-lists"},f["default"].createElement("div",{className:"page-header tabbed"},f["default"].createElement("div",{className:"container"},f["default"].createElement("h1",{className:"pull-left"},gettext("Users")),f["default"].createElement("button",{className:"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg",type:"button",onClick:this.toggleNav,"aria-haspopup":"true","aria-expanded":this.state.dropdown?"true":"false"},f["default"].createElement("i",{className:"material-icon"},"menu"))),f["default"].createElement("div",{className:"page-tabs hidden-xs hidden-sm"},f["default"].createElement("div",{className:"container"},f["default"].createElement(p.TabsNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL")})))),f["default"].createElement("div",{className:this.getCompactNavClassName()},f["default"].createElement(p.CompactNav,{lists:y["default"].get("USERS_LISTS"),baseUrl:y["default"].get("USERS_LIST_URL"),hideNav:this.hideNav})),this.props.children)}}]),t}(f["default"].Component);n["default"]=_},{"../../index":127,"./active-posters/root":119,"./navs":120,"./rank/root":124,react:"react","react-redux":"react-redux"}],126:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var u=e("react"),l=a(u),c=function(e){function t(){var e,n,a,s;r(this,t);for(var i=arguments.length,u=Array(i),l=0;i>l;l++)u[l]=arguments[l];return n=a=o(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),a.toggle=function(){a.props.onChange({target:{value:!a.props.value}})},s=n,o(a,s)}return s(t,e),i(t,[{key:"getClassName",value:function(){return this.props.value?"btn btn-yes-no btn-yes-no-on":"btn btn-yes-no btn-yes-no-off"}},{key:"getIcon",value:function(){return this.props.value?this.props.iconOn||"check_box":this.props.iconOff||"check_box_outline_blank"}},{key:"getLabel",value:function(){return this.props.value?this.props.labelOn||gettext("yes"):this.props.labelOff||gettext("no")}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.toggle,className:this.getClassName(),id:this.props.id||null,"aria-describedby":this.props["aria-describedby"]||null,disabled:this.props.disabled||!1},l["default"].createElement("span",{className:"material-icon"},this.getIcon()),this.getLabel())}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],127:[function(e,t,n){(function(t){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Misago=void 0;var s=e("./utils/ordered-list"),i=a(s),u=n.Misago=function(){function e(){r(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 i["default"](this._initializers).orderedValues();n.forEach(function(e){e(t)})}},{key:"has",value:function(e){return!!this._context[e]}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}},{key:"pop",value:function(e){if(this.has(e)){var t=this._context[e];return this._context[e]=null,t}}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":150}],128:[function(e,t,n){"use strict";function a(e){return{type:l,patch:e}}function r(e){return{type:c,user:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:f,soft:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?u:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case l:var n=Object.assign({},e);return n.user=Object.assign({},e.user,t.patch),n;case c:return Object.assign({},e,{signedIn:t.user});case f:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case i.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var a=Object.assign({},e);return a.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),a}return e;case i.UPDATE_USERNAME:if(e.isAuthenticated&&e.user.id===t.userId){var r=Object.assign({},e);return r.user=Object.assign({},e.user,{username:t.username,slug:t.slug}),r}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.PATCH_USER=n.initialState=void 0,n.patchUser=a,n.signIn=r,n.signOut=o,n["default"]=s;var i=e("./users"),u=n.initialState={signedIn:!1,signedOut:!1},l=n.PATCH_USER="PATCH_USER",c=n.SIGN_IN="SIGN_IN",f=n.SIGN_OUT="SIGN_OUT"},{"./users":133}],129:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:c,profile:e}}function o(e){return{type:f,patch:e}}function s(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case c:return Object.assign({},t.profile,{joined_on:(0,u["default"])(t.profile.joined_on),status:(0,l.dehydrateStatus)(t.profile.status)});case f:return Object.assign({},e,t.patch);case l.UPDATE_AVATAR:return e.id===t.userId?Object.assign({},e,{avatar_hash:t.avatarHash}):e;case l.UPDATE_USERNAME:return e.id===t.userId?Object.assign({},e,{username:t.username,slug:t.slug}):e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.PATCH_PROFILE=n.DEHYDRATE_PROFILE=void 0,n.dehydrate=r,n.patchProfile=o,n["default"]=s;var i=e("moment"),u=a(i),l=e("./users"),c=n.DEHYDRATE_PROFILE="DEHYDRATE_PROFILE",f=n.PATCH_PROFILE="PATCH_PROFILE"},{"./users":133,moment:"moment"}],130:[function(e,t,n){"use strict";function a(e,t){return{type:i,message:e,messageType:t}}function r(){return{type:u}}function o(){var e=arguments.length<=0||void 0===arguments[0]?s:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===i?{type:t.messageType,message:t.message,isVisible:!0}:t.type===u?Object.assign({},e,{isVisible:!1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.showSnackbar=a,n.hideSnackbar=r,n["default"]=o;var s=n.initialState={type:"info",message:"",isVisible:!1},i=n.SHOW_SNACKBAR="SHOW_SNACKBAR",u=n.HIDE_SNACKBAR="HIDE_SNACKBAR"},{}],131:[function(e,t,n){"use strict";function a(){return{type:s}}function r(){var e=arguments.length<=0||void 0===arguments[0]?o:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];return t.type===s?Object.assign({},e,{tick:e.tick+1}):e}Object.defineProperty(n,"__esModule",{value:!0}),n.doTick=a,n["default"]=r;var o=n.initialState={tick:0},s=n.TICK="TICK"},{}],132:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,n){return{type:f,change:e,user:t,changedBy:n}}function o(e){return{type:d,items:e}}function s(e){return{type:p,items:e}}function i(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case f:var n=e.slice();return n.unshift({id:Math.floor(Date.now()/1e3),changed_by:t.changedBy,changed_by_username:t.changedBy.username,changed_on:(0,c["default"])(),new_username:t.change.username,old_username:t.user.username}),n;case d:return e.concat(t.items.map(function(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})}));case p:return t.items.map(function(e){return Object.assign({},e,{changed_on:(0,c["default"])(e.changed_on)})});case u.UPDATE_AVATAR:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{avatar_hash:t.avatarHash})),e});case u.UPDATE_USERNAME:return e.map(function(e){return e=Object.assign({},e),e.changed_by&&e.changed_by.id===t.userId&&(e.changed_by=Object.assign({},e.changed_by,{username:t.username,slug:t.slug})),Object.assign({},e)});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.DEHYDRATE_HISTORY=n.APPEND_HISTORY=n.ADD_NAME_CHANGE=void 0,n.addNameChange=r,n.append=o,n.dehydrate=s,n["default"]=i;var u=e("./users"),l=e("moment"),c=a(l),f=n.ADD_NAME_CHANGE="ADD_NAME_CHANGE",d=n.APPEND_HISTORY="APPEND_HISTORY",p=n.DEHYDRATE_HISTORY="DEHYDRATE_HISTORY"},{"./users":133,moment:"moment"}],133:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){return{type:d,items:e}}function o(e){return{type:p,items:e}}function s(e){return e?Object.assign({},e,{last_click:e.last_click?(0,f["default"])(e.last_click):null,banned_until:e.banned_until?(0,
+f["default"])(e.banned_until):null}):null}function i(e,t){return{type:m,userId:e.id,avatarHash:t}}function u(e,t,n){return{type:h,userId:e.id,username:t,slug:n}}function l(){var e=arguments.length<=0||void 0===arguments[0]?[]:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case d:return e.concat(t.items.map(function(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:s(e.status)})}));case p:return t.items.map(function(e){return Object.assign({},e,{joined_on:(0,f["default"])(e.joined_on),status:s(e.status)})});case m:return e.map(function(e){return e=Object.assign({},e),e.id===t.userId&&(e.avatar_hash=t.avatarHash),e});default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.UPDATE_USERNAME=n.UPDATE_AVATAR=n.DEHYDRATE_USERS=n.APPEND_USERS=void 0,n.append=r,n.dehydrate=o,n.dehydrateStatus=s,n.updateAvatar=i,n.updateUsername=u,n["default"]=l;var c=e("moment"),f=a(c),d=n.APPEND_USERS="APPEND_USERS",p=n.DEHYDRATE_USERS="DEHYDRATE_USERS",m=n.UPDATE_AVATAR="UPDATE_AVATAR",h=n.UPDATE_USERNAME="UPDATE_USERNAME"},{moment:"moment"}],134:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var s=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null,this._locks={}}return o(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n?JSON.stringify(n):null,contentType:"application/json; charset=utf-8",dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}},{key:"get",value:function(e,t,n){var a=this;if(t&&(e+="?"+$.param(t)),!n)return this.request("GET",e);var o=function(){var t=a;return a._locks[n]&&(a._locks[n].url=e),a._locks[n]&&a._locks[n].waiter?{v:{then:function(){}}}:a._locks[n]&&a._locks[n].wait?(a._locks[n].waiter=!0,{v:new Promise(function(a,r){var o=function s(e){t._locks[n].wait?window.setTimeout(function(){s(e)},300):t._locks[n].url!==e?s(t._locks[n].url):(t._locks[n].waiter=!1,t.request("GET",t._locks[n].url).then(function(r){t._locks[n].url===e?a(r):(t._locks[n].waiter=!0,s(t._locks[n].url))},function(a){t._locks[n].url===e?r(a):(t._locks[n].waiter=!0,s(t._locks[n].url))}))};window.setTimeout(function(){o(e)},300)})}):(a._locks[n]={url:e,wait:!0,waiter:!1},{v:new Promise(function(a,r){t.request("GET",e).then(function(r){t._locks[n].wait=!1,t._locks[n].url===e&&a(r)},function(a){t._locks[n].wait=!1,t._locks[n].url===e&&r(a)})})})}();return"object"===("undefined"==typeof o?"undefined":r(o))?o.v:void 0}},{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)}},{key:"upload",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:e,method:"POST",headers:{"X-CSRFToken":a._csrfToken},data:t,contentType:!1,processData:!1,xhr:function i(){var i=new window.XMLHttpRequest;return i.upload.addEventListener("progress",function(e){e.lengthComputable&&n(Math.round(e.loaded/e.total*100))},!1),i},success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),404===t.status&&(t.detail&&"NOT FOUND"!==t.detail||(t.detail=gettext("Action link is invalid."))),500!==t.status||t.detail||(t.detail=gettext("Unknown error has occured.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}}]),e}();n["default"]=new s},{}],135:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Auth=void 0;var o=e("../reducers/auth"),s=n.Auth=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t,n){this._store=e,this._local=t,this._modal=n,this.syncSession(),this.watchState()}},{key:"syncSession",value:function(){var e=this._store.getState().auth;e.isAuthenticated?this._local.set("auth",{isAuthenticated:!0,username:e.user.username}):this._local.set("auth",{isAuthenticated:!1})}},{key:"watchState",value:function(){var e=this;this._local.watch("auth",function(t){t.isAuthenticated?e._store.dispatch((0,o.signIn)({username:t.username})):e._store.dispatch((0,o.signOut)())}),this._modal.hide()}},{key:"signIn",value:function(e){this._store.dispatch((0,o.signIn)(e)),this._local.set("auth",{isAuthenticated:!0,username:e.username}),this._modal.hide()}},{key:"signOut",value:function(){this._store.dispatch((0,o.signOut)()),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}},{key:"softSignOut",value:function(){this._store.dispatch((0,o.signOut)(!0)),this._local.set("auth",{isAuthenticated:!1}),this._modal.hide()}}]),e}();n["default"]=new s},{"../reducers/auth":128}],136:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Captcha=n.ReCaptcha=n.ReCaptchaComponent=n.QACaptcha=n.NoCaptcha=n.BaseCaptcha=void 0;var u=e("react"),l=a(u),c=e("../components/form-group"),f=a(c),d=n.BaseCaptcha=function(){function e(){s(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){this._context=e,this._ajax=t,this._include=n,this._snackbar=a}}]),e}(),p=n.NoCaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){return new Promise(function(e){e()})}},{key:"validator",value:function(){return null}},{key:"component",value:function(){return null}}]),t}(d),m=n.QACaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){var e=this;return new Promise(function(t,n){e._ajax.get(e._context.get("CAPTCHA_API_URL")).then(function(n){e.question=n.question,e.helpText=n.help_text,t()},function(){e._snackbar.error(gettext("Failed to load CAPTCHA.")),n()})})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:this.question,"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:this.helpText||null},l["default"].createElement("input",{type:"text",id:"id_captcha",className:"form-control","aria-describedby":"id_captcha_status",disabled:e.form.state.isLoading,onChange:e.form.bindInput("captcha"),value:e.form.state.captcha}))}}]),t}(d),h=n.ReCaptchaComponent=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;grecaptcha.render("recaptcha",{sitekey:this.props.siteKey,callback:function(t){e.props.binding({target:{value:t}})}})}},{key:"render",value:function(){return l["default"].createElement("div",{id:"recaptcha"})}}]),t}(l["default"].Component),g=n.ReCaptcha=function(e){function t(){return s(this,t),r(this,Object.getPrototypeOf(t).apply(this,arguments))}return o(t,e),i(t,[{key:"load",value:function(){return this._include.include("https://www.google.com/recaptcha/api.js",!0),new Promise(function(e){var t=function n(){"undefined"==typeof grecaptcha?window.setTimeout(function(){n()},200):e()};t()})}},{key:"validator",value:function(){return[]}},{key:"component",value:function(e){return l["default"].createElement(f["default"],{label:gettext("Captcha"),"for":"id_captcha",labelClass:e.labelClass||"col-sm-4",controlClass:e.controlClass||"col-sm-8",validation:e.form.state.errors.captcha,helpText:gettext("Please solve the quick test.")},l["default"].createElement(h,{siteKey:this._context.get("SETTINGS").recaptcha_site_key,binding:e.form.bindInput("captcha")}))}}]),t}(d),v=n.Captcha=function(){function e(){s(this,e)}return i(e,[{key:"init",value:function(e,t,n,a){switch(e.get("SETTINGS").captcha_type){case"no":this._captcha=new p;break;case"qa":this._captcha=new m;break;case"re":this._captcha=new g}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new v},{"../components/form-group":67,react:"react"}],137:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Include=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._staticUrl=e,this._included=[]}},{key:"include",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?!1:arguments[1];-1===this._included.indexOf(e)&&(this._included.push(e),this._include(e,t))}},{key:"_include",value:function(e,t){$.ajax({url:(t?"":this._staticUrl)+e,cache:!0,dataType:"script"})}}]),e}();n["default"]=new o},{}],138:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=window.localStorage,s=n.LocalStorage=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){var t=this;this._prefix=e,this._watchers=[],window.addEventListener("storage",function(e){var n=JSON.parse(e.newValue);t._watchers.forEach(function(t){t.key===e.key&&e.oldValue!==e.newValue&&t.callback(n)})})}},{key:"set",value:function(e,t){o.setItem(this._prefix+e,JSON.stringify(t))}},{key:"get",value:function(e){var t=o.getItem(this._prefix+e);return t?JSON.parse(t):null}},{key:"watch",value:function(e,t){this._watchers.push({key:this._prefix+e,callback:t})}}]),e}();n["default"]=new s},{}],139:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.MobileNavbarDropdown=void 0;var s=e("../utils/mount-component"),i=a(s),u=n.MobileNavbarDropdown=function(){function e(){r(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,i["default"])(e,this._element.id),$(this._element).addClass("open"))}},{key:"showConnected",value:function(e,t){this._component===e?this.hide():(this._component=e,(0,i["default"])(t,this._element.id,!0),$(this._element).addClass("open"))}},{key:"hide",value:function(){$(this._element).removeClass("open"),this._component=null}}]),e}();n["default"]=new u},{"../utils/mount-component":149}],140:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Modal=void 0;var s=e("react-dom"),i=a(s),u=e("../utils/mount-component"),l=a(u),c=n.Modal=function(){function e(){r(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(){i["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":149,"react-dom":"react-dom"}],141:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.PageTitle=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._forumName=e}},{key:"set",value:function(e){"string"==typeof e&&(e={title:e});var t=e.title;if(e.page){var n=interpolate(gettext("page: %(page)s"),{page:e.page},!0);t+=" ("+n+")"}e.parent&&(t+=" | "+e.parent),document.title=t+" | "+this._forumName}}]),e}();n["default"]=new o},{}],142:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Polls=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e,t){this._ajax=e,this._snackbar=t,this._polls={}}},{key:"start",value:function(e){var t=this,n=function a(){t._polls[e.poll]=e,t._ajax.get(e.url,e.data||null).then(function(n){t._polls[e.poll]._stopped||(e.update(n),t._polls[e.poll].timeout=window.setTimeout(a,e.frequency))},function(n){t._polls[e.poll]._stopped||(e.error?e.error(n):t._snackbar.apiError(n))})};n()}},{key:"stop",value:function(e){this._polls[e]&&(window.clearTimeout(this._polls[e].timeout),this._polls[e]._stopped=!0)}}]),e}();n["default"]=new o},{}],143:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.Snackbar=void 0;var o=e("../reducers/snackbar"),s=300,i=5e3,u=n.Snackbar=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._store=e,this._timeout=null}},{key:"alert",value:function(e,t){var n=this;this._timeout?(window.clearTimeout(this._timeout),this._store.dispatch((0,o.hideSnackbar)()),this._timeout=window.setTimeout(function(){n._timeout=null,n.alert(e,t)},s)):(this._store.dispatch((0,o.showSnackbar)(e,t)),this._timeout=window.setTimeout(function(){n._store.dispatch((0,o.hideSnackbar)()),n._timeout=null},i))}},{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=e.detail;t||(t=404===e.status?gettext("Action link is invalid."):gettext("Unknown error has occured.")),403===e.status&&"Permission denied"===t&&(t=gettext("You don't have permission to perform this action.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":130}],144:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.StoreWrapper=void 0;var o=e("redux"),s=n.StoreWrapper=function(){function e(){a(this,e),this._store=null,this._reducers={},this._initialState={}}return r(e,[{key:"addReducer",value:function(e,t,n){this._reducers[e]=t,this._initialState[e]=n}},{key:"init",value:function(){this._store=(0,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 s},{redux:"redux"}],145:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Zxcvbn=function(){function e(){a(this,e)}return r(e,[{key:"init",value:function(e){this._include=e}},{key:"scorePassword",value:function(e,t){return zxcvbn(e,t).score}},{key:"load",value:function(){return"undefined"==typeof zxcvbn?(this._include.include("misago/js/zxcvbn.js"),this._loadingPromise()):this._loadedPromise()}},{key:"_loadingPromise",value:function(){return new Promise(function(e){var t=function n(){"undefined"==typeof zxcvbn?window.setTimeout(function(){n()},200):e()};t()})}},{key:"_loadedPromise",value:function(){return new Promise(function(e){e()})}}]),e}();n["default"]=new o},{}],146:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){if(l["default"].render(i["default"].createElement(c.Provider,{store:g["default"].getStore()},i["default"].createElement(b,{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 r=e("moment"),o=a(r),s=e("react"),i=a(s),u=e("react-dom"),l=a(u),c=e("react-redux"),f=e("../components/banned-page"),d=a(f),p=e("../index"),m=a(p),h=e("../services/store"),g=a(h),v=function(e){return e.tick},b=(0,c.connect)(v)(d["default"])},{"../components/banned-page":55,"../index":127,"../services/store":144,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],147:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],a=[],r=[];if(e.forEach(function(e){r.push(e),r.length===t&&(a.push(r),r=[])}),n!==!1&&r.length>0&&r.length<t)for(var o=r.length;t>o;o++)r.push(n);return r.length&&a.push(r),a}},{}],148:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){return e>1e9?Math.round(100*e/1e9)/100+" GB":e>1e6?Math.round(100*e/1e6)/100+" MB":e>1e3?Math.round(100*e/1e3)/100+" KB":Math.round(100*e)/100+" B"}},{}],149:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e,t){var n=arguments.length<=2||void 0===arguments[2]?!0:arguments[2],a=document.getElementById(t),r=e.props?e:o["default"].createElement(e,null);a&&(n?i["default"].render(o["default"].createElement(u.Provider,{store:c["default"].getStore()},r),a):i["default"].render(r,a))};var r=e("react"),o=a(r),s=e("react-dom"),i=a(s),u=e("react-redux"),l=e("../services/store"),c=a(l)},{"../services/store":144,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],150:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=function(){function e(t){a(this,e),this.isOrdered=!1,this._items=t||[]}return r(e,[{key:"add",value:function(e,t,n){this._items.push({key:e,item:t,after:n?n.after||null:null,before:n?n.before||null:null})}},{key:"get",value:function(e,t){for(var n=0;n<this._items.length;n++)if(this._items[n].key===e)return this._items[n].item;return t}},{key:"has",value:function(e){return void 0!==this.get(e)}},{key:"values",value:function t(){for(var t=[],e=0;e<this._items.length;e++)t.push(this._items[e].item);return t}},{key:"order",value:function(e){return this.isOrdered||(this._items=this._order(this._items),this.isOrdered=!0),e||"undefined"==typeof e?this.values():this._items}},{key:"orderedValues",value:function(){return this.order(!0)}},{key:"_order",value:function(e){function t(e){var t=-1;-1===r.indexOf(e.key)&&(e.after?(t=r.indexOf(e.after),-1!==t&&(t+=1)):e.before&&(t=r.indexOf(e.before)),-1!==t&&(a.splice(t,0,e),r.splice(t,0,e.key)))}var n=[];e.forEach(function(e){n.push(e.key)});var a=[],r=[];e.forEach(function(e){e.after||e.before||(a.push(e),r.push(e.key))}),e.forEach(function(e){"_end"===e.before&&(a.push(e),r.push(e.key))});for(var o=200;o>0&&n.length!==r.length;)o-=1,e.forEach(t);return a}}]),e}();n["default"]=o},{}],151:[function(e,t,n){"use strict";function a(e,t){return Math.floor(Math.random()*(t-e+1))+e}function r(e,t){for(var n=new Array(a(e,t)),r=0;r<n.length;r++)n[r]=r;return n}Object.defineProperty(n,"__esModule",{value:!0}),n["int"]=a,n.range=r},{}],152:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(){window.scrollTo(0,0)}},{}],153:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=function(e){var t={component:e.component,childRoutes:[{path:e.root,onEnter:function(t,n){n(null,e.paths[0].path)}}].concat(e.paths.map(function(e){return e}))};i["default"].render(o["default"].createElement(u.Provider,{store:p["default"].getStore()},o["default"].createElement(l.Router,{routes:t,history:h})),m)};var r=e("react"),o=a(r),s=e("react-dom"),i=a(s),u=e("react-redux"),l=e("react-router"),c=e("history/lib/createBrowserHistory"),f=a(c),d=e("../services/store"),p=a(d),m=document.getElementById("page-mount"),h=new f["default"]},{"../services/store":144,"history/lib/createBrowserHistory":43,react:"react","react-dom":"react-dom","react-redux":"react-redux","react-router":"react-router"}],154:[function(e,t,n){"use strict";function a(){return function(e){return 0===$.trim(e).length?gettext("This field is required."):void 0}}function r(e){return function(t){return f.test(t)?void 0:e||gettext("Enter a valid email address.")}}function o(e,t){return function(n){var a="",r=$.trim(n).length;return e>r?(a=t?t(e,r):ngettext("Ensure this value has at least %(limit_value)s character (it has %(show_value)s).","Ensure this value has at least %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function s(e,t){return function(n){var a="",r=$.trim(n).length;return r>e?(a=t?t(e,r):ngettext("Ensure this value has at most %(limit_value)s character (it has %(show_value)s).","Ensure this value has at most %(limit_value)s characters (it has %(show_value)s).",e),interpolate(a,{limit_value:e,show_value:r},!0)):void 0}}function i(e){var t=function(e){return ngettext("Username must be at least %(limit_value)s character long.","Username must be at least %(limit_value)s characters long.",e)};return this.minLength(e.username_length_min,t)}function u(e){var t=function(e){return ngettext("Username cannot be longer than %(limit_value)s character.","Username cannot be longer than %(limit_value)s characters.",e)};return this.maxLength(e.username_length_max,t)}function l(){return function(e){return d.test($.trim(e))?void 0:gettext("Username can only contain latin alphabet letters and digits.")}}function c(e){var t=function(e){return ngettext("Valid password must be at least %(limit_value)s character long.","Valid password must be at least %(limit_value)s characters long.",e)};return this.minLength(e.password_length_min,t)}Object.defineProperty(n,"__esModule",{value:!0}),n.required=a,n.email=r,n.minLength=o,n.maxLength=s,n.usernameMinLength=i,n.usernameMaxLength=u,n.usernameContent=l,n.passwordMinLength=c;var f=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,d=new RegExp("^[0-9a-z]+$","i")},{}]},{},[2,3,4,5,17,18,19,20,21,22,23,31,32,33,34,6,7,8,9,10,11,12,13,14,15,16,24,25,26,27,28,29,30]);
 //# sourceMappingURL=misago.js.map
 //# 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","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","setTimeout","len","run","clearTimeout","Item","fun","array","this","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask",2,"global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","value","Misago","undefined","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","_this","initOrder","orderedValues","forEach","fallback","has","misago","self","window","../../../misago/frontend/src/utils/ordered-list",3,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../misago/frontend/src/index","../../../../misago/frontend/src/services/ajax",4,"_auth2","_store2","_localStorage2","_modal2","_auth","_modal","_store","_localStorage","../../../../misago/frontend/src/services/auth","../../../../misago/frontend/src/services/local-storage","../../../../misago/frontend/src/services/modal","../../../../misago/frontend/src/services/store",5,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../misago/frontend/src/services/captcha","../../../../misago/frontend/src/services/include","../../../../misago/frontend/src/services/snackbar",6,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../misago/frontend/src/components/auth-message","../../../../../misago/frontend/src/index","../../../../../misago/frontend/src/utils/mount-component","react-redux",7,"_bannedPage2","_bannedPage","../../../../../misago/frontend/src/utils/banned-page",8,"_root","_root2","../../../../../misago/frontend/src/components/categories/root",9,"_routedComponent2","root","component","paths","_routedComponent","../../../../../misago/frontend/src/components/options/root","../../../../../misago/frontend/src/utils/routed-component",10,"absolute_url","../../../../../misago/frontend/src/components/profile/root",11,"document","getElementById","_requestActivationLink2","_requestActivationLink","../../../../../misago/frontend/src/components/request-activation-link",12,"_requestPasswordReset2","_requestPasswordReset","../../../../../misago/frontend/src/components/request-password-reset",13,"_resetPasswordForm2","_resetPasswordForm","../../../../../misago/frontend/src/components/reset-password-form",14,"Snackbar","../../../../../misago/frontend/src/components/snackbar",15,"UserMenu","CompactUserMenu","../../../../../misago/frontend/src/components/user-menu/root",16,"../../../../../misago/frontend/src/components/users/root",17,18,19,"element","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../misago/frontend/src/services/mobile-navbar-dropdown",20,21,"_moment2","locale","$","attr","_moment","moment",22,"_pageTitle2","forum_name","_pageTitle","../../../../misago/frontend/src/services/page-title",23,"_polls2","_polls","../../../../misago/frontend/src/services/polls",24,"addReducer","assign","isAuthenticated","isAnonymous","user","initialState","../../../../../misago/frontend/src/reducers/auth","../../../../../misago/frontend/src/services/store",25,"dispatch","_profile","dehydrate","../../../../../misago/frontend/src/reducers/profile",26,"_profile2",27,"../../../../../misago/frontend/src/reducers/snackbar",28,"_tick2","_tick","../../../../../misago/frontend/src/reducers/tick",29,"_usernameHistory2","_usernameHistory","../../../../../misago/frontend/src/reducers/username-history",30,"_users2","_users","../../../../../misago/frontend/src/reducers/users",31,32,33,"setInterval","doTick","TICK_PERIOD","../../../../misago/frontend/src/reducers/tick",34,"_zxcvbn2","_zxcvbn","../../../../misago/frontend/src/services/zxcvbn",35,"isUndefinedOrNull","isBuffer","x","copy","slice","objEquiv","b","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","sort","actual","expected","Date","getTime","strict","./lib/is_arguments.js","./lib/keys.js",36,"supported","object","toString","unsupported","hasOwnProperty","propertyIsEnumerable","supportsArgumentsClass",37,"shim","keys",38,"PUSH","REPLACE","POP",39,"loopAsync","turns","work","callback","done","isDone","next","currentTurn",40,"createKey","KeyPrefix","saveState","state","sessionStorage","setItem","JSON","stringify","error","SecurityError","NODE_ENV","_warning2","QuotaExceededError","readState","json","getItem","parse","_warning","_process","warning",41,"addEventListener","node","event","listener","attachEvent","removeEventListener","detachEvent","getHashPath","location","href","split","replaceHashPath","path","replace","pathname","search","getWindowPath","hash","go","history","getUserConfirmation","message","confirm","supportsHistory","ua","navigator","userAgent","indexOf","supportsGoWithoutReloadUsingHash",42,"canUseDOM","createElement",43,"createBrowserHistory","getCurrentLocation","historyState","_DOMUtils","_historyState","_DOMStateStorage","isSupported","replaceState","_extends","_parsePath2","createLocation","startPopStateListener","_ref","popStateListener","transitionTo","finishTransition","basename","action","_Actions","useRefresh","pushState","listenBefore","listenerCount","stopPopStateListener","unlisten","listen","registerTransitionHook","hook","unregisterTransitionHook","options","_ExecutionEnvironment","_invariant2","forceRefresh","_createDOMHistory2","source","_invariant","_createDOMHistory","_parsePath","./Actions","./DOMStateStorage","./DOMUtils","./ExecutionEnvironment","./createDOMHistory","./parsePath","invariant",44,"createDOMHistory","_createHistory2","_createHistory","./createHistory",45,"createRandomKey","Math","random","substr","locationsAreEqual","_deepEqual2","createHistory","transitionHooks","filter","getCurrent","pendingLocation","allKeys","updateLocation","newLocation","current","changeListeners","_location","confirmTransitionTo","_AsyncUtils","index","_runTransitionHook2","result","ok","nextLocation","prevPath","createPath","nextPath","prevIndex","nextIndex","goBack","goForward","keyLength","createHref","_createLocation3","setState","updateLocationState","DefaultKeyLength","_deprecate2","_deepEqual","_createLocation2","_runTransitionHook","_deprecate","./AsyncUtils","./createLocation","./deprecate","./runTransitionHook","deep-equal",46,"_fourthArg",47,"deprecate","fn",48,"extractPath","string","match","substring",49,"parsePath","_extractPath2","hashIndex","searchIndex","_extractPath","./extractPath",50,"runTransitionHook",51,"condition","format","c","d","argIndex","framesToPop",52,53,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","reload","interpolate","gettext","username","className","getClassName","getMessage","type","onClick","refresh","Component","react",54,"BASE_URL","size","url","id","avatar_hash","src","getSrc",55,"html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",56,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",57,"_lastActivity","_lastActivity2","_readIcon","_readIcon2","_stats","_stats2","category","css_class","subcategories","description","_this2","map","getSubcategorySubcategoryClass","_this3","getSubcategoryClass","getSubcategoryDescription","getSubcategorySubcategories","getHeadingClassName","getCategoryDescription","getSubcategories","./last-activity","./read-icon","./stats",58,59,"last_poster_url","last_poster_name","last_thread_url","last_thread_title","getLastPoster","last_post_on","acl","can_browse","can_see_all_threads","getThreadDetails","getLastActivity",60,"is_read","is_closed","getTitle","getIcon",61,"store","tick","_category","_category2","_emptyMessage","_emptyMessage2","update","data","categories","startPolling","api","start","poll","frequency","getHeading","getCategoriesList","../../index","../../services/polls","./category","./empty-message",62,"ngettext","threads","posts","getThreadsCount","getPostsCount",63,"_avatar","_button","_button2","cropAvatar","isLoading","avatarType","upload","cropit","post","api_url","avatar","crop","offset","zoom","then","onComplete","success","detail","rejection","status","showError","crop_tmp","crop_org","secret","getAvatarSecret","getAvatarHash","join","width","getAvatarSize","height","imageState","getImagePath","onImageLoaded","zoomLevel","imageSize","displayedWidth","offsetX","y","displayedHeight","offsetY","showIndex","../../services/ajax","../../services/snackbar","../avatar","../button",64,"Gallery","GalleryItem","_batch","_batch2","_Object$getPrototypeO","_temp","_ret","_len","_key","image","selection","_React$Component2","images","row","_React$Component3","_this4","save","response","_this5","galleries","../../utils/batch",65,"_avatar2","setGravatar","callApi","setGenerated","gravatar","showCrop","showUpload","showGallery","userPeview","getAvatarPreview","getGravatarButton","getCropButton","getUploadButton","getGalleryButton","../loader",66,"ChangeAvatarError","_crop","_crop2","_upload","_upload2","_gallery","_gallery2","_modalLoader","_modalLoader2","reason","getErrorReason","completeFlow","avatarHash","updateAvatar","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./crop","./gallery","./index","./upload",67,"_fileSize","_fileSize2","pickFile","click","uploadFile","files","validationError","validateFile","preview","URL","createObjectURL","progress","FormData","append","uploaded","info","limit","filesize","invalidTypeMsg","allowed_mime_types","extensionFound","loweredFilename","toLowerCase","allowed_extensions","extension","extensions","getUploadRequirements","aria-valuenow","aria-valuemin","aria-valuemax","style","getUploadProgressLabel","onChange","getUploadProgress","renderCrop","renderUpload","../../utils/file-size",68,"validation","isValidated","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",69,"_defineProperty","_validators","validateRequired","required","bindInput","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","apiError","../services/snackbar","../utils/validators",70,"isActive","activeClassName",71,72,73,"_panelMessage","_panelMessage2","_PanelMessage","icon","./panel-message",74,"_panelLoader","_panelLoader2","../../panel-loader",75,"next_on","next_change","../../panel-message",76,"_interopRequireWildcard","newObj","_form","_form2","_formGroup","_formGroup2","_Form","usernameContent","usernameMinLength","username_length_min","length_min","usernameMaxLength","username_length_max","length_max","phrases","changes_left","name_changes_expire","trim","complete","slug","onSubmit","for","../../../services/ajax","../../../services/snackbar","../../../utils/validators","../../button","../../form","../../form-group",77,"_formLoading","_formLoading2","_formLocked","_formLocked2","_usernameHistory3","addNameChange","updateUsername","isLoaded","set","parent","Promise","all","results","getChangeForm","changes","../../../index","../../../reducers/username-history","../../../reducers/users","../../../services/page-title","../../../services/store","../../username-history","./form","./form-loading","./form-locked",78,"_select","_select2","_yesNoSwitch","_yesNoSwitch2","is_hiding_presence","limits_private_thread_invites_to","subscribe_to_started_threads","subscribe_to_replied_threads","privateThreadInvitesChoices","subscribeToChoices","patchUser","iconOn","iconOff","labelOn","labelOff","choices","../../reducers/auth","../../services/page-title","../form","../form-group","../select","../yes-no-switch",79,"CompactNav","SideNav","_reactRouter","_li","_li2","option","Link","to","baseUrl","hideNav","../li","react-router",80,"username-history","_forumOptions2","_root4","_navs","_forumOptions","_root3","toggleNav","dropdown","aria-haspopup","aria-expanded","getCompactNavClassName","./change-username/root","./forum-options","./navs","./sign-in-credentials/root",81,"new_email","password","email","lengths","change_email","display",82,"new_password","repeat_password","passwordMinLength","change_password",83,"_changeEmail","_changeEmail2","_changePassword","_changePassword2","./change-email","./change-password",84,85,86,"LABELS","STYLES","_score","_password","_inputs","inputs","cacheStale","scorePassword","score","getScore","../services/zxcvbn",87,"_followButton","_followButton2","_nav","_nav2","_userStatus","_userStatus2","profile","StatusIcon","StatusLabel","rank","is_tab","joined_on","age","can_follow","can_moderate","data-toggle","getFollowButton","getModerationButton","getUserStatus","getUserRank","getUserTitle","getJoinedOn","getEmail","../user-status","./follow-button","./moderation/nav",88,"ban","initWithPreloadedData","pop","initWithoutPreloadedData","stop","user_message","staff_message","_title","getUserMessage","getStaffMessage","getPanelBody","../panel-loader","../panel-message",89,"is_followed","patchProfile","followers","follow","getLabel","../../reducers/profile",90,"_search","_search2","loadMore","isBusy","loadUsers","page","ev","count","more","pages","setSpecialProps","PRELOADED_DATA_KEY","TITLE","API_FILTER","_ajax$get","users","getEmptyMessage","showRank","cols","getMoreButton","placeholder","getListBody","../search","../users-list/root",91,"_followers","_followers2","_Followers","./followers",92,"_modalMessage","_modalMessage2","is_avatar_locked","avatar_lock_user_message","avatar_lock_staff_message","moderate_avatar","isValid","apiResponse","rows","getFormBody","getModalBody","../../modal-loader","../../modal-message","../../yes-no-switch",93,"moderate_username",94,"countdown","isDeleted","with_content","getButtonLabel","getDeletedBody","getForm","../../../services/polls",95,"_avatarControls","_avatarControls2","_changeUsername","_changeUsername2","_deleteAccount","_deleteAccount2","showAvatarDialog","show","showRenameDialog","showDeleteDialog","can_moderate_avatar","can_rename","can_delete","getAvatarButton","getRenameButton","getDeleteButton","../../../services/modal","./avatar-controls","./change-username","./delete-account",96,"meta","getMeta","_SideNav","toggleModeration","showSpecialOptions","getSpecialOptions",97,"COMPONENTS","_banDetails","_banDetails2","_follows","_follows2","_Header","_Header2","baseClass","getNavDropdown","Placeholder","route","follows","ban-details","./Header","./ban-details","./follows","./username-history",98,"loadChanges","emptyMessage","../../reducers/username-history","../username-history",99,"_register","_register2","showRegisterModal","account_activation","load","../services/captcha","../services/modal","./register.js",100,"RegisterComplete","RegisterForm","_passwordStrength","_passwordStrength2","captcha","validator","hide","aria-describedby","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form-group","./password-strength",101,"LinkSent","RequestLinkForm","reset",102,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","render","react-dom",103,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",104,105,"change","choice","getChoice",106,"showActivation","find","val","getCsrfToken","submit","getActivationButton",107,"snackbar","TYPES_CLASSES","snackbarClass","isVisible","getSnackbarClass",108,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",109,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",110,"selectUserMenu","decision","changeAvatar","logout","showConnected","showUserMenu","../change-avatar/root",111,"is_banned","is_hidden","is_online_hidden","is_offline_hidden","is_online","is_offline","getClass","banned_until","ban_expires","last_click","getHelp",112,"_random","changed_by","changed_by_username","renderUserAvatar","renderUsername","old_username","new_username","changed_on","range","renderHistory","renderEmptyHistory","renderHistoryPreview","../utils/random","./avatar",113,"_userCard","_userCard2","_userPreview","_userPreview2","Pager","getColClassName","showStatus","./user-card","./user-preview",114,"getRankName","getUserJoinedOn",115,"../../utils/random",116,"days","trackedPeriod",117,"rankUrl","counter","../../avatar","../../user-status",118,"../../../utils/random",119,"_listItem","_listItem2","posters","getLeadMessage","./list-item",120,"_listEmpty","_listEmpty2","_listLoading","_listLoading2","_list","_list2","tracked_period","list","./list","./list-empty","./list-loading",121,"TabsNav","listUrl","navLinks","lists",122,"../../users-list/root",123,"_pager","_pager2","getPager","./pager",124,"_resetScroll","_resetScroll2","previous","first","page_range","getPreviousPage","getNextPage","getProgessBar","../../../utils/reset-scroll",125,"params","nextProps","getRankDescription","getComponent",126,"./active-posters/root","./rank/root",127,"toggle",128,"./utils/ordered-list",129,"patch","PATCH_USER","SIGN_IN","signOut","soft","SIGN_OUT","UPDATE_AVATAR","userId","_newState","UPDATE_USERNAME","_newState2","./users",130,"DEHYDRATE_PROFILE","PATCH_PROFILE","dehydrateStatus",131,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",132,"TICK",133,"changedBy","ADD_NAME_CHANGE","items","APPEND_HISTORY","DEHYDRATE_HISTORY","unshift","floor","now",134,"APPEND_USERS","DEHYDRATE_USERS",135,"_typeof","Symbol","iterator","Ajax","_cookieName","_csrfToken","_locks","cookieName","cookie","cookieRegex","RegExp","method","resolve","reject","xhr","headers","X-CSRFToken","contentType","dataType","jqXHR","responseJSON","statusText","ajax","lock","param","request","waiter","v","wait","processData","XMLHttpRequest","evt","lengthComputable","round","loaded","total",136,"Auth","local","modal","_local","syncSession","watchState","getState","watch","../reducers/auth",137,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","_BaseCaptcha3","recaptcha_site_key","captcha_type","../components/form-group",138,"Include","staticUrl","_staticUrl","_included","script","remote","cache",139,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","newValueJson","newValue","watcher","oldValue","itemString",140,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",141,"Modal","unmountComponentAtNode",142,"PageTitle","forumName","_forumName","finalTitle","pageLabel",143,"Polls","poolServer","_stopped","pollId",144,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","alert","../reducers/snackbar",145,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",146,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",147,"changeState","Provider","getStore","RedrawedBannedPage","../components/banned-page","../services/store",148,"rowWidth","padding",149,"bytes",150,"rootElementId","connected","rootElement","finalComponent",151,"OrderedList","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","iterations",152,"int","min","max",153,"scrollTo",154,"routes","childRoutes","onEnter","nextState","Router","_createBrowserHistory","_createBrowserHistory2","history/lib/createBrowserHistory",155,"EMAIL","test","minLength","limitValue","returnMessage","limit_value","show_value","maxLength","settings","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],2:[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('../../../misago/frontend/src/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[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    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return 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},{\"../../../misago/frontend/src/utils/ordered-list\":151}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/ajax\":135}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../misago/frontend/src/services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../../../../misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _store = require('../../../../misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../../../../misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default, _modal2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/auth\":136,\"../../../../misago/frontend/src/services/local-storage\":139,\"../../../../misago/frontend/src/services/modal\":141,\"../../../../misago/frontend/src/services/store\":145}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../../../../misago/frontend/src/services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../../../../misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../../../../misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/ajax\":135,\"../../../../misago/frontend/src/services/captcha\":137,\"../../../../misago/frontend/src/services/include\":138,\"../../../../misago/frontend/src/services/snackbar\":144}],6:[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('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../../../../../misago/frontend/src/components/auth-message');\n\nvar _authMessage2 = _interopRequireDefault(_authMessage);\n\nvar _mountComponent = require('../../../../../misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage2.default), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/auth-message\":53,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150,\"react-redux\":\"react-redux\"}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _bannedPage = require('../../../../../misago/frontend/src/utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/banned-page\":147}],8:[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 _root = require('../../../../../misago/frontend/src/components/categories/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mountComponent = require('../../../../../misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('CATEGORIES')) {\n    (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root2.default), 'page-mount');\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/categories/root\":61,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150,\"react-redux\":\"react-redux\"}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../misago/frontend/src/components/options/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USER_OPTIONS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERCP_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:options',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/options/root\":80,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/routed-component\":154}],10:[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 _root = require('../../../../../misago/frontend/src/components/profile/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('PROFILE') && context.has('PROFILE_PAGES')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('PROFILE').absolute_url,\n      component: (0, _reactRedux.connect)(_root.select)(_root2.default),\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:profile',\n  initializer: initializer,\n  after: 'reducer:profile-dehydrate'\n});\n\n},{\"../../../../../misago/frontend/src/components/profile/root\":97,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/routed-component\":154,\"react-redux\":\"react-redux\"}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestActivationLink = require('../../../../../misago/frontend/src/components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\n\nvar _mountComponent = require('../../../../../misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/request-activation-link\":101,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150}],12:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestPasswordReset = require('../../../../../misago/frontend/src/components/request-password-reset');\n\nvar _requestPasswordReset2 = _interopRequireDefault(_requestPasswordReset);\n\nvar _mountComponent = require('../../../../../misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-password-reset-mount')) {\n    (0, _mountComponent2.default)(_requestPasswordReset2.default, 'request-password-reset-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-password-reset',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/request-password-reset\":102,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _resetPasswordForm = require('../../../../../misago/frontend/src/components/reset-password-form');\n\nvar _resetPasswordForm2 = _interopRequireDefault(_resetPasswordForm);\n\nvar _mountComponent = require('../../../../../misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('reset-password-form-mount')) {\n    (0, _mountComponent2.default)(_resetPasswordForm2.default, 'reset-password-form-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/reset-password-form\":103,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150}],14:[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('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../misago/frontend/src/components/snackbar');\n\nvar _mountComponent = require('../../../../../misago/frontend/src/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},{\"../../../../../misago/frontend/src/components/snackbar\":107,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150,\"react-redux\":\"react-redux\"}],15:[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('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../../../../../misago/frontend/src/components/user-menu/root');\n\nvar _mountComponent = require('../../../../../misago/frontend/src/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},{\"../../../../../misago/frontend/src/components/user-menu/root\":109,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/mount-component\":150,\"react-redux\":\"react-redux\"}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../misago/frontend/src/components/users/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USERS_LISTS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERS_LIST_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:users',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/components/users/root\":126,\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/utils/routed-component\":154}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/include\":138}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../../../../misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/local-storage\":139}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/mobile-navbar-dropdown\":140}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/modal\":141}],21:[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('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"moment\":\"moment\"}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../../misago/frontend/src/services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _pageTitle2.default.init(context.get('SETTINGS').forum_name);\n}\n\n_index2.default.addInitializer({\n  name: 'page-title',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/page-title\":142}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../../misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _polls = require('../../../../misago/frontend/src/services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _polls2.default.init(_ajax2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'polls',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/ajax\":135,\"../../../../misago/frontend/src/services/polls\":143,\"../../../../misago/frontend/src/services/snackbar\":144}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../misago/frontend/src/reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../../../../../misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/auth\":129,\"../../../../../misago/frontend/src/services/store\":145}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../../../../misago/frontend/src/reducers/profile');\n\nvar _store = require('../../../../../misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (_index2.default.has('PROFILE')) {\n    _store2.default.dispatch((0, _profile.dehydrate)(_index2.default.get('PROFILE')));\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:profile-dehydrate',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/profile\":130,\"../../../../../misago/frontend/src/services/store\":145}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../../../../misago/frontend/src/reducers/profile');\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _store = require('../../../../../misago/frontend/src/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('profile', _profile2.default, {});\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:profile',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/profile\":130,\"../../../../../misago/frontend/src/services/store\":145}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../misago/frontend/src/reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../misago/frontend/src/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},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/snackbar\":131,\"../../../../../misago/frontend/src/services/store\":145}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../misago/frontend/src/reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../../../../../misago/frontend/src/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},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/tick\":132,\"../../../../../misago/frontend/src/services/store\":145}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../../../misago/frontend/src/reducers/username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _store = require('../../../../../misago/frontend/src/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('username-history', _usernameHistory2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:username-history',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/username-history\":133,\"../../../../../misago/frontend/src/services/store\":145}],30:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../../../misago/frontend/src/reducers/users');\n\nvar _users2 = _interopRequireDefault(_users);\n\nvar _store = require('../../../../../misago/frontend/src/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('users', _users2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:users',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../misago/frontend/src/index\":128,\"../../../../../misago/frontend/src/reducers/users\":134,\"../../../../../misago/frontend/src/services/store\":145}],31:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/snackbar\":144,\"../../../../misago/frontend/src/services/store\":145}],32:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/store\":145}],33:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../misago/frontend/src/reducers/tick');\n\nvar _store = require('../../../../misago/frontend/src/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},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/reducers/tick\":132,\"../../../../misago/frontend/src/services/store\":145}],34:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../../../../misago/frontend/src/services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../../../../misago/frontend/src/index\":128,\"../../../../misago/frontend/src/services/include\":138,\"../../../../misago/frontend/src/services/zxcvbn\":146}],35:[function(require,module,exports){\nvar pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n  if (!opts) opts = {};\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n\n  } else if (actual instanceof Date && expected instanceof Date) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n    return opts.strict ? actual === expected : actual == expected;\n\n  // 7.4. For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else {\n    return objEquiv(actual, expected, opts);\n  }\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') return false;\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  var i, key;\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n    return false;\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) return false;\n  //~~~I've managed to break Object.keys through screwy arguments passing.\n  //   Converting to array solves the problem.\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return deepEqual(a, b, opts);\n  }\n  if (isBuffer(a)) {\n    if (!isBuffer(b)) {\n      return false;\n    }\n    if (a.length !== b.length) return false;\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) return false;\n    }\n    return true;\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b);\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length != kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) return false;\n  }\n  return typeof a === typeof b;\n}\n\n},{\"./lib/is_arguments.js\":36,\"./lib/keys.js\":37}],36:[function(require,module,exports){\nvar supportsArgumentsClass = (function(){\n  return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n  return object &&\n    typeof object == 'object' &&\n    typeof object.length == 'number' &&\n    Object.prototype.hasOwnProperty.call(object, 'callee') &&\n    !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n    false;\n};\n\n},{}],37:[function(require,module,exports){\nexports = module.exports = typeof Object.keys === 'function'\n  ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n}\n\n},{}],38:[function(require,module,exports){\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n  PUSH: PUSH,\n  REPLACE: REPLACE,\n  POP: POP\n};\n},{}],39:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0;\n  var isDone = false;\n\n  function done() {\n    isDone = true;\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) return;\n\n    if (currentTurn < turns) {\n      work.call(this, currentTurn++, next, done);\n    } else {\n      done.apply(this, arguments);\n    }\n  }\n\n  next();\n}\n},{}],40:[function(require,module,exports){\n(function (process){\n/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededError = 'QuotaExceededError';\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n  return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n  try {\n    window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n      return;\n    }\n\n    if (error.name === QuotaExceededError && window.sessionStorage.length === 0) {\n      // Safari \"private mode\" throws QuotaExceededError.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n      return;\n    }\n\n    throw error;\n  }\n}\n\nfunction readState(key) {\n  var json = undefined;\n  try {\n    json = window.sessionStorage.getItem(createKey(key));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n      return null;\n    }\n  }\n\n  if (json) {\n    try {\n      return JSON.parse(json);\n    } catch (error) {\n      // Ignore invalid JSON.\n    }\n  }\n\n  return null;\n}\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":52}],41:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n  if (node.addEventListener) {\n    node.addEventListener(event, listener, false);\n  } else {\n    node.attachEvent('on' + event, listener);\n  }\n}\n\nfunction removeEventListener(node, event, listener) {\n  if (node.removeEventListener) {\n    node.removeEventListener(event, listener, false);\n  } else {\n    node.detachEvent('on' + event, listener);\n  }\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n  return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n  if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n  callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n    return false;\n  }\n  // FIXME: Work around our browser history not working correctly on Chrome\n  // iOS: https://github.com/rackt/react-router/issues/2565\n  if (ua.indexOf('CriOS') !== -1) {\n    return false;\n  }\n  return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  var ua = navigator.userAgent;\n  return ua.indexOf('Firefox') === -1;\n}\n},{}],42:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;\n},{}],43:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var forceRefresh = options.forceRefresh;\n\n  var isSupported = _DOMUtils.supportsHistory();\n  var useRefresh = !isSupported || forceRefresh;\n\n  function getCurrentLocation(historyState) {\n    historyState = historyState || window.history.state || {};\n\n    var path = _DOMUtils.getWindowPath();\n    var _historyState = historyState;\n    var key = _historyState.key;\n\n    var state = undefined;\n    if (key) {\n      state = _DOMStateStorage.readState(key);\n    } else {\n      state = null;\n      key = history.createKey();\n\n      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n    }\n\n    var location = _parsePath2['default'](path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startPopStateListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function popStateListener(event) {\n      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n      transitionTo(getCurrentLocation(event.state));\n    }\n\n    _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    _DOMStateStorage.saveState(key, state);\n\n    var path = (basename || '') + pathname + search + hash;\n    var historyState = {\n      key: key\n    };\n\n    if (action === _Actions.PUSH) {\n      if (useRefresh) {\n        window.location.href = path;\n        return false; // Prevent location update.\n      } else {\n          window.history.pushState(historyState, null, path);\n        }\n    } else {\n      // REPLACE\n      if (useRefresh) {\n        window.location.replace(path);\n        return false; // Prevent location update.\n      } else {\n          window.history.replaceState(historyState, null, path);\n        }\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopPopStateListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopPopStateListener();\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    registerTransitionHook: registerTransitionHook,\n    unregisterTransitionHook: unregisterTransitionHook\n  });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./Actions\":38,\"./DOMStateStorage\":40,\"./DOMUtils\":41,\"./ExecutionEnvironment\":42,\"./createDOMHistory\":44,\"./parsePath\":49,\"_process\":1,\"invariant\":51}],44:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n  var history = _createHistory2['default'](_extends({\n    getUserConfirmation: _DOMUtils.getUserConfirmation\n  }, options, {\n    go: _DOMUtils.go\n  }));\n\n  function listen(listener) {\n    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n    return history.listen(listener);\n  }\n\n  return _extends({}, history, {\n    listen: listen\n  });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./DOMUtils\":41,\"./ExecutionEnvironment\":42,\"./createHistory\":45,\"_process\":1,\"invariant\":51}],45:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createLocation2 = require('./createLocation');\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n  return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search &&\n  //a.action === b.action && // Different action !== location change.\n  a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var getCurrentLocation = options.getCurrentLocation;\n  var finishTransition = options.finishTransition;\n  var saveState = options.saveState;\n  var go = options.go;\n  var keyLength = options.keyLength;\n  var getUserConfirmation = options.getUserConfirmation;\n\n  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n  var transitionHooks = [];\n\n  function listenBefore(hook) {\n    transitionHooks.push(hook);\n\n    return function () {\n      transitionHooks = transitionHooks.filter(function (item) {\n        return item !== hook;\n      });\n    };\n  }\n\n  var allKeys = [];\n  var changeListeners = [];\n  var location = undefined;\n\n  function getCurrent() {\n    if (pendingLocation && pendingLocation.action === _Actions.POP) {\n      return allKeys.indexOf(pendingLocation.key);\n    } else if (location) {\n      return allKeys.indexOf(location.key);\n    } else {\n      return -1;\n    }\n  }\n\n  function updateLocation(newLocation) {\n    var current = getCurrent();\n\n    location = newLocation;\n\n    if (location.action === _Actions.PUSH) {\n      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n    } else if (location.action === _Actions.REPLACE) {\n      allKeys[current] = location.key;\n    }\n\n    changeListeners.forEach(function (listener) {\n      listener(location);\n    });\n  }\n\n  function listen(listener) {\n    changeListeners.push(listener);\n\n    if (location) {\n      listener(location);\n    } else {\n      var _location = getCurrentLocation();\n      allKeys = [_location.key];\n      updateLocation(_location);\n    }\n\n    return function () {\n      changeListeners = changeListeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function confirmTransitionTo(location, callback) {\n    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n      _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n        if (result != null) {\n          done(result);\n        } else {\n          next();\n        }\n      });\n    }, function (message) {\n      if (getUserConfirmation && typeof message === 'string') {\n        getUserConfirmation(message, function (ok) {\n          callback(ok !== false);\n        });\n      } else {\n        callback(message !== false);\n      }\n    });\n  }\n\n  var pendingLocation = undefined;\n\n  function transitionTo(nextLocation) {\n    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n    pendingLocation = nextLocation;\n\n    confirmTransitionTo(nextLocation, function (ok) {\n      if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n      if (ok) {\n        // treat PUSH to current path like REPLACE to be consistent with browsers\n        if (nextLocation.action === _Actions.PUSH) {\n          var prevPath = createPath(location);\n          var nextPath = createPath(nextLocation);\n\n          if (nextPath === prevPath) nextLocation.action = _Actions.REPLACE;\n        }\n\n        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n      } else if (location && nextLocation.action === _Actions.POP) {\n        var prevIndex = allKeys.indexOf(location.key);\n        var nextIndex = allKeys.indexOf(nextLocation.key);\n\n        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n      }\n    });\n  }\n\n  function push(location) {\n    transitionTo(createLocation(location, _Actions.PUSH, createKey()));\n  }\n\n  function replace(location) {\n    transitionTo(createLocation(location, _Actions.REPLACE, createKey()));\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function createKey() {\n    return createRandomKey(keyLength);\n  }\n\n  function createPath(location) {\n    if (location == null || typeof location === 'string') return location;\n\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n\n    var result = pathname;\n\n    if (search) result += search;\n\n    if (hash) result += hash;\n\n    return result;\n  }\n\n  function createHref(location) {\n    return createPath(location);\n  }\n\n  function createLocation(location, action) {\n    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\n    if (typeof action === 'object') {\n      //warning(\n      //  false,\n      //  'The state (2nd) argument to history.createLocation is deprecated; use a ' +\n      //  'location descriptor instead'\n      //)\n\n      if (typeof location === 'string') location = _parsePath2['default'](location);\n\n      location = _extends({}, location, { state: action });\n\n      action = key;\n      key = arguments[3] || createKey();\n    }\n\n    return _createLocation3['default'](location, action, key);\n  }\n\n  // deprecated\n  function setState(state) {\n    if (location) {\n      updateLocationState(location, state);\n      updateLocation(location);\n    } else {\n      updateLocationState(getCurrentLocation(), state);\n    }\n  }\n\n  function updateLocationState(location, state) {\n    location.state = _extends({}, location.state, state);\n    saveState(location.key, location.state);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    transitionHooks = transitionHooks.filter(function (item) {\n      return item !== hook;\n    });\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    push(_extends({ state: state }, path));\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    replace(_extends({ state: state }, path));\n  }\n\n  return {\n    listenBefore: listenBefore,\n    listen: listen,\n    transitionTo: transitionTo,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    createKey: createKey,\n    createPath: createPath,\n    createHref: createHref,\n    createLocation: createLocation,\n\n    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'),\n    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n  };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];\n},{\"./Actions\":38,\"./AsyncUtils\":39,\"./createLocation\":46,\"./deprecate\":47,\"./parsePath\":49,\"./runTransitionHook\":50,\"deep-equal\":35}],46:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _Actions = require('./Actions');\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction createLocation() {\n  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n  if (typeof location === 'string') location = _parsePath2['default'](location);\n\n  if (typeof action === 'object') {\n    //warning(\n    //  false,\n    //  'The state (2nd) argument to createLocation is deprecated; use a ' +\n    //  'location descriptor instead'\n    //)\n\n    location = _extends({}, location, { state: action });\n\n    action = key || _Actions.POP;\n    key = _fourthArg;\n  }\n\n  var pathname = location.pathname || '/';\n  var search = location.search || '';\n  var hash = location.hash || '';\n  var state = location.state || null;\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash,\n    state: state,\n    action: action,\n    key: key\n  };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];\n},{\"./Actions\":38,\"./parsePath\":49}],47:[function(require,module,exports){\n//import warning from 'warning'\n\n\"use strict\";\n\nexports.__esModule = true;\nfunction deprecate(fn) {\n  return fn;\n  //return function () {\n  //  warning(false, '[history] ' + message)\n  //  return fn.apply(this, arguments)\n  //}\n}\n\nexports[\"default\"] = deprecate;\nmodule.exports = exports[\"default\"];\n},{}],48:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nfunction extractPath(string) {\n  var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n  if (match == null) return string;\n\n  return string.substring(match[0].length);\n}\n\nexports[\"default\"] = extractPath;\nmodule.exports = exports[\"default\"];\n},{}],49:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _extractPath = require('./extractPath');\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nfunction parsePath(path) {\n  var pathname = _extractPath2['default'](path);\n  var search = '';\n  var hash = '';\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substring(hashIndex);\n    pathname = pathname.substring(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substring(searchIndex);\n    pathname = pathname.substring(0, searchIndex);\n  }\n\n  if (pathname === '') pathname = '/';\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash\n  };\n}\n\nexports['default'] = parsePath;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./extractPath\":48,\"_process\":1,\"warning\":52}],50:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n  var result = hook(location, callback);\n\n  if (hook.length < 2) {\n    // Assume the hook runs synchronously and automatically\n    // call the callback with the return value.\n    callback(result);\n  } else {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n  }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":52}],51:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (\"production\" !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n},{}],52:[function(require,module,exports){\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (\"production\" !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n},{}],53:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],54:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\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\"}],55:[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', dangerouslySetInnerHTML: {\n            __html: this.props.message.html\n          } });\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          /* jshint ignore:start */\n          var title = interpolate(gettext(\"This ban expires on %(expires_on)s.\"), {\n            'expires_on': this.props.expires.format('LL, LT')\n          }, true);\n\n          var message = interpolate(gettext(\"This ban expires %(expires_on)s.\"), {\n            'expires_on': this.props.expires.fromNow()\n          }, true);\n\n          return _react2.default.createElement(\n            'abbr',\n            { title: title },\n            message\n          );\n          /* jshint ignore:end */\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\"}],56:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n}(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":71,\"react\":\"react\"}],57:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _lastActivity = require('./last-activity');\n\nvar _lastActivity2 = _interopRequireDefault(_lastActivity);\n\nvar _readIcon = require('./read-icon');\n\nvar _readIcon2 = _interopRequireDefault(_readIcon);\n\nvar _stats = require('./stats');\n\nvar _stats2 = _interopRequireDefault(_stats);\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\n// jshint ignore:line\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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.category.css_class) {\n        return 'panel panel-default panel-category panel-category-' + this.props.category.css_class;\n      } else {\n        return 'panel panel-default panel-category';\n      }\n    }\n  }, {\n    key: 'getHeadingClassName',\n    value: function getHeadingClassName() {\n      if (this.props.category.subcategories.length) {\n        return 'panel-heading';\n      } else {\n        return 'panel-heading heading-alone';\n      }\n    }\n  }, {\n    key: 'getCategoryDescription',\n    value: function getCategoryDescription() {\n      if (this.props.category.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('div', { className: 'panel-body category-description',\n          dangerouslySetInnerHTML: {\n            __html: this.props.category.description.html\n          } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategoryClass',\n    value: function getSubcategoryClass(category) {\n      if (category.css_class) {\n        return 'list-group-item category-subcategory subcategory-' + category.css_class;\n      } else {\n        return 'list-group-item category-subcategory';\n      }\n    }\n  }, {\n    key: 'getSubcategoryDescription',\n    value: function getSubcategoryDescription(category) {\n      if (category.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('div', { className: 'subcategory-description',\n          dangerouslySetInnerHTML: {\n            __html: category.description.html\n          } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategorySubcategoryClass',\n    value: function getSubcategorySubcategoryClass(category) {\n      if (category.css_class) {\n        return 'subcategory subcategory-' + category.css_class;\n      } else {\n        return 'subcategory';\n      }\n    }\n  }, {\n    key: 'getSubcategorySubcategories',\n    value: function getSubcategorySubcategories(category) {\n      var _this2 = this;\n\n      if (category.subcategories.length) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'ul',\n          { className: 'list-inline subcategory-subcategories' },\n          category.subcategories.map(function (category) {\n            return _react2.default.createElement(\n              'li',\n              { key: category.id },\n              _react2.default.createElement(\n                'a',\n                { href: category.absolute_url,\n                  className: _this2.getSubcategorySubcategoryClass(category) },\n                category.name\n              )\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategories',\n    value: function getSubcategories() {\n      var _this3 = this;\n\n      if (this.props.category.subcategories.length) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'ul',\n          { className: 'list-group category-subcategories' },\n          this.props.category.subcategories.map(function (category) {\n            return _react2.default.createElement(\n              'li',\n              { className: _this3.getSubcategoryClass(category),\n                key: category.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'title-row' },\n                _react2.default.createElement(\n                  'h4',\n                  null,\n                  _react2.default.createElement(_readIcon2.default, { category: category }),\n                  _react2.default.createElement(\n                    'a',\n                    { href: category.absolute_url, className: 'item-title' },\n                    category.name\n                  )\n                ),\n                _react2.default.createElement(_stats2.default, { category: category })\n              ),\n              _react2.default.createElement(_lastActivity2.default, { category: category }),\n              _this3.getSubcategoryDescription(category),\n              _this3.getSubcategorySubcategories(category)\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { id: 'panel-category-' + this.props.category.id,\n          className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: this.getHeadingClassName() },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading-inblock' },\n            _react2.default.createElement(\n              'div',\n              { className: 'panel-heading-top-row' },\n              _react2.default.createElement(\n                'h3',\n                { className: 'panel-title' },\n                _react2.default.createElement(_readIcon2.default, { category: this.props.category }),\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.category.absolute_url, className: 'item-title' },\n                  this.props.category.name\n                )\n              ),\n              _react2.default.createElement(_stats2.default, { category: this.props.category })\n            ),\n            _react2.default.createElement(_lastActivity2.default, { category: this.props.category })\n          )\n        ),\n        this.getCategoryDescription(),\n        this.getSubcategories()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./last-activity\":59,\"./read-icon\":60,\"./stats\":62,\"react\":\"react\"}],58:[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: \"message-panel\" },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-icon\" },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            \"info_outline\"\n          )\n        ),\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-body\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            gettext(\"No categories are available.\")\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            gettext(\"No categories are currently defined or you don't have permission to see them.\")\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\"}],59:[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: \"getLastPoster\",\n    value: function getLastPoster() {\n      if (this.props.category.last_poster_url) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          \"a\",\n          { href: this.props.category.last_poster_url,\n            className: \"item-title\" },\n          this.props.category.last_poster_name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"span\",\n            { className: \"item-title\" },\n            this.props.category.last_poster_name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: \"getThreadDetails\",\n    value: function getThreadDetails() {\n      /* jshint ignore:start */\n      return [_react2.default.createElement(\n        \"li\",\n        { className: \"thread-title\", key: \"title\" },\n        _react2.default.createElement(\n          \"a\",\n          { href: this.props.category.last_thread_url, className: \"item-title\" },\n          this.props.category.last_thread_title\n        )\n      ), _react2.default.createElement(\n        \"li\",\n        { className: \"poster-name\", key: \"poster\" },\n        this.getLastPoster()\n      ), _react2.default.createElement(\n        \"li\",\n        { className: \"thread-date\", key: \"date\" },\n        _react2.default.createElement(\n          \"abbr\",\n          { title: this.props.category.last_post_on.format('LL, LT') },\n          this.props.category.last_post_on.fromNow()\n        )\n      )];\n      /* jshint ignore:end */\n    }\n  }, {\n    key: \"getLastActivity\",\n    value: function getLastActivity() {\n      if (this.props.category.acl.can_browse) {\n        if (!this.props.category.acl.can_see_all_threads) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"li\",\n            { className: \"thread-message\" },\n            _react2.default.createElement(\n              \"span\",\n              { className: \"material-icon\" },\n              \"info_outline\"\n            ),\n            gettext(\"This category is private. You can see only your own threads within it.\")\n          );\n          /* jshint ignore:end */\n        } else if (this.props.category.last_thread_title) {\n            return this.getThreadDetails();\n          } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              \"li\",\n              { className: \"thread-message\" },\n              _react2.default.createElement(\n                \"span\",\n                { className: \"material-icon\" },\n                \"error_outline\"\n              ),\n              gettext(\"This category is empty.\")\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"li\",\n            { className: \"thread-message\" },\n            _react2.default.createElement(\n              \"span\",\n              { className: \"material-icon\" },\n              \"highlight_off\"\n            ),\n            gettext(\"This category is protected. You can't browse it's contents.\")\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"ul\",\n        { className: \"list-inline category-last-activity\" },\n        this.getLastActivity()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],60:[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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.category.is_read) {\n        return 'material-icon read-status item-read';\n      } else {\n        return 'material-icon read-status item-new';\n      }\n    }\n  }, {\n    key: 'getTitle',\n    value: function getTitle() {\n      if (this.props.category.is_closed) {\n        if (this.props.category.is_read) {\n          return gettext(\"This category has no new posts. (closed)\");\n        } else {\n          return gettext(\"This category has new posts. (closed)\");\n        }\n      } else {\n        if (this.props.category.is_read) {\n          return gettext(\"This category has no new posts.\");\n        } else {\n          return gettext(\"This category has new posts.\");\n        }\n      }\n    }\n  }, {\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.category.is_closed) {\n        if (this.props.category.is_read) {\n          return 'lock_outline';\n        } else {\n          return 'lock';\n        }\n      } else {\n        if (this.props.category.is_read) {\n          return 'chat_bubble_outline';\n        } else {\n          return 'chat_bubble';\n        }\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClassName(), title: this.getTitle() },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],61:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _category = require('./category');\n\nvar _category2 = _interopRequireDefault(_category);\n\nvar _emptyMessage = require('./empty-message');\n\nvar _emptyMessage2 = _interopRequireDefault(_emptyMessage);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\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 dehydrate = function dehydrate(category) {\n  return Object.assign({}, category, {\n    last_post_on: category.last_post_on ? (0, _moment2.default)(category.last_post_on) : null,\n    subcategories: category.subcategories.map(dehydrate)\n  });\n};\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _this.setState({\n        categories: data.map(dehydrate)\n      });\n    };\n\n    _this.state = {\n      categories: _index2.default.get('CATEGORIES').map(dehydrate)\n    };\n\n    _this.startPolling(_index2.default.get('CATEGORIES_API'));\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'categories',\n        url: api,\n        frequency: 180 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      if (this.state.categories.length) {\n        return 'page page-categories';\n      } else {\n        return 'page page-categories page-message';\n      }\n    }\n  }, {\n    key: 'getHeading',\n    value: function getHeading() {\n      if (_index2.default.get('CATEGORIES_ON_INDEX')) {\n        return _index2.default.get('SETTINGS').forum_name;\n      } else {\n        return gettext(\"Categories\");\n      }\n    }\n  }, {\n    key: 'getCategoriesList',\n    value: function getCategoriesList() {\n      if (this.state.categories.length) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'categories-list' },\n          this.state.categories.map(function (category) {\n            return _react2.default.createElement(_category2.default, { category: category, key: category.id });\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_emptyMessage2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              null,\n              this.getHeading()\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          this.getCategoriesList()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick\n  };\n}\n\n},{\"../../index\":128,\"../../services/polls\":143,\"./category\":57,\"./empty-message\":58,\"moment\":\"moment\",\"react\":\"react\"}],62:[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: \"getThreadsCount\",\n    value: function getThreadsCount() {\n      var string = ngettext(\"%(threads)s thread\", \"%(threads)s threads\", this.props.category.threads);\n\n      return interpolate(string, {\n        'threads': this.props.category.threads\n      }, true);\n    }\n  }, {\n    key: \"getPostsCount\",\n    value: function getPostsCount() {\n      var string = ngettext(\"%(posts)s post\", \"%(posts)s posts\", this.props.category.posts);\n\n      return interpolate(string, {\n        'posts': this.props.category.posts\n      }, true);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"ul\",\n        { className: \"list-inline category-stats\" },\n        _react2.default.createElement(\n          \"li\",\n          { className: \"category-threads\" },\n          this.getThreadsCount()\n        ),\n        _react2.default.createElement(\n          \"li\",\n          { className: \"category-posts\" },\n          this.getPostsCount()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],63:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.cropAvatar = function () {\n      if (_this.state.isLoading) {\n        return false;\n      }\n\n      _this.setState({\n        'isLoading': true\n      });\n\n      var avatarType = _this.props.upload ? 'crop_tmp' : 'crop_org';\n      var cropit = $('.crop-form');\n\n      _ajax2.default.post(_this.props.user.api_url.avatar, {\n        'avatar': avatarType,\n        'crop': {\n          'offset': cropit.cropit('offset'),\n          'zoom': cropit.cropit('zoom')\n        }\n      }).then(function (data) {\n        _this.props.onComplete(data.avatar_hash, data.options);\n        _snackbar2.default.success(data.detail);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getAvatarSize',\n    value: function getAvatarSize() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.size;\n      } else {\n        return this.props.options.crop_org.size;\n      }\n    }\n  }, {\n    key: 'getAvatarSecret',\n    value: function getAvatarSecret() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.secret;\n      } else {\n        return this.props.options.crop_org.secret;\n      }\n    }\n  }, {\n    key: 'getAvatarHash',\n    value: function getAvatarHash() {\n      return this.props.upload || this.props.user.avatar_hash;\n    }\n  }, {\n    key: 'getImagePath',\n    value: function getImagePath() {\n      return [BASE_URL, this.getAvatarSecret() + ':' + this.getAvatarHash(), this.props.user.id + '.png'].join('/');\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      var cropit = $('.crop-form');\n      cropit.width(this.getAvatarSize());\n\n      cropit.cropit({\n        'width': this.getAvatarSize(),\n        'height': this.getAvatarSize(),\n        'imageState': {\n          'src': this.getImagePath()\n        },\n        onImageLoaded: function onImageLoaded() {\n          if (_this2.props.upload) {\n            // center uploaded image\n            var zoomLevel = cropit.cropit('zoom');\n            var imageSize = cropit.cropit('imageSize');\n\n            // is it wider than taller?\n            if (imageSize.width > imageSize.height) {\n              var displayedWidth = imageSize.width * zoomLevel;\n              var offsetX = (displayedWidth - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': offsetX,\n                'y': 0\n              });\n            } else if (imageSize.width < imageSize.height) {\n              var displayedHeight = imageSize.height * zoomLevel;\n              var offsetY = (displayedHeight - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': 0,\n                'y': offsetY\n              });\n            }\n          } else {\n            // use preserved crop\n            var crop = _this2.props.options.crop_org.crop;\n            if (crop) {\n              cropit.cropit('zoom', crop.zoom);\n              cropit.cropit('offset', {\n                'x': crop.x,\n                'y': crop.y\n              });\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      $('.crop-form').cropit('disable');\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-crop' },\n          _react2.default.createElement(\n            'div',\n            { className: 'crop-form' },\n            _react2.default.createElement('div', { className: 'cropit-image-preview' }),\n            _react2.default.createElement('input', { type: 'range', className: 'cropit-image-zoom-input' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.cropAvatar,\n                loading: this.state.isLoading,\n                className: 'btn-primary btn-block' },\n              this.props.upload ? gettext(\"Set avatar\") : gettext(\"Crop image\")\n            ),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":135,\"../../services/snackbar\":144,\"../avatar\":54,\"../button\":56,\"react\":\"react\"}],64:[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.Gallery = exports.GalleryItem = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar GalleryItem = exports.GalleryItem = function (_React$Component) {\n  _inherits(GalleryItem, _React$Component);\n\n  function GalleryItem() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, GalleryItem);\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(GalleryItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.select = function () {\n      _this.props.select(_this.props.image);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(GalleryItem, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      if (this.props.selection === this.props.image) {\n        if (this.props.disabled) {\n          return 'btn btn-avatar btn-disabled avatar-selected';\n        } else {\n          return 'btn btn-avatar avatar-selected';\n        }\n      } else if (this.props.disabled) {\n        return 'btn btn-avatar btn-disabled';\n      } else {\n        return 'btn btn-avatar';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button',\n          className: this.getClassName(),\n          disabled: this.props.disabled,\n          onClick: this.select },\n        _react2.default.createElement('img', { src: _index2.default.get('MEDIA_URL') + this.props.image })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GalleryItem;\n}(_react2.default.Component);\n\nvar Gallery = exports.Gallery = function (_React$Component2) {\n  _inherits(Gallery, _React$Component2);\n\n  function Gallery() {\n    _classCallCheck(this, Gallery);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Gallery).apply(this, arguments));\n  }\n\n  _createClass(Gallery, [{\n    key: 'render',\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'avatars-gallery' },\n        _react2.default.createElement(\n          'h3',\n          null,\n          this.props.name\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'avatars-gallery-images' },\n          (0, _batch2.default)(this.props.images, 4, null).map(function (row, i) {\n            return _react2.default.createElement(\n              'div',\n              { className: 'row', key: i },\n              row.map(function (item, i) {\n                return _react2.default.createElement(\n                  'div',\n                  { className: 'col-xs-3', key: i },\n                  item ? _react2.default.createElement(GalleryItem, { image: item,\n                    disabled: _this3.props.disabled,\n                    select: _this3.props.select,\n                    selection: _this3.props.selection }) : _react2.default.createElement('div', { className: 'blank-avatar' })\n                );\n              })\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Gallery;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.select = function (image) {\n      _this4.setState({\n        selection: image\n      });\n    };\n\n    _this4.save = function () {\n      if (_this4.state.isLoading) {\n        return false;\n      }\n\n      _this4.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(_this4.props.user.api_url.avatar, {\n        avatar: 'galleries',\n        image: _this4.state.selection\n      }).then(function (response) {\n        _this4.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this4.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this4.setState({\n            'isLoading': false\n          });\n        } else {\n          _this4.props.showError(rejection);\n        }\n      });\n    };\n\n    _this4.state = {\n      'selection': null,\n      'isLoading': false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-gallery' },\n          this.props.options.galleries.map(function (item, i) {\n            return _react2.default.createElement(Gallery, { name: item.name,\n              images: item.images,\n              selection: _this5.state.selection,\n              disabled: _this5.state.isLoading,\n              select: _this5.select,\n              key: i });\n          })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-6 col-md-offset-3' },\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.save,\n                  loading: this.state.isLoading,\n                  disabled: !this.state.selection,\n                  className: 'btn-primary btn-block' },\n                this.state.selection ? gettext(\"Save choice\") : gettext(\"Select avatar\")\n              ),\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.props.showIndex,\n                  disabled: this.state.isLoading,\n                  className: 'btn-default btn-block' },\n                gettext(\"Cancel\")\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},{\"../../index\":128,\"../../services/ajax\":135,\"../../services/snackbar\":144,\"../../utils/batch\":148,\"../button\":56,\"react\":\"react\"}],65:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.setGravatar = function () {\n      _this.callApi('gravatar');\n    };\n\n    _this.setGenerated = function () {\n      _this.callApi('generated');\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'callApi',\n    value: function callApi(avatarType) {\n      var _this2 = this;\n\n      if (this.state.isLoading) {\n        return false;\n      }\n\n      this.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(this.props.user.api_url.avatar, {\n        avatar: avatarType\n      }).then(function (response) {\n        _this2.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this2.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this2.setState({\n            'isLoading': false\n          });\n        } else {\n          _this2.props.showError(rejection);\n        }\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getGravatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getGravatarButton() {\n      if (this.props.options.gravatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.setGravatar,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gravatar' },\n          gettext(\"Download my Gravatar\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getCropButton',\n    value: function getCropButton() {\n      if (this.props.options.crop_org) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showCrop,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-crop' },\n          gettext(\"Re-crop uploaded image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      if (this.props.options.upload) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showUpload,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-upload' },\n          gettext(\"Upload new image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getGalleryButton',\n    value: function getGalleryButton() {\n      if (this.props.options.galleries) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showGallery,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gallery' },\n          gettext(\"Pick avatar from gallery\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getAvatarPreview',\n    value: function getAvatarPreview() {\n      /* jshint ignore:start */\n      var userPeview = {\n        id: this.props.user.id,\n        avatar_hash: this.props.options.avatar_hash\n      };\n      /* jshint ignore:end */\n\n      if (this.state.isLoading) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'avatar-preview preview-loading' },\n          _react2.default.createElement(_avatar2.default, { user: userPeview, size: '200' }),\n          _react2.default.createElement(_loader2.default, null)\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            { className: 'avatar-preview' },\n            _react2.default.createElement(_avatar2.default, { user: userPeview, size: '200' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-index' },\n        _react2.default.createElement(\n          'div',\n          { className: 'row' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-5' },\n            this.getAvatarPreview()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-7' },\n            this.getGravatarButton(),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.setGenerated,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block btn-avatar-generate' },\n              gettext(\"Generate my individual avatar\")\n            ),\n            this.getCropButton(),\n            this.getUploadButton(),\n            this.getGalleryButton()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":135,\"../../services/snackbar\":144,\"../avatar\":54,\"../button\":56,\"../loader\":71,\"react\":\"react\"}],66:[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.ChangeAvatarError = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('./index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _upload = require('./upload');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _gallery = require('./gallery');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _modalLoader = require('../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ChangeAvatarError = exports.ChangeAvatarError = function (_React$Component) {\n  _inherits(ChangeAvatarError, _React$Component);\n\n  function ChangeAvatarError() {\n    _classCallCheck(this, ChangeAvatarError);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeAvatarError).apply(this, arguments));\n  }\n\n  _createClass(ChangeAvatarError, [{\n    key: 'getErrorReason',\n    value: function getErrorReason() {\n      if (this.props.reason) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('p', { dangerouslySetInnerHTML: { __html: this.props.reason } });\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-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'remove_circle_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getErrorReason()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeAvatarError;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this2, _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 = (_this2 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this2), _this2.showError = function (error) {\n      _this2.setState({\n        error: error\n      });\n    }, _this2.showIndex = function () {\n      _this2.setState({\n        'component': _index2.default\n      });\n    }, _this2.showUpload = function () {\n      _this2.setState({\n        'component': _upload2.default\n      });\n    }, _this2.showCrop = function () {\n      _this2.setState({\n        'component': _crop2.default\n      });\n    }, _this2.showGallery = function () {\n      _this2.setState({\n        'component': _gallery2.default\n      });\n    }, _this2.completeFlow = function (avatarHash, options) {\n      _store2.default.dispatch((0, _users.updateAvatar)(_this2.props.user, avatarHash));\n\n      _this2.setState({\n        'component': _index2.default,\n        options: options\n      });\n    }, _temp), _possibleConstructorReturn(_this2, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this3 = this;\n\n      _ajax2.default.get(this.props.user.api_url.avatar).then(function (options) {\n        _this3.setState({\n          'component': _index2.default,\n          'options': options,\n          'error': null\n        });\n      }, function (rejection) {\n        _this3.showError(rejection);\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getBody',\n\n    /* jshint ignore:end */\n\n    value: function getBody() {\n      if (this.state) {\n        if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeAvatarError, { message: this.state.error.detail,\n            reason: this.state.error.reason });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(this.state.component, { options: this.state.options,\n              user: this.props.user,\n              onComplete: this.completeFlow,\n              showError: this.showError,\n              showIndex: this.showIndex,\n              showCrop: this.showCrop,\n              showUpload: this.showUpload,\n              showGallery: this.showGallery });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state && this.state.error) {\n        return \"modal-dialog modal-message modal-change-avatar\";\n      } else {\n        return \"modal-dialog modal-change-avatar\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change your avatar\")\n            )\n          ),\n          this.getBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    'user': state.auth.user\n  };\n}\n\n},{\"../../reducers/users\":134,\"../../services/ajax\":135,\"../../services/store\":145,\"../modal-loader\":72,\"./crop\":63,\"./gallery\":64,\"./index\":65,\"./upload\":67,\"react\":\"react\"}],67:[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 _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _fileSize = require('../../utils/file-size');\n\nvar _fileSize2 = _interopRequireDefault(_fileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.pickFile = function () {\n      document.getElementById('avatar-hidden-upload').click();\n    };\n\n    _this.uploadFile = function () {\n      var image = document.getElementById('avatar-hidden-upload').files[0];\n\n      var validationError = _this.validateFile(image);\n      if (validationError) {\n        _snackbar2.default.error(validationError);\n        return;\n      }\n\n      _this.setState({\n        image: image,\n        'preview': URL.createObjectURL(image),\n        'progress': 0\n      });\n\n      var data = new FormData();\n      data.append('avatar', 'upload');\n      data.append('image', image);\n\n      _ajax2.default.upload(_this.props.user.api_url.avatar, data, function (progress) {\n        _this.setState({\n          progress: progress\n        });\n      }).then(function (data) {\n        _this.setState({\n          'options': data.options,\n          'uploaded': data.detail\n        });\n        _snackbar2.default.info(gettext(\"Your image has been uploaded and you may now crop it.\"));\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false,\n            'image': null,\n            'progress': 0\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'image': null,\n      'preview': null,\n      'progress': 0,\n      'uploaded': null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'validateFile',\n    value: function validateFile(image) {\n      if (image.size > this.props.options.upload.limit) {\n        return interpolate(gettext(\"Selected file is too big. (%(filesize)s)\"), {\n          'filesize': (0, _fileSize2.default)(image.size)\n        }, true);\n      }\n\n      var invalidTypeMsg = gettext(\"Selected file type is not supported.\");\n      if (this.props.options.upload.allowed_mime_types.indexOf(image.type) === -1) {\n        return invalidTypeMsg;\n      }\n\n      var extensionFound = false;\n      var loweredFilename = image.name.toLowerCase();\n      this.props.options.upload.allowed_extensions.map(function (extension) {\n        if (loweredFilename.substr(extension.length * -1) === extension) {\n          extensionFound = true;\n        }\n      });\n\n      if (!extensionFound) {\n        return invalidTypeMsg;\n      }\n\n      return false;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getUploadRequirements',\n\n    /* jshint ignore:end */\n\n    value: function getUploadRequirements(options) {\n      var extensions = options.allowed_extensions.map(function (extension) {\n        return extension.substr(1);\n      });\n\n      return interpolate(gettext(\"%(files)s files smaller than %(limit)s\"), {\n        'files': extensions.join(', '),\n        'limit': (0, _fileSize2.default)(options.limit)\n      }, true);\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          _button2.default,\n          { className: 'btn-pick-file',\n            onClick: this.pickFile },\n          _react2.default.createElement(\n            'div',\n            { className: 'material-icon' },\n            'input'\n          ),\n          gettext(\"Select file\")\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-muted' },\n          this.getUploadRequirements(this.props.options.upload)\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUploadProgressLabel',\n    value: function getUploadProgressLabel() {\n      return interpolate(gettext(\"%(progress)s % complete\"), {\n        'progress': this.state.progress\n      }, true);\n    }\n  }, {\n    key: 'getUploadProgress',\n    value: function getUploadProgress() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          'div',\n          { className: 'upload-progress' },\n          _react2.default.createElement('img', { src: this.state.preview }),\n          _react2.default.createElement(\n            'div',\n            { className: 'progress' },\n            _react2.default.createElement(\n              'div',\n              { className: 'progress-bar', role: 'progressbar',\n                'aria-valuenow': '{this.state.progress}',\n                'aria-valuemin': '0', 'aria-valuemax': '100',\n                style: { width: this.state.progress + '%' } },\n              _react2.default.createElement(\n                'span',\n                { className: 'sr-only' },\n                this.getUploadProgressLabel()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderUpload',\n    value: function renderUpload() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement('input', { type: 'file',\n          id: 'avatar-hidden-upload',\n          className: 'hidden-file-upload',\n          onChange: this.uploadFile }),\n        this.state.image ? this.getUploadProgress() : this.getUploadButton(),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: !!this.state.image,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderCrop',\n    value: function renderCrop() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(_crop2.default, { options: this.state.options,\n        user: this.props.user,\n        upload: this.state.uploaded,\n        onComplete: this.props.onComplete,\n        showError: this.props.showError,\n        showIndex: this.props.showIndex });\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return this.state.uploaded ? this.renderCrop() : this.renderUpload();\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":135,\"../../services/snackbar\":144,\"../../utils/file-size\":149,\"../button\":56,\"./crop\":63,\"react\":\"react\"}],68:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label + ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],69:[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\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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 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 = _defineProperty({}, 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      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n      if (!this.state.validators) {\n        return errors;\n      }\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      _snackbar2.default.apiError(rejection);\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/snackbar\":144,\"../utils/validators\":155,\"react\":\"react\"}],70:[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: 'isActive',\n    value: function isActive() {\n      if (this.props.path) {\n        return document.location.pathname.indexOf(this.props.path) === 0;\n      } else {\n        return false;\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.isActive()) {\n        return (this.props.className || '') + ' ' + (this.props.activeClassName || 'active');\n      } else {\n        return this.props.className || '';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        this.props.children\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],71:[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: this.props.className || \"loader\" },\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\"}],72:[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 _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-body modal-loader' },\n        _react2.default.createElement(_loader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":71,\"react\":\"react\"}],73:[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 _panelMessage = require('./panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\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\nvar _class = function (_PanelMessage) {\n  _inherits(_class, _PanelMessage);\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: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            this.props.icon || 'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getHelpText()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_panelMessage2.default);\n\nexports.default = _class;\n\n},{\"./panel-message\":85,\"react\":\"react\"}],74:[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 _panelLoader = require('../../panel-loader');\n\nvar _panelLoader2 = _interopRequireDefault(_panelLoader);\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 _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: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(_panelLoader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../panel-loader\":84,\"react\":\"react\"}],75:[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 _panelMessage = require('../../panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\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 _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: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.options.next_on) {\n        return interpolate(gettext(\"You will be able to change your username %(next_change)s.\"), { 'next_change': this.props.options.next_on.fromNow() }, true);\n      } else {\n        return gettext(\"You have used up available name changes.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(_panelMessage2.default, { message: gettext(\"You can't change your username at the moment.\"),\n          helpText: this.getHelpText() })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../panel-message\":85,\"react\":\"react\"}],76:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      username: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength({\n          username_length_min: props.options.length_min\n        }), validators.usernameMaxLength({\n          username_length_max: props.options.length_max\n        })]\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      var phrases = [];\n\n      if (this.props.options.changes_left > 0) {\n        var message = ngettext(\"You can change your username %(changes_left)s more time.\", \"You can change your username %(changes_left)s more times.\", this.props.options.changes_left);\n\n        phrases.push(interpolate(message, {\n          'changes_left': this.props.options.changes_left\n        }, true));\n      }\n\n      if (this.props.user.acl.name_changes_expire > 0) {\n        var message = ngettext(\"Used changes redeem after %(name_changes_expire)s day.\", \"Used changes redeem after %(name_changes_expire)s days.\", this.props.user.acl.name_changes_expire);\n\n        phrases.push(interpolate(message, {\n          'name_changes_expire': this.props.user.acl.name_changes_expire\n        }, true));\n      }\n\n      return phrases.length ? phrases.join(' ') : null;\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      if (errors.username) {\n        _snackbar2.default.error(errors.username[0]);\n        return false;\n      }if (this.state.username.trim() === this.props.user.username) {\n        _snackbar2.default.info(gettext(\"Your new username is same as current one.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.username, {\n        'username': this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      this.setState({\n        'username': ''\n      });\n\n      this.props.complete(success.username, success.slug, success.options);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      _snackbar2.default.apiError(rejection);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New username\"), 'for': 'id_username',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                helpText: this.getHelpText() },\n              _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('username'),\n                value: this.state.username })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change username\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../services/ajax\":135,\"../../../services/snackbar\":144,\"../../../utils/validators\":155,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"react\":\"react\"}],77:[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\nvar _formLoading = require('./form-loading');\n\nvar _formLoading2 = _interopRequireDefault(_formLoading);\n\nvar _formLocked = require('./form-locked');\n\nvar _formLocked2 = _interopRequireDefault(_formLocked);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _usernameHistory = require('../../username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory3 = require('../../../reducers/username-history');\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.onComplete = function (username, slug, options) {\n      _this.setState({\n        options: options\n      });\n\n      _store2.default.dispatch((0, _usernameHistory3.addNameChange)({ username: username, slug: slug }, _this.props.user, _this.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(_this.props.user, username, slug));\n\n      _snackbar2.default.success(gettext(\"Your username has been changed successfully.\"));\n    };\n\n    _this.state = {\n      isLoaded: false,\n      options: null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _pageTitle2.default.set({\n        title: gettext(\"Change username\"),\n        parent: gettext(\"Change your options\")\n      });\n\n      Promise.all([_ajax2.default.get(this.props.user.api_url.username), _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), { user: this.props.user.id })]).then(function (data) {\n        _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data[1].results));\n\n        _this2.setState({\n          isLoaded: true,\n          options: {\n            changes_left: data[0].changes_left,\n            length_min: data[0].length_min,\n            length_max: data[0].length_max,\n            next_on: data[0].next_on ? (0, _moment2.default)(data[0].next_on) : null\n          }\n        });\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getChangeForm',\n\n    /* jshint ignore:end */\n\n    value: function getChangeForm() {\n      if (this.state.isLoaded) {\n        if (this.state.options.changes_left > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_form2.default, { user: this.props.user,\n            options: this.state.options,\n            complete: this.onComplete });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(_formLocked2.default, { options: this.state.options });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_formLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        this.getChangeForm(),\n        _react2.default.createElement(_usernameHistory2.default, { isLoaded: this.state.isLoaded,\n          changes: this.props['username-history'] })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../reducers/username-history\":133,\"../../../reducers/users\":134,\"../../../services/ajax\":135,\"../../../services/page-title\":142,\"../../../services/snackbar\":144,\"../../../services/store\":145,\"../../username-history\":112,\"./form\":76,\"./form-loading\":74,\"./form-locked\":75,\"moment\":\"moment\",\"react\":\"react\"}],78:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _select = require('../select');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _yesNoSwitch = require('../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _auth = require('../../reducers/auth');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\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\n      'is_hiding_presence': props.user.is_hiding_presence,\n      'limits_private_thread_invites_to': props.user.limits_private_thread_invites_to,\n      'subscribe_to_started_threads': props.user.subscribe_to_started_threads,\n      'subscribe_to_replied_threads': props.user.subscribe_to_replied_threads,\n\n      'errors': {}\n    };\n\n    _this.privateThreadInvitesChoices = [{\n      'value': 0,\n      'icon': 'help_outline',\n      'label': gettext('Everybody')\n    }, {\n      'value': 1,\n      'icon': 'done_all',\n      'label': gettext('Users I follow')\n    }, {\n      'value': 2,\n      'icon': 'highlight_off',\n      'label': gettext('Nobody')\n    }];\n\n    _this.subscribeToChoices = [{\n      'value': 0,\n      'icon': 'bookmark_border',\n      'label': gettext('No')\n    }, {\n      'value': 1,\n      'icon': 'bookmark',\n      'label': gettext('Bookmark')\n    }, {\n      'value': 2,\n      'icon': 'mail',\n      'label': gettext('Bookmark with e-mail notification')\n    }];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.options, {\n        is_hiding_presence: this.state.is_hiding_presence,\n        limits_private_thread_invites_to: this.state.limits_private_thread_invites_to,\n        subscribe_to_started_threads: this.state.subscribe_to_started_threads,\n        subscribe_to_replied_threads: this.state.subscribe_to_replied_threads\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _store2.default.dispatch((0, _auth.patchUser)({\n        is_hiding_presence: this.state.is_hiding_presence,\n        limits_private_thread_invites_to: this.state.limits_private_thread_invites_to,\n        subscribe_to_started_threads: this.state.subscribe_to_started_threads,\n        subscribe_to_replied_threads: this.state.subscribe_to_replied_threads\n      }));\n      _snackbar2.default.success(gettext(\"Your forum options have been changed.\"));\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        _snackbar2.default.error(gettext(\"Please reload page and try again.\"));\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Forum options\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change forum options\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Privacy settings\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Hide my presence\"),\n                  helpText: gettext(\"If you hide your presence, only members with permission to see hidden users will see when you are online.\"),\n                  'for': 'id_is_hiding_presence',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_hiding_presence',\n                  disabled: this.state.isLoading,\n                  iconOn: 'visibility_off',\n                  iconOff: 'visibility',\n                  labelOn: gettext(\"Hide my presence from other users\"),\n                  labelOff: gettext(\"Show my presence to other users\"),\n                  onChange: this.bindInput('is_hiding_presence'),\n                  value: this.state.is_hiding_presence })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Private thread invitations\"),\n                  'for': 'id_limits_private_thread_invites_to',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_limits_private_thread_invites_to',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('limits_private_thread_invites_to'),\n                  value: this.state.limits_private_thread_invites_to,\n                  choices: this.privateThreadInvitesChoices })\n              )\n            ),\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Automatic subscriptions\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I start\"),\n                  'for': 'id_subscribe_to_started_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_started_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_started_threads'),\n                  value: this.state.subscribe_to_started_threads,\n                  choices: this.subscribeToChoices })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I reply to\"),\n                  'for': 'id_subscribe_to_replied_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_replied_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_replied_threads'),\n                  value: this.state.subscribe_to_replied_threads,\n                  choices: this.subscribeToChoices })\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Save changes\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../reducers/auth\":129,\"../../services/ajax\":135,\"../../services/page-title\":142,\"../../services/snackbar\":144,\"../../services/store\":145,\"../button\":56,\"../form\":69,\"../form-group\":68,\"../select\":105,\"../yes-no-switch\":127,\"react\":\"react\"}],79:[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.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + option.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: option.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              option.icon\n            ),\n            option.name\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + option.component + '/',\n              key: option.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + option.component + '/',\n                onClick: _this4.props.hideNav },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                option.icon\n              ),\n              option.name\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":128,\"../li\":70,\"react\":\"react\",\"react-router\":\"react-router\"}],80:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _forumOptions = require('./forum-options');\n\nvar _forumOptions2 = _interopRequireDefault(_forumOptions);\n\nvar _root = require('./change-username/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _root3 = require('./sign-in-credentials/root');\n\nvar _root4 = _interopRequireDefault(_root3);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\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-options' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Change your options\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { options: _index2.default.get('USER_OPTIONS'),\n            baseUrl: _index2.default.get('USERCP_URL'),\n            hideNav: this.hideNav })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(_navs.SideNav, { options: _index2.default.get('USER_OPTIONS'),\n                baseUrl: _index2.default.get('USERCP_URL') })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'username-history': store['username-history']\n  };\n}\n\nfunction paths() {\n  return [{\n    path: _index2.default.get('USERCP_URL') + 'forum-options/',\n    component: (0, _reactRedux.connect)(select)(_forumOptions2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'change-username/',\n    component: (0, _reactRedux.connect)(select)(_root2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'sign-in-credentials/',\n    component: (0, _reactRedux.connect)(select)(_root4.default)\n  }];\n}\n\n},{\"../../index\":128,\"./change-username/root\":77,\"./forum-options\":78,\"./navs\":79,\"./sign-in-credentials/root\":83,\"react\":\"react\",\"react-redux\":\"react-redux\"}],81:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      new_email: '',\n      password: '',\n\n      validators: {\n        new_email: [validators.email()],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_email.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_email) {\n        _snackbar2.default.error(errors.new_email[0]);\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_email, {\n        new_email: this.state.new_email,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_email: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_email) {\n          _snackbar2.default.error(rejection.new_email);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change e-mail address\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New e-mail\"), 'for': 'id_new_email',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'text', id: 'id_new_email', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_email'),\n                value: this.state.new_email })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change e-mail\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../services/ajax\":135,\"../../../services/snackbar\":144,\"../../../utils/validators\":155,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"react\":\"react\"}],82:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      new_password: '',\n      repeat_password: '',\n      password: '',\n\n      validators: {\n        new_password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        repeat_password: [],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_password.trim().length, this.state.repeat_password.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_password) {\n        _snackbar2.default.error(errors.new_password[0]);\n        return false;\n      }\n\n      if (this.state.new_password.trim() !== this.state.repeat_password.trim()) {\n        _snackbar2.default.error(gettext(\"New passwords are different.\"));\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_password, {\n        new_password: this.state.new_password,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_password: '',\n        repeat_password: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_password) {\n          _snackbar2.default.error(rejection.new_password);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change password\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New password\"), 'for': 'id_new_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_new_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_password'),\n                value: this.state.new_password })\n            ),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Repeat password\"), 'for': 'id_repeat_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_repeat_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('repeat_password'),\n                value: this.state.repeat_password })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change password\")\n                )\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\":128,\"../../../services/ajax\":135,\"../../../services/snackbar\":144,\"../../../utils/validators\":155,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"react\":\"react\"}],83:[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 _changeEmail = require('./change-email');\n\nvar _changeEmail2 = _interopRequireDefault(_changeEmail);\n\nvar _changePassword = require('./change-password');\n\nvar _changePassword2 = _interopRequireDefault(_changePassword);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Change email or password\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(_changeEmail2.default, { user: this.props.user }),\n        _react2.default.createElement(_changePassword2.default, { user: this.props.user }),\n        _react2.default.createElement(\n          'p',\n          { className: 'message-line' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'warning'\n          ),\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('FORGOTTEN_PASSWORD_URL') },\n            gettext(\"Change forgotten password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../services/page-title\":142,\"./change-email\":81,\"./change-password\":82,\"react\":\"react\"}],84:[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 _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: 'panel-body panel-body-loading' },\n        _react2.default.createElement(_loader2.default, { className: 'loader loader-spaced' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":71,\"react\":\"react\"}],85:[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: \"getHelpText\",\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          \"p\",\n          { className: \"help-block\" },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"panel-body panel-message-body\" },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-icon\" },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.props.icon || 'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-body\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.props.message\n          ),\n          this.getHelpText()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],86:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.LABELS = [gettext(\"Entered password is very weak.\"), gettext(\"Entered password is weak.\"), gettext(\"Entered password is average.\"), gettext(\"Entered password is strong.\"), gettext(\"Entered password is very strong.\")];\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":146,\"react\":\"react\"}],87:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _followButton = require('./follow-button');\n\nvar _followButton2 = _interopRequireDefault(_followButton);\n\nvar _nav = require('./moderation/nav');\n\nvar _nav2 = _interopRequireDefault(_nav);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\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: 'getUserStatus',\n    value: function getUserStatus() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'li',\n        { className: 'user-status-display' },\n        _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.profile, status: this.props.profile.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.profile,\n            status: this.props.profile.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.profile,\n            status: this.props.profile.status,\n            className: 'status-label' })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUserRank',\n    value: function getUserRank() {\n      if (this.props.profile.rank.is_tab) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-rank' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.profile.rank.absolute_url, className: 'item-title' },\n            this.props.profile.rank.name\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'li',\n            { className: 'user-rank' },\n            _react2.default.createElement(\n              'span',\n              { className: 'item-title' },\n              this.props.profile.rank.name\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.profile.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-title' },\n          this.props.profile.title\n        );\n        /* jshint ignore:end */\n      } else if (this.props.profile.rank.title) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'li',\n            { className: 'user-title' },\n            this.props.profile.rank.title\n          );\n          /* jshint ignore:end */\n        } else {\n            return null;\n          }\n    }\n  }, {\n    key: 'getJoinedOn',\n    value: function getJoinedOn() {\n      /* jshint ignore:start */\n      var title = interpolate(gettext(\"Joined on %(joined_on)s\"), {\n        'joined_on': this.props.profile.joined_on.format('LL, LT')\n      }, true);\n\n      var age = interpolate(gettext(\"Joined %(joined_on)s\"), {\n        'joined_on': this.props.profile.joined_on.fromNow()\n      }, true);\n\n      return _react2.default.createElement(\n        'li',\n        { className: 'user-joined-on' },\n        _react2.default.createElement(\n          'abbr',\n          { title: title },\n          age\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getEmail',\n    value: function getEmail() {\n      if (this.props.profile.email) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-email' },\n          _react2.default.createElement(\n            'a',\n            { href: 'mailto:' + this.props.profile.email, className: 'item-title' },\n            this.props.profile.email\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFollowButton',\n    value: function getFollowButton() {\n      if (this.props.profile.acl.can_follow) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_followButton2.default, { className: 'btn btn-aligned hidden-xs hidden-sm',\n          profile: this.props.profile });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getModerationButton',\n    value: function getModerationButton() {\n      if (this.props.profile.acl.can_moderate) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'btn-group btn-aligned hidden-xs hidden-sm' },\n          _react2.default.createElement(\n            'button',\n            { className: 'btn btn-default btn-moderate dropdown-toggle',\n              type: 'button',\n              'data-toggle': 'dropdown',\n              'aria-haspopup': 'true',\n              'aria-expanded': 'false' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'tonality'\n            ),\n            gettext(\"Moderation\")\n          ),\n          _react2.default.createElement(_nav2.default, { profile: this.props.profile })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page-header' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9 col-md-offset-3' },\n              _react2.default.createElement(\n                'h1',\n                { className: 'pull-left' },\n                _react2.default.createElement(_avatar2.default, { user: this.props.profile, size: '100' }),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-name' },\n                  this.props.profile.username\n                )\n              ),\n              this.getFollowButton(),\n              this.getModerationButton(),\n              _react2.default.createElement(\n                'button',\n                { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                  type: 'button',\n                  onClick: this.props.toggleNav,\n                  'aria-haspopup': 'true',\n                  'aria-expanded': this.props.dropdown ? 'true' : 'false' },\n                _react2.default.createElement(\n                  'i',\n                  { className: 'material-icon' },\n                  'menu'\n                )\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'header-stats' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-md-9 col-md-offset-3' },\n                _react2.default.createElement(\n                  'ul',\n                  { className: 'list-inline' },\n                  this.getUserStatus(),\n                  this.getUserRank(),\n                  this.getUserTitle(),\n                  this.getJoinedOn(),\n                  this.getEmail()\n                )\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},{\"../avatar\":54,\"../user-status\":111,\"./follow-button\":89,\"./moderation/nav\":95,\"react\":\"react\"}],88:[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\nvar _panelLoader = require('../panel-loader');\n\nvar _panelLoader2 = _interopRequireDefault(_panelLoader);\n\nvar _panelMessage = require('../panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (ban) {\n      if (ban.expires_on) {\n        ban.expires_on = (0, _moment2.default)(ban.expires_on);\n      }\n\n      _this.setState({\n        isLoaded: true,\n        error: null,\n\n        ban: ban\n      });\n    };\n\n    _this.error = function (error) {\n      _this.setState({\n        isLoaded: true,\n        error: error.detail,\n        ban: null\n      });\n    };\n\n    if (_index2.default.has('PROFILE_BAN')) {\n      _this.initWithPreloadedData(_index2.default.pop('PROFILE_BAN'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling(props.profile.api_url.ban);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(ban) {\n      if (ban.expires_on) {\n        ban.expires_on = (0, _moment2.default)(ban.expires_on);\n      }\n\n      this.state = {\n        isLoaded: true,\n        ban: ban\n      };\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'ban-details',\n        url: api,\n        frequency: 90 * 1000,\n        update: this.update,\n        error: this.error\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Ban details\"),\n        parent: this.props.profile.username\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('ban-details');\n    }\n  }, {\n    key: 'getUserMessage',\n    value: function getUserMessage() {\n      if (this.state.ban.user_message) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'panel-body ban-message ban-user-message' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"User-shown ban message\")\n          ),\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.state.ban.user_message.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getStaffMessage',\n    value: function getStaffMessage() {\n      if (this.state.ban.staff_message) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'panel-body ban-message ban-staff-message' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"Team-shown ban message\")\n          ),\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.state.ban.staff_message.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.state.ban.expires_on) {\n        if (this.state.ban.expires_on.isAfter((0, _moment2.default)())) {\n          /* jshint ignore:start */\n          var _title = interpolate(gettext(\"This ban expires on %(expires_on)s.\"), {\n            'expires_on': this.state.ban.expires_on.format('LL, LT')\n          }, true);\n\n          var message = interpolate(gettext(\"This ban expires %(expires_on)s.\"), {\n            'expires_on': this.state.ban.expires_on.fromNow()\n          }, true);\n\n          return _react2.default.createElement(\n            'abbr',\n            { title: _title },\n            message\n          );\n          /* jshint ignore:end */\n        } else {\n            return gettext(\"This ban has expired.\");\n          }\n      } else {\n        return interpolate(gettext(\"%(username)s's ban is permanent.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getPanelBody',\n    value: function getPanelBody() {\n      if (this.state.ban) {\n        if (Object.keys(this.state.ban).length) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            this.getUserMessage(),\n            this.getStaffMessage(),\n            _react2.default.createElement(\n              'div',\n              { className: 'panel-body ban-expires' },\n              _react2.default.createElement(\n                'h4',\n                null,\n                gettext(\"Ban expiration\")\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getExpirationMessage()\n              )\n            )\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'div',\n              null,\n              _react2.default.createElement(_panelMessage2.default, { message: gettext(\"No ban is active at the moment.\") })\n            );\n            /* jshint ignore:end */\n          }\n      } else if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            _react2.default.createElement(_panelMessage2.default, { icon: 'error_outline',\n              message: this.state.error })\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'div',\n              null,\n              _react2.default.createElement(_panelLoader2.default, null)\n            );\n            /* jshint ignore:end */\n          }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'profile-ban-details' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Ban details\")\n            )\n          ),\n          this.getPanelBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":128,\"../../services/page-title\":142,\"../../services/polls\":143,\"../panel-loader\":84,\"../panel-message\":85,\"moment\":\"moment\",\"react\":\"react\"}],89:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _profile = require('../../reducers/profile');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.action = function () {\n      _this.setState({\n        isLoading: true\n      });\n\n      if (_this.props.profile.is_followed) {\n        _store2.default.dispatch((0, _profile.patchProfile)({\n          is_followed: false,\n          followers: _this.props.profile.followers - 1\n        }));\n      } else {\n        _store2.default.dispatch((0, _profile.patchProfile)({\n          is_followed: true,\n          followers: _this.props.profile.followers + 1\n        }));\n      }\n\n      _ajax2.default.post(_this.props.profile.api_url.follow).then(function (data) {\n        _this.setState({\n          isLoading: false\n        });\n\n        _store2.default.dispatch((0, _profile.patchProfile)(data));\n      }, function (rejection) {\n        _this.setState({\n          isLoading: false\n        });\n        _snackbar2.default.apiError(rejection);\n      });\n    };\n\n    _this.state = {\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.profile.is_followed) {\n        return this.props.className + ' btn-default btn-following';\n      } else {\n        return this.props.className + ' btn-default btn-follow';\n      }\n    }\n  }, {\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.profile.is_followed) {\n        return 'favorite';\n      } else {\n        return 'favorite_border';\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.profile.is_followed) {\n        return gettext(\"Following\");\n      } else {\n        return gettext(\"Follow\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        _button2.default,\n        { className: this.getClassName(),\n          disabled: this.state.isLoading,\n          onClick: this.action },\n        _react2.default.createElement(\n          'span',\n          { className: 'material-icon' },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../reducers/profile\":130,\"../../services/ajax\":135,\"../../services/snackbar\":144,\"../../services/store\":145,\"../button\":56,\"react\":\"react\"}],90:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _search = require('../search');\n\nvar _search2 = _interopRequireDefault(_search);\n\nvar _root = require('../users-list/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.loadMore = function () {\n      _this.setState({\n        isBusy: true\n      });\n\n      _this.loadUsers(_this.state.page + 1, _this.state.search);\n    };\n\n    _this.search = function (ev) {\n      _this.setState({\n        isLoaded: false,\n        isBusy: true,\n\n        search: ev.target.value,\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      });\n\n      _this.loadUsers(1, ev.target.value);\n    };\n\n    _this.setSpecialProps();\n\n    if (_index2.default.has(_this.PRELOADED_DATA_KEY)) {\n      _this.initWithPreloadedData(_index2.default.pop(_this.PRELOADED_DATA_KEY));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'setSpecialProps',\n    value: function setSpecialProps() {\n      this.PRELOADED_DATA_KEY = 'PROFILE_FOLLOWERS';\n      this.TITLE = gettext('Followers');\n      this.API_FILTER = 'followers';\n    }\n  }, {\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n        isBusy: false,\n\n        search: '',\n\n        count: data.count,\n        more: data.more,\n\n        page: data.page,\n        pages: data.pages\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false,\n        isBusy: false,\n\n        search: '',\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      };\n\n      this.loadUsers();\n    }\n  }, {\n    key: 'loadUsers',\n    value: function loadUsers() {\n      var _ajax$get,\n          _this2 = this;\n\n      var page = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];\n      var search = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n      _ajax2.default.get(_index2.default.get('USERS_API'), (_ajax$get = {}, _defineProperty(_ajax$get, this.API_FILTER, this.props.profile.id), _defineProperty(_ajax$get, 'name', search), _defineProperty(_ajax$get, 'page', page || 1), _ajax$get), 'user-' + this.API_FILTER).then(function (data) {\n        if (page === 1) {\n          _store2.default.dispatch((0, _users.dehydrate)(data.results));\n        } else {\n          _store2.default.dispatch((0, _users.append)(data.results));\n        }\n\n        _this2.setState({\n          isLoaded: true,\n          isBusy: false,\n\n          count: data.count,\n          more: data.more,\n\n          page: data.page,\n          pages: data.pages\n        });\n      }, function (rejection) {\n        _snackbar2.default.apiError(rejection);\n      });\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.TITLE,\n        parent: this.props.profile.username\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getLabel',\n\n    /* jshint ignore:end */\n\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(users)s user.\", \"Found %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"You have %(users)s follower.\", \"You have %(users)s followers.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s has %(users)s follower.\", \"%(username)s has %(users)s followers.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'users': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no users matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"You have no followers.\");\n      } else {\n        return interpolate(gettext(\"%(username)s has no followers.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getMoreButton',\n    value: function getMoreButton() {\n      if (this.state.more) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'pager-more' },\n          _react2.default.createElement(\n            _button2.default,\n            { loading: this.state.isBusy,\n              onClick: this.loadMore },\n            interpolate(gettext(\"Show more (%(more)s)\"), {\n              'more': this.state.more\n            }, true)\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getListBody',\n    value: function getListBody() {\n      if (this.state.isLoaded && this.state.count === 0) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.getEmptyMessage()\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            _react2.default.createElement(_root2.default, { isLoaded: this.state.isLoaded,\n              users: this.props.users,\n              showRank: true,\n              cols: 2 }),\n            this.getMoreButton()\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      return 'profile-' + this.API_FILTER;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'nav',\n          { className: 'toolbar' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'toolbar-left' },\n            this.getLabel()\n          ),\n          _react2.default.createElement(_search2.default, { className: 'toolbar-right',\n            value: this.state.search,\n            onChange: this.search,\n            placeholder: gettext(\"Search history...\") })\n        ),\n        this.getListBody()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":128,\"../../reducers/users\":134,\"../../services/ajax\":135,\"../../services/page-title\":142,\"../../services/snackbar\":144,\"../../services/store\":145,\"../button\":56,\"../search\":104,\"../users-list/root\":113,\"react\":\"react\"}],91:[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 _followers = require('./followers');\n\nvar _followers2 = _interopRequireDefault(_followers);\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\nvar _class = function (_Followers) {\n  _inherits(_class, _Followers);\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: 'setSpecialProps',\n    value: function setSpecialProps() {\n      this.PRELOADED_DATA_KEY = 'PROFILE_FOLLOWS';\n      this.TITLE = gettext('Follows');\n      this.API_FILTER = 'follows';\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(users)s user.\", \"Found %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"You are following %(users)s user.\", \"You are following %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s is following %(users)s user.\", \"%(username)s is following %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'users': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no users matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"You are not following any users.\");\n      } else {\n        return interpolate(gettext(\"%(username)s is not following any users.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }]);\n\n  return _class;\n}(_followers2.default);\n\nexports.default = _class;\n\n},{\"./followers\":90,\"react\":\"react\"}],92:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _yesNoSwitch = require('../../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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      isLoaded: false,\n      isLoading: false,\n      error: null,\n\n      is_avatar_locked: '',\n      avatar_lock_user_message: '',\n      avatar_lock_staff_message: ''\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.moderate_avatar).then(function (options) {\n        _this2.setState({\n          isLoaded: true,\n\n          is_avatar_locked: options.is_avatar_locked,\n          avatar_lock_user_message: options.avatar_lock_user_message,\n          avatar_lock_staff_message: options.avatar_lock_staff_message\n        });\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(this.validate().username[0]);\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.moderate_avatar, {\n        is_avatar_locked: this.state.is_avatar_locked,\n        avatar_lock_user_message: this.state.avatar_lock_user_message,\n        avatar_lock_staff_message: this.state.avatar_lock_staff_message\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      _store2.default.dispatch((0, _users.updateAvatar)(this.props.profile, apiResponse.avatar_hash));\n      _snackbar2.default.success(gettext(\"Avatar controls have been changed.\"));\n    }\n  }, {\n    key: 'getFormBody',\n    value: function getFormBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"Lock avatar\"),\n              helpText: gettext(\"Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one.\"),\n              'for': 'id_is_avatar_locked' },\n            _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_avatar_locked',\n              disabled: this.state.isLoading,\n              iconOn: 'lock_outline',\n              iconOff: 'lock_open',\n              labelOn: gettext(\"Disallow user from changing avatar\"),\n              labelOff: gettext(\"Allow user to change avatar\"),\n              onChange: this.bindInput('is_avatar_locked'),\n              value: this.state.is_avatar_locked })\n          ),\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"User message\"),\n              helpText: gettext(\"Optional message for user explaining why he/she is prohibited form changing avatar.\"),\n              'for': 'id_avatar_lock_user_message' },\n            _react2.default.createElement('textarea', { id: 'id_avatar_lock_user_message',\n              className: 'form-control',\n              rows: '4',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('avatar_lock_user_message'),\n              value: this.state.avatar_lock_user_message })\n          ),\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"Staff message\"),\n              helpText: gettext(\"Optional message for forum team members explaining why user is prohibited form changing avatar.\"),\n              'for': 'id_avatar_lock_staff_message' },\n            _react2.default.createElement('textarea', { id: 'id_avatar_lock_staff_message',\n              className: 'form-control',\n              rows: '4',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('avatar_lock_staff_message'),\n              value: this.state.avatar_lock_staff_message })\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            gettext(\"Close\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary', loading: this.state.isLoading },\n            gettext(\"Save changes\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          return this.getFormBody();\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error) {\n        return \"modal-dialog modal-message modal-avatar-controls\";\n      } else {\n        return \"modal-dialog modal-avatar-controls\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Avatar controls\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../reducers/users\":134,\"../../../services/ajax\":135,\"../../../services/snackbar\":144,\"../../../services/store\":145,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"../../modal-loader\":72,\"../../modal-message\":73,\"../../yes-no-switch\":127,\"react\":\"react\"}],93:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../reducers/username-history');\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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      isLoaded: false,\n      isLoading: false,\n      error: null,\n\n      username: '',\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.moderate_username).then(function () {\n        _this2.setState({\n          isLoaded: true\n        });\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(this.validate().username[0]);\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.moderate_username, {\n        username: this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.setState({\n        username: ''\n      });\n\n      _store2.default.dispatch((0, _usernameHistory.addNameChange)(apiResponse, this.props.profile, this.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(this.props.profile, apiResponse.username, apiResponse.slug));\n\n      _snackbar2.default.success(gettext(\"Username has been changed.\"));\n    }\n  }, {\n    key: 'getFormBody',\n    value: function getFormBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"New username\"), 'for': 'id_username' },\n            _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('username'),\n              value: this.state.username })\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            gettext(\"Close\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary', loading: this.state.isLoading },\n            gettext(\"Change username\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          return this.getFormBody();\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error) {\n        return \"modal-dialog modal-message modal-rename-user\";\n      } else {\n        return \"modal-dialog modal-rename-user\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../reducers/username-history\":133,\"../../../reducers/users\":134,\"../../../services/ajax\":135,\"../../../services/snackbar\":144,\"../../../services/store\":145,\"../../../utils/validators\":155,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"../../modal-loader\":72,\"../../modal-message\":73,\"react\":\"react\"}],94:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _yesNoSwitch = require('../../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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.countdown = function () {\n      window.setTimeout(function () {\n        if (_this.state.countdown > 1) {\n          _this.setState({\n            countdown: _this.state.countdown - 1\n          });\n          _this.countdown();\n        } else if (!_this.state.confirm) {\n          _this.setState({\n            confirm: true\n          });\n        }\n      }, 1000);\n    };\n\n    _this.state = {\n      isLoaded: false,\n      isLoading: false,\n      isDeleted: false,\n      error: null,\n\n      countdown: 5,\n      confirm: false,\n\n      with_content: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.delete).then(function () {\n        _this2.setState({\n          isLoaded: true\n        });\n\n        _this2.countdown();\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'send',\n\n    /* jshint ignore:end */\n\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.delete, {\n        with_content: this.state.with_content\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _polls2.default.stop('user-profile');\n\n      if (this.state.with_content) {\n        this.setState({\n          isDeleted: interpolate(gettext(\"%(username)s's account, threads, posts and other content has been deleted.\"), {\n            'username': this.props.profile.username\n          }, true)\n        });\n      } else {\n        this.setState({\n          isDeleted: interpolate(gettext(\"%(username)s's account has been deleted and other content has been hidden.\"), {\n            'username': this.props.profile.username\n          }, true)\n        });\n      }\n    }\n  }, {\n    key: 'getButtonLabel',\n    value: function getButtonLabel() {\n      if (this.state.confirm) {\n        return interpolate(gettext(\"Delete %(username)s\"), {\n          'username': this.props.profile.username\n        }, true);\n      } else {\n        return interpolate(gettext(\"Please wait... (%(countdown)ss)\"), {\n          'countdown': this.state.countdown\n        }, true);\n      }\n    }\n  }, {\n    key: 'getForm',\n    value: function getForm() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"User content\"),\n              labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n              'for': 'id_with_content' },\n            _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_with_content',\n              disabled: this.state.isLoading,\n              labelOn: gettext(\"Delete together with user's account\"),\n              labelOff: gettext(\"Hide after deleting user's account\"),\n              onChange: this.bindInput('with_content'),\n              value: this.state.with_content })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button',\n              className: 'btn btn-default',\n              'data-dismiss': 'modal' },\n            gettext(\"Cancel\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-danger',\n              loading: this.state.isLoading,\n              disabled: !this.state.confirm },\n            this.getButtonLabel()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getDeletedBody',\n    value: function getDeletedBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.state.isDeleted\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            _react2.default.createElement(\n              'a',\n              { href: _index2.default.get('USERS_LIST_URL') },\n              gettext(\"Return to users list\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          if (this.state.isDeleted) {\n            return this.getDeletedBody();\n          } else {\n            return this.getForm();\n          }\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error || this.state.isDeleted) {\n        return \"modal-dialog modal-message modal-delete-account\";\n      } else {\n        return \"modal-dialog modal-delete-account\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Delete user account\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../services/ajax\":135,\"../../../services/polls\":143,\"../../button\":56,\"../../form\":69,\"../../form-group\":68,\"../../modal-loader\":72,\"../../modal-message\":73,\"../../yes-no-switch\":127,\"react\":\"react\"}],95:[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 _reactRedux = require('react-redux');\n\nvar _avatarControls = require('./avatar-controls');\n\nvar _avatarControls2 = _interopRequireDefault(_avatarControls);\n\nvar _changeUsername = require('./change-username');\n\nvar _changeUsername2 = _interopRequireDefault(_changeUsername);\n\nvar _deleteAccount = require('./delete-account');\n\nvar _deleteAccount2 = _interopRequireDefault(_deleteAccount);\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// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\n/* jshint ignore:start */\nvar select = function select(store) {\n  return {\n    tick: store.tick,\n    user: store.auth,\n    profile: store.profile\n  };\n};\n/* jshint ignore:end */\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.showAvatarDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_avatarControls2.default));\n    }, _this.showRenameDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_changeUsername2.default));\n    }, _this.showDeleteDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_deleteAccount2.default));\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getAvatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getAvatarButton() {\n      if (this.props.profile.acl.can_moderate_avatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showAvatarDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Avatar controls\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getRenameButton',\n\n    /* jshint ignore:end */\n\n    value: function getRenameButton() {\n      if (this.props.profile.acl.can_rename) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showRenameDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'credit_card'\n            ),\n            gettext(\"Change username\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getDeleteButton',\n\n    /* jshint ignore:end */\n\n    value: function getDeleteButton() {\n      if (this.props.profile.acl.can_delete) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showDeleteDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'clear'\n            ),\n            gettext(\"Delete account\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu dropdown-menu-right', role: 'menu' },\n        this.getAvatarButton(),\n        this.getRenameButton(),\n        this.getDeleteButton(),\n        _react2.default.createElement('li', { className: 'divider hidden-md hidden-lg' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons hidden-md hidden-lg' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.props.toggleNav },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'menu'\n            ),\n            gettext(\"Menu\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../services/modal\":141,\"./avatar-controls\":92,\"./change-username\":93,\"./delete-account\":94,\"react\":\"react\",\"react-redux\":\"react-redux\"}],96:[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.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _followButton = require('./follow-button');\n\nvar _followButton2 = _interopRequireDefault(_followButton);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n// jshint ignore:line\n\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'getMeta',\n    value: function getMeta(meta) {\n      if (meta) {\n        // jshint ignore:start\n        return _react2.default.createElement(\n          'span',\n          { className: 'badge' },\n          this.props.profile[meta.attr]\n        );\n        // jshint ignore:end\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.pages.map(function (page) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + page.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: page.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              page.icon\n            ),\n            page.name,\n            _this2.getMeta(page.meta)\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_SideNav) {\n  _inherits(CompactNav, _SideNav);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'showSpecialOptions',\n    value: function showSpecialOptions() {\n      return this.props.profile.acl.can_follow || this.props.profile.acl.can_moderate;\n    }\n  }, {\n    key: 'getFollowButton',\n    value: function getFollowButton() {\n      if (this.props.profile.acl.can_follow) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_followButton2.default, { className: 'btn btn-block',\n          profile: this.props.profile });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getModerationButton',\n    value: function getModerationButton() {\n      if (this.props.profile.acl.can_moderate) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn btn-default btn-block',\n            onClick: this.props.toggleModeration },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'tonality'\n          ),\n          gettext(\"Moderation\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSpecialOptions',\n    value: function getSpecialOptions() {\n      if (this.showSpecialOptions()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons' },\n          this.getFollowButton(),\n          this.getModerationButton()\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.getSpecialOptions(),\n        this.showSpecialOptions() ? _react2.default.createElement('li', { className: 'divider' }) : null,\n        this.props.pages.map(function (page) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + page.component + '/',\n              key: page.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + page.component + '/',\n                onClick: _this4.props.hideNav },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                page.icon\n              ),\n              page.name,\n              _this4.getMeta(page.meta)\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(SideNav);\n\n},{\"../../index\":128,\"../li\":70,\"./follow-button\":89,\"react\":\"react\",\"react-router\":\"react-router\"}],97:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\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 _banDetails = require('./ban-details');\n\nvar _banDetails2 = _interopRequireDefault(_banDetails);\n\nvar _followers = require('./followers');\n\nvar _followers2 = _interopRequireDefault(_followers);\n\nvar _follows = require('./follows');\n\nvar _follows2 = _interopRequireDefault(_follows);\n\nvar _usernameHistory = require('./username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _Header = require('./Header');\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _nav = require('./moderation/nav');\n\nvar _nav2 = _interopRequireDefault(_nav);\n\nvar _navs = require('./navs');\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../reducers/profile');\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _profile.dehydrate)(data));\n    };\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown === 'pages') {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: 'pages'\n        });\n      }\n    };\n\n    _this.toggleModeration = function () {\n      if (_this.state.dropdown === 'moderation') {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: 'moderation'\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n\n    _this.startPolling(props.profile.api_url.root);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'user-profile',\n        url: api,\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n    /* jshint ignore:end */\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'getNavDropdown',\n    value: function getNavDropdown() {\n      if (this.state.dropdown === 'pages') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_navs.CompactNav, { pages: _index2.default.get('PROFILE_PAGES'),\n          baseUrl: _index2.default.get('PROFILE').absolute_url,\n          profile: this.props.profile,\n          toggleModeration: this.toggleModeration,\n          hideNav: this.hideNav });\n        /* jshint ignore:end */\n      } else if (this.state.dropdown === 'moderation') {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_nav2.default, { profile: this.props.profile,\n            toggleNav: this.toggleNav,\n            hideNav: this.hideNav });\n          /* jshint ignore:end */\n        } else {\n            return null;\n          }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var baseClass = 'page page-user-profile';\n      if (false && this.props.profile.rank.css_class) {\n        return baseClass + ' page-user-profile-' + this.props.profile.rank.css_class;\n      } else {\n        return baseClass;\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(_Header2.default, { user: this.props.user,\n          profile: this.props.profile,\n          toggleNav: this.toggleNav,\n          toggleModeration: this.toggleModeration }),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          this.getNavDropdown()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(\n                'div',\n                { className: 'profile-side-avatar' },\n                _react2.default.createElement(_avatar2.default, { user: this.props.profile, size: '400' })\n              ),\n              _react2.default.createElement(_navs.SideNav, { pages: _index2.default.get('PROFILE_PAGES'),\n                baseUrl: _index2.default.get('PROFILE').absolute_url,\n                profile: this.props.profile })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users,\n    'profile': store.profile,\n    'username-history': store['username-history']\n  };\n}\n\nvar Placeholder = function (_React$Component2) {\n  _inherits(Placeholder, _React$Component2);\n\n  function Placeholder() {\n    _classCallCheck(this, Placeholder);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Placeholder).apply(this, arguments));\n  }\n\n  _createClass(Placeholder, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'container' },\n        _react2.default.createElement(\n          'p',\n          null,\n          \"Hello, I'm placeholder for \" + this.props.route.name\n        )\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return Placeholder;\n}(_react2.default.Component);\n\nvar COMPONENTS = {\n  'posts': Placeholder,\n  'threads': Placeholder,\n  'followers': _followers2.default,\n  'follows': _follows2.default,\n  'username-history': _usernameHistory2.default,\n  'ban-details': _banDetails2.default\n};\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('PROFILE_PAGES').forEach(function (item) {\n    paths.push(Object.assign({}, item, {\n      path: _index2.default.get('PROFILE').absolute_url + item.component + '/',\n      component: (0, _reactRedux.connect)(select)(COMPONENTS[item.component])\n    }));\n  });\n\n  return paths;\n}\n\n},{\"../../index\":128,\"../../reducers/profile\":130,\"../../services/polls\":143,\"../../services/store\":145,\"../avatar\":54,\"./Header\":87,\"./ban-details\":88,\"./followers\":90,\"./follows\":91,\"./moderation/nav\":95,\"./navs\":96,\"./username-history\":98,\"react\":\"react\",\"react-redux\":\"react-redux\"}],98:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _search = require('../search');\n\nvar _search2 = _interopRequireDefault(_search);\n\nvar _usernameHistory = require('../username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory3 = require('../../reducers/username-history');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.loadMore = function () {\n      _this.setState({\n        isBusy: true\n      });\n\n      _this.loadChanges(_this.state.page + 1, _this.state.search);\n    };\n\n    _this.search = function (ev) {\n      _this.setState({\n        isLoaded: false,\n        isBusy: true,\n\n        search: ev.target.value,\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      });\n\n      _this.loadChanges(1, ev.target.value);\n    };\n\n    if (_index2.default.has('PROFILE_NAME_HISTORY')) {\n      _this.initWithPreloadedData(_index2.default.pop('PROFILE_NAME_HISTORY'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n        isBusy: false,\n\n        search: '',\n\n        count: data.count,\n        more: data.more,\n\n        page: data.page,\n        pages: data.pages\n      };\n\n      _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false,\n        isBusy: false,\n\n        search: '',\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      };\n\n      this.loadChanges();\n    }\n  }, {\n    key: 'loadChanges',\n    value: function loadChanges() {\n      var _this2 = this;\n\n      var page = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];\n      var search = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n      _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), {\n        user: this.props.profile.id,\n        search: search,\n        page: page || 1\n      }, 'search-username-history').then(function (data) {\n        if (page === 1) {\n          _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data.results));\n        } else {\n          _store2.default.dispatch((0, _usernameHistory3.append)(data.results));\n        }\n\n        _this2.setState({\n          isLoaded: true,\n          isBusy: false,\n\n          count: data.count,\n          more: data.more,\n\n          page: data.page,\n          pages: data.pages\n        });\n      }, function (rejection) {\n        _snackbar2.default.apiError(rejection);\n      });\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Username history\"),\n        parent: this.props.profile.username\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getLabel',\n\n    /* jshint ignore:end */\n\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(changes)s username change.\", \"Found %(changes)s username changes.\", this.state.count);\n\n        return interpolate(message, {\n          'changes': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"Your username was changed %(changes)s time.\", \"Your username was changed %(changes)s times.\", this.state.count);\n\n        return interpolate(message, {\n          'changes': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s's username was changed %(changes)s time.\", \"%(username)s's username was changed %(changes)s times.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'changes': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no username changes matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"No name changes have been recorded for your account.\");\n      } else {\n        return interpolate(gettext(\"%(username)s's username was never changed.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getMoreButton',\n    value: function getMoreButton() {\n      if (this.state.more) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'pager-more' },\n          _react2.default.createElement(\n            _button2.default,\n            { loading: this.state.isBusy,\n              onClick: this.loadMore },\n            interpolate(gettext(\"Show older (%(more)s)\"), {\n              'more': this.state.more\n            }, true)\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'profile-username-history' },\n        _react2.default.createElement(\n          'nav',\n          { className: 'toolbar' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'toolbar-left' },\n            this.getLabel()\n          ),\n          _react2.default.createElement(_search2.default, { className: 'toolbar-right',\n            value: this.state.search,\n            onChange: this.search,\n            placeholder: gettext(\"Search history...\") })\n        ),\n        _react2.default.createElement(_usernameHistory2.default, { isLoaded: this.state.isLoaded,\n          emptyMessage: this.getEmptyMessage(),\n          changes: this.props['username-history'] }),\n        this.getMoreButton()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":128,\"../../reducers/username-history\":133,\"../../services/ajax\":135,\"../../services/page-title\":142,\"../../services/snackbar\":144,\"../../services/store\":145,\"../button\":56,\"../search\":104,\"../username-history\":112,\"react\":\"react\"}],99:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":137,\"../services/modal\":141,\"../services/snackbar\":144,\"../services/zxcvbn\":146,\"./loader\":71,\"./register.js\":100,\"react\":\"react\"}],100:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      isLoading: false,\n\n      username: '',\n      email: '',\n      password: '',\n      captcha: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        email: [validators.email()],\n        password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        captcha: _captcha2.default.validator()\n      },\n\n      errors: {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          errors: this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        username: this.state.username,\n        email: this.state.email,\n        password: this.state.password,\n        captcha: this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n}(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          complete: apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":128,\"../services/ajax\":135,\"../services/auth\":136,\"../services/captcha\":137,\"../services/modal\":141,\"../services/snackbar\":144,\"../utils/banned-page\":147,\"../utils/validators\":155,\"./button\":56,\"./form\":69,\"./form-group\":68,\"./password-strength\":86,\"react\":\"react\"}],101:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LinkSent = exports.RequestLinkForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar RequestLinkForm = exports.RequestLinkForm = function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\n      });\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":128,\"../services/ajax\":135,\"../services/snackbar\":144,\"../utils/banned-page\":147,\"../utils/validators\":155,\"./button\":56,\"./form\":69,\"react\":\"react\"}],102:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AccountInactivePage = exports.LinkSent = exports.RequestResetForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RequestResetForm = exports.RequestResetForm = function (_Form) {\n  _inherits(RequestResetForm, _Form);\n\n  function RequestResetForm(props) {\n    _classCallCheck(this, RequestResetForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestResetForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestResetForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_PASSWORD_RESET_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        this.props.showInactivePage(rejection);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestResetForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Reset password link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar AccountInactivePage = exports.AccountInactivePage = function (_React$Component2) {\n  _inherits(AccountInactivePage, _React$Component2);\n\n  function AccountInactivePage() {\n    _classCallCheck(this, AccountInactivePage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AccountInactivePage).apply(this, arguments));\n  }\n\n  _createClass(AccountInactivePage, [{\n    key: 'getActivateButton',\n    value: function getActivateButton() {\n      if (this.props.activation === 'inactive_user') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('REQUEST_ACTIVATION_URL') },\n            gettext(\"Activate your account.\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-info page-forgotten-password-inactive' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                gettext(\"Your account is inactive.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                this.props.message\n              ),\n              this.getActivateButton()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AccountInactivePage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.complete = function (apiResponse) {\n      _this4.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this4.reset = function () {\n      _this4.setState({\n        complete: false\n      });\n    };\n\n    _this4.state = {\n      complete: false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'showInactivePage',\n    value: function showInactivePage(apiResponse) {\n      _reactDom2.default.render(_react2.default.createElement(AccountInactivePage, { activation: apiResponse.code,\n        message: apiResponse.detail }), document.getElementById('page-mount'));\n    }\n    /* jshint ignore:end */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestResetForm, { callback: this.complete,\n          showInactivePage: this.showInactivePage });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":128,\"../services/ajax\":135,\"../services/snackbar\":144,\"../utils/banned-page\":147,\"../utils/validators\":155,\"./button\":56,\"./form\":69,\"react\":\"react\",\"react-dom\":\"react-dom\"}],103:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PasswordChangedPage = exports.ResetPasswordForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _signIn = require('./sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ResetPasswordForm = exports.ResetPasswordForm = function (_Form) {\n  _inherits(ResetPasswordForm, _Form);\n\n  function ResetPasswordForm(props) {\n    _classCallCheck(this, ResetPasswordForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ResetPasswordForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'password': '',\n\n      'validators': {\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(ResetPasswordForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        if (this.state.password.trim().length) {\n          _snackbar2.default.error(this.state.errors.password[0]);\n        } else {\n          _snackbar2.default.error(gettext(\"Enter new password.\"));\n        }\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('CHANGE_PASSWORD_API'), {\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-reset-password' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'password', className: 'form-control',\n                placeholder: gettext(\"Enter new password\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Change password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ResetPasswordForm;\n}(_form2.default);\n\nvar PasswordChangedPage = exports.PasswordChangedPage = function (_React$Component) {\n  _inherits(PasswordChangedPage, _React$Component);\n\n  function PasswordChangedPage() {\n    _classCallCheck(this, PasswordChangedPage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(PasswordChangedPage).apply(this, arguments));\n  }\n\n  _createClass(PasswordChangedPage, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"%(username)s, your password has been changed successfully.\"), {\n        username: this.props.user.username\n      }, true);\n    }\n  }, {\n    key: 'showSignIn',\n    value: function showSignIn() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-success page-forgotten-password-changed' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'check'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getMessage()\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                gettext(\"You will have to sign in using new password before continuing.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                _react2.default.createElement(\n                  'button',\n                  { type: 'button', className: 'btn btn-primary', onClick: this.showSignIn },\n                  gettext(\"Sign in\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return PasswordChangedPage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this3, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this3 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this3), _this3.complete = function (apiResponse) {\n      _auth2.default.softSignOut();\n\n      // nuke \"redirect_to\" field so we don't end\n      // coming back to error page after sign in\n      $('#hidden-login-form input[name=\"redirect_to\"]').remove();\n\n      _reactDom2.default.render(_react2.default.createElement(PasswordChangedPage, { user: apiResponse }), document.getElementById('page-mount'));\n    }, _temp), _possibleConstructorReturn(_this3, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(ResetPasswordForm, { callback: this.complete });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":128,\"../services/ajax\":135,\"../services/auth\":136,\"../services/modal\":141,\"../services/snackbar\":144,\"../utils/banned-page\":147,\"../utils/validators\":155,\"./button\":56,\"./form\":69,\"./sign-in.js\":106,\"react\":\"react\",\"react-dom\":\"react-dom\"}],104:[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: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.className) {\n        return \"form-search \" + this.props.className;\n      } else {\n        return \"form-search\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\"input\", { type: \"text\",\n          className: \"form-control\",\n          value: this.props.value,\n          onChange: this.props.onChange,\n          placeholder: this.props.placeholder || gettext(\"Search...\") }),\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          \"search\"\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],105:[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    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.change = function (value) {\n      return function () {\n        _this.props.onChange({\n          target: {\n            value: value\n          }\n        });\n      };\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getChoice\",\n    value: function getChoice() {\n      var _this2 = this;\n\n      var choice = null;\n      this.props.choices.map(function (item) {\n        if (item.value === _this2.props.value) {\n          choice = item;\n        }\n      });\n      return choice;\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      return this.getChoice().icon;\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      return this.getChoice().label;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"btn-group btn-select-group\" },\n        _react2.default.createElement(\n          \"button\",\n          { type: \"button\",\n            className: \"btn btn-select dropdown-toggle\",\n            id: this.props.id || null,\n            \"data-toggle\": \"dropdown\",\n            \"aria-haspopup\": \"true\",\n            \"aria-expanded\": \"false\",\n            \"aria-describedby\": this.props['aria-describedby'] || null,\n            disabled: this.props.disabled || false },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.getIcon()\n          ),\n          this.getLabel()\n        ),\n        _react2.default.createElement(\n          \"ul\",\n          { className: \"dropdown-menu\" },\n          this.props.choices.map(function (item, i) {\n            return _react2.default.createElement(\n              \"li\",\n              { key: i },\n              _react2.default.createElement(\n                \"button\",\n                { type: \"button\", className: \"btn-link\",\n                  onClick: _this3.change(item.value) },\n                _react2.default.createElement(\n                  \"span\",\n                  { className: \"material-icon\" },\n                  item.icon\n                ),\n                item.label\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},{\"react\":\"react\"}],106:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":128,\"../services/ajax\":135,\"../services/modal\":141,\"../services/snackbar\":144,\"../utils/banned-page\":147,\"./button\":56,\"./form\":69,\"react\":\"react\"}],107:[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\"}],108:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n}(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n}(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n}(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":140,\"../../services/modal\":141,\"../avatar\":54,\"../register-button\":99,\"../sign-in.js\":106,\"react\":\"react\"}],109:[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\":108,\"./user-nav\":110,\"react\":\"react\"}],110:[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 _root = require('../change-avatar/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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// 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: 'changeAvatar',\n    value: function changeAvatar() {\n      _modal2.default.show((0, _reactRedux.connect)(_root.select)(_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: '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', onClick: this.changeAvatar },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons' },\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(state) {\n  return { user: state.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\":128,\"../../services/mobile-navbar-dropdown\":140,\"../../services/modal\":141,\"../avatar\":54,\"../change-avatar/root\":66,\"react\":\"react\",\"react-redux\":\"react-redux\"}],111:[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.StatusLabel = exports.StatusIcon = undefined;\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: 'getClass',\n    value: function getClass() {\n      var status = '';\n      if (this.props.status.is_banned) {\n        status = 'banned';\n      } else if (this.props.status.is_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online_hidden) {\n        status = 'online';\n      } else if (this.props.status.is_offline_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online) {\n        status = 'online';\n      } else if (this.props.status.is_offline) {\n        status = 'offline';\n      }\n\n      return 'user-status user-' + status;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClass() },\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\nvar StatusIcon = exports.StatusIcon = function (_React$Component2) {\n  _inherits(StatusIcon, _React$Component2);\n\n  function StatusIcon() {\n    _classCallCheck(this, StatusIcon);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusIcon).apply(this, arguments));\n  }\n\n  _createClass(StatusIcon, [{\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.status.is_banned) {\n        return 'remove_circle_outline';\n      } else if (this.props.status.is_hidden) {\n        return 'help_outline';\n      } else if (this.props.status.is_online_hidden) {\n        return 'label';\n      } else if (this.props.status.is_offline_hidden) {\n        return 'label_outline';\n      } else if (this.props.status.is_online) {\n        return 'lens';\n      } else if (this.props.status.is_offline) {\n        return 'panorama_fish_eye';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: 'material-icon status-icon' },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusIcon;\n}(_react2.default.Component);\n\nvar StatusLabel = exports.StatusLabel = function (_React$Component3) {\n  _inherits(StatusLabel, _React$Component3);\n\n  function StatusLabel() {\n    _classCallCheck(this, StatusLabel);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusLabel).apply(this, arguments));\n  }\n\n  _createClass(StatusLabel, [{\n    key: 'getHelp',\n    value: function getHelp() {\n      if (this.props.status.is_banned) {\n        if (this.props.status.banned_until) {\n          return interpolate(gettext(\"%(username)s is banned until %(ban_expires)s\"), {\n            username: this.props.user.username,\n            ban_expires: this.props.status.banned_until.format('LL, LT')\n          }, true);\n        } else {\n          return interpolate(gettext(\"%(username)s is banned\"), {\n            username: this.props.user.username\n          }, true);\n        }\n      } else if (this.props.status.is_hidden) {\n        return interpolate(gettext(\"%(username)s is hiding presence\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_online_hidden) {\n        return interpolate(gettext(\"%(username)s is online (hidden)\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline_hidden) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s (hidden)\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      } else if (this.props.status.is_online) {\n        return interpolate(gettext(\"%(username)s is online\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.status.is_banned) {\n        return gettext(\"Banned\");\n      } else if (this.props.status.is_hidden) {\n        return gettext(\"Hidden\");\n      } else if (this.props.status.is_online_hidden) {\n        return gettext(\"Online (hidden)\");\n      } else if (this.props.status.is_offline_hidden) {\n        return gettext(\"Offline (hidden)\");\n      } else if (this.props.status.is_online) {\n        return gettext(\"Online\");\n      } else if (this.props.status.is_offline) {\n        return gettext(\"Offline\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.props.className || \"status-label\",\n          title: this.getHelp() },\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusLabel;\n}(_react2.default.Component);\n\n},{\"react\":\"react\"}],112:[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 _avatar = require('./avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'renderUserAvatar',\n    value: function renderUserAvatar(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'user-avatar' },\n          _react2.default.createElement(_avatar2.default, { user: item.changed_by, size: '100' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-avatar' },\n            _react2.default.createElement(_avatar2.default, { size: '100' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderUsername',\n    value: function renderUsername(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'item-title' },\n          item.changed_by.username\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title' },\n            item.changed_by_username\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderHistory',\n    value: function renderHistory() {\n      var _this2 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          this.props.changes.map(function (item) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: item.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _this2.renderUserAvatar(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _this2.renderUsername(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                item.old_username,\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                item.new_username\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'abbr',\n                  { title: item.changed_on.format('LLL') },\n                  item.changed_on.fromNow()\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.props.emptyMessage) {\n        return this.props.emptyMessage;\n      } else {\n        return gettext(\"No name changes have been recorded for your account.\");\n      }\n    }\n  }, {\n    key: 'renderEmptyHistory',\n    value: function renderEmptyHistory() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          _react2.default.createElement(\n            'li',\n            { className: 'list-group-item empty-message' },\n            this.getEmptyMessage()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderHistoryPreview',\n    value: function renderHistoryPreview() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-preview' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          random.range(3, 5).map(function (i) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: i },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-avatar' },\n                  _react2.default.createElement(_avatar2.default, { size: '100' })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 100) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(50, 100) + \"px\" } },\n                  ' '\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.props.isLoaded) {\n        if (this.props.changes.length) {\n          return this.renderHistory();\n        } else {\n          return this.renderEmptyHistory();\n        }\n      } else {\n        return this.renderHistoryPreview();\n      }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/random\":152,\"./avatar\":54,\"react\":\"react\"}],113:[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 _userCard = require('./user-card');\n\nvar _userCard2 = _interopRequireDefault(_userCard);\n\nvar _userPreview = require('./user-preview');\n\nvar _userPreview2 = _interopRequireDefault(_userPreview);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\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\n// jshint ignore:line\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: 'getPager',\n    value: function getPager() {\n      if (this.props.pages > 1) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(Pager, this.props);\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.className) {\n        return \"users-cards-list \" + this.props.className + \" ui-ready\";\n      } else {\n        return \"users-cards-list ui-ready\";\n      }\n    }\n  }, {\n    key: 'getColClassName',\n    value: function getColClassName() {\n      return \"col-md-\" + 12 / this.props.cols;\n    }\n  }, {\n    key: 'getBody',\n    value: function getBody() {\n      var _this2 = this;\n\n      if (this.props.isLoaded) {\n        /* jshint ignore:start */\n        return (0, _batch2.default)(this.props.users, this.props.cols).map(function (row, r) {\n          return _react2.default.createElement(\n            'div',\n            { className: 'row', key: r },\n            row.map(function (user) {\n              return _react2.default.createElement(\n                'div',\n                { className: _this2.getColClassName(), key: user.id },\n                _react2.default.createElement(_userCard2.default, { user: user,\n                  showStatus: _this2.props.showStatus,\n                  showRank: _this2.props.showRank })\n              );\n            })\n          );\n        });\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          var row = [];\n          for (var i = 0; i < this.props.cols; i++) {\n            row.push(i);\n          }\n\n          return _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            row.map(function (i) {\n              return _react2.default.createElement(\n                'div',\n                { className: _this2.getColClassName(), key: i },\n                _react2.default.createElement(_userPreview2.default, { showStatus: _this2.props.showStatus })\n              );\n            })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'users-cards-list ui-ready' },\n        this.getBody()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../utils/batch\":148,\"./user-card\":114,\"./user-preview\":115,\"react\":\"react\"}],114:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\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 _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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.user.rank.css_class) {\n        return 'user-card user-card-' + this.props.user.rank.css_class + ' ui-ready';\n      } else {\n        return 'user-card ui-ready';\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.showStatus) {\n        if (this.props.user.status) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            _userStatus2.default,\n            { user: this.props.user, status: this.props.user.status },\n            _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n              status: this.props.user.status }),\n            _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n              status: this.props.user.status,\n              className: 'status-label' })\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'span',\n              { className: 'user-status' },\n              _react2.default.createElement(\n                'span',\n                { className: 'status-icon ui-preview' },\n                ' '\n              ),\n              _react2.default.createElement(\n                'span',\n                { className: 'status-label ui-preview' },\n                ' '\n              )\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.showRank) {\n        if (this.props.user.rank.is_tab) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'a',\n            { href: this.props.user.rank.absolute_url,\n              className: 'item-title rank-name' },\n            this.props.user.rank.name\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'span',\n              { className: 'item-title rank-name' },\n              this.props.user.rank.name\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title' },\n          this.props.user.title\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUserJoinedOn',\n    value: function getUserJoinedOn() {\n      /* jshint ignore:start */\n      var title = interpolate(gettext(\"Joined on %(joined_on)s\"), {\n        'joined_on': this.props.user.joined_on.format('LL, LT')\n      }, true);\n\n      var age = interpolate(gettext(\"Joined %(joined_on)s\"), {\n        'joined_on': this.props.user.joined_on.fromNow()\n      }, true);\n\n      return _react2.default.createElement(\n        'span',\n        { className: 'user-joined-on', title: title },\n        age\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'user-card-bg-image' },\n          _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '400', className: 'bg-image' }),\n          _react2.default.createElement(\n            'div',\n            { className: 'user-card-bg' },\n            _react2.default.createElement(\n              'div',\n              { className: 'user-details' },\n              _react2.default.createElement(\n                'div',\n                { className: 'user-avatar' },\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.user.absolute_url },\n                  _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '400' })\n                )\n              ),\n              _react2.default.createElement(\n                'h4',\n                { className: 'user-name' },\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.user.absolute_url, className: 'item-title' },\n                  this.props.user.username\n                )\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'user-subscript' },\n                this.getUserStatus(),\n                this.getRankName(),\n                this.getUserTitle(),\n                this.getUserJoinedOn()\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'user-card-stats' },\n              _react2.default.createElement(\n                'ul',\n                { className: 'list-unstyled' },\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-posts-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.posts\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"posts\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-threads-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.threads\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"threads\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-followers-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.followers\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"followers\")\n                  )\n                )\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},{\"../avatar\":54,\"../user-status\":111,\"react\":\"react\"}],115:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.showStatus) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-status' },\n          _react2.default.createElement(\n            'span',\n            { className: 'status-icon ui-preview' },\n            ' '\n          ),\n          _react2.default.createElement(\n            'span',\n            { className: 'status-label ui-preview' },\n            ' '\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'user-card ui-preview' },\n        _react2.default.createElement(\n          'div',\n          { className: 'user-card-bg-image' },\n          _react2.default.createElement(_avatar2.default, { size: '400', className: 'bg-image' }),\n          _react2.default.createElement(\n            'div',\n            { className: 'user-card-bg' },\n            _react2.default.createElement(\n              'div',\n              { className: 'user-details' },\n              _react2.default.createElement(\n                'div',\n                { className: 'user-avatar' },\n                _react2.default.createElement(_avatar2.default, { size: '400' })\n              ),\n              _react2.default.createElement(\n                'h4',\n                { className: 'user-name' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'item-title' },\n                  _react2.default.createElement(\n                    'span',\n                    { className: 'ui-preview-text', style: { width: random.int(60, 150) + \"px\" } },\n                    ' '\n                  )\n                )\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'user-subscript' },\n                this.getUserStatus(),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-joined-on' },\n                  _react2.default.createElement(\n                    'span',\n                    { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                    ' '\n                  )\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'user-card-stats' },\n              _react2.default.createElement(\n                'ul',\n                { className: 'list-unstyled' },\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-posts-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"posts\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-threads-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"threads\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-followers-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"followers\")\n                  )\n                )\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},{\"../../utils/random\":152,\"../avatar\":54,\"react\":\"react\"}],116:[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: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      return interpolate(gettext(\"No users have posted any new messages during last %(days)s days.\"), { 'days': this.props.trackedPeriod }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getEmptyMessage()\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\"}],117:[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 _reactRouter = require('react-router');\n\nvar _avatar = require('../../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.rank.css_class) {\n        return \"list-group-item list-group-rank-\" + this.props.rank.css_class;\n      } else {\n        return \"list-group-item\";\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.user.status) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.user, status: this.props.user.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n            status: this.props.user.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n            status: this.props.user.status,\n            className: 'status-label hidden-xs hidden-sm' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-status' },\n            _react2.default.createElement(\n              'span',\n              { className: 'status-icon ui-preview' },\n              ' '\n            ),\n            _react2.default.createElement(\n              'span',\n              { className: 'status-label ui-preview hidden-xs hidden-sm' },\n              ' '\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.rank.is_tab) {\n        /* jshint ignore:start */\n        var rankUrl = _index2.default.get('USERS_LIST_URL') + this.props.rank.slug + '/';\n        return _react2.default.createElement(\n          _reactRouter.Link,\n          { to: rankUrl, className: 'item-title rank-name' },\n          this.props.rank.name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title rank-name' },\n            this.props.rank.name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title hidden-xs hidden-sm' },\n          this.props.user.title\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        'li',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user-avatar' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '50' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user' },\n          _react2.default.createElement(\n            'div',\n            { className: 'user-name' },\n            _react2.default.createElement(\n              'a',\n              { href: this.props.user.absolute_url, className: 'item-title' },\n              this.props.user.username\n            )\n          ),\n          this.getUserStatus(),\n          this.getRankName(),\n          this.getUserTitle()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-position' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            '#',\n            this.props.counter\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Rank\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-counted' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.meta.score\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Ranked posts\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-total' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.posts\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Total posts\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../avatar\":54,\"../../user-status\":111,\"react\":\"react\",\"react-router\":\"react-router\"}],118:[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 _avatar = require('../../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead ui-preview-paragraph' },\n            random.range(3, 4).map(function (i) {\n              return _react2.default.createElement(\n                'span',\n                { key: i, className: 'ui-preview-text', style: { width: random.int(50, 120) + \"px\" } },\n                ' '\n              );\n            })\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-preview' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              random.range(5, 10).map(function (i, counter) {\n                return _react2.default.createElement(\n                  'li',\n                  { key: i, className: 'list-group-item' },\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user-avatar' },\n                    _react2.default.createElement(\n                      'span',\n                      null,\n                      _react2.default.createElement(_avatar2.default, { size: '50' })\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'user-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'item-title' },\n                        _react2.default.createElement(\n                          'span',\n                          { className: 'ui-preview-text', style: { width: random.int(30, 80) + \"px\" } },\n                          ' '\n                        )\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-status' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-icon ui-preview' },\n                        ' '\n                      ),\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-label ui-preview hidden-xs hidden-sm' },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'rank-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-title hidden-xs hidden-sm' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-position' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Rank\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-counted' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Ranked posts\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-total' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Total posts\")\n                    )\n                  )\n                );\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},{\"../../../utils/random\":152,\"../../avatar\":54,\"react\":\"react\"}],119:[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 _listItem = require('./list-item');\n\nvar _listItem2 = _interopRequireDefault(_listItem);\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 _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: 'getLeadMessage',\n    value: function getLeadMessage() {\n      var message = ngettext(\"%(posters)s most active poster from last %(days)s days.\", \"%(posters)s most active posters from last %(days)s days.\", this.props.count);\n\n      return interpolate(message, {\n        posters: this.props.count,\n        days: this.props.trackedPeriod\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getLeadMessage()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-ready' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              this.props.users.map(function (user, i) {\n                return _react2.default.createElement(_listItem2.default, { user: user,\n                  rank: user.rank,\n                  counter: i + 1,\n                  key: user.id });\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},{\"./list-item\":117,\"react\":\"react\"}],120:[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 _listEmpty = require('./list-empty');\n\nvar _listEmpty2 = _interopRequireDefault(_listEmpty);\n\nvar _listLoading = require('./list-loading');\n\nvar _listLoading2 = _interopRequireDefault(_listLoading);\n\nvar _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../reducers/users');\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n      _this.setState({\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      });\n    };\n\n    if (_index2.default.has('USERS')) {\n      _this.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling();\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling() {\n      _polls2.default.start({\n        poll: 'active-posters',\n        url: _index2.default.get('USERS_API'),\n        data: {\n          list: 'active'\n        },\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.extra.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('active-posters');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_list2.default, { users: this.props.users,\n            trackedPeriod: this.state.trackedPeriod,\n            count: this.state.count });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(_listEmpty2.default, { trackedPeriod: this.state.trackedPeriod });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_listLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../reducers/users\":134,\"../../../services/page-title\":142,\"../../../services/polls\":143,\"../../../services/store\":145,\"./list\":119,\"./list-empty\":116,\"./list-loading\":118,\"react\":\"react\"}],121:[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.CompactNav = exports.TabsNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\n//jshint ignore:line\n\n// jshint ignore:start\nvar listUrl = function listUrl(baseUrl, list) {\n  var url = baseUrl;\n  if (list.component === 'rank') {\n    url += list.slug;\n  } else {\n    url += list.component;\n  }\n  return url + '/';\n};\n\nvar navLinks = function navLinks(baseUrl, lists, hideNav) {\n  return lists.map(function (list) {\n    var url = listUrl(baseUrl, list);\n    return _react2.default.createElement(\n      _li2.default,\n      { path: url,\n        key: url },\n      _react2.default.createElement(\n        _reactRouter.Link,\n        { to: url, onClick: hideNav },\n        list.name\n      )\n    );\n  });\n};\n// jshint ignore:end\n\nvar TabsNav = exports.TabsNav = function (_React$Component) {\n  _inherits(TabsNav, _React$Component);\n\n  function TabsNav() {\n    _classCallCheck(this, TabsNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(TabsNav).apply(this, arguments));\n  }\n\n  _createClass(TabsNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'nav nav-pills' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return TabsNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        navLinks(this.props.baseUrl, this.props.lists, this.props.hideNav)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":128,\"../li\":70,\"react\":\"react\",\"react-router\":\"react-router\"}],122:[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 _root = require('../../users-list/root');\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; }\n\n// jshint ignore:line\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        null,\n        _react2.default.createElement(_root2.default, { isLoaded: false, cols: 3, showStatus: true })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../users-list/root\":113,\"react\":\"react\"}],123:[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 _pager = require('./pager');\n\nvar _pager2 = _interopRequireDefault(_pager);\n\nvar _root = require('../../users-list/root');\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 _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: 'getPager',\n    value: function getPager() {\n      if (this.props.pages > 1) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_pager2.default, this.props);\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        null,\n        _react2.default.createElement(_root2.default, { users: this.props.users,\n          showStatus: true,\n          cols: 3,\n          isLoaded: true }),\n        this.getPager()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../users-list/root\":113,\"./pager\":124,\"react\":\"react\"}],124:[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 _reactRouter = require('react-router');\n\nvar _resetScroll = require('../../../utils/reset-scroll');\n\nvar _resetScroll2 = _interopRequireDefault(_resetScroll);\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 _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: 'getPreviousPage',\n    value: function getPreviousPage() {\n      if (this.props.previous || this.props.first) {\n        /* jshint ignore:start */\n        var url = this.props.baseUrl;\n        if (this.props.previous) {\n          url += this.props.previous + '/';\n        }\n\n        return _react2.default.createElement(\n          'li',\n          { className: 'previous' },\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: url, onClick: _resetScroll2.default },\n            _react2.default.createElement(\n              'span',\n              { 'aria-hidden': 'true', className: 'material-icon' },\n              'arrow_back'\n            )\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getNextPage',\n    value: function getNextPage() {\n      if (this.props.next) {\n        /* jshint ignore:start */\n        var url = this.props.baseUrl + this.props.next + '/';\n        return _react2.default.createElement(\n          'li',\n          { className: 'next' },\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: url, onClick: _resetScroll2.default },\n            _react2.default.createElement(\n              'span',\n              { 'aria-hidden': 'true', className: 'material-icon' },\n              'arrow_forward'\n            )\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getProgessBar',\n    value: function getProgessBar() {\n      var _this2 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'pager-progress-bar' },\n        this.props.page_range.map(function (page) {\n          var className = page === _this2.props.page ? 'active' : null;\n          var url = _this2.props.baseUrl;\n\n          if (page > 1) {\n            url += page + '/';\n          }\n\n          return _react2.default.createElement(\n            'li',\n            { key: page, className: className },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: url, onClick: _resetScroll2.default },\n              page\n            )\n          );\n        })\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'pager-undercontent' },\n        _react2.default.createElement(\n          'nav',\n          null,\n          _react2.default.createElement(\n            'ul',\n            { className: 'pager' },\n            this.getPreviousPage(),\n            this.getNextPage()\n          ),\n          this.getProgessBar()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../utils/reset-scroll\":153,\"react\":\"react\",\"react-router\":\"react-router\"}],125:[function(require,module,exports){\n'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _listLoading = require('./list-loading');\n\nvar _listLoading2 = _interopRequireDefault(_listLoading);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../reducers/users');\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n      data.isLoaded = true;\n      _this.setState(data);\n    };\n\n    if (_index2.default.has('USERS')) {\n      _this.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling(props.params.page || 1);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = Object.assign(data, {\n        isLoaded: true\n      });\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling(page) {\n      _polls2.default.start({\n        poll: 'rank-users',\n        url: _index2.default.get('USERS_API'),\n        data: {\n          rank: this.props.route.rank.id,\n          page: page\n        },\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.rank.name,\n        page: this.props.params.page || null,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('rank-users');\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(nextProps) {\n      if (this.props.params.page !== nextProps.params.page) {\n        _pageTitle2.default.set({\n          title: this.props.route.rank.name,\n          page: nextProps.params.page || null,\n          parent: gettext(\"Users\")\n        });\n\n        this.setState({\n          isLoaded: false\n        });\n\n        _polls2.default.stop('rank-users');\n        this.startPolling(nextProps.params.page);\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.route.rank.css_class) {\n        return 'rank-users-list rank-users-' + this.props.route.rank.css_class;\n      } else {\n        return 'rank-users-list';\n      }\n    }\n  }, {\n    key: 'getRankDescription',\n    value: function getRankDescription() {\n      if (this.props.route.rank.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'rank-description' },\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.props.route.rank.description.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getComponent',\n    value: function getComponent() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          var baseUrl = _index2.default.get('USERS_LIST_URL') + this.props.route.rank.slug + '/';\n          return _react2.default.createElement(_list2.default, _extends({ baseUrl: baseUrl,\n            users: this.props.users\n          }, this.state));\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'p',\n              { className: 'lead' },\n              gettext(\"There are no users with this rank at the moment.\")\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_listLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          this.getRankDescription(),\n          this.getComponent()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":128,\"../../../reducers/users\":134,\"../../../services/page-title\":142,\"../../../services/polls\":143,\"../../../services/store\":145,\"./list\":123,\"./list-loading\":122,\"react\":\"react\"}],126:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _root = require('./active-posters/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _root3 = require('./rank/root');\n\nvar _root4 = _interopRequireDefault(_root3);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\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-users-lists' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header tabbed' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Users\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'page-tabs hidden-xs hidden-sm' },\n            _react2.default.createElement(\n              'div',\n              { className: 'container' },\n              _react2.default.createElement(_navs.TabsNav, { lists: _index2.default.get('USERS_LISTS'),\n                baseUrl: _index2.default.get('USERS_LIST_URL') })\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { lists: _index2.default.get('USERS_LISTS'),\n            baseUrl: _index2.default.get('USERS_LIST_URL'),\n            hideNav: this.hideNav })\n        ),\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users\n  };\n}\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('USERS_LISTS').forEach(function (item) {\n    if (item.component === 'rank') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/:page/',\n        component: (0, _reactRedux.connect)(select)(_root4.default),\n        rank: item\n      });\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/',\n        component: (0, _reactRedux.connect)(select)(_root4.default),\n        rank: item\n      });\n    } else if (item.component === 'active-posters') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.component + '/',\n        component: (0, _reactRedux.connect)(select)(_root2.default),\n        extra: {\n          name: item.name\n        }\n      });\n    }\n  });\n\n  return paths;\n}\n\n},{\"../../index\":128,\"./active-posters/root\":120,\"./navs\":121,\"./rank/root\":125,\"react\":\"react\",\"react-redux\":\"react-redux\"}],127:[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    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.toggle = function () {\n      _this.props.onChange({\n        target: {\n          value: !_this.props.value\n        }\n      });\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.value) {\n        return \"btn btn-yes-no btn-yes-no-on\";\n      } else {\n        return \"btn btn-yes-no btn-yes-no-off\";\n      }\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      if (this.props.value) {\n        return this.props.iconOn || 'check_box';\n      } else {\n        return this.props.iconOff || 'check_box_outline_blank';\n      }\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      if (this.props.value) {\n        return this.props.labelOn || gettext(\"yes\");\n      } else {\n        return this.props.labelOff || gettext(\"no\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"button\",\n        { type: \"button\",\n          onClick: this.toggle,\n          className: this.getClassName(),\n          id: this.props.id || null,\n          \"aria-describedby\": this.props['aria-describedby'] || null,\n          disabled: this.props.disabled || false },\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],128:[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[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    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return 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\":151}],129:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.PATCH_USER = exports.initialState = undefined;\nexports.patchUser = patchUser;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\n\nvar _users = require('./users');\n\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar PATCH_USER = exports.PATCH_USER = 'PATCH_USER';\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction patchUser(patch) {\n  return {\n    type: PATCH_USER,\n    patch: patch\n  };\n}\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case PATCH_USER:\n      var newState = Object.assign({}, state);\n      newState.user = Object.assign({}, state.user, action.patch);\n      return newState;\n\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    case _users.UPDATE_AVATAR:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState = Object.assign({}, state);\n        _newState.user = Object.assign({}, state.user, {\n          'avatar_hash': action.avatarHash\n        });\n        return _newState;\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState2 = Object.assign({}, state);\n        _newState2.user = Object.assign({}, state.user, {\n          username: action.username,\n          slug: action.slug\n        });\n        return _newState2;\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":134}],130:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PATCH_PROFILE = exports.DEHYDRATE_PROFILE = undefined;\nexports.dehydrate = dehydrate;\nexports.patchProfile = patchProfile;\nexports.default = auth;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _users = require('./users');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEHYDRATE_PROFILE = exports.DEHYDRATE_PROFILE = 'DEHYDRATE_PROFILE';\nvar PATCH_PROFILE = exports.PATCH_PROFILE = 'PATCH_PROFILE';\n\nfunction dehydrate(profile) {\n  return {\n    type: DEHYDRATE_PROFILE,\n    profile: profile\n  };\n}\n\nfunction patchProfile(patch) {\n  return {\n    type: PATCH_PROFILE,\n    patch: patch\n  };\n}\n\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  switch (action.type) {\n    case DEHYDRATE_PROFILE:\n      return Object.assign({}, action.profile, {\n        joined_on: (0, _moment2.default)(action.profile.joined_on),\n        status: (0, _users.dehydrateStatus)(action.profile.status)\n      });\n\n    case PATCH_PROFILE:\n      return Object.assign({}, state, action.patch);\n\n    case _users.UPDATE_AVATAR:\n      if (state.id === action.userId) {\n        return Object.assign({}, state, {\n          avatar_hash: action.avatarHash\n        });\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.id === action.userId) {\n        return Object.assign({}, state, {\n          username: action.username,\n          slug: action.slug\n        });\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":134,\"moment\":\"moment\"}],131:[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},{}],132:[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},{}],133:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DEHYDRATE_HISTORY = exports.APPEND_HISTORY = exports.ADD_NAME_CHANGE = undefined;\nexports.addNameChange = addNameChange;\nexports.append = append;\nexports.dehydrate = dehydrate;\nexports.default = username;\n\nvar _users = require('./users');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ADD_NAME_CHANGE = exports.ADD_NAME_CHANGE = 'ADD_NAME_CHANGE';\nvar APPEND_HISTORY = exports.APPEND_HISTORY = 'APPEND_HISTORY';\nvar DEHYDRATE_HISTORY = exports.DEHYDRATE_HISTORY = 'DEHYDRATE_HISTORY';\n\nfunction addNameChange(change, user, changedBy) {\n  return {\n    type: ADD_NAME_CHANGE,\n    change: change,\n    user: user,\n    changedBy: changedBy\n  };\n}\n\nfunction append(items) {\n  return {\n    type: APPEND_HISTORY,\n    items: items\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_HISTORY,\n    items: items\n  };\n}\n\nfunction username() {\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  switch (action.type) {\n    case ADD_NAME_CHANGE:\n      var newState = state.slice();\n      newState.unshift({\n        id: Math.floor(Date.now() / 1000), // just small hax for getting id\n        changed_by: action.changedBy,\n        changed_by_username: action.changedBy.username,\n        changed_on: (0, _moment2.default)(),\n        new_username: action.change.username,\n        old_username: action.user.username\n      });\n      return newState;\n\n    case APPEND_HISTORY:\n      return state.concat(action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      }));\n\n    case DEHYDRATE_HISTORY:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      });\n\n    case _users.UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'avatar_hash': action.avatarHash\n          });\n        }\n\n        return item;\n      });\n\n    case _users.UPDATE_USERNAME:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'username': action.username,\n            'slug': action.slug\n          });\n        }\n\n        return Object.assign({}, item);\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":134,\"moment\":\"moment\"}],134:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UPDATE_USERNAME = exports.UPDATE_AVATAR = exports.DEHYDRATE_USERS = exports.APPEND_USERS = undefined;\nexports.append = append;\nexports.dehydrate = dehydrate;\nexports.dehydrateStatus = dehydrateStatus;\nexports.updateAvatar = updateAvatar;\nexports.updateUsername = updateUsername;\nexports.default = user;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar APPEND_USERS = exports.APPEND_USERS = 'APPEND_USERS';\nvar DEHYDRATE_USERS = exports.DEHYDRATE_USERS = 'DEHYDRATE_USERS';\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\nvar UPDATE_USERNAME = exports.UPDATE_USERNAME = 'UPDATE_USERNAME';\n\nfunction append(items) {\n  return {\n    type: APPEND_USERS,\n    items: items\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_USERS,\n    items: items\n  };\n}\n\nfunction dehydrateStatus(status) {\n  if (status) {\n    return Object.assign({}, status, {\n      last_click: status.last_click ? (0, _moment2.default)(status.last_click) : null,\n      banned_until: status.banned_until ? (0, _moment2.default)(status.banned_until) : null\n    });\n  } else {\n    return null;\n  }\n}\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\nfunction updateUsername(user, username, slug) {\n  return {\n    type: UPDATE_USERNAME,\n    userId: user.id,\n    username: username,\n    slug: slug\n  };\n}\n\nfunction user() {\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  switch (action.type) {\n    case APPEND_USERS:\n      return state.concat(action.items.map(function (item) {\n        return Object.assign({}, item, {\n          joined_on: (0, _moment2.default)(item.joined_on),\n          status: dehydrateStatus(item.status)\n        });\n      }));\n\n    case DEHYDRATE_USERS:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          joined_on: (0, _moment2.default)(item.joined_on),\n          status: dehydrateStatus(item.status)\n        });\n      });\n\n    case UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.id === action.userId) {\n          item.avatar_hash = action.avatarHash;\n        }\n\n        return item;\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"moment\":\"moment\"}],135:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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    this._locks = {};\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 ? JSON.stringify(data) : null,\n          contentType: \"application/json; charset=utf-8\",\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\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            if (rejection.status === 404) {\n              if (!rejection.detail || rejection.detail === 'NOT FOUND') {\n                rejection.detail = gettext(\"Action link is invalid.\");\n              }\n            }\n\n            if (rejection.status === 500 && !rejection.detail) {\n              rejection.detail = gettext(\"Unknown error has occured.\");\n            }\n\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, params, lock) {\n      var _this = this;\n\n      if (params) {\n        url += '?' + $.param(params);\n      }\n\n      if (lock) {\n        var _ret = function () {\n          var self = _this;\n\n          // update url in existing lock?\n          if (_this._locks[lock]) {\n            _this._locks[lock].url = url;\n          }\n\n          // immediately dereference promise handlers without doing anything\n          // we are already waiting for existing response to resolve\n          if (_this._locks[lock] && _this._locks[lock].waiter) {\n            return {\n              v: {\n                then: function then() {\n                  return;\n                }\n              }\n            };\n\n            // return promise that will begin when original one resolves\n          } else if (_this._locks[lock] && _this._locks[lock].wait) {\n              _this._locks[lock].waiter = true;\n\n              return {\n                v: new Promise(function (resolve, reject) {\n                  var wait = function wait(url) {\n                    // keep waiting on promise\n                    if (self._locks[lock].wait) {\n                      window.setTimeout(function () {\n                        wait(url);\n                      }, 300);\n\n                      // poll for new url\n                    } else if (self._locks[lock].url !== url) {\n                        wait(self._locks[lock].url);\n\n                        // ajax backend for response\n                      } else {\n                          self._locks[lock].waiter = false;\n                          self.request('GET', self._locks[lock].url).then(function (data) {\n                            if (self._locks[lock].url === url) {\n                              resolve(data);\n                            } else {\n                              self._locks[lock].waiter = true;\n                              wait(self._locks[lock].url);\n                            }\n                          }, function (rejection) {\n                            if (self._locks[lock].url === url) {\n                              reject(rejection);\n                            } else {\n                              self._locks[lock].waiter = true;\n                              wait(self._locks[lock].url);\n                            }\n                          });\n                        }\n                  };\n\n                  window.setTimeout(function () {\n                    wait(url);\n                  }, 300);\n                })\n              };\n\n              // setup new lock without waiter\n            } else {\n                _this._locks[lock] = {\n                  url: url,\n                  wait: true,\n                  waiter: false\n                };\n\n                return {\n                  v: new Promise(function (resolve, reject) {\n                    self.request('GET', url).then(function (data) {\n                      self._locks[lock].wait = false;\n                      if (self._locks[lock].url === url) {\n                        resolve(data);\n                      }\n                    }, function (rejection) {\n                      self._locks[lock].wait = false;\n                      if (self._locks[lock].url === url) {\n                        reject(rejection);\n                      }\n                    });\n                  })\n                };\n              }\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      } else {\n        return this.request('GET', url);\n      }\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    key: 'upload',\n    value: function upload(url, data, progress) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: 'POST',\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data,\n          contentType: false,\n          processData: false,\n\n          xhr: function xhr() {\n            var xhr = new window.XMLHttpRequest();\n            xhr.upload.addEventListener(\"progress\", function (evt) {\n              if (evt.lengthComputable) {\n                progress(Math.round(evt.loaded / evt.total * 100));\n              }\n            }, false);\n            return xhr;\n          },\n\n          success: function success(response) {\n            resolve(response);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            if (rejection.status === 404) {\n              if (!rejection.detail || rejection.detail === 'NOT FOUND') {\n                rejection.detail = gettext(\"Action link is invalid.\");\n              }\n            }\n\n            if (rejection.status === 500 && !rejection.detail) {\n              rejection.detail = gettext(\"Unknown error has occured.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],136:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local, modal) {\n      this._store = store;\n      this._local = local;\n      this._modal = modal;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'softSignOut',\n    value: function softSignOut() {\n      this._store.dispatch((0, _auth.signOut)(true));\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }]);\n\n  return Auth;\n}();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":129}],137:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n}();\n\nvar NoCaptcha = exports.NoCaptcha = function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n}(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n}(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n}(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n}(BaseCaptcha);\n\nvar Captcha = exports.Captcha = function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n}();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":68,\"react\":\"react\"}],138:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n}();\n\nexports.default = new Include();\n\n},{}],139:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n}();\n\nexports.default = new LocalStorage();\n\n},{}],140:[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\":150}],141:[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\":150,\"react-dom\":\"react-dom\"}],142:[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 PageTitle = exports.PageTitle = function () {\n  function PageTitle() {\n    _classCallCheck(this, PageTitle);\n  }\n\n  _createClass(PageTitle, [{\n    key: 'init',\n    value: function init(forumName) {\n      this._forumName = forumName;\n    }\n  }, {\n    key: 'set',\n    value: function set(title) {\n      if (typeof title === 'string') {\n        title = { title: title };\n      }\n\n      var finalTitle = title.title;\n\n      if (title.page) {\n        var pageLabel = interpolate(gettext('page: %(page)s'), {\n          page: title.page\n        }, true);\n\n        finalTitle += ' (' + pageLabel + ')';\n      }\n\n      if (title.parent) {\n        finalTitle += ' | ' + title.parent;\n      }\n\n      document.title = finalTitle + ' | ' + this._forumName;\n    }\n  }]);\n\n  return PageTitle;\n}();\n\nexports.default = new PageTitle();\n\n},{}],143:[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 Polls = exports.Polls = function () {\n  function Polls() {\n    _classCallCheck(this, Polls);\n  }\n\n  _createClass(Polls, [{\n    key: \"init\",\n    value: function init(ajax, snackbar) {\n      this._ajax = ajax;\n      this._snackbar = snackbar;\n\n      this._polls = {};\n    }\n  }, {\n    key: \"start\",\n    value: function start(kwargs) {\n      var _this = this;\n\n      var poolServer = function poolServer() {\n        _this._polls[kwargs.poll] = kwargs;\n\n        _this._ajax.get(kwargs.url, kwargs.data || null).then(function (data) {\n          if (!_this._polls[kwargs.poll]._stopped) {\n            kwargs.update(data);\n\n            _this._polls[kwargs.poll].timeout = window.setTimeout(poolServer, kwargs.frequency);\n          }\n        }, function (rejection) {\n          if (!_this._polls[kwargs.poll]._stopped) {\n            if (kwargs.error) {\n              kwargs.error(rejection);\n            } else {\n              _this._snackbar.apiError(rejection);\n            }\n          }\n        });\n      };\n\n      poolServer();\n    }\n  }, {\n    key: \"stop\",\n    value: function stop(pollId) {\n      if (this._polls[pollId]) {\n        window.clearTimeout(this._polls[pollId].timeout);\n        this._polls[pollId]._stopped = true;\n      }\n    }\n  }]);\n\n  return Polls;\n}();\n\nexports.default = new Polls();\n\n},{}],144:[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 = rejection.detail;\n\n      if (!message) {\n        if (rejection.status === 404) {\n          message = gettext(\"Action link is invalid.\");\n        } else {\n          message = gettext(\"Unknown error has occured.\");\n        }\n      }\n\n      if (rejection.status === 403 && message === \"Permission denied\") {\n        message = gettext(\"You don't have permission to perform this action.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":131}],145:[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\"}],146:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n}();\n\nexports.default = new Zxcvbn();\n\n},{}],147:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":55,\"../index\":128,\"../services/store\":145,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],148:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (list, rowWidth) {\n  var padding = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n  var rows = [];\n  var row = [];\n\n  list.forEach(function (element) {\n    row.push(element);\n    if (row.length === rowWidth) {\n      rows.push(row);\n      row = [];\n    }\n  });\n\n  // pad row to required length?\n  if (padding !== false && row.length > 0 && row.length < rowWidth) {\n    for (var i = row.length; i < rowWidth; i++) {\n      row.push(padding);\n    }\n  }\n\n  if (row.length) {\n    rows.push(row);\n  }\n\n  return rows;\n};\n\n},{}],149:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (bytes) {\n  if (bytes > 1000 * 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000 * 1000)) / 100 + ' GB';\n  } else if (bytes > 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000)) / 100 + ' MB';\n  } else if (bytes > 1000) {\n    return Math.round(bytes * 100 / 1000) / 100 + ' KB';\n  } else {\n    return Math.round(bytes * 100) / 100 + ' B';\n  }\n};\n\n},{}],150:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  /* jshint ignore:start */\n  var finalComponent = Component.props ? Component : _react2.default.createElement(Component, null);\n  /* jshint ignore:end */\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        finalComponent\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      /* jshint ignore:start */\n      _reactDom2.default.render(finalComponent, rootElement);\n      /* jshint ignore:end */\n    }\n  }\n};\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},{\"../services/store\":145,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],151:[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},{}],152:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.int = int;\nexports.range = range;\nfunction int(min, max) {\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction range(min, max) {\n  var array = new Array(int(min, max));\n  for (var i = 0; i < array.length; i++) {\n    array[i] = i;\n  }\n\n  return array;\n}\n\n},{}],153:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function () {\n  window.scrollTo(0, 0);\n};\n\n},{}],154:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (options) {\n  var routes = {\n    component: options.component,\n    childRoutes: [{\n      path: options.root,\n      onEnter: function onEnter(nextState, replaceState) {\n        replaceState(null, options.paths[0].path);\n      }\n    }].concat(options.paths.map(function (path) {\n      return path;\n    }))\n  };\n\n  _reactDom2.default.render(_react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(_reactRouter.Router, { routes: routes, history: history })\n  ), rootElement);\n};\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 _reactRouter = require('react-router');\n\nvar _createBrowserHistory = require('history/lib/createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\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:start\n\nvar rootElement = document.getElementById('page-mount');\nvar history = new _createBrowserHistory2.default();\n\n},{\"../services/store\":145,\"history/lib/createBrowserHistory\":43,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\",\"react-router\":\"react-router\"}],155:[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},{}]},{},[2,3,4,5,17,18,19,20,21,22,23,31,32,33,34,6,7,8,9,10,11,12,13,14,15,16,24,25,26,27,28,29,30]);\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","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","timeout","setTimeout","len","run","clearTimeout","Item","fun","array","this","noop","process","nextTick","args","Array","arguments","push","prototype","apply","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask",2,"global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","value","Misago","undefined","_orderedList","_orderedList2","_initializers","_context","initializer","item","after","before","context","_this","initOrder","orderedValues","forEach","fallback","has","misago","self","window","../../../../documents/misago/frontend/src/utils/ordered-list",3,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../../documents/misago/frontend/src/index","../../../../../documents/misago/frontend/src/services/ajax",4,"_auth2","_store2","_localStorage2","_modal2","_auth","_modal","_store","_localStorage","../../../../../documents/misago/frontend/src/services/auth","../../../../../documents/misago/frontend/src/services/local-storage","../../../../../documents/misago/frontend/src/services/modal","../../../../../documents/misago/frontend/src/services/store",5,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../../documents/misago/frontend/src/services/captcha","../../../../../documents/misago/frontend/src/services/include","../../../../../documents/misago/frontend/src/services/snackbar",6,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../../documents/misago/frontend/src/components/auth-message","../../../../../../documents/misago/frontend/src/index","../../../../../../documents/misago/frontend/src/utils/mount-component","react-redux",7,"_bannedPage2","_bannedPage","../../../../../../documents/misago/frontend/src/utils/banned-page",8,"document","getElementById","_root","_root2","../../../../../../documents/misago/frontend/src/components/categories/root",9,"_routedComponent2","root","component","paths","_routedComponent","../../../../../../documents/misago/frontend/src/components/options/root","../../../../../../documents/misago/frontend/src/utils/routed-component",10,"absolute_url","../../../../../../documents/misago/frontend/src/components/profile/root",11,"_requestActivationLink2","_requestActivationLink","../../../../../../documents/misago/frontend/src/components/request-activation-link",12,"_requestPasswordReset2","_requestPasswordReset","../../../../../../documents/misago/frontend/src/components/request-password-reset",13,"_resetPasswordForm2","_resetPasswordForm","../../../../../../documents/misago/frontend/src/components/reset-password-form",14,"Snackbar","../../../../../../documents/misago/frontend/src/components/snackbar",15,"UserMenu","CompactUserMenu","../../../../../../documents/misago/frontend/src/components/user-menu/root",16,"../../../../../../documents/misago/frontend/src/components/users/root",17,18,19,"element","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown",20,21,"_moment2","locale","$","attr","_moment","moment",22,"_pageTitle2","forum_name","_pageTitle","../../../../../documents/misago/frontend/src/services/page-title",23,"_polls2","_polls","../../../../../documents/misago/frontend/src/services/polls",24,"addReducer","assign","isAuthenticated","isAnonymous","user","initialState","../../../../../../documents/misago/frontend/src/reducers/auth","../../../../../../documents/misago/frontend/src/services/store",25,"dispatch","_profile","dehydrate","../../../../../../documents/misago/frontend/src/reducers/profile",26,"_profile2",27,"../../../../../../documents/misago/frontend/src/reducers/snackbar",28,"_tick2","_tick","../../../../../../documents/misago/frontend/src/reducers/tick",29,"_usernameHistory2","_usernameHistory","../../../../../../documents/misago/frontend/src/reducers/username-history",30,"_users2","_users","../../../../../../documents/misago/frontend/src/reducers/users",31,32,33,"setInterval","doTick","TICK_PERIOD","../../../../../documents/misago/frontend/src/reducers/tick",34,"_zxcvbn2","_zxcvbn","../../../../../documents/misago/frontend/src/services/zxcvbn",35,"isUndefinedOrNull","isBuffer","x","copy","slice","objEquiv","b","opts","isArguments","pSlice","deepEqual","ka","objectKeys","kb","sort","actual","expected","Date","getTime","strict","./lib/is_arguments.js","./lib/keys.js",36,"supported","object","toString","unsupported","hasOwnProperty","propertyIsEnumerable","supportsArgumentsClass",37,"shim","keys",38,"PUSH","REPLACE","POP",39,"loopAsync","turns","work","callback","done","isDone","next","currentTurn",40,"createKey","KeyPrefix","saveState","state","sessionStorage","setItem","JSON","stringify","error","SecurityError","NODE_ENV","_warning2","QuotaExceededError","readState","json","getItem","parse","_warning","_process","warning",41,"addEventListener","node","event","listener","attachEvent","removeEventListener","detachEvent","getHashPath","location","href","split","replaceHashPath","path","replace","pathname","search","getWindowPath","hash","go","history","getUserConfirmation","message","confirm","supportsHistory","ua","navigator","userAgent","indexOf","supportsGoWithoutReloadUsingHash",42,"canUseDOM","createElement",43,"createBrowserHistory","getCurrentLocation","historyState","_DOMUtils","_historyState","_DOMStateStorage","isSupported","replaceState","_extends","_parsePath2","createLocation","startPopStateListener","_ref","popStateListener","transitionTo","finishTransition","basename","action","_Actions","useRefresh","pushState","listenBefore","listenerCount","stopPopStateListener","unlisten","listen","registerTransitionHook","hook","unregisterTransitionHook","options","_ExecutionEnvironment","_invariant2","forceRefresh","_createDOMHistory2","source","_invariant","_createDOMHistory","_parsePath","./Actions","./DOMStateStorage","./DOMUtils","./ExecutionEnvironment","./createDOMHistory","./parsePath","invariant",44,"createDOMHistory","_createHistory2","_createHistory","./createHistory",45,"createRandomKey","Math","random","substr","locationsAreEqual","_deepEqual2","createHistory","transitionHooks","filter","getCurrent","pendingLocation","allKeys","updateLocation","newLocation","current","changeListeners","_location","confirmTransitionTo","_AsyncUtils","index","_runTransitionHook2","result","ok","nextLocation","prevPath","createPath","nextPath","prevIndex","nextIndex","goBack","goForward","keyLength","createHref","_createLocation3","setState","updateLocationState","DefaultKeyLength","_deprecate2","_deepEqual","_createLocation2","_runTransitionHook","_deprecate","./AsyncUtils","./createLocation","./deprecate","./runTransitionHook","deep-equal",46,"_fourthArg",47,"deprecate","fn",48,"extractPath","string","match","substring",49,"parsePath","_extractPath2","hashIndex","searchIndex","_extractPath","./extractPath",50,"runTransitionHook",51,"condition","format","c","d","argIndex","framesToPop",52,53,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","reload","interpolate","gettext","username","className","getClassName","getMessage","type","onClick","refresh","Component","react",54,"BASE_URL","size","url","id","avatar_hash","src","getSrc",55,"html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",56,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",57,"_lastActivity","_lastActivity2","_readIcon","_readIcon2","_stats","_stats2","category","css_class","subcategories","description","_this2","map","getSubcategorySubcategoryClass","_this3","getSubcategoryClass","getSubcategoryDescription","getSubcategorySubcategories","getHeadingClassName","getCategoryDescription","getSubcategories","./last-activity","./read-icon","./stats",58,"last_poster_url","last_poster_name","last_thread_url","last_thread_title","getLastPoster","last_post_on","acl","can_browse","can_see_all_threads","getThreadDetails","getLastActivity",59,"is_read","is_closed","getTitle","getIcon",60,"store","tick","_category","_category2","update","data","categories","startPolling","api","start","poll","frequency","../../index","../../services/polls","./category",61,"ngettext","threads","posts","getThreadsCount","getPostsCount",62,"_avatar","_button","_button2","cropAvatar","isLoading","avatarType","upload","cropit","post","api_url","avatar","crop","offset","zoom","then","onComplete","success","detail","rejection","status","showError","crop_tmp","crop_org","secret","getAvatarSecret","getAvatarHash","join","width","getAvatarSize","height","imageState","getImagePath","onImageLoaded","zoomLevel","imageSize","displayedWidth","offsetX","y","displayedHeight","offsetY","showIndex","../../services/ajax","../../services/snackbar","../avatar","../button",63,"Gallery","GalleryItem","_batch","_batch2","_Object$getPrototypeO","_temp","_ret","_len","_key","image","selection","_React$Component2","images","row","_React$Component3","_this4","save","response","_this5","galleries","../../utils/batch",64,"_avatar2","setGravatar","callApi","setGenerated","gravatar","showCrop","showUpload","showGallery","userPeview","getAvatarPreview","getGravatarButton","getCropButton","getUploadButton","getGalleryButton","../loader",65,"ChangeAvatarError","_crop","_crop2","_upload","_upload2","_gallery","_gallery2","_modalLoader","_modalLoader2","reason","getErrorReason","completeFlow","avatarHash","updateAvatar","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./crop","./gallery","./index","./upload",66,"_fileSize","_fileSize2","pickFile","click","uploadFile","files","validationError","validateFile","preview","URL","createObjectURL","progress","FormData","append","uploaded","info","limit","filesize","invalidTypeMsg","allowed_mime_types","extensionFound","loweredFilename","toLowerCase","allowed_extensions","extension","extensions","getUploadRequirements","aria-valuenow","aria-valuemin","aria-valuemax","style","getUploadProgressLabel","onChange","getUploadProgress","renderCrop","renderUpload","../../utils/file-size",67,"validation","isValidated","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",68,"_defineProperty","_validators","validateRequired","required","bindInput","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","apiError","../services/snackbar","../utils/validators",69,"isActive","activeClassName",70,71,72,"_panelMessage","_panelMessage2","_PanelMessage","icon","./panel-message",73,"_panelLoader","_panelLoader2","../../panel-loader",74,"next_on","next_change","../../panel-message",75,"_interopRequireWildcard","newObj","_form","_form2","_formGroup","_formGroup2","_Form","usernameContent","usernameMinLength","username_length_min","length_min","usernameMaxLength","username_length_max","length_max","phrases","changes_left","name_changes_expire","trim","complete","slug","onSubmit","for","../../../services/ajax","../../../services/snackbar","../../../utils/validators","../../button","../../form","../../form-group",76,"_formLoading","_formLoading2","_formLocked","_formLocked2","_usernameHistory3","addNameChange","updateUsername","isLoaded","set","parent","Promise","all","results","getChangeForm","changes","../../../index","../../../reducers/username-history","../../../reducers/users","../../../services/page-title","../../../services/store","../../username-history","./form","./form-loading","./form-locked",77,"_select","_select2","_yesNoSwitch","_yesNoSwitch2","is_hiding_presence","limits_private_thread_invites_to","subscribe_to_started_threads","subscribe_to_replied_threads","privateThreadInvitesChoices","subscribeToChoices","patchUser","iconOn","iconOff","labelOn","labelOff","choices","../../reducers/auth","../../services/page-title","../form","../form-group","../select","../yes-no-switch",78,"CompactNav","SideNav","_reactRouter","_li","_li2","option","Link","to","baseUrl","hideNav","../li","react-router",79,"username-history","_forumOptions2","_root4","_navs","_forumOptions","_root3","toggleNav","dropdown","aria-haspopup","aria-expanded","getCompactNavClassName","./change-username/root","./forum-options","./navs","./sign-in-credentials/root",80,"new_email","password","email","lengths","change_email","display",81,"new_password","repeat_password","passwordMinLength","change_password",82,"_changeEmail","_changeEmail2","_changePassword","_changePassword2","./change-email","./change-password",83,84,85,"LABELS","STYLES","_score","_password","_inputs","inputs","cacheStale","scorePassword","score","getScore","../services/zxcvbn",86,"_followButton","_followButton2","_nav","_nav2","_userStatus","_userStatus2","profile","StatusIcon","StatusLabel","rank","is_tab","joined_on","age","can_follow","can_moderate","data-toggle","getFollowButton","getModerationButton","getUserStatus","getUserRank","getUserTitle","getJoinedOn","getEmail","../user-status","./follow-button","./moderation/nav",87,"ban","initWithPreloadedData","pop","initWithoutPreloadedData","stop","user_message","staff_message","_title","getUserMessage","getStaffMessage","getPanelBody","../panel-loader","../panel-message",88,"is_followed","patchProfile","followers","follow","getLabel","../../reducers/profile",89,"_search","_search2","loadMore","isBusy","loadUsers","page","ev","count","more","pages","setSpecialProps","PRELOADED_DATA_KEY","TITLE","API_FILTER","_ajax$get","users","getEmptyMessage","showRank","cols","getMoreButton","placeholder","getListBody","../search","../users-list/root",90,"_followers","_followers2","_Followers","./followers",91,"_modalMessage","_modalMessage2","is_avatar_locked","avatar_lock_user_message","avatar_lock_staff_message","moderate_avatar","isValid","apiResponse","rows","getFormBody","getModalBody","../../modal-loader","../../modal-message","../../yes-no-switch",92,"moderate_username",93,"countdown","isDeleted","with_content","getButtonLabel","getDeletedBody","getForm","../../../services/polls",94,"_avatarControls","_avatarControls2","_changeUsername","_changeUsername2","_deleteAccount","_deleteAccount2","showAvatarDialog","show","showRenameDialog","showDeleteDialog","can_moderate_avatar","can_rename","can_delete","getAvatarButton","getRenameButton","getDeleteButton","../../../services/modal","./avatar-controls","./change-username","./delete-account",95,"meta","getMeta","_SideNav","toggleModeration","showSpecialOptions","getSpecialOptions",96,"COMPONENTS","_banDetails","_banDetails2","_follows","_follows2","_Header","_Header2","baseClass","getNavDropdown","Placeholder","route","follows","ban-details","./Header","./ban-details","./follows","./username-history",97,"loadChanges","emptyMessage","../../reducers/username-history","../username-history",98,"_register","_register2","showRegisterModal","account_activation","load","../services/captcha","../services/modal","./register.js",99,"RegisterComplete","RegisterForm","_passwordStrength","_passwordStrength2","captcha","validator","hide","aria-describedby","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form-group","./password-strength",100,"LinkSent","RequestLinkForm","reset",101,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","render","react-dom",102,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",103,104,"change","choice","getChoice",105,"showActivation","find","val","getCsrfToken","submit","getActivationButton",106,"snackbar","TYPES_CLASSES","snackbarClass","isVisible","getSnackbarClass",107,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",108,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",109,"selectUserMenu","decision","changeAvatar","logout","showConnected","showUserMenu","../change-avatar/root",110,"is_banned","is_hidden","is_online_hidden","is_offline_hidden","is_online","is_offline","getClass","banned_until","ban_expires","last_click","getHelp",111,"_random","changed_by","changed_by_username","renderUserAvatar","renderUsername","old_username","new_username","changed_on","range","renderHistory","renderEmptyHistory","renderHistoryPreview","../utils/random","./avatar",112,"_userCard","_userCard2","_userPreview","_userPreview2","Pager","getColClassName","showStatus","./user-card","./user-preview",113,"getRankName","getUserJoinedOn",114,"../../utils/random",115,"days","trackedPeriod",116,"rankUrl","counter","../../avatar","../../user-status",117,"../../../utils/random",118,"_listItem","_listItem2","posters","getLeadMessage","./list-item",119,"_listEmpty","_listEmpty2","_listLoading","_listLoading2","_list","_list2","tracked_period","list","./list","./list-empty","./list-loading",120,"TabsNav","listUrl","navLinks","lists",121,"../../users-list/root",122,"_pager","_pager2","getPager","./pager",123,"_resetScroll","_resetScroll2","previous","first","page_range","getPreviousPage","getNextPage","getProgessBar","../../../utils/reset-scroll",124,"params","nextProps","getRankDescription","getComponent",125,"./active-posters/root","./rank/root",126,"toggle",127,"./utils/ordered-list",128,"patch","PATCH_USER","SIGN_IN","signOut","soft","SIGN_OUT","UPDATE_AVATAR","userId","_newState","UPDATE_USERNAME","_newState2","./users",129,"DEHYDRATE_PROFILE","PATCH_PROFILE","dehydrateStatus",130,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",131,"TICK",132,"changedBy","ADD_NAME_CHANGE","items","APPEND_HISTORY","DEHYDRATE_HISTORY","unshift","floor","now",133,"APPEND_USERS","DEHYDRATE_USERS",134,"_typeof","Symbol","iterator","Ajax","_cookieName","_csrfToken","_locks","cookieName","cookie","cookieRegex","RegExp","method","resolve","reject","xhr","headers","X-CSRFToken","contentType","dataType","jqXHR","responseJSON","statusText","ajax","lock","param","request","waiter","v","wait","processData","XMLHttpRequest","evt","lengthComputable","round","loaded","total",135,"Auth","local","modal","_local","syncSession","watchState","getState","watch","../reducers/auth",136,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","_BaseCaptcha3","recaptcha_site_key","captcha_type","../components/form-group",137,"Include","staticUrl","_staticUrl","_included","script","remote","cache",138,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","newValueJson","newValue","watcher","oldValue","itemString",139,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",140,"Modal","unmountComponentAtNode",141,"PageTitle","forumName","_forumName","finalTitle","pageLabel",142,"Polls","poolServer","_stopped","pollId",143,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","alert","../reducers/snackbar",144,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",145,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",146,"changeState","Provider","getStore","RedrawedBannedPage","../components/banned-page","../services/store",147,"rowWidth","padding",148,"bytes",149,"rootElementId","connected","rootElement","finalComponent",150,"OrderedList","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","iterations",151,"int","min","max",152,"scrollTo",153,"routes","childRoutes","onEnter","nextState","Router","_createBrowserHistory","_createBrowserHistory2","history/lib/createBrowserHistory",154,"EMAIL","test","minLength","limitValue","returnMessage","limit_value","show_value","maxLength","settings","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = setTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        setTimeout(drainQueue, 0);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n},{}],2:[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('../../../../documents/misago/frontend/src/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[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    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return 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},{\"../../../../documents/misago/frontend/src/utils/ordered-list\":150}],3:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/ajax\":134}],4:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../documents/misago/frontend/src/services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _store = require('../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _auth2.default.init(_store2.default, _localStorage2.default, _modal2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'auth',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/auth\":135,\"../../../../../documents/misago/frontend/src/services/local-storage\":138,\"../../../../../documents/misago/frontend/src/services/modal\":140,\"../../../../../documents/misago/frontend/src/services/store\":144}],5:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _captcha = require('../../../../../documents/misago/frontend/src/services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _captcha2.default.init(context, _ajax2.default, _include2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'captcha',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/ajax\":134,\"../../../../../documents/misago/frontend/src/services/captcha\":136,\"../../../../../documents/misago/frontend/src/services/include\":137,\"../../../../../documents/misago/frontend/src/services/snackbar\":143}],6:[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('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _authMessage = require('../../../../../../documents/misago/frontend/src/components/auth-message');\n\nvar _authMessage2 = _interopRequireDefault(_authMessage);\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  (0, _mountComponent2.default)((0, _reactRedux.connect)(_authMessage.select)(_authMessage2.default), 'auth-message-mount');\n}\n\n_index2.default.addInitializer({\n  name: 'component:auth-message',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/auth-message\":53,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149,\"react-redux\":\"react-redux\"}],7:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _bannedPage = require('../../../../../../documents/misago/frontend/src/utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/banned-page\":146}],8:[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 _root = require('../../../../../../documents/misago/frontend/src/components/categories/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('categories-mount')) {\n    (0, _mountComponent2.default)((0, _reactRedux.connect)(_root.select)(_root2.default), 'categories-mount');\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/categories/root\":60,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149,\"react-redux\":\"react-redux\"}],9:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../../documents/misago/frontend/src/components/options/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USER_OPTIONS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERCP_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:options',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/options/root\":79,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/routed-component\":153}],10:[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 _root = require('../../../../../../documents/misago/frontend/src/components/profile/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('PROFILE') && context.has('PROFILE_PAGES')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('PROFILE').absolute_url,\n      component: (0, _reactRedux.connect)(_root.select)(_root2.default),\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:profile',\n  initializer: initializer,\n  after: 'reducer:profile-dehydrate'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/profile/root\":96,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/routed-component\":153,\"react-redux\":\"react-redux\"}],11:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestActivationLink = require('../../../../../../documents/misago/frontend/src/components/request-activation-link');\n\nvar _requestActivationLink2 = _interopRequireDefault(_requestActivationLink);\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-activation-link-mount')) {\n    (0, _mountComponent2.default)(_requestActivationLink2.default, 'request-activation-link-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-activation-link',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/request-activation-link\":100,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149}],12:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _requestPasswordReset = require('../../../../../../documents/misago/frontend/src/components/request-password-reset');\n\nvar _requestPasswordReset2 = _interopRequireDefault(_requestPasswordReset);\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('request-password-reset-mount')) {\n    (0, _mountComponent2.default)(_requestPasswordReset2.default, 'request-password-reset-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:request-password-reset',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/request-password-reset\":101,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149}],13:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _resetPasswordForm = require('../../../../../../documents/misago/frontend/src/components/reset-password-form');\n\nvar _resetPasswordForm2 = _interopRequireDefault(_resetPasswordForm);\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/utils/mount-component');\n\nvar _mountComponent2 = _interopRequireDefault(_mountComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (document.getElementById('reset-password-form-mount')) {\n    (0, _mountComponent2.default)(_resetPasswordForm2.default, 'reset-password-form-mount', false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:reset-password-form',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/reset-password-form\":102,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149}],14:[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('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../../documents/misago/frontend/src/components/snackbar');\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/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},{\"../../../../../../documents/misago/frontend/src/components/snackbar\":106,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149,\"react-redux\":\"react-redux\"}],15:[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('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _root = require('../../../../../../documents/misago/frontend/src/components/user-menu/root');\n\nvar _mountComponent = require('../../../../../../documents/misago/frontend/src/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},{\"../../../../../../documents/misago/frontend/src/components/user-menu/root\":108,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/mount-component\":149,\"react-redux\":\"react-redux\"}],16:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _root = require('../../../../../../documents/misago/frontend/src/components/users/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _routedComponent = require('../../../../../../documents/misago/frontend/src/utils/routed-component');\n\nvar _routedComponent2 = _interopRequireDefault(_routedComponent);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  if (context.has('USERS_LISTS')) {\n    (0, _routedComponent2.default)({\n      root: _index2.default.get('USERS_LIST_URL'),\n      component: _root2.default,\n      paths: (0, _root.paths)()\n    });\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:users',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/components/users/root\":125,\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/utils/routed-component\":153}],17:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _include2.default.init(context.get('STATIC_URL'));\n}\n\n_index2.default.addInitializer({\n  name: 'include',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/include\":137}],18:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _localStorage = require('../../../../../documents/misago/frontend/src/services/local-storage');\n\nvar _localStorage2 = _interopRequireDefault(_localStorage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _localStorage2.default.init('misago_');\n}\n\n_index2.default.addInitializer({\n  name: 'local-storage',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/local-storage\":138}],19:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _mobileNavbarDropdown = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown\":139}],20:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _modal = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/modal\":140}],21:[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('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"moment\":\"moment\"}],22:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../../../documents/misago/frontend/src/services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _pageTitle2.default.init(context.get('SETTINGS').forum_name);\n}\n\n_index2.default.addInitializer({\n  name: 'page-title',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/page-title\":141}],23:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../../../documents/misago/frontend/src/services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _polls = require('../../../../../documents/misago/frontend/src/services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _polls2.default.init(_ajax2.default, _snackbar2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'polls',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/ajax\":134,\"../../../../../documents/misago/frontend/src/services/polls\":142,\"../../../../../documents/misago/frontend/src/services/snackbar\":143}],24:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _auth = require('../../../../../../documents/misago/frontend/src/reducers/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer(context) {\n  _store2.default.addReducer('auth', _auth2.default, Object.assign({\n    'isAuthenticated': context.get('isAuthenticated'),\n    'isAnonymous': !context.get('isAuthenticated'),\n\n    'user': context.get('user')\n  }, _auth.initialState));\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:auth',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/auth\":128,\"../../../../../../documents/misago/frontend/src/services/store\":144}],25:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../../../../../documents/misago/frontend/src/reducers/profile');\n\nvar _store = require('../../../../../../documents/misago/frontend/src/services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  if (_index2.default.has('PROFILE')) {\n    _store2.default.dispatch((0, _profile.dehydrate)(_index2.default.get('PROFILE')));\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:profile-dehydrate',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/profile\":129,\"../../../../../../documents/misago/frontend/src/services/store\":144}],26:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../../../../../documents/misago/frontend/src/reducers/profile');\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/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('profile', _profile2.default, {});\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:profile',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/profile\":129,\"../../../../../../documents/misago/frontend/src/services/store\":144}],27:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../../documents/misago/frontend/src/reducers/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/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},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/snackbar\":130,\"../../../../../../documents/misago/frontend/src/services/store\":144}],28:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _tick2 = _interopRequireDefault(_tick);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/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},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/tick\":131,\"../../../../../../documents/misago/frontend/src/services/store\":144}],29:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../../../../documents/misago/frontend/src/reducers/username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/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('username-history', _usernameHistory2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:username-history',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/username-history\":132,\"../../../../../../documents/misago/frontend/src/services/store\":144}],30:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../../../../documents/misago/frontend/src/reducers/users');\n\nvar _users2 = _interopRequireDefault(_users);\n\nvar _store = require('../../../../../../documents/misago/frontend/src/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('users', _users2.default, []);\n}\n\n_index2.default.addInitializer({\n  name: 'reducer:users',\n  initializer: initializer,\n  before: 'store'\n});\n\n},{\"../../../../../../documents/misago/frontend/src/index\":127,\"../../../../../../documents/misago/frontend/src/reducers/users\":133,\"../../../../../../documents/misago/frontend/src/services/store\":144}],31:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _snackbar = require('../../../../../documents/misago/frontend/src/services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/snackbar\":143,\"../../../../../documents/misago/frontend/src/services/store\":144}],32:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/store\":144}],33:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _tick = require('../../../../../documents/misago/frontend/src/reducers/tick');\n\nvar _store = require('../../../../../documents/misago/frontend/src/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},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/reducers/tick\":131,\"../../../../../documents/misago/frontend/src/services/store\":144}],34:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.default = initializer;\n\nvar _index = require('../../../../../documents/misago/frontend/src/index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _include = require('../../../../../documents/misago/frontend/src/services/include');\n\nvar _include2 = _interopRequireDefault(_include);\n\nvar _zxcvbn = require('../../../../../documents/misago/frontend/src/services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction initializer() {\n  _zxcvbn2.default.init(_include2.default);\n}\n\n_index2.default.addInitializer({\n  name: 'zxcvbn',\n  initializer: initializer\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":127,\"../../../../../documents/misago/frontend/src/services/include\":137,\"../../../../../documents/misago/frontend/src/services/zxcvbn\":145}],35:[function(require,module,exports){\nvar pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n  if (!opts) opts = {};\n  // 7.1. All identical values are equivalent, as determined by ===.\n  if (actual === expected) {\n    return true;\n\n  } else if (actual instanceof Date && expected instanceof Date) {\n    return actual.getTime() === expected.getTime();\n\n  // 7.3. Other pairs that do not both pass typeof value == 'object',\n  // equivalence is determined by ==.\n  } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n    return opts.strict ? actual === expected : actual == expected;\n\n  // 7.4. For all other Object pairs, including Array objects, equivalence is\n  // determined by having the same number of owned properties (as verified\n  // with Object.prototype.hasOwnProperty.call), the same set of keys\n  // (although not necessarily the same order), equivalent values for every\n  // corresponding key, and an identical 'prototype' property. Note: this\n  // accounts for both named and indexed properties on Arrays.\n  } else {\n    return objEquiv(actual, expected, opts);\n  }\n}\n\nfunction isUndefinedOrNull(value) {\n  return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n  if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n  if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n    return false;\n  }\n  if (x.length > 0 && typeof x[0] !== 'number') return false;\n  return true;\n}\n\nfunction objEquiv(a, b, opts) {\n  var i, key;\n  if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n    return false;\n  // an identical 'prototype' property.\n  if (a.prototype !== b.prototype) return false;\n  //~~~I've managed to break Object.keys through screwy arguments passing.\n  //   Converting to array solves the problem.\n  if (isArguments(a)) {\n    if (!isArguments(b)) {\n      return false;\n    }\n    a = pSlice.call(a);\n    b = pSlice.call(b);\n    return deepEqual(a, b, opts);\n  }\n  if (isBuffer(a)) {\n    if (!isBuffer(b)) {\n      return false;\n    }\n    if (a.length !== b.length) return false;\n    for (i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) return false;\n    }\n    return true;\n  }\n  try {\n    var ka = objectKeys(a),\n        kb = objectKeys(b);\n  } catch (e) {//happens when one is a string literal and the other isn't\n    return false;\n  }\n  // having the same number of owned properties (keys incorporates\n  // hasOwnProperty)\n  if (ka.length != kb.length)\n    return false;\n  //the same set of keys (although not necessarily the same order),\n  ka.sort();\n  kb.sort();\n  //~~~cheap key test\n  for (i = ka.length - 1; i >= 0; i--) {\n    if (ka[i] != kb[i])\n      return false;\n  }\n  //equivalent values for every corresponding key, and\n  //~~~possibly expensive deep test\n  for (i = ka.length - 1; i >= 0; i--) {\n    key = ka[i];\n    if (!deepEqual(a[key], b[key], opts)) return false;\n  }\n  return typeof a === typeof b;\n}\n\n},{\"./lib/is_arguments.js\":36,\"./lib/keys.js\":37}],36:[function(require,module,exports){\nvar supportsArgumentsClass = (function(){\n  return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n  return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n  return object &&\n    typeof object == 'object' &&\n    typeof object.length == 'number' &&\n    Object.prototype.hasOwnProperty.call(object, 'callee') &&\n    !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n    false;\n};\n\n},{}],37:[function(require,module,exports){\nexports = module.exports = typeof Object.keys === 'function'\n  ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n}\n\n},{}],38:[function(require,module,exports){\n/**\n * Indicates that navigation was caused by a call to history.push.\n */\n'use strict';\n\nexports.__esModule = true;\nvar PUSH = 'PUSH';\n\nexports.PUSH = PUSH;\n/**\n * Indicates that navigation was caused by a call to history.replace.\n */\nvar REPLACE = 'REPLACE';\n\nexports.REPLACE = REPLACE;\n/**\n * Indicates that navigation was caused by some other action such\n * as using a browser's back/forward buttons and/or manually manipulating\n * the URL in a browser's location bar. This is the default.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate\n * for more information.\n */\nvar POP = 'POP';\n\nexports.POP = POP;\nexports['default'] = {\n  PUSH: PUSH,\n  REPLACE: REPLACE,\n  POP: POP\n};\n},{}],39:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nexports.loopAsync = loopAsync;\n\nfunction loopAsync(turns, work, callback) {\n  var currentTurn = 0;\n  var isDone = false;\n\n  function done() {\n    isDone = true;\n    callback.apply(this, arguments);\n  }\n\n  function next() {\n    if (isDone) return;\n\n    if (currentTurn < turns) {\n      work.call(this, currentTurn++, next, done);\n    } else {\n      done.apply(this, arguments);\n    }\n  }\n\n  next();\n}\n},{}],40:[function(require,module,exports){\n(function (process){\n/*eslint-disable no-empty */\n'use strict';\n\nexports.__esModule = true;\nexports.saveState = saveState;\nexports.readState = readState;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar KeyPrefix = '@@History/';\nvar QuotaExceededError = 'QuotaExceededError';\nvar SecurityError = 'SecurityError';\n\nfunction createKey(key) {\n  return KeyPrefix + key;\n}\n\nfunction saveState(key, state) {\n  try {\n    window.sessionStorage.setItem(createKey(key), JSON.stringify(state));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available due to security settings') : undefined;\n\n      return;\n    }\n\n    if (error.name === QuotaExceededError && window.sessionStorage.length === 0) {\n      // Safari \"private mode\" throws QuotaExceededError.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to save state; sessionStorage is not available in Safari private mode') : undefined;\n\n      return;\n    }\n\n    throw error;\n  }\n}\n\nfunction readState(key) {\n  var json = undefined;\n  try {\n    json = window.sessionStorage.getItem(createKey(key));\n  } catch (error) {\n    if (error.name === SecurityError) {\n      // Blocking cookies in Chrome/Firefox/Safari throws SecurityError on any\n      // attempt to access window.sessionStorage.\n      process.env.NODE_ENV !== 'production' ? _warning2['default'](false, '[history] Unable to read state; sessionStorage is not available due to security settings') : undefined;\n\n      return null;\n    }\n  }\n\n  if (json) {\n    try {\n      return JSON.parse(json);\n    } catch (error) {\n      // Ignore invalid JSON.\n    }\n  }\n\n  return null;\n}\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":52}],41:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.addEventListener = addEventListener;\nexports.removeEventListener = removeEventListener;\nexports.getHashPath = getHashPath;\nexports.replaceHashPath = replaceHashPath;\nexports.getWindowPath = getWindowPath;\nexports.go = go;\nexports.getUserConfirmation = getUserConfirmation;\nexports.supportsHistory = supportsHistory;\nexports.supportsGoWithoutReloadUsingHash = supportsGoWithoutReloadUsingHash;\n\nfunction addEventListener(node, event, listener) {\n  if (node.addEventListener) {\n    node.addEventListener(event, listener, false);\n  } else {\n    node.attachEvent('on' + event, listener);\n  }\n}\n\nfunction removeEventListener(node, event, listener) {\n  if (node.removeEventListener) {\n    node.removeEventListener(event, listener, false);\n  } else {\n    node.detachEvent('on' + event, listener);\n  }\n}\n\nfunction getHashPath() {\n  // We can't use window.location.hash here because it's not\n  // consistent across browsers - Firefox will pre-decode it!\n  return window.location.href.split('#')[1] || '';\n}\n\nfunction replaceHashPath(path) {\n  window.location.replace(window.location.pathname + window.location.search + '#' + path);\n}\n\nfunction getWindowPath() {\n  return window.location.pathname + window.location.search + window.location.hash;\n}\n\nfunction go(n) {\n  if (n) window.history.go(n);\n}\n\nfunction getUserConfirmation(message, callback) {\n  callback(window.confirm(message));\n}\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/rackt/react-router/issues/586\n */\n\nfunction supportsHistory() {\n  var ua = navigator.userAgent;\n  if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) {\n    return false;\n  }\n  // FIXME: Work around our browser history not working correctly on Chrome\n  // iOS: https://github.com/rackt/react-router/issues/2565\n  if (ua.indexOf('CriOS') !== -1) {\n    return false;\n  }\n  return window.history && 'pushState' in window.history;\n}\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n  var ua = navigator.userAgent;\n  return ua.indexOf('Firefox') === -1;\n}\n},{}],42:[function(require,module,exports){\n'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexports.canUseDOM = canUseDOM;\n},{}],43:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _Actions = require('./Actions');\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _DOMStateStorage = require('./DOMStateStorage');\n\nvar _createDOMHistory = require('./createDOMHistory');\n\nvar _createDOMHistory2 = _interopRequireDefault(_createDOMHistory);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\n/**\n * Creates and returns a history object that uses HTML5's history API\n * (pushState, replaceState, and the popstate event) to manage history.\n * This is the recommended method of managing history in browsers because\n * it provides the cleanest URLs.\n *\n * Note: In browsers that do not support the HTML5 history API full\n * page reloads will be used to preserve URLs.\n */\nfunction createBrowserHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n  !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'Browser history needs a DOM') : _invariant2['default'](false) : undefined;\n\n  var forceRefresh = options.forceRefresh;\n\n  var isSupported = _DOMUtils.supportsHistory();\n  var useRefresh = !isSupported || forceRefresh;\n\n  function getCurrentLocation(historyState) {\n    historyState = historyState || window.history.state || {};\n\n    var path = _DOMUtils.getWindowPath();\n    var _historyState = historyState;\n    var key = _historyState.key;\n\n    var state = undefined;\n    if (key) {\n      state = _DOMStateStorage.readState(key);\n    } else {\n      state = null;\n      key = history.createKey();\n\n      if (isSupported) window.history.replaceState(_extends({}, historyState, { key: key }), null, path);\n    }\n\n    var location = _parsePath2['default'](path);\n\n    return history.createLocation(_extends({}, location, { state: state }), undefined, key);\n  }\n\n  function startPopStateListener(_ref) {\n    var transitionTo = _ref.transitionTo;\n\n    function popStateListener(event) {\n      if (event.state === undefined) return; // Ignore extraneous popstate events in WebKit.\n\n      transitionTo(getCurrentLocation(event.state));\n    }\n\n    _DOMUtils.addEventListener(window, 'popstate', popStateListener);\n\n    return function () {\n      _DOMUtils.removeEventListener(window, 'popstate', popStateListener);\n    };\n  }\n\n  function finishTransition(location) {\n    var basename = location.basename;\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n    var state = location.state;\n    var action = location.action;\n    var key = location.key;\n\n    if (action === _Actions.POP) return; // Nothing to do.\n\n    _DOMStateStorage.saveState(key, state);\n\n    var path = (basename || '') + pathname + search + hash;\n    var historyState = {\n      key: key\n    };\n\n    if (action === _Actions.PUSH) {\n      if (useRefresh) {\n        window.location.href = path;\n        return false; // Prevent location update.\n      } else {\n          window.history.pushState(historyState, null, path);\n        }\n    } else {\n      // REPLACE\n      if (useRefresh) {\n        window.location.replace(path);\n        return false; // Prevent location update.\n      } else {\n          window.history.replaceState(historyState, null, path);\n        }\n    }\n  }\n\n  var history = _createDOMHistory2['default'](_extends({}, options, {\n    getCurrentLocation: getCurrentLocation,\n    finishTransition: finishTransition,\n    saveState: _DOMStateStorage.saveState\n  }));\n\n  var listenerCount = 0,\n      stopPopStateListener = undefined;\n\n  function listenBefore(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listenBefore(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  function listen(listener) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    var unlisten = history.listen(listener);\n\n    return function () {\n      unlisten();\n\n      if (--listenerCount === 0) stopPopStateListener();\n    };\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (++listenerCount === 1) stopPopStateListener = startPopStateListener(history);\n\n    history.registerTransitionHook(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    history.unregisterTransitionHook(hook);\n\n    if (--listenerCount === 0) stopPopStateListener();\n  }\n\n  return _extends({}, history, {\n    listenBefore: listenBefore,\n    listen: listen,\n    registerTransitionHook: registerTransitionHook,\n    unregisterTransitionHook: unregisterTransitionHook\n  });\n}\n\nexports['default'] = createBrowserHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./Actions\":38,\"./DOMStateStorage\":40,\"./DOMUtils\":41,\"./ExecutionEnvironment\":42,\"./createDOMHistory\":44,\"./parsePath\":49,\"_process\":1,\"invariant\":51}],44:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _ExecutionEnvironment = require('./ExecutionEnvironment');\n\nvar _DOMUtils = require('./DOMUtils');\n\nvar _createHistory = require('./createHistory');\n\nvar _createHistory2 = _interopRequireDefault(_createHistory);\n\nfunction createDOMHistory(options) {\n  var history = _createHistory2['default'](_extends({\n    getUserConfirmation: _DOMUtils.getUserConfirmation\n  }, options, {\n    go: _DOMUtils.go\n  }));\n\n  function listen(listener) {\n    !_ExecutionEnvironment.canUseDOM ? process.env.NODE_ENV !== 'production' ? _invariant2['default'](false, 'DOM history needs a DOM') : _invariant2['default'](false) : undefined;\n\n    return history.listen(listener);\n  }\n\n  return _extends({}, history, {\n    listen: listen\n  });\n}\n\nexports['default'] = createDOMHistory;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./DOMUtils\":41,\"./ExecutionEnvironment\":42,\"./createHistory\":45,\"_process\":1,\"invariant\":51}],45:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _deepEqual = require('deep-equal');\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _AsyncUtils = require('./AsyncUtils');\n\nvar _Actions = require('./Actions');\n\nvar _createLocation2 = require('./createLocation');\n\nvar _createLocation3 = _interopRequireDefault(_createLocation2);\n\nvar _runTransitionHook = require('./runTransitionHook');\n\nvar _runTransitionHook2 = _interopRequireDefault(_runTransitionHook);\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nvar _deprecate = require('./deprecate');\n\nvar _deprecate2 = _interopRequireDefault(_deprecate);\n\nfunction createRandomKey(length) {\n  return Math.random().toString(36).substr(2, length);\n}\n\nfunction locationsAreEqual(a, b) {\n  return a.pathname === b.pathname && a.search === b.search &&\n  //a.action === b.action && // Different action !== location change.\n  a.key === b.key && _deepEqual2['default'](a.state, b.state);\n}\n\nvar DefaultKeyLength = 6;\n\nfunction createHistory() {\n  var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n  var getCurrentLocation = options.getCurrentLocation;\n  var finishTransition = options.finishTransition;\n  var saveState = options.saveState;\n  var go = options.go;\n  var keyLength = options.keyLength;\n  var getUserConfirmation = options.getUserConfirmation;\n\n  if (typeof keyLength !== 'number') keyLength = DefaultKeyLength;\n\n  var transitionHooks = [];\n\n  function listenBefore(hook) {\n    transitionHooks.push(hook);\n\n    return function () {\n      transitionHooks = transitionHooks.filter(function (item) {\n        return item !== hook;\n      });\n    };\n  }\n\n  var allKeys = [];\n  var changeListeners = [];\n  var location = undefined;\n\n  function getCurrent() {\n    if (pendingLocation && pendingLocation.action === _Actions.POP) {\n      return allKeys.indexOf(pendingLocation.key);\n    } else if (location) {\n      return allKeys.indexOf(location.key);\n    } else {\n      return -1;\n    }\n  }\n\n  function updateLocation(newLocation) {\n    var current = getCurrent();\n\n    location = newLocation;\n\n    if (location.action === _Actions.PUSH) {\n      allKeys = [].concat(allKeys.slice(0, current + 1), [location.key]);\n    } else if (location.action === _Actions.REPLACE) {\n      allKeys[current] = location.key;\n    }\n\n    changeListeners.forEach(function (listener) {\n      listener(location);\n    });\n  }\n\n  function listen(listener) {\n    changeListeners.push(listener);\n\n    if (location) {\n      listener(location);\n    } else {\n      var _location = getCurrentLocation();\n      allKeys = [_location.key];\n      updateLocation(_location);\n    }\n\n    return function () {\n      changeListeners = changeListeners.filter(function (item) {\n        return item !== listener;\n      });\n    };\n  }\n\n  function confirmTransitionTo(location, callback) {\n    _AsyncUtils.loopAsync(transitionHooks.length, function (index, next, done) {\n      _runTransitionHook2['default'](transitionHooks[index], location, function (result) {\n        if (result != null) {\n          done(result);\n        } else {\n          next();\n        }\n      });\n    }, function (message) {\n      if (getUserConfirmation && typeof message === 'string') {\n        getUserConfirmation(message, function (ok) {\n          callback(ok !== false);\n        });\n      } else {\n        callback(message !== false);\n      }\n    });\n  }\n\n  var pendingLocation = undefined;\n\n  function transitionTo(nextLocation) {\n    if (location && locationsAreEqual(location, nextLocation)) return; // Nothing to do.\n\n    pendingLocation = nextLocation;\n\n    confirmTransitionTo(nextLocation, function (ok) {\n      if (pendingLocation !== nextLocation) return; // Transition was interrupted.\n\n      if (ok) {\n        // treat PUSH to current path like REPLACE to be consistent with browsers\n        if (nextLocation.action === _Actions.PUSH) {\n          var prevPath = createPath(location);\n          var nextPath = createPath(nextLocation);\n\n          if (nextPath === prevPath) nextLocation.action = _Actions.REPLACE;\n        }\n\n        if (finishTransition(nextLocation) !== false) updateLocation(nextLocation);\n      } else if (location && nextLocation.action === _Actions.POP) {\n        var prevIndex = allKeys.indexOf(location.key);\n        var nextIndex = allKeys.indexOf(nextLocation.key);\n\n        if (prevIndex !== -1 && nextIndex !== -1) go(prevIndex - nextIndex); // Restore the URL.\n      }\n    });\n  }\n\n  function push(location) {\n    transitionTo(createLocation(location, _Actions.PUSH, createKey()));\n  }\n\n  function replace(location) {\n    transitionTo(createLocation(location, _Actions.REPLACE, createKey()));\n  }\n\n  function goBack() {\n    go(-1);\n  }\n\n  function goForward() {\n    go(1);\n  }\n\n  function createKey() {\n    return createRandomKey(keyLength);\n  }\n\n  function createPath(location) {\n    if (location == null || typeof location === 'string') return location;\n\n    var pathname = location.pathname;\n    var search = location.search;\n    var hash = location.hash;\n\n    var result = pathname;\n\n    if (search) result += search;\n\n    if (hash) result += hash;\n\n    return result;\n  }\n\n  function createHref(location) {\n    return createPath(location);\n  }\n\n  function createLocation(location, action) {\n    var key = arguments.length <= 2 || arguments[2] === undefined ? createKey() : arguments[2];\n\n    if (typeof action === 'object') {\n      //warning(\n      //  false,\n      //  'The state (2nd) argument to history.createLocation is deprecated; use a ' +\n      //  'location descriptor instead'\n      //)\n\n      if (typeof location === 'string') location = _parsePath2['default'](location);\n\n      location = _extends({}, location, { state: action });\n\n      action = key;\n      key = arguments[3] || createKey();\n    }\n\n    return _createLocation3['default'](location, action, key);\n  }\n\n  // deprecated\n  function setState(state) {\n    if (location) {\n      updateLocationState(location, state);\n      updateLocation(location);\n    } else {\n      updateLocationState(getCurrentLocation(), state);\n    }\n  }\n\n  function updateLocationState(location, state) {\n    location.state = _extends({}, location.state, state);\n    saveState(location.key, location.state);\n  }\n\n  // deprecated\n  function registerTransitionHook(hook) {\n    if (transitionHooks.indexOf(hook) === -1) transitionHooks.push(hook);\n  }\n\n  // deprecated\n  function unregisterTransitionHook(hook) {\n    transitionHooks = transitionHooks.filter(function (item) {\n      return item !== hook;\n    });\n  }\n\n  // deprecated\n  function pushState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    push(_extends({ state: state }, path));\n  }\n\n  // deprecated\n  function replaceState(state, path) {\n    if (typeof path === 'string') path = _parsePath2['default'](path);\n\n    replace(_extends({ state: state }, path));\n  }\n\n  return {\n    listenBefore: listenBefore,\n    listen: listen,\n    transitionTo: transitionTo,\n    push: push,\n    replace: replace,\n    go: go,\n    goBack: goBack,\n    goForward: goForward,\n    createKey: createKey,\n    createPath: createPath,\n    createHref: createHref,\n    createLocation: createLocation,\n\n    setState: _deprecate2['default'](setState, 'setState is deprecated; use location.key to save state instead'),\n    registerTransitionHook: _deprecate2['default'](registerTransitionHook, 'registerTransitionHook is deprecated; use listenBefore instead'),\n    unregisterTransitionHook: _deprecate2['default'](unregisterTransitionHook, 'unregisterTransitionHook is deprecated; use the callback returned from listenBefore instead'),\n    pushState: _deprecate2['default'](pushState, 'pushState is deprecated; use push instead'),\n    replaceState: _deprecate2['default'](replaceState, 'replaceState is deprecated; use replace instead')\n  };\n}\n\nexports['default'] = createHistory;\nmodule.exports = exports['default'];\n},{\"./Actions\":38,\"./AsyncUtils\":39,\"./createLocation\":46,\"./deprecate\":47,\"./parsePath\":49,\"./runTransitionHook\":50,\"deep-equal\":35}],46:[function(require,module,exports){\n//import warning from 'warning'\n'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _Actions = require('./Actions');\n\nvar _parsePath = require('./parsePath');\n\nvar _parsePath2 = _interopRequireDefault(_parsePath);\n\nfunction createLocation() {\n  var location = arguments.length <= 0 || arguments[0] === undefined ? '/' : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? _Actions.POP : arguments[1];\n  var key = arguments.length <= 2 || arguments[2] === undefined ? null : arguments[2];\n\n  var _fourthArg = arguments.length <= 3 || arguments[3] === undefined ? null : arguments[3];\n\n  if (typeof location === 'string') location = _parsePath2['default'](location);\n\n  if (typeof action === 'object') {\n    //warning(\n    //  false,\n    //  'The state (2nd) argument to createLocation is deprecated; use a ' +\n    //  'location descriptor instead'\n    //)\n\n    location = _extends({}, location, { state: action });\n\n    action = key || _Actions.POP;\n    key = _fourthArg;\n  }\n\n  var pathname = location.pathname || '/';\n  var search = location.search || '';\n  var hash = location.hash || '';\n  var state = location.state || null;\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash,\n    state: state,\n    action: action,\n    key: key\n  };\n}\n\nexports['default'] = createLocation;\nmodule.exports = exports['default'];\n},{\"./Actions\":38,\"./parsePath\":49}],47:[function(require,module,exports){\n//import warning from 'warning'\n\n\"use strict\";\n\nexports.__esModule = true;\nfunction deprecate(fn) {\n  return fn;\n  //return function () {\n  //  warning(false, '[history] ' + message)\n  //  return fn.apply(this, arguments)\n  //}\n}\n\nexports[\"default\"] = deprecate;\nmodule.exports = exports[\"default\"];\n},{}],48:[function(require,module,exports){\n\"use strict\";\n\nexports.__esModule = true;\nfunction extractPath(string) {\n  var match = string.match(/^https?:\\/\\/[^\\/]*/);\n\n  if (match == null) return string;\n\n  return string.substring(match[0].length);\n}\n\nexports[\"default\"] = extractPath;\nmodule.exports = exports[\"default\"];\n},{}],49:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _extractPath = require('./extractPath');\n\nvar _extractPath2 = _interopRequireDefault(_extractPath);\n\nfunction parsePath(path) {\n  var pathname = _extractPath2['default'](path);\n  var search = '';\n  var hash = '';\n\n  process.env.NODE_ENV !== 'production' ? _warning2['default'](path === pathname, 'A path must be pathname + search + hash only, not a fully qualified URL like \"%s\"', path) : undefined;\n\n  var hashIndex = pathname.indexOf('#');\n  if (hashIndex !== -1) {\n    hash = pathname.substring(hashIndex);\n    pathname = pathname.substring(0, hashIndex);\n  }\n\n  var searchIndex = pathname.indexOf('?');\n  if (searchIndex !== -1) {\n    search = pathname.substring(searchIndex);\n    pathname = pathname.substring(0, searchIndex);\n  }\n\n  if (pathname === '') pathname = '/';\n\n  return {\n    pathname: pathname,\n    search: search,\n    hash: hash\n  };\n}\n\nexports['default'] = parsePath;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"./extractPath\":48,\"_process\":1,\"warning\":52}],50:[function(require,module,exports){\n(function (process){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction runTransitionHook(hook, location, callback) {\n  var result = hook(location, callback);\n\n  if (hook.length < 2) {\n    // Assume the hook runs synchronously and automatically\n    // call the callback with the return value.\n    callback(result);\n  } else {\n    process.env.NODE_ENV !== 'production' ? _warning2['default'](result === undefined, 'You should not \"return\" in a transition hook with a callback argument; call the callback instead') : undefined;\n  }\n}\n\nexports['default'] = runTransitionHook;\nmodule.exports = exports['default'];\n}).call(this,require('_process'))\n},{\"_process\":1,\"warning\":52}],51:[function(require,module,exports){\n/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n  if (\"production\" !== 'production') {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  }\n\n  if (!condition) {\n    var error;\n    if (format === undefined) {\n      error = new Error(\n        'Minified exception occurred; use the non-minified dev environment ' +\n        'for the full error message and additional helpful warnings.'\n      );\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(\n        format.replace(/%s/g, function() { return args[argIndex++]; })\n      );\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n};\n\nmodule.exports = invariant;\n\n},{}],52:[function(require,module,exports){\n/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = function() {};\n\nif (\"production\" !== 'production') {\n  warning = function(condition, format, args) {\n    var len = arguments.length;\n    args = new Array(len > 2 ? len - 2 : 0);\n    for (var key = 2; key < len; key++) {\n      args[key - 2] = arguments[key];\n    }\n    if (format === undefined) {\n      throw new Error(\n        '`warning(condition, format, ...args)` requires a warning ' +\n        'message argument'\n      );\n    }\n\n    if (format.length < 10 || (/^[s\\W]*$/).test(format)) {\n      throw new Error(\n        'The warning format should be able to uniquely identify this ' +\n        'warning. Please, use a more descriptive format than: ' + format\n      );\n    }\n\n    if (!condition) {\n      var argIndex = 0;\n      var message = 'Warning: ' +\n        format.replace(/%s/g, function() {\n          return args[argIndex++];\n        });\n      if (typeof console !== 'undefined') {\n        console.error(message);\n      }\n      try {\n        // This error was thrown as a convenience so that you can use this stack\n        // to find the callsite that caused this warning to fire.\n        throw new Error(message);\n      } catch(x) {}\n    }\n  };\n}\n\nmodule.exports = warning;\n\n},{}],53:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"refresh\",\n    value: function refresh() {\n      window.location.reload();\n    }\n  }, {\n    key: \"getMessage\",\n    value: function getMessage() {\n      if (this.props.signedIn) {\n        return interpolate(gettext(\"You have signed in as %(username)s. Please refresh the page before continuing.\"), { username: this.props.signedIn.username }, true);\n      } else if (this.props.signedOut) {\n        return interpolate(gettext(\"%(username)s, you have been signed out. Please refresh the page before continuing.\"), { username: this.props.user.username }, true);\n      }\n    }\n  }, {\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.signedIn || this.props.signedOut) {\n        return \"auth-message show\";\n      } else {\n        return \"auth-message\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"container\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.getMessage()\n          ),\n          _react2.default.createElement(\n            \"p\",\n            null,\n            _react2.default.createElement(\n              \"button\",\n              { type: \"button\", className: \"btn btn-default\",\n                onClick: this.refresh },\n              gettext(\"Reload page\")\n            ),\n            \" \",\n            _react2.default.createElement(\n              \"span\",\n              { className: \"hidden-xs hidden-sm text-muted\" },\n              gettext(\"or press F5 key.\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    user: state.auth.user,\n    signedIn: state.auth.signedIn,\n    signedOut: state.auth.signedOut\n  };\n}\n\n},{\"react\":\"react\"}],54:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\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\"}],55:[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', dangerouslySetInnerHTML: {\n            __html: this.props.message.html\n          } });\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          /* jshint ignore:start */\n          var title = interpolate(gettext(\"This ban expires on %(expires_on)s.\"), {\n            'expires_on': this.props.expires.format('LL, LT')\n          }, true);\n\n          var message = interpolate(gettext(\"This ban expires %(expires_on)s.\"), {\n            'expires_on': this.props.expires.fromNow()\n          }, true);\n\n          return _react2.default.createElement(\n            'abbr',\n            { title: title },\n            message\n          );\n          /* jshint ignore:end */\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\"}],56:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// jshint ignore:line\n\nvar Button = function (_React$Component) {\n  _inherits(Button, _React$Component);\n\n  function Button() {\n    _classCallCheck(this, Button);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Button).apply(this, arguments));\n  }\n\n  _createClass(Button, [{\n    key: 'render',\n    value: function render() {\n      var className = 'btn ' + this.props.className;\n      var disabled = this.props.disabled;\n\n      if (this.props.loading) {\n        className += ' btn-loading';\n        disabled = true;\n      }\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: this.props.onClick ? 'button' : 'submit',\n          className: className,\n          disabled: disabled,\n          onClick: this.props.onClick },\n        this.props.children,\n        this.props.loading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Button;\n}(_react2.default.Component);\n\nexports.default = Button;\n\nButton.defaultProps = {\n  className: \"btn-default\",\n\n  type: \"submit\",\n\n  loading: false,\n  disabled: false,\n\n  onClick: null\n};\n\n},{\"./loader\":70,\"react\":\"react\"}],57:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _lastActivity = require('./last-activity');\n\nvar _lastActivity2 = _interopRequireDefault(_lastActivity);\n\nvar _readIcon = require('./read-icon');\n\nvar _readIcon2 = _interopRequireDefault(_readIcon);\n\nvar _stats = require('./stats');\n\nvar _stats2 = _interopRequireDefault(_stats);\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\n// jshint ignore:line\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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.category.css_class) {\n        return 'panel panel-default panel-category panel-category-' + this.props.category.css_class;\n      } else {\n        return 'panel panel-default panel-category';\n      }\n    }\n  }, {\n    key: 'getHeadingClassName',\n    value: function getHeadingClassName() {\n      if (this.props.category.subcategories.length) {\n        return 'panel-heading';\n      } else {\n        return 'panel-heading heading-alone';\n      }\n    }\n  }, {\n    key: 'getCategoryDescription',\n    value: function getCategoryDescription() {\n      if (this.props.category.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('div', { className: 'panel-body category-description',\n          dangerouslySetInnerHTML: {\n            __html: this.props.category.description.html\n          } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategoryClass',\n    value: function getSubcategoryClass(category) {\n      if (category.css_class) {\n        return 'list-group-item category-subcategory subcategory-' + category.css_class;\n      } else {\n        return 'list-group-item category-subcategory';\n      }\n    }\n  }, {\n    key: 'getSubcategoryDescription',\n    value: function getSubcategoryDescription(category) {\n      if (category.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('div', { className: 'subcategory-description',\n          dangerouslySetInnerHTML: {\n            __html: category.description.html\n          } });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategorySubcategoryClass',\n    value: function getSubcategorySubcategoryClass(category) {\n      if (category.css_class) {\n        return 'subcategory subcategory-' + category.css_class;\n      } else {\n        return 'subcategory';\n      }\n    }\n  }, {\n    key: 'getSubcategorySubcategories',\n    value: function getSubcategorySubcategories(category) {\n      var _this2 = this;\n\n      if (category.subcategories.length) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'ul',\n          { className: 'list-inline subcategories-list' },\n          category.subcategories.map(function (category) {\n            return _react2.default.createElement(\n              'li',\n              { key: category.id },\n              _react2.default.createElement(\n                'a',\n                { href: category.absolute_url,\n                  className: _this2.getSubcategorySubcategoryClass(category) },\n                category.name\n              )\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSubcategories',\n    value: function getSubcategories() {\n      var _this3 = this;\n\n      if (this.props.category.subcategories.length) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'ul',\n          { className: 'list-group category-subcategories' },\n          this.props.category.subcategories.map(function (category) {\n            return _react2.default.createElement(\n              'li',\n              { className: _this3.getSubcategoryClass(category),\n                key: category.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'title-row' },\n                _react2.default.createElement(\n                  'h4',\n                  null,\n                  _react2.default.createElement(_readIcon2.default, { category: category }),\n                  _react2.default.createElement(\n                    'a',\n                    { href: category.absolute_url, className: 'item-title' },\n                    category.name\n                  )\n                ),\n                _react2.default.createElement(_stats2.default, { category: category })\n              ),\n              _react2.default.createElement(_lastActivity2.default, { category: category }),\n              _this3.getSubcategoryDescription(category),\n              _this3.getSubcategorySubcategories(category)\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { id: 'panel-category-' + this.props.category.id,\n          className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: this.getHeadingClassName() },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading-inblock' },\n            _react2.default.createElement(\n              'div',\n              { className: 'panel-heading-top-row' },\n              _react2.default.createElement(\n                'h3',\n                { className: 'panel-title' },\n                _react2.default.createElement(_readIcon2.default, { category: this.props.category }),\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.category.absolute_url, className: 'item-title' },\n                  this.props.category.name\n                )\n              ),\n              _react2.default.createElement(_stats2.default, { category: this.props.category })\n            ),\n            _react2.default.createElement(_lastActivity2.default, { category: this.props.category })\n          )\n        ),\n        this.getCategoryDescription(),\n        this.getSubcategories()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./last-activity\":58,\"./read-icon\":59,\"./stats\":61,\"react\":\"react\"}],58:[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: \"getLastPoster\",\n    value: function getLastPoster() {\n      if (this.props.category.last_poster_url) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          \"a\",\n          { href: this.props.category.last_poster_url,\n            className: \"item-title\" },\n          this.props.category.last_poster_name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"span\",\n            { className: \"item-title\" },\n            this.props.category.last_poster_name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: \"getThreadDetails\",\n    value: function getThreadDetails() {\n      /* jshint ignore:start */\n      return [_react2.default.createElement(\n        \"li\",\n        { className: \"thread-title\", key: \"title\" },\n        _react2.default.createElement(\n          \"a\",\n          { href: this.props.category.last_thread_url, className: \"item-title\" },\n          this.props.category.last_thread_title\n        )\n      ), _react2.default.createElement(\n        \"li\",\n        { className: \"poster-name\", key: \"poster\" },\n        this.getLastPoster()\n      ), _react2.default.createElement(\n        \"li\",\n        { className: \"thread-date\", key: \"date\" },\n        _react2.default.createElement(\n          \"abbr\",\n          { title: this.props.category.last_post_on.format('LL, LT') },\n          this.props.category.last_post_on.fromNow()\n        )\n      )];\n      /* jshint ignore:end */\n    }\n  }, {\n    key: \"getLastActivity\",\n    value: function getLastActivity() {\n      if (this.props.category.acl.can_browse) {\n        if (!this.props.category.acl.can_see_all_threads) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"li\",\n            { className: \"thread-message\" },\n            _react2.default.createElement(\n              \"span\",\n              { className: \"material-icon\" },\n              \"info_outline\"\n            ),\n            gettext(\"This category is private. You can see only your own threads within it.\")\n          );\n          /* jshint ignore:end */\n        } else if (this.props.category.last_thread_title) {\n            return this.getThreadDetails();\n          } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              \"li\",\n              { className: \"thread-message\" },\n              _react2.default.createElement(\n                \"span\",\n                { className: \"material-icon\" },\n                \"error_outline\"\n              ),\n              gettext(\"This category is empty.\")\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            \"li\",\n            { className: \"thread-message\" },\n            _react2.default.createElement(\n              \"span\",\n              { className: \"material-icon\" },\n              \"highlight_off\"\n            ),\n            gettext(\"This category is protected. You can't browse it's contents.\")\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"ul\",\n        { className: \"list-inline category-last-activity\" },\n        this.getLastActivity()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],59:[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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.category.is_read) {\n        return 'material-icon read-status item-read';\n      } else {\n        return 'material-icon read-status item-new';\n      }\n    }\n  }, {\n    key: 'getTitle',\n    value: function getTitle() {\n      if (this.props.category.is_closed) {\n        if (this.props.category.is_read) {\n          return gettext(\"This category has no new posts. (closed)\");\n        } else {\n          return gettext(\"This category has new posts. (closed)\");\n        }\n      } else {\n        if (this.props.category.is_read) {\n          return gettext(\"This category has no new posts.\");\n        } else {\n          return gettext(\"This category has new posts.\");\n        }\n      }\n    }\n  }, {\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.category.is_closed) {\n        if (this.props.category.is_read) {\n          return 'lock_outline';\n        } else {\n          return 'lock';\n        }\n      } else {\n        if (this.props.category.is_read) {\n          return 'chat_bubble_outline';\n        } else {\n          return 'chat_bubble';\n        }\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClassName(), title: this.getTitle() },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],60:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _category = require('./category');\n\nvar _category2 = _interopRequireDefault(_category);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\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\nvar dehydrate = function dehydrate(category) {\n  return Object.assign({}, category, {\n    last_post_on: category.last_post_on ? (0, _moment2.default)(category.last_post_on) : null,\n    subcategories: category.subcategories.map(dehydrate)\n  });\n};\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _this.setState({\n        categories: data.map(dehydrate)\n      });\n    };\n\n    _this.state = {\n      categories: _index2.default.get('CATEGORIES').map(dehydrate)\n    };\n\n    _this.startPolling(_index2.default.get('CATEGORIES_API'));\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'categories',\n        url: api,\n        frequency: 180 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'categories-list' },\n        this.state.categories.map(function (category) {\n          return _react2.default.createElement(_category2.default, { category: category, key: category.id });\n        })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick\n  };\n}\n\n},{\"../../index\":127,\"../../services/polls\":142,\"./category\":57,\"moment\":\"moment\",\"react\":\"react\"}],61:[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: \"getThreadsCount\",\n    value: function getThreadsCount() {\n      var string = ngettext(\"%(threads)s thread\", \"%(threads)s threads\", this.props.category.threads);\n\n      return interpolate(string, {\n        'threads': this.props.category.threads\n      }, true);\n    }\n  }, {\n    key: \"getPostsCount\",\n    value: function getPostsCount() {\n      var string = ngettext(\"%(posts)s post\", \"%(posts)s posts\", this.props.category.posts);\n\n      return interpolate(string, {\n        'posts': this.props.category.posts\n      }, true);\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"ul\",\n        { className: \"list-inline category-stats\" },\n        _react2.default.createElement(\n          \"li\",\n          { className: \"category-threads\" },\n          this.getThreadsCount()\n        ),\n        _react2.default.createElement(\n          \"li\",\n          { className: \"category-posts\" },\n          this.getPostsCount()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],62:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar BASE_URL = $('base').attr('href') + 'user-avatar';\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.cropAvatar = function () {\n      if (_this.state.isLoading) {\n        return false;\n      }\n\n      _this.setState({\n        'isLoading': true\n      });\n\n      var avatarType = _this.props.upload ? 'crop_tmp' : 'crop_org';\n      var cropit = $('.crop-form');\n\n      _ajax2.default.post(_this.props.user.api_url.avatar, {\n        'avatar': avatarType,\n        'crop': {\n          'offset': cropit.cropit('offset'),\n          'zoom': cropit.cropit('zoom')\n        }\n      }).then(function (data) {\n        _this.props.onComplete(data.avatar_hash, data.options);\n        _snackbar2.default.success(data.detail);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getAvatarSize',\n    value: function getAvatarSize() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.size;\n      } else {\n        return this.props.options.crop_org.size;\n      }\n    }\n  }, {\n    key: 'getAvatarSecret',\n    value: function getAvatarSecret() {\n      if (this.props.upload) {\n        return this.props.options.crop_tmp.secret;\n      } else {\n        return this.props.options.crop_org.secret;\n      }\n    }\n  }, {\n    key: 'getAvatarHash',\n    value: function getAvatarHash() {\n      return this.props.upload || this.props.user.avatar_hash;\n    }\n  }, {\n    key: 'getImagePath',\n    value: function getImagePath() {\n      return [BASE_URL, this.getAvatarSecret() + ':' + this.getAvatarHash(), this.props.user.id + '.png'].join('/');\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      var cropit = $('.crop-form');\n      cropit.width(this.getAvatarSize());\n\n      cropit.cropit({\n        'width': this.getAvatarSize(),\n        'height': this.getAvatarSize(),\n        'imageState': {\n          'src': this.getImagePath()\n        },\n        onImageLoaded: function onImageLoaded() {\n          if (_this2.props.upload) {\n            // center uploaded image\n            var zoomLevel = cropit.cropit('zoom');\n            var imageSize = cropit.cropit('imageSize');\n\n            // is it wider than taller?\n            if (imageSize.width > imageSize.height) {\n              var displayedWidth = imageSize.width * zoomLevel;\n              var offsetX = (displayedWidth - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': offsetX,\n                'y': 0\n              });\n            } else if (imageSize.width < imageSize.height) {\n              var displayedHeight = imageSize.height * zoomLevel;\n              var offsetY = (displayedHeight - _this2.getAvatarSize()) / -2;\n\n              cropit.cropit('offset', {\n                'x': 0,\n                'y': offsetY\n              });\n            }\n          } else {\n            // use preserved crop\n            var crop = _this2.props.options.crop_org.crop;\n            if (crop) {\n              cropit.cropit('zoom', crop.zoom);\n              cropit.cropit('offset', {\n                'x': crop.x,\n                'y': crop.y\n              });\n            }\n          }\n        }\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      $('.crop-form').cropit('disable');\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-crop' },\n          _react2.default.createElement(\n            'div',\n            { className: 'crop-form' },\n            _react2.default.createElement('div', { className: 'cropit-image-preview' }),\n            _react2.default.createElement('input', { type: 'range', className: 'cropit-image-zoom-input' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.cropAvatar,\n                loading: this.state.isLoading,\n                className: 'btn-primary btn-block' },\n              this.props.upload ? gettext(\"Set avatar\") : gettext(\"Crop image\")\n            ),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":134,\"../../services/snackbar\":143,\"../avatar\":54,\"../button\":56,\"react\":\"react\"}],63:[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.Gallery = exports.GalleryItem = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar GalleryItem = exports.GalleryItem = function (_React$Component) {\n  _inherits(GalleryItem, _React$Component);\n\n  function GalleryItem() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, GalleryItem);\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(GalleryItem)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.select = function () {\n      _this.props.select(_this.props.image);\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(GalleryItem, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      if (this.props.selection === this.props.image) {\n        if (this.props.disabled) {\n          return 'btn btn-avatar btn-disabled avatar-selected';\n        } else {\n          return 'btn btn-avatar avatar-selected';\n        }\n      } else if (this.props.disabled) {\n        return 'btn btn-avatar btn-disabled';\n      } else {\n        return 'btn btn-avatar';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button',\n          className: this.getClassName(),\n          disabled: this.props.disabled,\n          onClick: this.select },\n        _react2.default.createElement('img', { src: _index2.default.get('MEDIA_URL') + this.props.image })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GalleryItem;\n}(_react2.default.Component);\n\nvar Gallery = exports.Gallery = function (_React$Component2) {\n  _inherits(Gallery, _React$Component2);\n\n  function Gallery() {\n    _classCallCheck(this, Gallery);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Gallery).apply(this, arguments));\n  }\n\n  _createClass(Gallery, [{\n    key: 'render',\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'avatars-gallery' },\n        _react2.default.createElement(\n          'h3',\n          null,\n          this.props.name\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'avatars-gallery-images' },\n          (0, _batch2.default)(this.props.images, 4, null).map(function (row, i) {\n            return _react2.default.createElement(\n              'div',\n              { className: 'row', key: i },\n              row.map(function (item, i) {\n                return _react2.default.createElement(\n                  'div',\n                  { className: 'col-xs-3', key: i },\n                  item ? _react2.default.createElement(GalleryItem, { image: item,\n                    disabled: _this3.props.disabled,\n                    select: _this3.props.select,\n                    selection: _this3.props.selection }) : _react2.default.createElement('div', { className: 'blank-avatar' })\n                );\n              })\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return Gallery;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.select = function (image) {\n      _this4.setState({\n        selection: image\n      });\n    };\n\n    _this4.save = function () {\n      if (_this4.state.isLoading) {\n        return false;\n      }\n\n      _this4.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(_this4.props.user.api_url.avatar, {\n        avatar: 'galleries',\n        image: _this4.state.selection\n      }).then(function (response) {\n        _this4.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this4.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this4.setState({\n            'isLoading': false\n          });\n        } else {\n          _this4.props.showError(rejection);\n        }\n      });\n    };\n\n    _this4.state = {\n      'selection': null,\n      'isLoading': false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this5 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body modal-avatar-gallery' },\n          this.props.options.galleries.map(function (item, i) {\n            return _react2.default.createElement(Gallery, { name: item.name,\n              images: item.images,\n              selection: _this5.state.selection,\n              disabled: _this5.state.isLoading,\n              select: _this5.select,\n              key: i });\n          })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-6 col-md-offset-3' },\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.save,\n                  loading: this.state.isLoading,\n                  disabled: !this.state.selection,\n                  className: 'btn-primary btn-block' },\n                this.state.selection ? gettext(\"Save choice\") : gettext(\"Select avatar\")\n              ),\n              _react2.default.createElement(\n                _button2.default,\n                { onClick: this.props.showIndex,\n                  disabled: this.state.isLoading,\n                  className: 'btn-default btn-block' },\n                gettext(\"Cancel\")\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},{\"../../index\":127,\"../../services/ajax\":134,\"../../services/snackbar\":143,\"../../utils/batch\":147,\"../button\":56,\"react\":\"react\"}],64:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _loader = require('../loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.setGravatar = function () {\n      _this.callApi('gravatar');\n    };\n\n    _this.setGenerated = function () {\n      _this.callApi('generated');\n    };\n\n    _this.state = {\n      'isLoading': false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'callApi',\n    value: function callApi(avatarType) {\n      var _this2 = this;\n\n      if (this.state.isLoading) {\n        return false;\n      }\n\n      this.setState({\n        'isLoading': true\n      });\n\n      _ajax2.default.post(this.props.user.api_url.avatar, {\n        avatar: avatarType\n      }).then(function (response) {\n        _this2.setState({\n          'isLoading': false\n        });\n\n        _snackbar2.default.success(response.detail);\n        _this2.props.onComplete(response.avatar_hash, response.options);\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this2.setState({\n            'isLoading': false\n          });\n        } else {\n          _this2.props.showError(rejection);\n        }\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getGravatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getGravatarButton() {\n      if (this.props.options.gravatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.setGravatar,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gravatar' },\n          gettext(\"Download my Gravatar\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getCropButton',\n    value: function getCropButton() {\n      if (this.props.options.crop_org) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showCrop,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-crop' },\n          gettext(\"Re-crop uploaded image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      if (this.props.options.upload) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showUpload,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-upload' },\n          gettext(\"Upload new image\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getGalleryButton',\n    value: function getGalleryButton() {\n      if (this.props.options.galleries) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _button2.default,\n          { onClick: this.props.showGallery,\n            disabled: this.state.isLoading,\n            className: 'btn-default btn-block btn-avatar-gallery' },\n          gettext(\"Pick avatar from gallery\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getAvatarPreview',\n    value: function getAvatarPreview() {\n      /* jshint ignore:start */\n      var userPeview = {\n        id: this.props.user.id,\n        avatar_hash: this.props.options.avatar_hash\n      };\n      /* jshint ignore:end */\n\n      if (this.state.isLoading) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'avatar-preview preview-loading' },\n          _react2.default.createElement(_avatar2.default, { user: userPeview, size: '200' }),\n          _react2.default.createElement(_loader2.default, null)\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            { className: 'avatar-preview' },\n            _react2.default.createElement(_avatar2.default, { user: userPeview, size: '200' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-index' },\n        _react2.default.createElement(\n          'div',\n          { className: 'row' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-5' },\n            this.getAvatarPreview()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-7' },\n            this.getGravatarButton(),\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.setGenerated,\n                disabled: this.state.isLoading,\n                className: 'btn-default btn-block btn-avatar-generate' },\n              gettext(\"Generate my individual avatar\")\n            ),\n            this.getCropButton(),\n            this.getUploadButton(),\n            this.getGalleryButton()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":134,\"../../services/snackbar\":143,\"../avatar\":54,\"../button\":56,\"../loader\":70,\"react\":\"react\"}],65:[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.ChangeAvatarError = undefined;\nexports.select = select;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('./index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _upload = require('./upload');\n\nvar _upload2 = _interopRequireDefault(_upload);\n\nvar _gallery = require('./gallery');\n\nvar _gallery2 = _interopRequireDefault(_gallery);\n\nvar _modalLoader = require('../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar ChangeAvatarError = exports.ChangeAvatarError = function (_React$Component) {\n  _inherits(ChangeAvatarError, _React$Component);\n\n  function ChangeAvatarError() {\n    _classCallCheck(this, ChangeAvatarError);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ChangeAvatarError).apply(this, arguments));\n  }\n\n  _createClass(ChangeAvatarError, [{\n    key: 'getErrorReason',\n    value: function getErrorReason() {\n      if (this.props.reason) {\n        /* jshint ignore:start */\n        return _react2.default.createElement('p', { dangerouslySetInnerHTML: { __html: this.props.reason } });\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-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'remove_circle_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getErrorReason()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ChangeAvatarError;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this2, _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 = (_this2 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this2), _this2.showError = function (error) {\n      _this2.setState({\n        error: error\n      });\n    }, _this2.showIndex = function () {\n      _this2.setState({\n        'component': _index2.default\n      });\n    }, _this2.showUpload = function () {\n      _this2.setState({\n        'component': _upload2.default\n      });\n    }, _this2.showCrop = function () {\n      _this2.setState({\n        'component': _crop2.default\n      });\n    }, _this2.showGallery = function () {\n      _this2.setState({\n        'component': _gallery2.default\n      });\n    }, _this2.completeFlow = function (avatarHash, options) {\n      _store2.default.dispatch((0, _users.updateAvatar)(_this2.props.user, avatarHash));\n\n      _this2.setState({\n        'component': _index2.default,\n        options: options\n      });\n    }, _temp), _possibleConstructorReturn(_this2, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this3 = this;\n\n      _ajax2.default.get(this.props.user.api_url.avatar).then(function (options) {\n        _this3.setState({\n          'component': _index2.default,\n          'options': options,\n          'error': null\n        });\n      }, function (rejection) {\n        _this3.showError(rejection);\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getBody',\n\n    /* jshint ignore:end */\n\n    value: function getBody() {\n      if (this.state) {\n        if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(ChangeAvatarError, { message: this.state.error.detail,\n            reason: this.state.error.reason });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(this.state.component, { options: this.state.options,\n              user: this.props.user,\n              onComplete: this.completeFlow,\n              showError: this.showError,\n              showIndex: this.showIndex,\n              showCrop: this.showCrop,\n              showUpload: this.showUpload,\n              showGallery: this.showGallery });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state && this.state.error) {\n        return \"modal-dialog modal-message modal-change-avatar\";\n      } else {\n        return \"modal-dialog modal-change-avatar\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change your avatar\")\n            )\n          ),\n          this.getBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(state) {\n  return {\n    'user': state.auth.user\n  };\n}\n\n},{\"../../reducers/users\":133,\"../../services/ajax\":134,\"../../services/store\":144,\"../modal-loader\":71,\"./crop\":62,\"./gallery\":63,\"./index\":64,\"./upload\":66,\"react\":\"react\"}],66:[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 _crop = require('./crop');\n\nvar _crop2 = _interopRequireDefault(_crop);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _fileSize = require('../../utils/file-size');\n\nvar _fileSize2 = _interopRequireDefault(_fileSize);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.pickFile = function () {\n      document.getElementById('avatar-hidden-upload').click();\n    };\n\n    _this.uploadFile = function () {\n      var image = document.getElementById('avatar-hidden-upload').files[0];\n\n      var validationError = _this.validateFile(image);\n      if (validationError) {\n        _snackbar2.default.error(validationError);\n        return;\n      }\n\n      _this.setState({\n        image: image,\n        'preview': URL.createObjectURL(image),\n        'progress': 0\n      });\n\n      var data = new FormData();\n      data.append('avatar', 'upload');\n      data.append('image', image);\n\n      _ajax2.default.upload(_this.props.user.api_url.avatar, data, function (progress) {\n        _this.setState({\n          progress: progress\n        });\n      }).then(function (data) {\n        _this.setState({\n          'options': data.options,\n          'uploaded': data.detail\n        });\n        _snackbar2.default.info(gettext(\"Your image has been uploaded and you may now crop it.\"));\n      }, function (rejection) {\n        if (rejection.status === 400) {\n          _snackbar2.default.error(rejection.detail);\n          _this.setState({\n            'isLoading': false,\n            'image': null,\n            'progress': 0\n          });\n        } else {\n          _this.props.showError(rejection);\n        }\n      });\n    };\n\n    _this.state = {\n      'image': null,\n      'preview': null,\n      'progress': 0,\n      'uploaded': null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'validateFile',\n    value: function validateFile(image) {\n      if (image.size > this.props.options.upload.limit) {\n        return interpolate(gettext(\"Selected file is too big. (%(filesize)s)\"), {\n          'filesize': (0, _fileSize2.default)(image.size)\n        }, true);\n      }\n\n      var invalidTypeMsg = gettext(\"Selected file type is not supported.\");\n      if (this.props.options.upload.allowed_mime_types.indexOf(image.type) === -1) {\n        return invalidTypeMsg;\n      }\n\n      var extensionFound = false;\n      var loweredFilename = image.name.toLowerCase();\n      this.props.options.upload.allowed_extensions.map(function (extension) {\n        if (loweredFilename.substr(extension.length * -1) === extension) {\n          extensionFound = true;\n        }\n      });\n\n      if (!extensionFound) {\n        return invalidTypeMsg;\n      }\n\n      return false;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getUploadRequirements',\n\n    /* jshint ignore:end */\n\n    value: function getUploadRequirements(options) {\n      var extensions = options.allowed_extensions.map(function (extension) {\n        return extension.substr(1);\n      });\n\n      return interpolate(gettext(\"%(files)s files smaller than %(limit)s\"), {\n        'files': extensions.join(', '),\n        'limit': (0, _fileSize2.default)(options.limit)\n      }, true);\n    }\n  }, {\n    key: 'getUploadButton',\n    value: function getUploadButton() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          _button2.default,\n          { className: 'btn-pick-file',\n            onClick: this.pickFile },\n          _react2.default.createElement(\n            'div',\n            { className: 'material-icon' },\n            'input'\n          ),\n          gettext(\"Select file\")\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-muted' },\n          this.getUploadRequirements(this.props.options.upload)\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUploadProgressLabel',\n    value: function getUploadProgressLabel() {\n      return interpolate(gettext(\"%(progress)s % complete\"), {\n        'progress': this.state.progress\n      }, true);\n    }\n  }, {\n    key: 'getUploadProgress',\n    value: function getUploadProgress() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body modal-avatar-upload' },\n        _react2.default.createElement(\n          'div',\n          { className: 'upload-progress' },\n          _react2.default.createElement('img', { src: this.state.preview }),\n          _react2.default.createElement(\n            'div',\n            { className: 'progress' },\n            _react2.default.createElement(\n              'div',\n              { className: 'progress-bar', role: 'progressbar',\n                'aria-valuenow': '{this.state.progress}',\n                'aria-valuemin': '0', 'aria-valuemax': '100',\n                style: { width: this.state.progress + '%' } },\n              _react2.default.createElement(\n                'span',\n                { className: 'sr-only' },\n                this.getUploadProgressLabel()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderUpload',\n    value: function renderUpload() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement('input', { type: 'file',\n          id: 'avatar-hidden-upload',\n          className: 'hidden-file-upload',\n          onChange: this.uploadFile }),\n        this.state.image ? this.getUploadProgress() : this.getUploadButton(),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'div',\n            { className: 'col-md-6 col-md-offset-3' },\n            _react2.default.createElement(\n              _button2.default,\n              { onClick: this.props.showIndex,\n                disabled: !!this.state.image,\n                className: 'btn-default btn-block' },\n              gettext(\"Cancel\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderCrop',\n    value: function renderCrop() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(_crop2.default, { options: this.state.options,\n        user: this.props.user,\n        upload: this.state.uploaded,\n        onComplete: this.props.onComplete,\n        showError: this.props.showError,\n        showIndex: this.props.showIndex });\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return this.state.uploaded ? this.renderCrop() : this.renderUpload();\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":134,\"../../services/snackbar\":143,\"../../utils/file-size\":148,\"../button\":56,\"./crop\":62,\"react\":\"react\"}],67:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label + ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],68:[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\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return 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 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 = _defineProperty({}, 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      if (!this.state.validators) {\n        return errors;\n      }\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n      if (!this.state.validators) {\n        return errors;\n      }\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      _snackbar2.default.apiError(rejection);\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/snackbar\":143,\"../utils/validators\":154,\"react\":\"react\"}],69:[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: 'isActive',\n    value: function isActive() {\n      if (this.props.path) {\n        return document.location.pathname.indexOf(this.props.path) === 0;\n      } else {\n        return false;\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.isActive()) {\n        return (this.props.className || '') + ' ' + (this.props.activeClassName || 'active');\n      } else {\n        return this.props.className || '';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'li',\n        { className: this.getClassName() },\n        this.props.children\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],70:[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: this.props.className || \"loader\" },\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\"}],71:[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 _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-body modal-loader' },\n        _react2.default.createElement(_loader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":70,\"react\":\"react\"}],72:[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 _panelMessage = require('./panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\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\nvar _class = function (_PanelMessage) {\n  _inherits(_class, _PanelMessage);\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: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            this.props.icon || 'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.props.message\n          ),\n          this.getHelpText()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_panelMessage2.default);\n\nexports.default = _class;\n\n},{\"./panel-message\":84,\"react\":\"react\"}],73:[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 _panelLoader = require('../../panel-loader');\n\nvar _panelLoader2 = _interopRequireDefault(_panelLoader);\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 _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: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(_panelLoader2.default, null)\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../panel-loader\":83,\"react\":\"react\"}],74:[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 _panelMessage = require('../../panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\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 _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: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.options.next_on) {\n        return interpolate(gettext(\"You will be able to change your username %(next_change)s.\"), { 'next_change': this.props.options.next_on.fromNow() }, true);\n      } else {\n        return gettext(\"You have used up available name changes.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'panel panel-default panel-form' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel-heading' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'panel-title' },\n            gettext(\"Change username\")\n          )\n        ),\n        _react2.default.createElement(_panelMessage2.default, { message: gettext(\"You can't change your username at the moment.\"),\n          helpText: this.getHelpText() })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../panel-message\":84,\"react\":\"react\"}],75:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      username: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength({\n          username_length_min: props.options.length_min\n        }), validators.usernameMaxLength({\n          username_length_max: props.options.length_max\n        })]\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getHelpText',\n    value: function getHelpText() {\n      var phrases = [];\n\n      if (this.props.options.changes_left > 0) {\n        var message = ngettext(\"You can change your username %(changes_left)s more time.\", \"You can change your username %(changes_left)s more times.\", this.props.options.changes_left);\n\n        phrases.push(interpolate(message, {\n          'changes_left': this.props.options.changes_left\n        }, true));\n      }\n\n      if (this.props.user.acl.name_changes_expire > 0) {\n        var message = ngettext(\"Used changes redeem after %(name_changes_expire)s day.\", \"Used changes redeem after %(name_changes_expire)s days.\", this.props.user.acl.name_changes_expire);\n\n        phrases.push(interpolate(message, {\n          'name_changes_expire': this.props.user.acl.name_changes_expire\n        }, true));\n      }\n\n      return phrases.length ? phrases.join(' ') : null;\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      if (errors.username) {\n        _snackbar2.default.error(errors.username[0]);\n        return false;\n      }if (this.state.username.trim() === this.props.user.username) {\n        _snackbar2.default.info(gettext(\"Your new username is same as current one.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.username, {\n        'username': this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      this.setState({\n        'username': ''\n      });\n\n      this.props.complete(success.username, success.slug, success.options);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      _snackbar2.default.apiError(rejection);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New username\"), 'for': 'id_username',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                helpText: this.getHelpText() },\n              _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('username'),\n                value: this.state.username })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change username\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../services/ajax\":134,\"../../../services/snackbar\":143,\"../../../utils/validators\":154,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"react\":\"react\"}],76:[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\nvar _formLoading = require('./form-loading');\n\nvar _formLoading2 = _interopRequireDefault(_formLoading);\n\nvar _formLocked = require('./form-locked');\n\nvar _formLocked2 = _interopRequireDefault(_formLocked);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _usernameHistory = require('../../username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory3 = require('../../../reducers/username-history');\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.onComplete = function (username, slug, options) {\n      _this.setState({\n        options: options\n      });\n\n      _store2.default.dispatch((0, _usernameHistory3.addNameChange)({ username: username, slug: slug }, _this.props.user, _this.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(_this.props.user, username, slug));\n\n      _snackbar2.default.success(gettext(\"Your username has been changed successfully.\"));\n    };\n\n    _this.state = {\n      isLoaded: false,\n      options: null\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _pageTitle2.default.set({\n        title: gettext(\"Change username\"),\n        parent: gettext(\"Change your options\")\n      });\n\n      Promise.all([_ajax2.default.get(this.props.user.api_url.username), _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), { user: this.props.user.id })]).then(function (data) {\n        _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data[1].results));\n\n        _this2.setState({\n          isLoaded: true,\n          options: {\n            changes_left: data[0].changes_left,\n            length_min: data[0].length_min,\n            length_max: data[0].length_max,\n            next_on: data[0].next_on ? (0, _moment2.default)(data[0].next_on) : null\n          }\n        });\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getChangeForm',\n\n    /* jshint ignore:end */\n\n    value: function getChangeForm() {\n      if (this.state.isLoaded) {\n        if (this.state.options.changes_left > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_form2.default, { user: this.props.user,\n            options: this.state.options,\n            complete: this.onComplete });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(_formLocked2.default, { options: this.state.options });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_formLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        this.getChangeForm(),\n        _react2.default.createElement(_usernameHistory2.default, { isLoaded: this.state.isLoaded,\n          changes: this.props['username-history'] })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../reducers/username-history\":132,\"../../../reducers/users\":133,\"../../../services/ajax\":134,\"../../../services/page-title\":141,\"../../../services/snackbar\":143,\"../../../services/store\":144,\"../../username-history\":111,\"./form\":75,\"./form-loading\":73,\"./form-locked\":74,\"moment\":\"moment\",\"react\":\"react\"}],77:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _select = require('../select');\n\nvar _select2 = _interopRequireDefault(_select);\n\nvar _yesNoSwitch = require('../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _auth = require('../../reducers/auth');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\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\n      'is_hiding_presence': props.user.is_hiding_presence,\n      'limits_private_thread_invites_to': props.user.limits_private_thread_invites_to,\n      'subscribe_to_started_threads': props.user.subscribe_to_started_threads,\n      'subscribe_to_replied_threads': props.user.subscribe_to_replied_threads,\n\n      'errors': {}\n    };\n\n    _this.privateThreadInvitesChoices = [{\n      'value': 0,\n      'icon': 'help_outline',\n      'label': gettext('Everybody')\n    }, {\n      'value': 1,\n      'icon': 'done_all',\n      'label': gettext('Users I follow')\n    }, {\n      'value': 2,\n      'icon': 'highlight_off',\n      'label': gettext('Nobody')\n    }];\n\n    _this.subscribeToChoices = [{\n      'value': 0,\n      'icon': 'bookmark_border',\n      'label': gettext('No')\n    }, {\n      'value': 1,\n      'icon': 'bookmark',\n      'label': gettext('Bookmark')\n    }, {\n      'value': 2,\n      'icon': 'mail',\n      'label': gettext('Bookmark with e-mail notification')\n    }];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.options, {\n        is_hiding_presence: this.state.is_hiding_presence,\n        limits_private_thread_invites_to: this.state.limits_private_thread_invites_to,\n        subscribe_to_started_threads: this.state.subscribe_to_started_threads,\n        subscribe_to_replied_threads: this.state.subscribe_to_replied_threads\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _store2.default.dispatch((0, _auth.patchUser)({\n        is_hiding_presence: this.state.is_hiding_presence,\n        limits_private_thread_invites_to: this.state.limits_private_thread_invites_to,\n        subscribe_to_started_threads: this.state.subscribe_to_started_threads,\n        subscribe_to_replied_threads: this.state.subscribe_to_replied_threads\n      }));\n      _snackbar2.default.success(gettext(\"Your forum options have been changed.\"));\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        _snackbar2.default.error(gettext(\"Please reload page and try again.\"));\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Forum options\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change forum options\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Privacy settings\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Hide my presence\"),\n                  helpText: gettext(\"If you hide your presence, only members with permission to see hidden users will see when you are online.\"),\n                  'for': 'id_is_hiding_presence',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_hiding_presence',\n                  disabled: this.state.isLoading,\n                  iconOn: 'visibility_off',\n                  iconOff: 'visibility',\n                  labelOn: gettext(\"Hide my presence from other users\"),\n                  labelOff: gettext(\"Show my presence to other users\"),\n                  onChange: this.bindInput('is_hiding_presence'),\n                  value: this.state.is_hiding_presence })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Private thread invitations\"),\n                  'for': 'id_limits_private_thread_invites_to',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_limits_private_thread_invites_to',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('limits_private_thread_invites_to'),\n                  value: this.state.limits_private_thread_invites_to,\n                  choices: this.privateThreadInvitesChoices })\n              )\n            ),\n            _react2.default.createElement(\n              'fieldset',\n              null,\n              _react2.default.createElement(\n                'legend',\n                null,\n                gettext(\"Automatic subscriptions\")\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I start\"),\n                  'for': 'id_subscribe_to_started_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_started_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_started_threads'),\n                  value: this.state.subscribe_to_started_threads,\n                  choices: this.subscribeToChoices })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Threads I reply to\"),\n                  'for': 'id_subscribe_to_replied_threads',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n                _react2.default.createElement(_select2.default, { id: 'id_subscribe_to_replied_threads',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('subscribe_to_replied_threads'),\n                  value: this.state.subscribe_to_replied_threads,\n                  choices: this.subscribeToChoices })\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Save changes\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../reducers/auth\":128,\"../../services/ajax\":134,\"../../services/page-title\":141,\"../../services/snackbar\":143,\"../../services/store\":144,\"../button\":56,\"../form\":68,\"../form-group\":67,\"../select\":104,\"../yes-no-switch\":126,\"react\":\"react\"}],78:[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.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + option.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: option.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              option.icon\n            ),\n            option.name\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.props.options.map(function (option) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + option.component + '/',\n              key: option.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + option.component + '/',\n                onClick: _this4.props.hideNav },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                option.icon\n              ),\n              option.name\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":127,\"../li\":69,\"react\":\"react\",\"react-router\":\"react-router\"}],79:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _forumOptions = require('./forum-options');\n\nvar _forumOptions2 = _interopRequireDefault(_forumOptions);\n\nvar _root = require('./change-username/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _root3 = require('./sign-in-credentials/root');\n\nvar _root4 = _interopRequireDefault(_root3);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\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-options' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Change your options\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { options: _index2.default.get('USER_OPTIONS'),\n            baseUrl: _index2.default.get('USERCP_URL'),\n            hideNav: this.hideNav })\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(_navs.SideNav, { options: _index2.default.get('USER_OPTIONS'),\n                baseUrl: _index2.default.get('USERCP_URL') })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'username-history': store['username-history']\n  };\n}\n\nfunction paths() {\n  return [{\n    path: _index2.default.get('USERCP_URL') + 'forum-options/',\n    component: (0, _reactRedux.connect)(select)(_forumOptions2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'change-username/',\n    component: (0, _reactRedux.connect)(select)(_root2.default)\n  }, {\n    path: _index2.default.get('USERCP_URL') + 'sign-in-credentials/',\n    component: (0, _reactRedux.connect)(select)(_root4.default)\n  }];\n}\n\n},{\"../../index\":127,\"./change-username/root\":76,\"./forum-options\":77,\"./navs\":78,\"./sign-in-credentials/root\":82,\"react\":\"react\",\"react-redux\":\"react-redux\"}],80:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      new_email: '',\n      password: '',\n\n      validators: {\n        new_email: [validators.email()],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_email.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_email) {\n        _snackbar2.default.error(errors.new_email[0]);\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_email, {\n        new_email: this.state.new_email,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_email: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_email) {\n          _snackbar2.default.error(rejection.new_email);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change e-mail address\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New e-mail\"), 'for': 'id_new_email',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'text', id: 'id_new_email', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_email'),\n                value: this.state.new_email })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change e-mail\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../services/ajax\":134,\"../../../services/snackbar\":143,\"../../../utils/validators\":154,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"react\":\"react\"}],81:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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      new_password: '',\n      repeat_password: '',\n      password: '',\n\n      validators: {\n        new_password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        repeat_password: [],\n        password: []\n      },\n\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      var errors = this.validate();\n      var lengths = [this.state.new_password.trim().length, this.state.repeat_password.trim().length, this.state.password.trim().length];\n\n      if (lengths.indexOf(0) !== -1) {\n        _snackbar2.default.error(gettext(\"Fill out all fields.\"));\n        return false;\n      }\n\n      if (errors.new_password) {\n        _snackbar2.default.error(errors.new_password[0]);\n        return false;\n      }\n\n      if (this.state.new_password.trim() !== this.state.repeat_password.trim()) {\n        _snackbar2.default.error(gettext(\"New passwords are different.\"));\n        return false;\n      }\n\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.user.api_url.change_password, {\n        new_password: this.state.new_password,\n        password: this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(response) {\n      this.setState({\n        new_password: '',\n        repeat_password: '',\n        password: ''\n      });\n\n      _snackbar2.default.success(response.detail);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.new_password) {\n          _snackbar2.default.error(rejection.new_password);\n        } else {\n          _snackbar2.default.error(rejection.password);\n        }\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n        _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default panel-form' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Change password\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-body' },\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"New password\"), 'for': 'id_new_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_new_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('new_password'),\n                value: this.state.new_password })\n            ),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Repeat password\"), 'for': 'id_repeat_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_repeat_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('repeat_password'),\n                value: this.state.repeat_password })\n            ),\n            _react2.default.createElement('hr', null),\n            _react2.default.createElement(\n              _formGroup2.default,\n              { label: gettext(\"Your current password\"), 'for': 'id_password',\n                labelClass: 'col-sm-4', controlClass: 'col-sm-8' },\n              _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-footer' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-sm-8 col-sm-offset-4' },\n                _react2.default.createElement(\n                  _button2.default,\n                  { className: 'btn-primary', loading: this.state.isLoading },\n                  gettext(\"Change password\")\n                )\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\":127,\"../../../services/ajax\":134,\"../../../services/snackbar\":143,\"../../../utils/validators\":154,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"react\":\"react\"}],82:[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 _changeEmail = require('./change-email');\n\nvar _changeEmail2 = _interopRequireDefault(_changeEmail);\n\nvar _changePassword = require('./change-password');\n\nvar _changePassword2 = _interopRequireDefault(_changePassword);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _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: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Change email or password\"),\n        parent: gettext(\"Change your options\")\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        null,\n        _react2.default.createElement(_changeEmail2.default, { user: this.props.user }),\n        _react2.default.createElement(_changePassword2.default, { user: this.props.user }),\n        _react2.default.createElement(\n          'p',\n          { className: 'message-line' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'warning'\n          ),\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('FORGOTTEN_PASSWORD_URL') },\n            gettext(\"Change forgotten password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../services/page-title\":141,\"./change-email\":80,\"./change-password\":81,\"react\":\"react\"}],83:[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 _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: 'panel-body panel-body-loading' },\n        _react2.default.createElement(_loader2.default, { className: 'loader loader-spaced' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"./loader\":70,\"react\":\"react\"}],84:[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: \"getHelpText\",\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          \"p\",\n          { className: \"help-block\" },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"panel-body panel-message-body\" },\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-icon\" },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.props.icon || 'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          \"div\",\n          { className: \"message-body\" },\n          _react2.default.createElement(\n            \"p\",\n            { className: \"lead\" },\n            this.props.message\n          ),\n          this.getHelpText()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],85:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LABELS = exports.STYLES = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar STYLES = exports.STYLES = ['progress-bar-danger', 'progress-bar-warning', 'progress-bar-warning', 'progress-bar-primary', 'progress-bar-success'];\n\nvar LABELS = exports.LABELS = [gettext(\"Entered password is very weak.\"), gettext(\"Entered password is weak.\"), gettext(\"Entered password is average.\"), gettext(\"Entered password is strong.\"), gettext(\"Entered password is very strong.\")];\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this._score = 0;\n    _this._password = null;\n    _this._inputs = [];\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getScore',\n    value: function getScore(password, inputs) {\n      var _this2 = this;\n\n      var cacheStale = false;\n\n      if (password.trim() !== this._password) {\n        cacheStale = true;\n      }\n\n      if (inputs.length !== this._inputs.length) {\n        cacheStale = true;\n      } else {\n        inputs.map(function (value, i) {\n          if (value.trim() !== _this2._inputs[i]) {\n            cacheStale = true;\n          }\n        });\n      }\n\n      if (cacheStale) {\n        this._score = _zxcvbn2.default.scorePassword(password, inputs);\n        this._password = password.trim();\n        this._inputs = inputs.map(function (value) {\n          return value.trim();\n        });\n      }\n\n      return this._score;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      var score = this.getScore(this.props.password, this.props.inputs);\n\n      return _react2.default.createElement(\n        'div',\n        { className: 'help-block password-strength' },\n        _react2.default.createElement(\n          'div',\n          { className: 'progress' },\n          _react2.default.createElement(\n            'div',\n            { className: \"progress-bar \" + STYLES[score],\n              style: { width: 20 + 20 * score + '%' },\n              role: 'progress-bar',\n              'aria-valuenow': score,\n              'aria-valuemin': '0',\n              'aria-valuemax': '4' },\n            _react2.default.createElement(\n              'span',\n              { className: 'sr-only' },\n              LABELS[score]\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'p',\n          { className: 'text-small' },\n          LABELS[score]\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/zxcvbn\":145,\"react\":\"react\"}],86:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _followButton = require('./follow-button');\n\nvar _followButton2 = _interopRequireDefault(_followButton);\n\nvar _nav = require('./moderation/nav');\n\nvar _nav2 = _interopRequireDefault(_nav);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\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: 'getUserStatus',\n    value: function getUserStatus() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'li',\n        { className: 'user-status-display' },\n        _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.profile, status: this.props.profile.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.profile,\n            status: this.props.profile.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.profile,\n            status: this.props.profile.status,\n            className: 'status-label' })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getUserRank',\n    value: function getUserRank() {\n      if (this.props.profile.rank.is_tab) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-rank' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.profile.rank.absolute_url, className: 'item-title' },\n            this.props.profile.rank.name\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'li',\n            { className: 'user-rank' },\n            _react2.default.createElement(\n              'span',\n              { className: 'item-title' },\n              this.props.profile.rank.name\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.profile.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-title' },\n          this.props.profile.title\n        );\n        /* jshint ignore:end */\n      } else if (this.props.profile.rank.title) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'li',\n            { className: 'user-title' },\n            this.props.profile.rank.title\n          );\n          /* jshint ignore:end */\n        } else {\n            return null;\n          }\n    }\n  }, {\n    key: 'getJoinedOn',\n    value: function getJoinedOn() {\n      /* jshint ignore:start */\n      var title = interpolate(gettext(\"Joined on %(joined_on)s\"), {\n        'joined_on': this.props.profile.joined_on.format('LL, LT')\n      }, true);\n\n      var age = interpolate(gettext(\"Joined %(joined_on)s\"), {\n        'joined_on': this.props.profile.joined_on.fromNow()\n      }, true);\n\n      return _react2.default.createElement(\n        'li',\n        { className: 'user-joined-on' },\n        _react2.default.createElement(\n          'abbr',\n          { title: title },\n          age\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getEmail',\n    value: function getEmail() {\n      if (this.props.profile.email) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'user-email' },\n          _react2.default.createElement(\n            'a',\n            { href: 'mailto:' + this.props.profile.email, className: 'item-title' },\n            this.props.profile.email\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFollowButton',\n    value: function getFollowButton() {\n      if (this.props.profile.acl.can_follow) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_followButton2.default, { className: 'btn btn-aligned hidden-xs hidden-sm',\n          profile: this.props.profile });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getModerationButton',\n    value: function getModerationButton() {\n      if (this.props.profile.acl.can_moderate) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'btn-group btn-aligned hidden-xs hidden-sm' },\n          _react2.default.createElement(\n            'button',\n            { className: 'btn btn-default btn-moderate dropdown-toggle',\n              type: 'button',\n              'data-toggle': 'dropdown',\n              'aria-haspopup': 'true',\n              'aria-expanded': 'false' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'tonality'\n            ),\n            gettext(\"Moderation\")\n          ),\n          _react2.default.createElement(_nav2.default, { profile: this.props.profile })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page-header' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9 col-md-offset-3' },\n              _react2.default.createElement(\n                'h1',\n                { className: 'pull-left' },\n                _react2.default.createElement(_avatar2.default, { user: this.props.profile, size: '100' }),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-name' },\n                  this.props.profile.username\n                )\n              ),\n              this.getFollowButton(),\n              this.getModerationButton(),\n              _react2.default.createElement(\n                'button',\n                { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                  type: 'button',\n                  onClick: this.props.toggleNav,\n                  'aria-haspopup': 'true',\n                  'aria-expanded': this.props.dropdown ? 'true' : 'false' },\n                _react2.default.createElement(\n                  'i',\n                  { className: 'material-icon' },\n                  'menu'\n                )\n              )\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'header-stats' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'div',\n              { className: 'row' },\n              _react2.default.createElement(\n                'div',\n                { className: 'col-md-9 col-md-offset-3' },\n                _react2.default.createElement(\n                  'ul',\n                  { className: 'list-inline' },\n                  this.getUserStatus(),\n                  this.getUserRank(),\n                  this.getUserTitle(),\n                  this.getJoinedOn(),\n                  this.getEmail()\n                )\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},{\"../avatar\":54,\"../user-status\":110,\"./follow-button\":88,\"./moderation/nav\":94,\"react\":\"react\"}],87:[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\nvar _panelLoader = require('../panel-loader');\n\nvar _panelLoader2 = _interopRequireDefault(_panelLoader);\n\nvar _panelMessage = require('../panel-message');\n\nvar _panelMessage2 = _interopRequireDefault(_panelMessage);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (ban) {\n      if (ban.expires_on) {\n        ban.expires_on = (0, _moment2.default)(ban.expires_on);\n      }\n\n      _this.setState({\n        isLoaded: true,\n        error: null,\n\n        ban: ban\n      });\n    };\n\n    _this.error = function (error) {\n      _this.setState({\n        isLoaded: true,\n        error: error.detail,\n        ban: null\n      });\n    };\n\n    if (_index2.default.has('PROFILE_BAN')) {\n      _this.initWithPreloadedData(_index2.default.pop('PROFILE_BAN'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling(props.profile.api_url.ban);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(ban) {\n      if (ban.expires_on) {\n        ban.expires_on = (0, _moment2.default)(ban.expires_on);\n      }\n\n      this.state = {\n        isLoaded: true,\n        ban: ban\n      };\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'ban-details',\n        url: api,\n        frequency: 90 * 1000,\n        update: this.update,\n        error: this.error\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Ban details\"),\n        parent: this.props.profile.username\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('ban-details');\n    }\n  }, {\n    key: 'getUserMessage',\n    value: function getUserMessage() {\n      if (this.state.ban.user_message) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'panel-body ban-message ban-user-message' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"User-shown ban message\")\n          ),\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.state.ban.user_message.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getStaffMessage',\n    value: function getStaffMessage() {\n      if (this.state.ban.staff_message) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'panel-body ban-message ban-staff-message' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"Team-shown ban message\")\n          ),\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.state.ban.staff_message.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.state.ban.expires_on) {\n        if (this.state.ban.expires_on.isAfter((0, _moment2.default)())) {\n          /* jshint ignore:start */\n          var _title = interpolate(gettext(\"This ban expires on %(expires_on)s.\"), {\n            'expires_on': this.state.ban.expires_on.format('LL, LT')\n          }, true);\n\n          var message = interpolate(gettext(\"This ban expires %(expires_on)s.\"), {\n            'expires_on': this.state.ban.expires_on.fromNow()\n          }, true);\n\n          return _react2.default.createElement(\n            'abbr',\n            { title: _title },\n            message\n          );\n          /* jshint ignore:end */\n        } else {\n            return gettext(\"This ban has expired.\");\n          }\n      } else {\n        return interpolate(gettext(\"%(username)s's ban is permanent.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getPanelBody',\n    value: function getPanelBody() {\n      if (this.state.ban) {\n        if (Object.keys(this.state.ban).length) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            this.getUserMessage(),\n            this.getStaffMessage(),\n            _react2.default.createElement(\n              'div',\n              { className: 'panel-body ban-expires' },\n              _react2.default.createElement(\n                'h4',\n                null,\n                gettext(\"Ban expiration\")\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getExpirationMessage()\n              )\n            )\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'div',\n              null,\n              _react2.default.createElement(_panelMessage2.default, { message: gettext(\"No ban is active at the moment.\") })\n            );\n            /* jshint ignore:end */\n          }\n      } else if (this.state.error) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            _react2.default.createElement(_panelMessage2.default, { icon: 'error_outline',\n              message: this.state.error })\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'div',\n              null,\n              _react2.default.createElement(_panelLoader2.default, null)\n            );\n            /* jshint ignore:end */\n          }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'profile-ban-details' },\n        _react2.default.createElement(\n          'div',\n          { className: 'panel panel-default' },\n          _react2.default.createElement(\n            'div',\n            { className: 'panel-heading' },\n            _react2.default.createElement(\n              'h3',\n              { className: 'panel-title' },\n              gettext(\"Ban details\")\n            )\n          ),\n          this.getPanelBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":127,\"../../services/page-title\":141,\"../../services/polls\":142,\"../panel-loader\":83,\"../panel-message\":84,\"moment\":\"moment\",\"react\":\"react\"}],88:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _profile = require('../../reducers/profile');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.action = function () {\n      _this.setState({\n        isLoading: true\n      });\n\n      if (_this.props.profile.is_followed) {\n        _store2.default.dispatch((0, _profile.patchProfile)({\n          is_followed: false,\n          followers: _this.props.profile.followers - 1\n        }));\n      } else {\n        _store2.default.dispatch((0, _profile.patchProfile)({\n          is_followed: true,\n          followers: _this.props.profile.followers + 1\n        }));\n      }\n\n      _ajax2.default.post(_this.props.profile.api_url.follow).then(function (data) {\n        _this.setState({\n          isLoading: false\n        });\n\n        _store2.default.dispatch((0, _profile.patchProfile)(data));\n      }, function (rejection) {\n        _this.setState({\n          isLoading: false\n        });\n        _snackbar2.default.apiError(rejection);\n      });\n    };\n\n    _this.state = {\n      isLoading: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.profile.is_followed) {\n        return this.props.className + ' btn-default btn-following';\n      } else {\n        return this.props.className + ' btn-default btn-follow';\n      }\n    }\n  }, {\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.profile.is_followed) {\n        return 'favorite';\n      } else {\n        return 'favorite_border';\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.profile.is_followed) {\n        return gettext(\"Following\");\n      } else {\n        return gettext(\"Follow\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        _button2.default,\n        { className: this.getClassName(),\n          disabled: this.state.isLoading,\n          onClick: this.action },\n        _react2.default.createElement(\n          'span',\n          { className: 'material-icon' },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../reducers/profile\":129,\"../../services/ajax\":134,\"../../services/snackbar\":143,\"../../services/store\":144,\"../button\":56,\"react\":\"react\"}],89:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _search = require('../search');\n\nvar _search2 = _interopRequireDefault(_search);\n\nvar _root = require('../users-list/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../reducers/users');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.loadMore = function () {\n      _this.setState({\n        isBusy: true\n      });\n\n      _this.loadUsers(_this.state.page + 1, _this.state.search);\n    };\n\n    _this.search = function (ev) {\n      _this.setState({\n        isLoaded: false,\n        isBusy: true,\n\n        search: ev.target.value,\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      });\n\n      _this.loadUsers(1, ev.target.value);\n    };\n\n    _this.setSpecialProps();\n\n    if (_index2.default.has(_this.PRELOADED_DATA_KEY)) {\n      _this.initWithPreloadedData(_index2.default.pop(_this.PRELOADED_DATA_KEY));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'setSpecialProps',\n    value: function setSpecialProps() {\n      this.PRELOADED_DATA_KEY = 'PROFILE_FOLLOWERS';\n      this.TITLE = gettext('Followers');\n      this.API_FILTER = 'followers';\n    }\n  }, {\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n        isBusy: false,\n\n        search: '',\n\n        count: data.count,\n        more: data.more,\n\n        page: data.page,\n        pages: data.pages\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false,\n        isBusy: false,\n\n        search: '',\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      };\n\n      this.loadUsers();\n    }\n  }, {\n    key: 'loadUsers',\n    value: function loadUsers() {\n      var _ajax$get,\n          _this2 = this;\n\n      var page = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];\n      var search = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n      _ajax2.default.get(_index2.default.get('USERS_API'), (_ajax$get = {}, _defineProperty(_ajax$get, this.API_FILTER, this.props.profile.id), _defineProperty(_ajax$get, 'name', search), _defineProperty(_ajax$get, 'page', page || 1), _ajax$get), 'user-' + this.API_FILTER).then(function (data) {\n        if (page === 1) {\n          _store2.default.dispatch((0, _users.dehydrate)(data.results));\n        } else {\n          _store2.default.dispatch((0, _users.append)(data.results));\n        }\n\n        _this2.setState({\n          isLoaded: true,\n          isBusy: false,\n\n          count: data.count,\n          more: data.more,\n\n          page: data.page,\n          pages: data.pages\n        });\n      }, function (rejection) {\n        _snackbar2.default.apiError(rejection);\n      });\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.TITLE,\n        parent: this.props.profile.username\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getLabel',\n\n    /* jshint ignore:end */\n\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(users)s user.\", \"Found %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"You have %(users)s follower.\", \"You have %(users)s followers.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s has %(users)s follower.\", \"%(username)s has %(users)s followers.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'users': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no users matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"You have no followers.\");\n      } else {\n        return interpolate(gettext(\"%(username)s has no followers.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getMoreButton',\n    value: function getMoreButton() {\n      if (this.state.more) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'pager-more' },\n          _react2.default.createElement(\n            _button2.default,\n            { loading: this.state.isBusy,\n              onClick: this.loadMore },\n            interpolate(gettext(\"Show more (%(more)s)\"), {\n              'more': this.state.more\n            }, true)\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getListBody',\n    value: function getListBody() {\n      if (this.state.isLoaded && this.state.count === 0) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.getEmptyMessage()\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'div',\n            null,\n            _react2.default.createElement(_root2.default, { isLoaded: this.state.isLoaded,\n              users: this.props.users,\n              showRank: true,\n              cols: 2 }),\n            this.getMoreButton()\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      return 'profile-' + this.API_FILTER;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'nav',\n          { className: 'toolbar' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'toolbar-left' },\n            this.getLabel()\n          ),\n          _react2.default.createElement(_search2.default, { className: 'toolbar-right',\n            value: this.state.search,\n            onChange: this.search,\n            placeholder: gettext(\"Search history...\") })\n        ),\n        this.getListBody()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":127,\"../../reducers/users\":133,\"../../services/ajax\":134,\"../../services/page-title\":141,\"../../services/snackbar\":143,\"../../services/store\":144,\"../button\":56,\"../search\":103,\"../users-list/root\":112,\"react\":\"react\"}],90:[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 _followers = require('./followers');\n\nvar _followers2 = _interopRequireDefault(_followers);\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\nvar _class = function (_Followers) {\n  _inherits(_class, _Followers);\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: 'setSpecialProps',\n    value: function setSpecialProps() {\n      this.PRELOADED_DATA_KEY = 'PROFILE_FOLLOWS';\n      this.TITLE = gettext('Follows');\n      this.API_FILTER = 'follows';\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(users)s user.\", \"Found %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"You are following %(users)s user.\", \"You are following %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'users': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s is following %(users)s user.\", \"%(username)s is following %(users)s users.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'users': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no users matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"You are not following any users.\");\n      } else {\n        return interpolate(gettext(\"%(username)s is not following any users.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }]);\n\n  return _class;\n}(_followers2.default);\n\nexports.default = _class;\n\n},{\"./followers\":89,\"react\":\"react\"}],91:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _yesNoSwitch = require('../../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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      isLoaded: false,\n      isLoading: false,\n      error: null,\n\n      is_avatar_locked: '',\n      avatar_lock_user_message: '',\n      avatar_lock_staff_message: ''\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.moderate_avatar).then(function (options) {\n        _this2.setState({\n          isLoaded: true,\n\n          is_avatar_locked: options.is_avatar_locked,\n          avatar_lock_user_message: options.avatar_lock_user_message,\n          avatar_lock_staff_message: options.avatar_lock_staff_message\n        });\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(this.validate().username[0]);\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.moderate_avatar, {\n        is_avatar_locked: this.state.is_avatar_locked,\n        avatar_lock_user_message: this.state.avatar_lock_user_message,\n        avatar_lock_staff_message: this.state.avatar_lock_staff_message\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      _store2.default.dispatch((0, _users.updateAvatar)(this.props.profile, apiResponse.avatar_hash));\n      _snackbar2.default.success(gettext(\"Avatar controls have been changed.\"));\n    }\n  }, {\n    key: 'getFormBody',\n    value: function getFormBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"Lock avatar\"),\n              helpText: gettext(\"Locking user avatar will prohibit user from changing his avatar and will reset his/her avatar to default one.\"),\n              'for': 'id_is_avatar_locked' },\n            _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_is_avatar_locked',\n              disabled: this.state.isLoading,\n              iconOn: 'lock_outline',\n              iconOff: 'lock_open',\n              labelOn: gettext(\"Disallow user from changing avatar\"),\n              labelOff: gettext(\"Allow user to change avatar\"),\n              onChange: this.bindInput('is_avatar_locked'),\n              value: this.state.is_avatar_locked })\n          ),\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"User message\"),\n              helpText: gettext(\"Optional message for user explaining why he/she is prohibited form changing avatar.\"),\n              'for': 'id_avatar_lock_user_message' },\n            _react2.default.createElement('textarea', { id: 'id_avatar_lock_user_message',\n              className: 'form-control',\n              rows: '4',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('avatar_lock_user_message'),\n              value: this.state.avatar_lock_user_message })\n          ),\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"Staff message\"),\n              helpText: gettext(\"Optional message for forum team members explaining why user is prohibited form changing avatar.\"),\n              'for': 'id_avatar_lock_staff_message' },\n            _react2.default.createElement('textarea', { id: 'id_avatar_lock_staff_message',\n              className: 'form-control',\n              rows: '4',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('avatar_lock_staff_message'),\n              value: this.state.avatar_lock_staff_message })\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            gettext(\"Close\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary', loading: this.state.isLoading },\n            gettext(\"Save changes\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          return this.getFormBody();\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error) {\n        return \"modal-dialog modal-message modal-avatar-controls\";\n      } else {\n        return \"modal-dialog modal-avatar-controls\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Avatar controls\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../reducers/users\":133,\"../../../services/ajax\":134,\"../../../services/snackbar\":143,\"../../../services/store\":144,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"../../modal-loader\":71,\"../../modal-message\":72,\"../../yes-no-switch\":126,\"react\":\"react\"}],92:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory = require('../../../reducers/username-history');\n\nvar _users = require('../../../reducers/users');\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _validators = require('../../../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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      isLoaded: false,\n      isLoading: false,\n      error: null,\n\n      username: '',\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.moderate_username).then(function () {\n        _this2.setState({\n          isLoaded: true\n        });\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n  }, {\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(this.validate().username[0]);\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.moderate_username, {\n        username: this.state.username\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.setState({\n        username: ''\n      });\n\n      _store2.default.dispatch((0, _usernameHistory.addNameChange)(apiResponse, this.props.profile, this.props.user));\n      _store2.default.dispatch((0, _users.updateUsername)(this.props.profile, apiResponse.username, apiResponse.slug));\n\n      _snackbar2.default.success(gettext(\"Username has been changed.\"));\n    }\n  }, {\n    key: 'getFormBody',\n    value: function getFormBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"New username\"), 'for': 'id_username' },\n            _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n              disabled: this.state.isLoading,\n              onChange: this.bindInput('username'),\n              value: this.state.username })\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            gettext(\"Close\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary', loading: this.state.isLoading },\n            gettext(\"Change username\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          return this.getFormBody();\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error) {\n        return \"modal-dialog modal-message modal-rename-user\";\n      } else {\n        return \"modal-dialog modal-rename-user\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Change username\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../reducers/username-history\":132,\"../../../reducers/users\":133,\"../../../services/ajax\":134,\"../../../services/snackbar\":143,\"../../../services/store\":144,\"../../../utils/validators\":154,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"../../modal-loader\":71,\"../../modal-message\":72,\"react\":\"react\"}],93:[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 _button = require('../../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('../../form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('../../form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _modalLoader = require('../../modal-loader');\n\nvar _modalLoader2 = _interopRequireDefault(_modalLoader);\n\nvar _modalMessage = require('../../modal-message');\n\nvar _modalMessage2 = _interopRequireDefault(_modalMessage);\n\nvar _yesNoSwitch = require('../../yes-no-switch');\n\nvar _yesNoSwitch2 = _interopRequireDefault(_yesNoSwitch);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// 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.countdown = function () {\n      window.setTimeout(function () {\n        if (_this.state.countdown > 1) {\n          _this.setState({\n            countdown: _this.state.countdown - 1\n          });\n          _this.countdown();\n        } else if (!_this.state.confirm) {\n          _this.setState({\n            confirm: true\n          });\n        }\n      }, 1000);\n    };\n\n    _this.state = {\n      isLoaded: false,\n      isLoading: false,\n      isDeleted: false,\n      error: null,\n\n      countdown: 5,\n      confirm: false,\n\n      with_content: false\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this2 = this;\n\n      _ajax2.default.get(this.props.profile.api_url.delete).then(function () {\n        _this2.setState({\n          isLoaded: true\n        });\n\n        _this2.countdown();\n      }, function (rejection) {\n        _this2.setState({\n          isLoaded: true,\n          error: rejection.detail\n        });\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'send',\n\n    /* jshint ignore:end */\n\n    value: function send() {\n      return _ajax2.default.post(this.props.profile.api_url.delete, {\n        with_content: this.state.with_content\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      _polls2.default.stop('user-profile');\n\n      if (this.state.with_content) {\n        this.setState({\n          isDeleted: interpolate(gettext(\"%(username)s's account, threads, posts and other content has been deleted.\"), {\n            'username': this.props.profile.username\n          }, true)\n        });\n      } else {\n        this.setState({\n          isDeleted: interpolate(gettext(\"%(username)s's account has been deleted and other content has been hidden.\"), {\n            'username': this.props.profile.username\n          }, true)\n        });\n      }\n    }\n  }, {\n    key: 'getButtonLabel',\n    value: function getButtonLabel() {\n      if (this.state.confirm) {\n        return interpolate(gettext(\"Delete %(username)s\"), {\n          'username': this.props.profile.username\n        }, true);\n      } else {\n        return interpolate(gettext(\"Please wait... (%(countdown)ss)\"), {\n          'countdown': this.state.countdown\n        }, true);\n      }\n    }\n  }, {\n    key: 'getForm',\n    value: function getForm() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'form',\n        { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-body' },\n          _react2.default.createElement(\n            _formGroup2.default,\n            { label: gettext(\"User content\"),\n              labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n              'for': 'id_with_content' },\n            _react2.default.createElement(_yesNoSwitch2.default, { id: 'id_with_content',\n              disabled: this.state.isLoading,\n              labelOn: gettext(\"Delete together with user's account\"),\n              labelOff: gettext(\"Hide after deleting user's account\"),\n              onChange: this.bindInput('with_content'),\n              value: this.state.with_content })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button',\n              className: 'btn btn-default',\n              'data-dismiss': 'modal' },\n            gettext(\"Cancel\")\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-danger',\n              loading: this.state.isLoading,\n              disabled: !this.state.confirm },\n            this.getButtonLabel()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getDeletedBody',\n    value: function getDeletedBody() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-body' },\n        _react2.default.createElement(\n          'div',\n          { className: 'message-icon' },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'info_outline'\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'message-body' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.state.isDeleted\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            _react2.default.createElement(\n              'a',\n              { href: _index2.default.get('USERS_LIST_URL') },\n              gettext(\"Return to users list\")\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getModalBody',\n    value: function getModalBody() {\n      if (this.state.error) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_modalMessage2.default, { icon: 'remove_circle_outline',\n          message: this.state.error });\n        /* jshint ignore:end */\n      } else if (this.state.isLoaded) {\n          if (this.state.isDeleted) {\n            return this.getDeletedBody();\n          } else {\n            return this.getForm();\n          }\n        } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_modalLoader2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.state.error || this.state.isDeleted) {\n        return \"modal-dialog modal-message modal-delete-account\";\n      } else {\n        return \"modal-dialog modal-delete-account\";\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName(),\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Delete user account\")\n            )\n          ),\n          this.getModalBody()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../services/ajax\":134,\"../../../services/polls\":142,\"../../button\":56,\"../../form\":68,\"../../form-group\":67,\"../../modal-loader\":71,\"../../modal-message\":72,\"../../yes-no-switch\":126,\"react\":\"react\"}],94:[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 _reactRedux = require('react-redux');\n\nvar _avatarControls = require('./avatar-controls');\n\nvar _avatarControls2 = _interopRequireDefault(_avatarControls);\n\nvar _changeUsername = require('./change-username');\n\nvar _changeUsername2 = _interopRequireDefault(_changeUsername);\n\nvar _deleteAccount = require('./delete-account');\n\nvar _deleteAccount2 = _interopRequireDefault(_deleteAccount);\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// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\n/* jshint ignore:start */\nvar select = function select(store) {\n  return {\n    tick: store.tick,\n    user: store.auth,\n    profile: store.profile\n  };\n};\n/* jshint ignore:end */\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.showAvatarDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_avatarControls2.default));\n    }, _this.showRenameDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_changeUsername2.default));\n    }, _this.showDeleteDialog = function () {\n      _modal2.default.show((0, _reactRedux.connect)(select)(_deleteAccount2.default));\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getAvatarButton',\n\n    /* jshint ignore:end */\n\n    value: function getAvatarButton() {\n      if (this.props.profile.acl.can_moderate_avatar) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showAvatarDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Avatar controls\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getRenameButton',\n\n    /* jshint ignore:end */\n\n    value: function getRenameButton() {\n      if (this.props.profile.acl.can_rename) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showRenameDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'credit_card'\n            ),\n            gettext(\"Change username\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getDeleteButton',\n\n    /* jshint ignore:end */\n\n    value: function getDeleteButton() {\n      if (this.props.profile.acl.can_delete) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          null,\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn-link',\n              onClick: this.showDeleteDialog },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'clear'\n            ),\n            gettext(\"Delete account\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu dropdown-menu-right', role: 'menu' },\n        this.getAvatarButton(),\n        this.getRenameButton(),\n        this.getDeleteButton(),\n        _react2.default.createElement('li', { className: 'divider hidden-md hidden-lg' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons hidden-md hidden-lg' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.props.toggleNav },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'menu'\n            ),\n            gettext(\"Menu\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../services/modal\":140,\"./avatar-controls\":91,\"./change-username\":92,\"./delete-account\":93,\"react\":\"react\",\"react-redux\":\"react-redux\"}],95:[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.CompactNav = exports.SideNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _followButton = require('./follow-button');\n\nvar _followButton2 = _interopRequireDefault(_followButton);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n//jshint ignore:line\n// jshint ignore:line\n\n//jshint ignore:line\n\nvar SideNav = exports.SideNav = function (_React$Component) {\n  _inherits(SideNav, _React$Component);\n\n  function SideNav() {\n    _classCallCheck(this, SideNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(SideNav).apply(this, arguments));\n  }\n\n  _createClass(SideNav, [{\n    key: 'getMeta',\n    value: function getMeta(meta) {\n      if (meta) {\n        // jshint ignore:start\n        return _react2.default.createElement(\n          'span',\n          { className: 'badge' },\n          this.props.profile[meta.attr]\n        );\n        // jshint ignore:end\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'list-group nav-side' },\n        this.props.pages.map(function (page) {\n          return _react2.default.createElement(\n            _reactRouter.Link,\n            { to: _this2.props.baseUrl + page.component + '/',\n              className: 'list-group-item',\n              activeClassName: 'active',\n              key: page.component },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              page.icon\n            ),\n            page.name,\n            _this2.getMeta(page.meta)\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return SideNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_SideNav) {\n  _inherits(CompactNav, _SideNav);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'showSpecialOptions',\n    value: function showSpecialOptions() {\n      return this.props.profile.acl.can_follow || this.props.profile.acl.can_moderate;\n    }\n  }, {\n    key: 'getFollowButton',\n    value: function getFollowButton() {\n      if (this.props.profile.acl.can_follow) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_followButton2.default, { className: 'btn btn-block',\n          profile: this.props.profile });\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getModerationButton',\n    value: function getModerationButton() {\n      if (this.props.profile.acl.can_moderate) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn btn-default btn-block',\n            onClick: this.props.toggleModeration },\n          _react2.default.createElement(\n            'span',\n            { className: 'material-icon' },\n            'tonality'\n          ),\n          gettext(\"Moderation\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getSpecialOptions',\n    value: function getSpecialOptions() {\n      if (this.showSpecialOptions()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons' },\n          this.getFollowButton(),\n          this.getModerationButton()\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this4 = this;\n\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        this.getSpecialOptions(),\n        this.showSpecialOptions() ? _react2.default.createElement('li', { className: 'divider' }) : null,\n        this.props.pages.map(function (page) {\n          return _react2.default.createElement(\n            _li2.default,\n            { path: _this4.props.baseUrl + page.component + '/',\n              key: page.component },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: _this4.props.baseUrl + page.component + '/',\n                onClick: _this4.props.hideNav },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                page.icon\n              ),\n              page.name,\n              _this4.getMeta(page.meta)\n            )\n          );\n        })\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(SideNav);\n\n},{\"../../index\":127,\"../li\":69,\"./follow-button\":88,\"react\":\"react\",\"react-router\":\"react-router\"}],96:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\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 _banDetails = require('./ban-details');\n\nvar _banDetails2 = _interopRequireDefault(_banDetails);\n\nvar _followers = require('./followers');\n\nvar _followers2 = _interopRequireDefault(_followers);\n\nvar _follows = require('./follows');\n\nvar _follows2 = _interopRequireDefault(_follows);\n\nvar _usernameHistory = require('./username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _Header = require('./Header');\n\nvar _Header2 = _interopRequireDefault(_Header);\n\nvar _nav = require('./moderation/nav');\n\nvar _nav2 = _interopRequireDefault(_nav);\n\nvar _navs = require('./navs');\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _profile = require('../../reducers/profile');\n\nvar _polls = require('../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _profile.dehydrate)(data));\n    };\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown === 'pages') {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: 'pages'\n        });\n      }\n    };\n\n    _this.toggleModeration = function () {\n      if (_this.state.dropdown === 'moderation') {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: 'moderation'\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n\n    _this.startPolling(props.profile.api_url.root);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'startPolling',\n    value: function startPolling(api) {\n      _polls2.default.start({\n        poll: 'user-profile',\n        url: api,\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n    /* jshint ignore:end */\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\n      }\n    }\n  }, {\n    key: 'getNavDropdown',\n    value: function getNavDropdown() {\n      if (this.state.dropdown === 'pages') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_navs.CompactNav, { pages: _index2.default.get('PROFILE_PAGES'),\n          baseUrl: _index2.default.get('PROFILE').absolute_url,\n          profile: this.props.profile,\n          toggleModeration: this.toggleModeration,\n          hideNav: this.hideNav });\n        /* jshint ignore:end */\n      } else if (this.state.dropdown === 'moderation') {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_nav2.default, { profile: this.props.profile,\n            toggleNav: this.toggleNav,\n            hideNav: this.hideNav });\n          /* jshint ignore:end */\n        } else {\n            return null;\n          }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var baseClass = 'page page-user-profile';\n      if (false && this.props.profile.rank.css_class) {\n        return baseClass + ' page-user-profile-' + this.props.profile.rank.css_class;\n      } else {\n        return baseClass;\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(_Header2.default, { user: this.props.user,\n          profile: this.props.profile,\n          toggleNav: this.toggleNav,\n          toggleModeration: this.toggleModeration }),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          this.getNavDropdown()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-3 hidden-xs hidden-sm' },\n              _react2.default.createElement(\n                'div',\n                { className: 'profile-side-avatar' },\n                _react2.default.createElement(_avatar2.default, { user: this.props.profile, size: '400' })\n              ),\n              _react2.default.createElement(_navs.SideNav, { pages: _index2.default.get('PROFILE_PAGES'),\n                baseUrl: _index2.default.get('PROFILE').absolute_url,\n                profile: this.props.profile })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-md-9' },\n              this.props.children\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users,\n    'profile': store.profile,\n    'username-history': store['username-history']\n  };\n}\n\nvar Placeholder = function (_React$Component2) {\n  _inherits(Placeholder, _React$Component2);\n\n  function Placeholder() {\n    _classCallCheck(this, Placeholder);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(Placeholder).apply(this, arguments));\n  }\n\n  _createClass(Placeholder, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'div',\n        { className: 'container' },\n        _react2.default.createElement(\n          'p',\n          null,\n          \"Hello, I'm placeholder for \" + this.props.route.name\n        )\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return Placeholder;\n}(_react2.default.Component);\n\nvar COMPONENTS = {\n  'posts': Placeholder,\n  'threads': Placeholder,\n  'followers': _followers2.default,\n  'follows': _follows2.default,\n  'username-history': _usernameHistory2.default,\n  'ban-details': _banDetails2.default\n};\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('PROFILE_PAGES').forEach(function (item) {\n    paths.push(Object.assign({}, item, {\n      path: _index2.default.get('PROFILE').absolute_url + item.component + '/',\n      component: (0, _reactRedux.connect)(select)(COMPONENTS[item.component])\n    }));\n  });\n\n  return paths;\n}\n\n},{\"../../index\":127,\"../../reducers/profile\":129,\"../../services/polls\":142,\"../../services/store\":144,\"../avatar\":54,\"./Header\":86,\"./ban-details\":87,\"./followers\":89,\"./follows\":90,\"./moderation/nav\":94,\"./navs\":95,\"./username-history\":97,\"react\":\"react\",\"react-redux\":\"react-redux\"}],97:[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 _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _search = require('../search');\n\nvar _search2 = _interopRequireDefault(_search);\n\nvar _usernameHistory = require('../username-history');\n\nvar _usernameHistory2 = _interopRequireDefault(_usernameHistory);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _usernameHistory3 = require('../../reducers/username-history');\n\nvar _ajax = require('../../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _store = require('../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.loadMore = function () {\n      _this.setState({\n        isBusy: true\n      });\n\n      _this.loadChanges(_this.state.page + 1, _this.state.search);\n    };\n\n    _this.search = function (ev) {\n      _this.setState({\n        isLoaded: false,\n        isBusy: true,\n\n        search: ev.target.value,\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      });\n\n      _this.loadChanges(1, ev.target.value);\n    };\n\n    if (_index2.default.has('PROFILE_NAME_HISTORY')) {\n      _this.initWithPreloadedData(_index2.default.pop('PROFILE_NAME_HISTORY'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n        isBusy: false,\n\n        search: '',\n\n        count: data.count,\n        more: data.more,\n\n        page: data.page,\n        pages: data.pages\n      };\n\n      _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false,\n        isBusy: false,\n\n        search: '',\n\n        count: 0,\n        more: 0,\n\n        page: 1,\n        pages: 1\n      };\n\n      this.loadChanges();\n    }\n  }, {\n    key: 'loadChanges',\n    value: function loadChanges() {\n      var _this2 = this;\n\n      var page = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0];\n      var search = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n      _ajax2.default.get(_index2.default.get('USERNAME_CHANGES_API'), {\n        user: this.props.profile.id,\n        search: search,\n        page: page || 1\n      }, 'search-username-history').then(function (data) {\n        if (page === 1) {\n          _store2.default.dispatch((0, _usernameHistory3.dehydrate)(data.results));\n        } else {\n          _store2.default.dispatch((0, _usernameHistory3.append)(data.results));\n        }\n\n        _this2.setState({\n          isLoaded: true,\n          isBusy: false,\n\n          count: data.count,\n          more: data.more,\n\n          page: data.page,\n          pages: data.pages\n        });\n      }, function (rejection) {\n        _snackbar2.default.apiError(rejection);\n      });\n    }\n  }, {\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: gettext(\"Username history\"),\n        parent: this.props.profile.username\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'getLabel',\n\n    /* jshint ignore:end */\n\n    value: function getLabel() {\n      if (!this.state.isLoaded) {\n        return gettext('Loading...');\n      } else if (this.state.search) {\n        var message = ngettext(\"Found %(changes)s username change.\", \"Found %(changes)s username changes.\", this.state.count);\n\n        return interpolate(message, {\n          'changes': this.state.count\n        }, true);\n      } else if (this.props.profile.id === this.props.user.id) {\n        var message = ngettext(\"Your username was changed %(changes)s time.\", \"Your username was changed %(changes)s times.\", this.state.count);\n\n        return interpolate(message, {\n          'changes': this.state.count\n        }, true);\n      } else {\n        var message = ngettext(\"%(username)s's username was changed %(changes)s time.\", \"%(username)s's username was changed %(changes)s times.\", this.state.count);\n\n        return interpolate(message, {\n          'username': this.props.profile.username,\n          'changes': this.state.count\n        }, true);\n      }\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.state.search) {\n        return gettext(\"Search returned no username changes matching specified criteria.\");\n      } else if (this.props.user.id === this.props.profile.id) {\n        return gettext(\"No name changes have been recorded for your account.\");\n      } else {\n        return interpolate(gettext(\"%(username)s's username was never changed.\"), {\n          'username': this.props.profile.username\n        }, true);\n      }\n    }\n  }, {\n    key: 'getMoreButton',\n    value: function getMoreButton() {\n      if (this.state.more) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'pager-more' },\n          _react2.default.createElement(\n            _button2.default,\n            { loading: this.state.isBusy,\n              onClick: this.loadMore },\n            interpolate(gettext(\"Show older (%(more)s)\"), {\n              'more': this.state.more\n            }, true)\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'profile-username-history' },\n        _react2.default.createElement(\n          'nav',\n          { className: 'toolbar' },\n          _react2.default.createElement(\n            'h3',\n            { className: 'toolbar-left' },\n            this.getLabel()\n          ),\n          _react2.default.createElement(_search2.default, { className: 'toolbar-right',\n            value: this.state.search,\n            onChange: this.search,\n            placeholder: gettext(\"Search history...\") })\n        ),\n        _react2.default.createElement(_usernameHistory2.default, { isLoaded: this.state.isLoaded,\n          emptyMessage: this.getEmptyMessage(),\n          changes: this.props['username-history'] }),\n        this.getMoreButton()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../index\":127,\"../../reducers/username-history\":132,\"../../services/ajax\":134,\"../../services/page-title\":141,\"../../services/snackbar\":143,\"../../services/store\":144,\"../button\":56,\"../search\":103,\"../username-history\":111,\"react\":\"react\"}],98:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _loader = require('./loader');\n\nvar _loader2 = _interopRequireDefault(_loader);\n\nvar _register = require('./register.js');\n\nvar _register2 = _interopRequireDefault(_register);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _zxcvbn = require('../services/zxcvbn');\n\nvar _zxcvbn2 = _interopRequireDefault(_zxcvbn);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.showRegisterModal = function () {\n      if (misago.get('SETTINGS').account_activation === 'closed') {\n        _snackbar2.default.info(gettext(\"New registrations are currently disabled.\"));\n      } else if (_this.state.isLoaded) {\n        _modal2.default.show(_register2.default);\n      } else {\n        _this.setState({\n          'isLoading': true\n        });\n\n        Promise.all([_captcha2.default.load(), _zxcvbn2.default.load()]).then(function () {\n          if (!_this.state.isLoaded) {\n            _this.setState({\n              'isLoading': false,\n              'isLoaded': false\n            });\n          }\n\n          _modal2.default.show(_register2.default);\n        });\n      }\n    };\n\n    _this.state = {\n      'isLoading': false,\n      'isLoaded': false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getClassName',\n\n    /* jshint ignore:end */\n\n    value: function getClassName() {\n      return this.props.className + (this.state.isLoading ? ' btn-loading' : '');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showRegisterModal,\n          className: 'btn ' + this.getClassName(),\n          disabled: this.state.isLoaded },\n        gettext(\"Register\"),\n        this.state.isLoading ? _react2.default.createElement(_loader2.default, null) : null\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../services/captcha\":136,\"../services/modal\":140,\"../services/snackbar\":143,\"../services/zxcvbn\":145,\"./loader\":70,\"./register.js\":99,\"react\":\"react\"}],99:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.RegisterComplete = exports.RegisterForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _formGroup = require('./form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nvar _passwordStrength = require('./password-strength');\n\nvar _passwordStrength2 = _interopRequireDefault(_passwordStrength);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _captcha = require('../services/captcha');\n\nvar _captcha2 = _interopRequireDefault(_captcha);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RegisterForm = exports.RegisterForm = function (_Form) {\n  _inherits(RegisterForm, _Form);\n\n  function RegisterForm(props) {\n    _classCallCheck(this, RegisterForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterForm).call(this, props));\n\n    _this.state = {\n      isLoading: false,\n\n      username: '',\n      email: '',\n      password: '',\n      captcha: '',\n\n      validators: {\n        username: [validators.usernameContent(), validators.usernameMinLength(_index2.default.get('SETTINGS')), validators.usernameMaxLength(_index2.default.get('SETTINGS'))],\n        email: [validators.email()],\n        password: [validators.passwordMinLength(_index2.default.get('SETTINGS'))],\n        captcha: _captcha2.default.validator()\n      },\n\n      errors: {}\n    };\n    return _this;\n  }\n\n  _createClass(RegisterForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n        this.setState({\n          errors: this.validate()\n        });\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('USERS_API'), {\n        username: this.state.username,\n        email: this.state.email,\n        password: this.state.password,\n        captcha: this.state.captcha\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        this.setState({\n          'errors': Object.assign({}, this.state.errors, rejection)\n        });\n        _snackbar2.default.error(gettext(\"Form contains errors.\"));\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getLegalFootNote',\n    value: function getLegalFootNote() {\n      if (_index2.default.get('TERMS_OF_SERVICE_URL')) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('TERMS_OF_SERVICE_URL'),\n            target: '_blank' },\n          gettext(\"By registering you agree to site's terms and conditions.\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-register', role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Register\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit, className: 'form-horizontal' },\n            _react2.default.createElement('input', { type: 'type', style: { display: 'none' } }),\n            _react2.default.createElement('input', { type: 'password', style: { display: 'none' } }),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Username\"), 'for': 'id_username',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.username },\n                _react2.default.createElement('input', { type: 'text', id: 'id_username', className: 'form-control',\n                  'aria-describedby': 'id_username_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('username'),\n                  value: this.state.username })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"E-mail\"), 'for': 'id_email',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.email },\n                _react2.default.createElement('input', { type: 'text', id: 'id_email', className: 'form-control',\n                  'aria-describedby': 'id_email_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('email'),\n                  value: this.state.email })\n              ),\n              _react2.default.createElement(\n                _formGroup2.default,\n                { label: gettext(\"Password\"), 'for': 'id_password',\n                  labelClass: 'col-sm-4', controlClass: 'col-sm-8',\n                  validation: this.state.errors.password,\n                  extra: _react2.default.createElement(_passwordStrength2.default, { password: this.state.password,\n                    inputs: [this.state.username, this.state.email] }) },\n                _react2.default.createElement('input', { type: 'password', id: 'id_password', className: 'form-control',\n                  'aria-describedby': 'id_password_status',\n                  disabled: this.state.isLoading,\n                  onChange: this.bindInput('password'),\n                  value: this.state.password })\n              ),\n              _captcha2.default.component({\n                form: this,\n                labelClass: \"col-sm-4\",\n                controlClass: \"col-sm-8\"\n              })\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getLegalFootNote(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary', loading: this.state.isLoading },\n                gettext(\"Register account\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterForm;\n}(_form2.default);\n\nvar RegisterComplete = exports.RegisterComplete = function (_React$Component) {\n  _inherits(RegisterComplete, _React$Component);\n\n  function RegisterComplete() {\n    _classCallCheck(this, RegisterComplete);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(RegisterComplete).apply(this, arguments));\n  }\n\n  _createClass(RegisterComplete, [{\n    key: 'getLead',\n    value: function getLead() {\n      if (this.props.activation === 'user') {\n        return gettext(\"%(username)s, your account has been created but you need to activate it before you will be able to sign in.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"%(username)s, your account has been created but board administrator will have to activate it before you will be able to sign in.\");\n      }\n    }\n  }, {\n    key: 'getSubscript',\n    value: function getSubscript() {\n      if (this.props.activation === 'user') {\n        return gettext(\"We have sent an e-mail to %(email)s with link that you have to click to activate your account.\");\n      } else if (this.props.activation === 'admin') {\n        return gettext(\"We will send an e-mail to %(email)s when this takes place.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-message modal-register',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Registration complete\")\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-body' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                interpolate(this.getLead(), { 'username': this.props.username }, true)\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                interpolate(this.getSubscript(), { 'email': this.props.email }, true)\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RegisterComplete;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.completeRegistration = function (apiResponse) {\n      if (apiResponse.activation === 'active') {\n        _modal2.default.hide();\n        _auth2.default.signIn(apiResponse);\n      } else {\n        _this3.setState({\n          complete: apiResponse\n        });\n      }\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(RegisterComplete, { activation: this.state.complete.activation,\n          username: this.state.complete.username,\n          email: this.state.complete.email });\n      } else {\n        return _react2.default.createElement(RegisterForm, { callback: this.completeRegistration });\n      }\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":127,\"../services/ajax\":134,\"../services/auth\":135,\"../services/captcha\":136,\"../services/modal\":140,\"../services/snackbar\":143,\"../utils/banned-page\":146,\"../utils/validators\":154,\"./button\":56,\"./form\":68,\"./form-group\":67,\"./password-strength\":85,\"react\":\"react\"}],100:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.LinkSent = exports.RequestLinkForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar RequestLinkForm = exports.RequestLinkForm = function (_Form) {\n  _inherits(RequestLinkForm, _Form);\n\n  function RequestLinkForm(props) {\n    _classCallCheck(this, RequestLinkForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestLinkForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestLinkForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_ACTIVATION_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['already_active', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        _snackbar2.default.info(rejection.detail);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestLinkForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Activation link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-activation-link well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this3 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this3.complete = function (apiResponse) {\n      _this3.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this3.reset = function () {\n      _this3.setState({\n        complete: false\n      });\n    };\n\n    _this3.state = {\n      complete: false\n    };\n    return _this3;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestLinkForm, { callback: this.complete });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":127,\"../services/ajax\":134,\"../services/snackbar\":143,\"../utils/banned-page\":146,\"../utils/validators\":154,\"./button\":56,\"./form\":68,\"react\":\"react\"}],101:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.AccountInactivePage = exports.LinkSent = exports.RequestResetForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar RequestResetForm = exports.RequestResetForm = function (_Form) {\n  _inherits(RequestResetForm, _Form);\n\n  function RequestResetForm(props) {\n    _classCallCheck(this, RequestResetForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(RequestResetForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'email': '',\n\n      'validators': {\n        'email': [validators.email()]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(RequestResetForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        _snackbar2.default.error(gettext(\"Enter a valid email address.\"));\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('SEND_PASSWORD_RESET_API'), {\n        'email': this.state.email\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (['inactive_user', 'inactive_admin'].indexOf(rejection.code) > -1) {\n        this.props.showInactivePage(rejection);\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'text', className: 'form-control',\n                placeholder: gettext(\"Your e-mail address\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('email'),\n                value: this.state.email })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Send link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return RequestResetForm;\n}(_form2.default);\n\nvar LinkSent = exports.LinkSent = function (_React$Component) {\n  _inherits(LinkSent, _React$Component);\n\n  function LinkSent() {\n    _classCallCheck(this, LinkSent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(LinkSent).apply(this, arguments));\n  }\n\n  _createClass(LinkSent, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"Reset password link was sent to %(email)s\"), {\n        email: this.props.user.email\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-request-password-reset well-done' },\n        _react2.default.createElement(\n          'div',\n          { className: 'done-message' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-icon' },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'check'\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'message-body' },\n            _react2.default.createElement(\n              'p',\n              null,\n              this.getMessage()\n            )\n          ),\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-primary btn-block',\n              onClick: this.props.callback },\n            gettext(\"Request another link\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return LinkSent;\n}(_react2.default.Component);\n\nvar AccountInactivePage = exports.AccountInactivePage = function (_React$Component2) {\n  _inherits(AccountInactivePage, _React$Component2);\n\n  function AccountInactivePage() {\n    _classCallCheck(this, AccountInactivePage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(AccountInactivePage).apply(this, arguments));\n  }\n\n  _createClass(AccountInactivePage, [{\n    key: 'getActivateButton',\n    value: function getActivateButton() {\n      if (this.props.activation === 'inactive_user') {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          null,\n          _react2.default.createElement(\n            'a',\n            { href: _index2.default.get('REQUEST_ACTIVATION_URL') },\n            gettext(\"Activate your account.\")\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-info page-forgotten-password-inactive' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'info_outline'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                gettext(\"Your account is inactive.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                this.props.message\n              ),\n              this.getActivateButton()\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return AccountInactivePage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component3) {\n  _inherits(_class, _React$Component3);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this4 = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this4.complete = function (apiResponse) {\n      _this4.setState({\n        complete: apiResponse\n      });\n    };\n\n    _this4.reset = function () {\n      _this4.setState({\n        complete: false\n      });\n    };\n\n    _this4.state = {\n      complete: false\n    };\n    return _this4;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'showInactivePage',\n    value: function showInactivePage(apiResponse) {\n      _reactDom2.default.render(_react2.default.createElement(AccountInactivePage, { activation: apiResponse.code,\n        message: apiResponse.detail }), document.getElementById('page-mount'));\n    }\n    /* jshint ignore:end */\n\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      if (this.state.complete) {\n        return _react2.default.createElement(LinkSent, { user: this.state.complete, callback: this.reset });\n      } else {\n        return _react2.default.createElement(RequestResetForm, { callback: this.complete,\n          showInactivePage: this.showInactivePage });\n      };\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":127,\"../services/ajax\":134,\"../services/snackbar\":143,\"../utils/banned-page\":146,\"../utils/validators\":154,\"./button\":56,\"./form\":68,\"react\":\"react\",\"react-dom\":\"react-dom\"}],102:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PasswordChangedPage = exports.ResetPasswordForm = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _signIn = require('./sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _auth = require('../services/auth');\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _validators = require('../utils/validators');\n\nvar validators = _interopRequireWildcard(_validators);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar ResetPasswordForm = exports.ResetPasswordForm = function (_Form) {\n  _inherits(ResetPasswordForm, _Form);\n\n  function ResetPasswordForm(props) {\n    _classCallCheck(this, ResetPasswordForm);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ResetPasswordForm).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n\n      'password': '',\n\n      'validators': {\n        'password': [validators.passwordMinLength(_index2.default.get('SETTINGS'))]\n      }\n    };\n    return _this;\n  }\n\n  _createClass(ResetPasswordForm, [{\n    key: 'clean',\n    value: function clean() {\n      if (this.isValid()) {\n        return true;\n      } else {\n        if (this.state.password.trim().length) {\n          _snackbar2.default.error(this.state.errors.password[0]);\n        } else {\n          _snackbar2.default.error(gettext(\"Enter new password.\"));\n        }\n        return false;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('CHANGE_PASSWORD_API'), {\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(apiResponse) {\n      this.props.callback(apiResponse);\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'well well-form well-form-reset-password' },\n        _react2.default.createElement(\n          'form',\n          { onSubmit: this.handleSubmit },\n          _react2.default.createElement(\n            'div',\n            { className: 'form-group' },\n            _react2.default.createElement(\n              'div',\n              { className: 'control-input' },\n              _react2.default.createElement('input', { type: 'password', className: 'form-control',\n                placeholder: gettext(\"Enter new password\"),\n                disabled: this.state.isLoading,\n                onChange: this.bindInput('password'),\n                value: this.state.password })\n            )\n          ),\n          _react2.default.createElement(\n            _button2.default,\n            { className: 'btn-primary btn-block',\n              loading: this.state.isLoading },\n            gettext(\"Change password\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ResetPasswordForm;\n}(_form2.default);\n\nvar PasswordChangedPage = exports.PasswordChangedPage = function (_React$Component) {\n  _inherits(PasswordChangedPage, _React$Component);\n\n  function PasswordChangedPage() {\n    _classCallCheck(this, PasswordChangedPage);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(PasswordChangedPage).apply(this, arguments));\n  }\n\n  _createClass(PasswordChangedPage, [{\n    key: 'getMessage',\n    value: function getMessage() {\n      return interpolate(gettext(\"%(username)s, your password has been changed successfully.\"), {\n        username: this.props.user.username\n      }, true);\n    }\n  }, {\n    key: 'showSignIn',\n    value: function showSignIn() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-message page-message-success page-forgotten-password-changed' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'check'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              _react2.default.createElement(\n                'p',\n                { className: 'lead' },\n                this.getMessage()\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                gettext(\"You will have to sign in using new password before continuing.\")\n              ),\n              _react2.default.createElement(\n                'p',\n                null,\n                _react2.default.createElement(\n                  'button',\n                  { type: 'button', className: 'btn btn-primary', onClick: this.showSignIn },\n                  gettext(\"Sign in\")\n                )\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return PasswordChangedPage;\n}(_react2.default.Component);\n\nvar _class = function (_React$Component2) {\n  _inherits(_class, _React$Component2);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this3, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this3 = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this3), _this3.complete = function (apiResponse) {\n      _auth2.default.softSignOut();\n\n      // nuke \"redirect_to\" field so we don't end\n      // coming back to error page after sign in\n      $('#hidden-login-form input[name=\"redirect_to\"]').remove();\n\n      _reactDom2.default.render(_react2.default.createElement(PasswordChangedPage, { user: apiResponse }), document.getElementById('page-mount'));\n    }, _temp), _possibleConstructorReturn(_this3, _ret);\n  }\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'render',\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(ResetPasswordForm, { callback: this.complete });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../index\":127,\"../services/ajax\":134,\"../services/auth\":135,\"../services/modal\":140,\"../services/snackbar\":143,\"../utils/banned-page\":146,\"../utils/validators\":154,\"./button\":56,\"./form\":68,\"./sign-in.js\":105,\"react\":\"react\",\"react-dom\":\"react-dom\"}],103:[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: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.className) {\n        return \"form-search \" + this.props.className;\n      } else {\n        return \"form-search\";\n      }\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: this.getClassName() },\n        _react2.default.createElement(\"input\", { type: \"text\",\n          className: \"form-control\",\n          value: this.props.value,\n          onChange: this.props.onChange,\n          placeholder: this.props.placeholder || gettext(\"Search...\") }),\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          \"search\"\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],104:[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    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.change = function (value) {\n      return function () {\n        _this.props.onChange({\n          target: {\n            value: value\n          }\n        });\n      };\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getChoice\",\n    value: function getChoice() {\n      var _this2 = this;\n\n      var choice = null;\n      this.props.choices.map(function (item) {\n        if (item.value === _this2.props.value) {\n          choice = item;\n        }\n      });\n      return choice;\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      return this.getChoice().icon;\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      return this.getChoice().label;\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      var _this3 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"btn-group btn-select-group\" },\n        _react2.default.createElement(\n          \"button\",\n          { type: \"button\",\n            className: \"btn btn-select dropdown-toggle\",\n            id: this.props.id || null,\n            \"data-toggle\": \"dropdown\",\n            \"aria-haspopup\": \"true\",\n            \"aria-expanded\": \"false\",\n            \"aria-describedby\": this.props['aria-describedby'] || null,\n            disabled: this.props.disabled || false },\n          _react2.default.createElement(\n            \"span\",\n            { className: \"material-icon\" },\n            this.getIcon()\n          ),\n          this.getLabel()\n        ),\n        _react2.default.createElement(\n          \"ul\",\n          { className: \"dropdown-menu\" },\n          this.props.choices.map(function (item, i) {\n            return _react2.default.createElement(\n              \"li\",\n              { key: i },\n              _react2.default.createElement(\n                \"button\",\n                { type: \"button\", className: \"btn-link\",\n                  onClick: _this3.change(item.value) },\n                _react2.default.createElement(\n                  \"span\",\n                  { className: \"material-icon\" },\n                  item.icon\n                ),\n                item.label\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},{\"react\":\"react\"}],105:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _button = require('./button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _form = require('./form');\n\nvar _form2 = _interopRequireDefault(_form);\n\nvar _ajax = require('../services/ajax');\n\nvar _ajax2 = _interopRequireDefault(_ajax);\n\nvar _modal = require('../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nvar _snackbar = require('../services/snackbar');\n\nvar _snackbar2 = _interopRequireDefault(_snackbar);\n\nvar _bannedPage = require('../utils/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_Form) {\n  _inherits(_class, _Form);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.state = {\n      'isLoading': false,\n      'showActivation': false,\n\n      'username': '',\n      'password': '',\n\n      'validators': {\n        'username': [],\n        'password': []\n      }\n    };\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'clean',\n    value: function clean() {\n      if (!this.isValid()) {\n        _snackbar2.default.error(gettext(\"Fill out both fields.\"));\n        return false;\n      } else {\n        return true;\n      }\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return _ajax2.default.post(_index2.default.get('AUTH_API'), {\n        'username': this.state.username,\n        'password': this.state.password\n      });\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess() {\n      var form = $('#hidden-login-form');\n\n      form.append('<input type=\"text\" name=\"username\" />');\n      form.append('<input type=\"password\" name=\"password\" />');\n\n      // fill out form with user credentials and submit it, this will tell\n      // Misago to redirect user back to right page, and will trigger browser's\n      // key ring feature\n      form.find('input[type=\"hidden\"]').val(_ajax2.default.getCsrfToken());\n      form.find('input[name=\"redirect_to\"]').val(window.location.pathname);\n      form.find('input[name=\"username\"]').val(this.state.username);\n      form.find('input[name=\"password\"]').val(this.state.password);\n      form.submit();\n\n      // keep form loading\n      this.setState({\n        'isLoading': true\n      });\n    }\n  }, {\n    key: 'handleError',\n    value: function handleError(rejection) {\n      if (rejection.status === 400) {\n        if (rejection.code === 'inactive_admin') {\n          _snackbar2.default.info(rejection.detail);\n        } else if (rejection.code === 'inactive_user') {\n          _snackbar2.default.info(rejection.detail);\n          this.setState({\n            'showActivation': true\n          });\n        } else if (rejection.code === 'banned') {\n          (0, _bannedPage2.default)(rejection.detail);\n          _modal2.default.hide();\n        } else {\n          _snackbar2.default.error(rejection.detail);\n        }\n      } else if (rejection.status === 403 && rejection.ban) {\n        (0, _bannedPage2.default)(rejection.ban);\n        _modal2.default.hide();\n      } else {\n        _snackbar2.default.apiError(rejection);\n      }\n    }\n  }, {\n    key: 'getActivationButton',\n    value: function getActivationButton() {\n      if (this.state.showActivation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: _index2.default.get('REQUEST_ACTIVATION_URL'),\n            className: 'btn btn-success btn-block' },\n          gettext(\"Activate account\")\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'modal-dialog modal-sm modal-sign-in',\n          role: 'document' },\n        _react2.default.createElement(\n          'div',\n          { className: 'modal-content' },\n          _react2.default.createElement(\n            'div',\n            { className: 'modal-header' },\n            _react2.default.createElement(\n              'button',\n              { type: 'button', className: 'close', 'data-dismiss': 'modal',\n                'aria-label': gettext(\"Close\") },\n              _react2.default.createElement(\n                'span',\n                { 'aria-hidden': 'true' },\n                '×'\n              )\n            ),\n            _react2.default.createElement(\n              'h4',\n              { className: 'modal-title' },\n              gettext(\"Sign in\")\n            )\n          ),\n          _react2.default.createElement(\n            'form',\n            { onSubmit: this.handleSubmit },\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-body' },\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_username', className: 'form-control', type: 'text',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Username or e-mail\"),\n                    onChange: this.bindInput('username'),\n                    value: this.state.username })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'form-group' },\n                _react2.default.createElement(\n                  'div',\n                  { className: 'control-input' },\n                  _react2.default.createElement('input', { id: 'id_password', className: 'form-control', type: 'password',\n                    disabled: this.state.isLoading,\n                    placeholder: gettext(\"Password\"),\n                    onChange: this.bindInput('password'),\n                    value: this.state.password })\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'modal-footer' },\n              this.getActivationButton(),\n              _react2.default.createElement(\n                _button2.default,\n                { className: 'btn-primary btn-block',\n                  loading: this.state.isLoading },\n                gettext(\"Sign in\")\n              ),\n              _react2.default.createElement(\n                'a',\n                { href: _index2.default.get('FORGOTTEN_PASSWORD_URL'),\n                  className: 'btn btn-default btn-block' },\n                gettext(\"Forgot password?\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_form2.default);\n\nexports.default = _class;\n\n},{\"../index\":127,\"../services/ajax\":134,\"../services/modal\":140,\"../services/snackbar\":143,\"../utils/banned-page\":146,\"./button\":56,\"./form\":68,\"react\":\"react\"}],106:[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\"}],107:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.CompactGuestNav = exports.GuestNav = exports.GuestMenu = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _registerButton = require('../register-button');\n\nvar _registerButton2 = _interopRequireDefault(_registerButton);\n\nvar _signIn = require('../sign-in.js');\n\nvar _signIn2 = _interopRequireDefault(_signIn);\n\nvar _mobileNavbarDropdown = require('../../services/mobile-navbar-dropdown');\n\nvar _mobileNavbarDropdown2 = _interopRequireDefault(_mobileNavbarDropdown);\n\nvar _modal = require('../../services/modal');\n\nvar _modal2 = _interopRequireDefault(_modal);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n\nvar GuestMenu = exports.GuestMenu = function (_React$Component) {\n  _inherits(GuestMenu, _React$Component);\n\n  function GuestMenu() {\n    _classCallCheck(this, GuestMenu);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestMenu).apply(this, arguments));\n  }\n\n  _createClass(GuestMenu, [{\n    key: 'showSignInModal',\n    value: function showSignInModal() {\n      _modal2.default.show(_signIn2.default);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu user-dropdown dropdown-menu-right',\n          role: 'menu' },\n        _react2.default.createElement(\n          'li',\n          { className: 'guest-preview' },\n          _react2.default.createElement(\n            'h4',\n            null,\n            gettext(\"You are browsing as guest.\")\n          ),\n          _react2.default.createElement(\n            'p',\n            null,\n            gettext('Sign in or register to start and participate in discussions.')\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                'button',\n                { type: 'button', className: 'btn btn-default btn-block',\n                  onClick: this.showSignInModal },\n                gettext(\"Sign in\")\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'col-xs-6' },\n              _react2.default.createElement(\n                _registerButton2.default,\n                { className: 'btn-primary btn-block' },\n                gettext(\"Register\")\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestMenu;\n}(_react2.default.Component);\n\nvar GuestNav = exports.GuestNav = function (_GuestMenu) {\n  _inherits(GuestNav, _GuestMenu);\n\n  function GuestNav() {\n    _classCallCheck(this, GuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(GuestNav).apply(this, arguments));\n  }\n\n  _createClass(GuestNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'nav nav-guest' },\n        _react2.default.createElement(\n          'button',\n          { type: 'button', className: 'btn navbar-btn btn-default',\n            onClick: this.showSignInModal },\n          gettext(\"Sign in\")\n        ),\n        _react2.default.createElement(\n          _registerButton2.default,\n          { className: 'navbar-btn btn-primary' },\n          gettext(\"Register\")\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return GuestNav;\n}(GuestMenu);\n\nvar CompactGuestNav = exports.CompactGuestNav = function (_React$Component2) {\n  _inherits(CompactGuestNav, _React$Component2);\n\n  function CompactGuestNav() {\n    _classCallCheck(this, CompactGuestNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactGuestNav).apply(this, arguments));\n  }\n\n  _createClass(CompactGuestNav, [{\n    key: 'showGuestMenu',\n    value: function showGuestMenu() {\n      _mobileNavbarDropdown2.default.show(GuestMenu);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'button',\n        { type: 'button', onClick: this.showGuestMenu },\n        _react2.default.createElement(_avatar2.default, { size: '64' })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return CompactGuestNav;\n}(_react2.default.Component);\n\n},{\"../../services/mobile-navbar-dropdown\":139,\"../../services/modal\":140,\"../avatar\":54,\"../register-button\":98,\"../sign-in.js\":105,\"react\":\"react\"}],108:[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\":107,\"./user-nav\":109,\"react\":\"react\"}],109:[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 _root = require('../change-avatar/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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// 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: 'changeAvatar',\n    value: function changeAvatar() {\n      _modal2.default.show((0, _reactRedux.connect)(_root.select)(_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: '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', onClick: this.changeAvatar },\n            _react2.default.createElement(\n              'span',\n              { className: 'material-icon' },\n              'portrait'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-buttons' },\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(state) {\n  return { user: state.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\":127,\"../../services/mobile-navbar-dropdown\":139,\"../../services/modal\":140,\"../avatar\":54,\"../change-avatar/root\":65,\"react\":\"react\",\"react-redux\":\"react-redux\"}],110:[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.StatusLabel = exports.StatusIcon = undefined;\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: 'getClass',\n    value: function getClass() {\n      var status = '';\n      if (this.props.status.is_banned) {\n        status = 'banned';\n      } else if (this.props.status.is_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online_hidden) {\n        status = 'online';\n      } else if (this.props.status.is_offline_hidden) {\n        status = 'offline';\n      } else if (this.props.status.is_online) {\n        status = 'online';\n      } else if (this.props.status.is_offline) {\n        status = 'offline';\n      }\n\n      return 'user-status user-' + status;\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.getClass() },\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\nvar StatusIcon = exports.StatusIcon = function (_React$Component2) {\n  _inherits(StatusIcon, _React$Component2);\n\n  function StatusIcon() {\n    _classCallCheck(this, StatusIcon);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusIcon).apply(this, arguments));\n  }\n\n  _createClass(StatusIcon, [{\n    key: 'getIcon',\n    value: function getIcon() {\n      if (this.props.status.is_banned) {\n        return 'remove_circle_outline';\n      } else if (this.props.status.is_hidden) {\n        return 'help_outline';\n      } else if (this.props.status.is_online_hidden) {\n        return 'label';\n      } else if (this.props.status.is_offline_hidden) {\n        return 'label_outline';\n      } else if (this.props.status.is_online) {\n        return 'lens';\n      } else if (this.props.status.is_offline) {\n        return 'panorama_fish_eye';\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: 'material-icon status-icon' },\n        this.getIcon()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusIcon;\n}(_react2.default.Component);\n\nvar StatusLabel = exports.StatusLabel = function (_React$Component3) {\n  _inherits(StatusLabel, _React$Component3);\n\n  function StatusLabel() {\n    _classCallCheck(this, StatusLabel);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(StatusLabel).apply(this, arguments));\n  }\n\n  _createClass(StatusLabel, [{\n    key: 'getHelp',\n    value: function getHelp() {\n      if (this.props.status.is_banned) {\n        if (this.props.status.banned_until) {\n          return interpolate(gettext(\"%(username)s is banned until %(ban_expires)s\"), {\n            username: this.props.user.username,\n            ban_expires: this.props.status.banned_until.format('LL, LT')\n          }, true);\n        } else {\n          return interpolate(gettext(\"%(username)s is banned\"), {\n            username: this.props.user.username\n          }, true);\n        }\n      } else if (this.props.status.is_hidden) {\n        return interpolate(gettext(\"%(username)s is hiding presence\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_online_hidden) {\n        return interpolate(gettext(\"%(username)s is online (hidden)\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline_hidden) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s (hidden)\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      } else if (this.props.status.is_online) {\n        return interpolate(gettext(\"%(username)s is online\"), {\n          username: this.props.user.username\n        }, true);\n      } else if (this.props.status.is_offline) {\n        return interpolate(gettext(\"%(username)s was last seen %(last_click)s\"), {\n          username: this.props.user.username,\n          last_click: this.props.status.last_click.fromNow()\n        }, true);\n      }\n    }\n  }, {\n    key: 'getLabel',\n    value: function getLabel() {\n      if (this.props.status.is_banned) {\n        return gettext(\"Banned\");\n      } else if (this.props.status.is_hidden) {\n        return gettext(\"Hidden\");\n      } else if (this.props.status.is_online_hidden) {\n        return gettext(\"Online (hidden)\");\n      } else if (this.props.status.is_offline_hidden) {\n        return gettext(\"Offline (hidden)\");\n      } else if (this.props.status.is_online) {\n        return gettext(\"Online\");\n      } else if (this.props.status.is_offline) {\n        return gettext(\"Offline\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'span',\n        { className: this.props.className || \"status-label\",\n          title: this.getHelp() },\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return StatusLabel;\n}(_react2.default.Component);\n\n},{\"react\":\"react\"}],111:[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 _avatar = require('./avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'renderUserAvatar',\n    value: function renderUserAvatar(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'user-avatar' },\n          _react2.default.createElement(_avatar2.default, { user: item.changed_by, size: '100' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-avatar' },\n            _react2.default.createElement(_avatar2.default, { size: '100' })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderUsername',\n    value: function renderUsername(item) {\n      if (item.changed_by) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'a',\n          { href: item.changed_by.absolute_url, className: 'item-title' },\n          item.changed_by.username\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title' },\n            item.changed_by_username\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'renderHistory',\n    value: function renderHistory() {\n      var _this2 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          this.props.changes.map(function (item) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: item.id },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _this2.renderUserAvatar(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _this2.renderUsername(item)\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                item.old_username,\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                item.new_username\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'abbr',\n                  { title: item.changed_on.format('LLL') },\n                  item.changed_on.fromNow()\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      if (this.props.emptyMessage) {\n        return this.props.emptyMessage;\n      } else {\n        return gettext(\"No name changes have been recorded for your account.\");\n      }\n    }\n  }, {\n    key: 'renderEmptyHistory',\n    value: function renderEmptyHistory() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-ready' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          _react2.default.createElement(\n            'li',\n            { className: 'list-group-item empty-message' },\n            this.getEmptyMessage()\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'renderHistoryPreview',\n    value: function renderHistoryPreview() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'username-history ui-preview' },\n        _react2.default.createElement(\n          'ul',\n          { className: 'list-group' },\n          random.range(3, 5).map(function (i) {\n            return _react2.default.createElement(\n              'li',\n              { className: 'list-group-item', key: i },\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-avatar' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-avatar' },\n                  _react2.default.createElement(_avatar2.default, { size: '100' })\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-author' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 100) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'material-icon' },\n                  'arrow_forward'\n                ),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                  ' '\n                )\n              ),\n              _react2.default.createElement(\n                'div',\n                { className: 'username-change-date' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'ui-preview-text', style: { width: random.int(50, 100) + \"px\" } },\n                  ' '\n                )\n              )\n            );\n          })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.props.isLoaded) {\n        if (this.props.changes.length) {\n          return this.renderHistory();\n        } else {\n          return this.renderEmptyHistory();\n        }\n      } else {\n        return this.renderHistoryPreview();\n      }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/random\":151,\"./avatar\":54,\"react\":\"react\"}],112:[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 _userCard = require('./user-card');\n\nvar _userCard2 = _interopRequireDefault(_userCard);\n\nvar _userPreview = require('./user-preview');\n\nvar _userPreview2 = _interopRequireDefault(_userPreview);\n\nvar _batch = require('../../utils/batch');\n\nvar _batch2 = _interopRequireDefault(_batch);\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\n// jshint ignore:line\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: 'getPager',\n    value: function getPager() {\n      if (this.props.pages > 1) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(Pager, this.props);\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.className) {\n        return \"users-cards-list \" + this.props.className + \" ui-ready\";\n      } else {\n        return \"users-cards-list ui-ready\";\n      }\n    }\n  }, {\n    key: 'getColClassName',\n    value: function getColClassName() {\n      return \"col-md-\" + 12 / this.props.cols;\n    }\n  }, {\n    key: 'getBody',\n    value: function getBody() {\n      var _this2 = this;\n\n      if (this.props.isLoaded) {\n        /* jshint ignore:start */\n        return (0, _batch2.default)(this.props.users, this.props.cols).map(function (row, r) {\n          return _react2.default.createElement(\n            'div',\n            { className: 'row', key: r },\n            row.map(function (user) {\n              return _react2.default.createElement(\n                'div',\n                { className: _this2.getColClassName(), key: user.id },\n                _react2.default.createElement(_userCard2.default, { user: user,\n                  showStatus: _this2.props.showStatus,\n                  showRank: _this2.props.showRank })\n              );\n            })\n          );\n        });\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          var row = [];\n          for (var i = 0; i < this.props.cols; i++) {\n            row.push(i);\n          }\n\n          return _react2.default.createElement(\n            'div',\n            { className: 'row' },\n            row.map(function (i) {\n              return _react2.default.createElement(\n                'div',\n                { className: _this2.getColClassName(), key: i },\n                _react2.default.createElement(_userPreview2.default, { showStatus: _this2.props.showStatus })\n              );\n            })\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'users-cards-list ui-ready' },\n        this.getBody()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../utils/batch\":147,\"./user-card\":113,\"./user-preview\":114,\"react\":\"react\"}],113:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\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 _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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.user.rank.css_class) {\n        return 'user-card user-card-' + this.props.user.rank.css_class + ' ui-ready';\n      } else {\n        return 'user-card ui-ready';\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.showStatus) {\n        if (this.props.user.status) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            _userStatus2.default,\n            { user: this.props.user, status: this.props.user.status },\n            _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n              status: this.props.user.status }),\n            _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n              status: this.props.user.status,\n              className: 'status-label' })\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'span',\n              { className: 'user-status' },\n              _react2.default.createElement(\n                'span',\n                { className: 'status-icon ui-preview' },\n                ' '\n              ),\n              _react2.default.createElement(\n                'span',\n                { className: 'status-label ui-preview' },\n                ' '\n              )\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.showRank) {\n        if (this.props.user.rank.is_tab) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'a',\n            { href: this.props.user.rank.absolute_url,\n              className: 'item-title rank-name' },\n            this.props.user.rank.name\n          );\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'span',\n              { className: 'item-title rank-name' },\n              this.props.user.rank.name\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title' },\n          this.props.user.title\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getUserJoinedOn',\n    value: function getUserJoinedOn() {\n      /* jshint ignore:start */\n      var title = interpolate(gettext(\"Joined on %(joined_on)s\"), {\n        'joined_on': this.props.user.joined_on.format('LL, LT')\n      }, true);\n\n      var age = interpolate(gettext(\"Joined %(joined_on)s\"), {\n        'joined_on': this.props.user.joined_on.fromNow()\n      }, true);\n\n      return _react2.default.createElement(\n        'span',\n        { className: 'user-joined-on', title: title },\n        age\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'user-card-bg-image' },\n          _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '400', className: 'bg-image' }),\n          _react2.default.createElement(\n            'div',\n            { className: 'user-card-bg' },\n            _react2.default.createElement(\n              'div',\n              { className: 'user-details' },\n              _react2.default.createElement(\n                'div',\n                { className: 'user-avatar' },\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.user.absolute_url },\n                  _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '400' })\n                )\n              ),\n              _react2.default.createElement(\n                'h4',\n                { className: 'user-name' },\n                _react2.default.createElement(\n                  'a',\n                  { href: this.props.user.absolute_url, className: 'item-title' },\n                  this.props.user.username\n                )\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'user-subscript' },\n                this.getUserStatus(),\n                this.getRankName(),\n                this.getUserTitle(),\n                this.getUserJoinedOn()\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'user-card-stats' },\n              _react2.default.createElement(\n                'ul',\n                { className: 'list-unstyled' },\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-posts-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.posts\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"posts\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-threads-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.threads\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"threads\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-followers-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    this.props.user.followers\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"followers\")\n                  )\n                )\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},{\"../avatar\":54,\"../user-status\":110,\"react\":\"react\"}],114:[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 _avatar = require('../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.showStatus) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-status' },\n          _react2.default.createElement(\n            'span',\n            { className: 'status-icon ui-preview' },\n            ' '\n          ),\n          _react2.default.createElement(\n            'span',\n            { className: 'status-label ui-preview' },\n            ' '\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'user-card ui-preview' },\n        _react2.default.createElement(\n          'div',\n          { className: 'user-card-bg-image' },\n          _react2.default.createElement(_avatar2.default, { size: '400', className: 'bg-image' }),\n          _react2.default.createElement(\n            'div',\n            { className: 'user-card-bg' },\n            _react2.default.createElement(\n              'div',\n              { className: 'user-details' },\n              _react2.default.createElement(\n                'div',\n                { className: 'user-avatar' },\n                _react2.default.createElement(_avatar2.default, { size: '400' })\n              ),\n              _react2.default.createElement(\n                'h4',\n                { className: 'user-name' },\n                _react2.default.createElement(\n                  'span',\n                  { className: 'item-title' },\n                  _react2.default.createElement(\n                    'span',\n                    { className: 'ui-preview-text', style: { width: random.int(60, 150) + \"px\" } },\n                    ' '\n                  )\n                )\n              ),\n              _react2.default.createElement(\n                'p',\n                { className: 'user-subscript' },\n                this.getUserStatus(),\n                _react2.default.createElement(\n                  'span',\n                  { className: 'user-joined-on' },\n                  _react2.default.createElement(\n                    'span',\n                    { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                    ' '\n                  )\n                )\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'user-card-stats' },\n              _react2.default.createElement(\n                'ul',\n                { className: 'list-unstyled' },\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-posts-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"posts\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-threads-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"threads\")\n                  )\n                ),\n                _react2.default.createElement(\n                  'li',\n                  { className: 'user-followers-count' },\n                  _react2.default.createElement(\n                    'strong',\n                    null,\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'ui-preview-text' },\n                      ' '\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'small',\n                    null,\n                    gettext(\"followers\")\n                  )\n                )\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},{\"../../utils/random\":151,\"../avatar\":54,\"react\":\"react\"}],115:[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: 'getEmptyMessage',\n    value: function getEmptyMessage() {\n      return interpolate(gettext(\"No users have posted any new messages during last %(days)s days.\"), { 'days': this.props.trackedPeriod }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getEmptyMessage()\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\"}],116:[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 _reactRouter = require('react-router');\n\nvar _avatar = require('../../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _userStatus = require('../../user-status');\n\nvar _userStatus2 = _interopRequireDefault(_userStatus);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\n// jshint ignore:line\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: 'getClassName',\n    value: function getClassName() {\n      if (this.props.rank.css_class) {\n        return \"list-group-item list-group-rank-\" + this.props.rank.css_class;\n      } else {\n        return \"list-group-item\";\n      }\n    }\n  }, {\n    key: 'getUserStatus',\n    value: function getUserStatus() {\n      if (this.props.user.status) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          _userStatus2.default,\n          { user: this.props.user, status: this.props.user.status },\n          _react2.default.createElement(_userStatus.StatusIcon, { user: this.props.user,\n            status: this.props.user.status }),\n          _react2.default.createElement(_userStatus.StatusLabel, { user: this.props.user,\n            status: this.props.user.status,\n            className: 'status-label hidden-xs hidden-sm' })\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'user-status' },\n            _react2.default.createElement(\n              'span',\n              { className: 'status-icon ui-preview' },\n              ' '\n            ),\n            _react2.default.createElement(\n              'span',\n              { className: 'status-label ui-preview hidden-xs hidden-sm' },\n              ' '\n            )\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getRankName',\n    value: function getRankName() {\n      if (this.props.rank.is_tab) {\n        /* jshint ignore:start */\n        var rankUrl = _index2.default.get('USERS_LIST_URL') + this.props.rank.slug + '/';\n        return _react2.default.createElement(\n          _reactRouter.Link,\n          { to: rankUrl, className: 'item-title rank-name' },\n          this.props.rank.name\n        );\n        /* jshint ignore:end */\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(\n            'span',\n            { className: 'item-title rank-name' },\n            this.props.rank.name\n          );\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'getUserTitle',\n    value: function getUserTitle() {\n      if (this.props.user.title) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'user-title hidden-xs hidden-sm' },\n          this.props.user.title\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        'li',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user-avatar' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '50' })\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-user' },\n          _react2.default.createElement(\n            'div',\n            { className: 'user-name' },\n            _react2.default.createElement(\n              'a',\n              { href: this.props.user.absolute_url, className: 'item-title' },\n              this.props.user.username\n            )\n          ),\n          this.getUserStatus(),\n          this.getRankName(),\n          this.getUserTitle()\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-position' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            '#',\n            this.props.counter\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Rank\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-counted' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.meta.score\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Ranked posts\")\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: 'rank-posts-total' },\n          _react2.default.createElement(\n            'strong',\n            null,\n            this.props.user.posts\n          ),\n          _react2.default.createElement(\n            'small',\n            null,\n            gettext(\"Total posts\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../avatar\":54,\"../../user-status\":110,\"react\":\"react\",\"react-router\":\"react-router\"}],117:[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 _avatar = require('../../avatar');\n\nvar _avatar2 = _interopRequireDefault(_avatar);\n\nvar _random = require('../../../utils/random');\n\nvar random = _interopRequireWildcard(_random);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n\n// jshint ignore:line\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: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead ui-preview-paragraph' },\n            random.range(3, 4).map(function (i) {\n              return _react2.default.createElement(\n                'span',\n                { key: i, className: 'ui-preview-text', style: { width: random.int(50, 120) + \"px\" } },\n                ' '\n              );\n            })\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-preview' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              random.range(5, 10).map(function (i, counter) {\n                return _react2.default.createElement(\n                  'li',\n                  { key: i, className: 'list-group-item' },\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user-avatar' },\n                    _react2.default.createElement(\n                      'span',\n                      null,\n                      _react2.default.createElement(_avatar2.default, { size: '50' })\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-user' },\n                    _react2.default.createElement(\n                      'div',\n                      { className: 'user-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'item-title' },\n                        _react2.default.createElement(\n                          'span',\n                          { className: 'ui-preview-text', style: { width: random.int(30, 80) + \"px\" } },\n                          ' '\n                        )\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-status' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-icon ui-preview' },\n                        ' '\n                      ),\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'status-label ui-preview hidden-xs hidden-sm' },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'rank-name' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'span',\n                      { className: 'user-title hidden-xs hidden-sm' },\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: random.int(30, 50) + \"px\" } },\n                        ' '\n                      )\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-position' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Rank\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-counted' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Ranked posts\")\n                    )\n                  ),\n                  _react2.default.createElement(\n                    'div',\n                    { className: 'rank-posts-total' },\n                    _react2.default.createElement(\n                      'strong',\n                      null,\n                      _react2.default.createElement(\n                        'span',\n                        { className: 'ui-preview-text', style: { width: \"30px\" } },\n                        ' '\n                      )\n                    ),\n                    _react2.default.createElement(\n                      'small',\n                      null,\n                      gettext(\"Total posts\")\n                    )\n                  )\n                );\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},{\"../../../utils/random\":151,\"../../avatar\":54,\"react\":\"react\"}],118:[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 _listItem = require('./list-item');\n\nvar _listItem2 = _interopRequireDefault(_listItem);\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 _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: 'getLeadMessage',\n    value: function getLeadMessage() {\n      var message = ngettext(\"%(posters)s most active poster from last %(days)s days.\", \"%(posters)s most active posters from last %(days)s days.\", this.props.count);\n\n      return interpolate(message, {\n        posters: this.props.count,\n        days: this.props.trackedPeriod\n      }, true);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'active-posters-list' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'p',\n            { className: 'lead' },\n            this.getLeadMessage()\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'active-posters ui-ready' },\n            _react2.default.createElement(\n              'ul',\n              { className: 'list-group' },\n              this.props.users.map(function (user, i) {\n                return _react2.default.createElement(_listItem2.default, { user: user,\n                  rank: user.rank,\n                  counter: i + 1,\n                  key: user.id });\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},{\"./list-item\":116,\"react\":\"react\"}],119:[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 _listEmpty = require('./list-empty');\n\nvar _listEmpty2 = _interopRequireDefault(_listEmpty);\n\nvar _listLoading = require('./list-loading');\n\nvar _listLoading2 = _interopRequireDefault(_listLoading);\n\nvar _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../reducers/users');\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } // jshint ignore:line\n// jshint ignore:line\n// jshint ignore:line\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n      _this.setState({\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      });\n    };\n\n    if (_index2.default.has('USERS')) {\n      _this.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling();\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = {\n        isLoaded: true,\n\n        trackedPeriod: data.tracked_period,\n        count: data.count\n      };\n\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling() {\n      _polls2.default.start({\n        poll: 'active-posters',\n        url: _index2.default.get('USERS_API'),\n        data: {\n          list: 'active'\n        },\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.extra.name,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('active-posters');\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_list2.default, { users: this.props.users,\n            trackedPeriod: this.state.trackedPeriod,\n            count: this.state.count });\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(_listEmpty2.default, { trackedPeriod: this.state.trackedPeriod });\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_listLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../reducers/users\":133,\"../../../services/page-title\":141,\"../../../services/polls\":142,\"../../../services/store\":144,\"./list\":118,\"./list-empty\":115,\"./list-loading\":117,\"react\":\"react\"}],120:[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.CompactNav = exports.TabsNav = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRouter = require('react-router');\n\nvar _li = require('../li');\n\nvar _li2 = _interopRequireDefault(_li);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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\n//jshint ignore:line\n\n// jshint ignore:start\nvar listUrl = function listUrl(baseUrl, list) {\n  var url = baseUrl;\n  if (list.component === 'rank') {\n    url += list.slug;\n  } else {\n    url += list.component;\n  }\n  return url + '/';\n};\n\nvar navLinks = function navLinks(baseUrl, lists, hideNav) {\n  return lists.map(function (list) {\n    var url = listUrl(baseUrl, list);\n    return _react2.default.createElement(\n      _li2.default,\n      { path: url,\n        key: url },\n      _react2.default.createElement(\n        _reactRouter.Link,\n        { to: url, onClick: hideNav },\n        list.name\n      )\n    );\n  });\n};\n// jshint ignore:end\n\nvar TabsNav = exports.TabsNav = function (_React$Component) {\n  _inherits(TabsNav, _React$Component);\n\n  function TabsNav() {\n    _classCallCheck(this, TabsNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(TabsNav).apply(this, arguments));\n  }\n\n  _createClass(TabsNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'nav nav-pills' },\n        navLinks(this.props.baseUrl, this.props.lists)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return TabsNav;\n}(_react2.default.Component);\n\nvar CompactNav = exports.CompactNav = function (_React$Component2) {\n  _inherits(CompactNav, _React$Component2);\n\n  function CompactNav() {\n    _classCallCheck(this, CompactNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(CompactNav).apply(this, arguments));\n  }\n\n  _createClass(CompactNav, [{\n    key: 'render',\n    value: function render() {\n      // jshint ignore:start\n      return _react2.default.createElement(\n        'ul',\n        { className: 'dropdown-menu', role: 'menu' },\n        navLinks(this.props.baseUrl, this.props.lists, this.props.hideNav)\n      );\n      // jshint ignore:end\n    }\n  }]);\n\n  return CompactNav;\n}(_react2.default.Component);\n\n},{\"../../index\":127,\"../li\":69,\"react\":\"react\",\"react-router\":\"react-router\"}],121:[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 _root = require('../../users-list/root');\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; }\n\n// jshint ignore:line\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        null,\n        _react2.default.createElement(_root2.default, { isLoaded: false, cols: 3, showStatus: true })\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../users-list/root\":112,\"react\":\"react\"}],122:[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 _pager = require('./pager');\n\nvar _pager2 = _interopRequireDefault(_pager);\n\nvar _root = require('../../users-list/root');\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 _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: 'getPager',\n    value: function getPager() {\n      if (this.props.pages > 1) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(_pager2.default, this.props);\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        null,\n        _react2.default.createElement(_root2.default, { users: this.props.users,\n          showStatus: true,\n          cols: 3,\n          isLoaded: true }),\n        this.getPager()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../users-list/root\":112,\"./pager\":123,\"react\":\"react\"}],123:[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 _reactRouter = require('react-router');\n\nvar _resetScroll = require('../../../utils/reset-scroll');\n\nvar _resetScroll2 = _interopRequireDefault(_resetScroll);\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 _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: 'getPreviousPage',\n    value: function getPreviousPage() {\n      if (this.props.previous || this.props.first) {\n        /* jshint ignore:start */\n        var url = this.props.baseUrl;\n        if (this.props.previous) {\n          url += this.props.previous + '/';\n        }\n\n        return _react2.default.createElement(\n          'li',\n          { className: 'previous' },\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: url, onClick: _resetScroll2.default },\n            _react2.default.createElement(\n              'span',\n              { 'aria-hidden': 'true', className: 'material-icon' },\n              'arrow_back'\n            )\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getNextPage',\n    value: function getNextPage() {\n      if (this.props.next) {\n        /* jshint ignore:start */\n        var url = this.props.baseUrl + this.props.next + '/';\n        return _react2.default.createElement(\n          'li',\n          { className: 'next' },\n          _react2.default.createElement(\n            _reactRouter.Link,\n            { to: url, onClick: _resetScroll2.default },\n            _react2.default.createElement(\n              'span',\n              { 'aria-hidden': 'true', className: 'material-icon' },\n              'arrow_forward'\n            )\n          )\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getProgessBar',\n    value: function getProgessBar() {\n      var _this2 = this;\n\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'pager-progress-bar' },\n        this.props.page_range.map(function (page) {\n          var className = page === _this2.props.page ? 'active' : null;\n          var url = _this2.props.baseUrl;\n\n          if (page > 1) {\n            url += page + '/';\n          }\n\n          return _react2.default.createElement(\n            'li',\n            { key: page, className: className },\n            _react2.default.createElement(\n              _reactRouter.Link,\n              { to: url, onClick: _resetScroll2.default },\n              page\n            )\n          );\n        })\n      );\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'pager-undercontent' },\n        _react2.default.createElement(\n          'nav',\n          null,\n          _react2.default.createElement(\n            'ul',\n            { className: 'pager' },\n            this.getPreviousPage(),\n            this.getNextPage()\n          ),\n          this.getProgessBar()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../utils/reset-scroll\":152,\"react\":\"react\",\"react-router\":\"react-router\"}],124:[function(require,module,exports){\n'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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 _list = require('./list');\n\nvar _list2 = _interopRequireDefault(_list);\n\nvar _listLoading = require('./list-loading');\n\nvar _listLoading2 = _interopRequireDefault(_listLoading);\n\nvar _index = require('../../../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _users = require('../../../reducers/users');\n\nvar _polls = require('../../../services/polls');\n\nvar _polls2 = _interopRequireDefault(_polls);\n\nvar _store = require('../../../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nvar _pageTitle = require('../../../services/page-title');\n\nvar _pageTitle2 = _interopRequireDefault(_pageTitle);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.update = function (data) {\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n\n      data.isLoaded = true;\n      _this.setState(data);\n    };\n\n    if (_index2.default.has('USERS')) {\n      _this.initWithPreloadedData(_index2.default.pop('USERS'));\n    } else {\n      _this.initWithoutPreloadedData();\n    }\n\n    _this.startPolling(props.params.page || 1);\n    return _this;\n  }\n\n  _createClass(_class, [{\n    key: 'initWithPreloadedData',\n    value: function initWithPreloadedData(data) {\n      this.state = Object.assign(data, {\n        isLoaded: true\n      });\n      _store2.default.dispatch((0, _users.dehydrate)(data.results));\n    }\n  }, {\n    key: 'initWithoutPreloadedData',\n    value: function initWithoutPreloadedData() {\n      this.state = {\n        isLoaded: false\n      };\n    }\n  }, {\n    key: 'startPolling',\n    value: function startPolling(page) {\n      _polls2.default.start({\n        poll: 'rank-users',\n        url: _index2.default.get('USERS_API'),\n        data: {\n          rank: this.props.route.rank.id,\n          page: page\n        },\n        frequency: 90 * 1000,\n        update: this.update\n      });\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'componentDidMount',\n\n    /* jshint ignore:end */\n\n    value: function componentDidMount() {\n      _pageTitle2.default.set({\n        title: this.props.route.rank.name,\n        page: this.props.params.page || null,\n        parent: gettext(\"Users\")\n      });\n    }\n  }, {\n    key: 'componentWillUnmount',\n    value: function componentWillUnmount() {\n      _polls2.default.stop('rank-users');\n    }\n  }, {\n    key: 'componentWillReceiveProps',\n    value: function componentWillReceiveProps(nextProps) {\n      if (this.props.params.page !== nextProps.params.page) {\n        _pageTitle2.default.set({\n          title: this.props.route.rank.name,\n          page: nextProps.params.page || null,\n          parent: gettext(\"Users\")\n        });\n\n        this.setState({\n          isLoaded: false\n        });\n\n        _polls2.default.stop('rank-users');\n        this.startPolling(nextProps.params.page);\n      }\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      if (this.props.route.rank.css_class) {\n        return 'rank-users-list rank-users-' + this.props.route.rank.css_class;\n      } else {\n        return 'rank-users-list';\n      }\n    }\n  }, {\n    key: 'getRankDescription',\n    value: function getRankDescription() {\n      if (this.props.route.rank.description) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'rank-description' },\n          _react2.default.createElement('div', { className: 'lead', dangerouslySetInnerHTML: {\n              __html: this.props.route.rank.description.html\n            } })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getComponent',\n    value: function getComponent() {\n      if (this.state.isLoaded) {\n        if (this.state.count > 0) {\n          /* jshint ignore:start */\n          var baseUrl = _index2.default.get('USERS_LIST_URL') + this.props.route.rank.slug + '/';\n          return _react2.default.createElement(_list2.default, _extends({ baseUrl: baseUrl,\n            users: this.props.users\n          }, this.state));\n          /* jshint ignore:end */\n        } else {\n            /* jshint ignore:start */\n            return _react2.default.createElement(\n              'p',\n              { className: 'lead' },\n              gettext(\"There are no users with this rank at the moment.\")\n            );\n            /* jshint ignore:end */\n          }\n      } else {\n          /* jshint ignore:start */\n          return _react2.default.createElement(_listLoading2.default, null);\n          /* jshint ignore:end */\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          this.getRankDescription(),\n          this.getComponent()\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../../index\":127,\"../../../reducers/users\":133,\"../../../services/page-title\":141,\"../../../services/polls\":142,\"../../../services/store\":144,\"./list\":122,\"./list-loading\":121,\"react\":\"react\"}],125:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.select = select;\nexports.paths = paths;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactRedux = require('react-redux');\n\nvar _navs = require('./navs');\n\nvar _root = require('./active-posters/root');\n\nvar _root2 = _interopRequireDefault(_root);\n\nvar _root3 = require('./rank/root');\n\nvar _root4 = _interopRequireDefault(_root3);\n\nvar _index = require('../../index');\n\nvar _index2 = _interopRequireDefault(_index);\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 (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class(props) {\n    _classCallCheck(this, _class);\n\n    var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(_class).call(this, props));\n\n    _this.toggleNav = function () {\n      if (_this.state.dropdown) {\n        _this.setState({\n          dropdown: false\n        });\n      } else {\n        _this.setState({\n          dropdown: true\n        });\n      }\n    };\n\n    _this.hideNav = function () {\n      _this.setState({\n        dropdown: false\n      });\n    };\n\n    _this.state = {\n      dropdown: false\n    };\n    return _this;\n  }\n\n  /* jshint ignore:start */\n\n  _createClass(_class, [{\n    key: 'getToggleNavClassName',\n\n    /* jshint ignore:end */\n\n    value: function getToggleNavClassName() {\n      if (this.state.dropdown) {\n        return 'btn btn-default btn-icon open';\n      } else {\n        return 'btn btn-default btn-icon';\n      }\n    }\n  }, {\n    key: 'getCompactNavClassName',\n    value: function getCompactNavClassName() {\n      if (this.state.dropdown) {\n        return 'compact-nav open';\n      } else {\n        return 'compact-nav';\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-users-lists' },\n        _react2.default.createElement(\n          'div',\n          { className: 'page-header tabbed' },\n          _react2.default.createElement(\n            'div',\n            { className: 'container' },\n            _react2.default.createElement(\n              'h1',\n              { className: 'pull-left' },\n              gettext(\"Users\")\n            ),\n            _react2.default.createElement(\n              'button',\n              { className: 'btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg',\n                type: 'button',\n                onClick: this.toggleNav,\n                'aria-haspopup': 'true',\n                'aria-expanded': this.state.dropdown ? 'true' : 'false' },\n              _react2.default.createElement(\n                'i',\n                { className: 'material-icon' },\n                'menu'\n              )\n            )\n          ),\n          _react2.default.createElement(\n            'div',\n            { className: 'page-tabs hidden-xs hidden-sm' },\n            _react2.default.createElement(\n              'div',\n              { className: 'container' },\n              _react2.default.createElement(_navs.TabsNav, { lists: _index2.default.get('USERS_LISTS'),\n                baseUrl: _index2.default.get('USERS_LIST_URL') })\n            )\n          )\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.getCompactNavClassName() },\n          _react2.default.createElement(_navs.CompactNav, { lists: _index2.default.get('USERS_LISTS'),\n            baseUrl: _index2.default.get('USERS_LIST_URL'),\n            hideNav: this.hideNav })\n        ),\n        this.props.children\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\nfunction select(store) {\n  return {\n    'tick': store.tick.tick,\n    'user': store.auth.user,\n    'users': store.users\n  };\n}\n\nfunction paths() {\n  var paths = [];\n\n  _index2.default.get('USERS_LISTS').forEach(function (item) {\n    if (item.component === 'rank') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/:page/',\n        component: (0, _reactRedux.connect)(select)(_root4.default),\n        rank: item\n      });\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.slug + '/',\n        component: (0, _reactRedux.connect)(select)(_root4.default),\n        rank: item\n      });\n    } else if (item.component === 'active-posters') {\n      paths.push({\n        path: _index2.default.get('USERS_LIST_URL') + item.component + '/',\n        component: (0, _reactRedux.connect)(select)(_root2.default),\n        extra: {\n          name: item.name\n        }\n      });\n    }\n  });\n\n  return paths;\n}\n\n},{\"../../index\":127,\"./active-posters/root\":119,\"./navs\":120,\"./rank/root\":124,\"react\":\"react\",\"react-redux\":\"react-redux\"}],126:[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    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.toggle = function () {\n      _this.props.onChange({\n        target: {\n          value: !_this.props.value\n        }\n      });\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: \"getClassName\",\n    value: function getClassName() {\n      if (this.props.value) {\n        return \"btn btn-yes-no btn-yes-no-on\";\n      } else {\n        return \"btn btn-yes-no btn-yes-no-off\";\n      }\n    }\n  }, {\n    key: \"getIcon\",\n    value: function getIcon() {\n      if (this.props.value) {\n        return this.props.iconOn || 'check_box';\n      } else {\n        return this.props.iconOff || 'check_box_outline_blank';\n      }\n    }\n  }, {\n    key: \"getLabel\",\n    value: function getLabel() {\n      if (this.props.value) {\n        return this.props.labelOn || gettext(\"yes\");\n      } else {\n        return this.props.labelOff || gettext(\"no\");\n      }\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: \"render\",\n\n    /* jshint ignore:end */\n\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"button\",\n        { type: \"button\",\n          onClick: this.toggle,\n          className: this.getClassName(),\n          id: this.props.id || null,\n          \"aria-describedby\": this.props['aria-describedby'] || null,\n          disabled: this.props.disabled || false },\n        _react2.default.createElement(\n          \"span\",\n          { className: \"material-icon\" },\n          this.getIcon()\n        ),\n        this.getLabel()\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],127:[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[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    key: 'pop',\n    value: function pop(key) {\n      if (this.has(key)) {\n        var value = this._context[key];\n        this._context[key] = null;\n        return value;\n      } else {\n        return 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\":150}],128:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.PATCH_USER = exports.initialState = undefined;\nexports.patchUser = patchUser;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.default = auth;\n\nvar _users = require('./users');\n\nvar initialState = exports.initialState = {\n  signedIn: false,\n  signedOut: false\n};\n\nvar PATCH_USER = exports.PATCH_USER = 'PATCH_USER';\nvar SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction patchUser(patch) {\n  return {\n    type: PATCH_USER,\n    patch: patch\n  };\n}\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case PATCH_USER:\n      var newState = Object.assign({}, state);\n      newState.user = Object.assign({}, state.user, action.patch);\n      return newState;\n\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    case _users.UPDATE_AVATAR:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState = Object.assign({}, state);\n        _newState.user = Object.assign({}, state.user, {\n          'avatar_hash': action.avatarHash\n        });\n        return _newState;\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.isAuthenticated && state.user.id === action.userId) {\n        var _newState2 = Object.assign({}, state);\n        _newState2.user = Object.assign({}, state.user, {\n          username: action.username,\n          slug: action.slug\n        });\n        return _newState2;\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":133}],129:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.PATCH_PROFILE = exports.DEHYDRATE_PROFILE = undefined;\nexports.dehydrate = dehydrate;\nexports.patchProfile = patchProfile;\nexports.default = auth;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _users = require('./users');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DEHYDRATE_PROFILE = exports.DEHYDRATE_PROFILE = 'DEHYDRATE_PROFILE';\nvar PATCH_PROFILE = exports.PATCH_PROFILE = 'PATCH_PROFILE';\n\nfunction dehydrate(profile) {\n  return {\n    type: DEHYDRATE_PROFILE,\n    profile: profile\n  };\n}\n\nfunction patchProfile(patch) {\n  return {\n    type: PATCH_PROFILE,\n    patch: patch\n  };\n}\n\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  switch (action.type) {\n    case DEHYDRATE_PROFILE:\n      return Object.assign({}, action.profile, {\n        joined_on: (0, _moment2.default)(action.profile.joined_on),\n        status: (0, _users.dehydrateStatus)(action.profile.status)\n      });\n\n    case PATCH_PROFILE:\n      return Object.assign({}, state, action.patch);\n\n    case _users.UPDATE_AVATAR:\n      if (state.id === action.userId) {\n        return Object.assign({}, state, {\n          avatar_hash: action.avatarHash\n        });\n      }\n      return state;\n\n    case _users.UPDATE_USERNAME:\n      if (state.id === action.userId) {\n        return Object.assign({}, state, {\n          username: action.username,\n          slug: action.slug\n        });\n      }\n      return state;\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":133,\"moment\":\"moment\"}],130:[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},{}],131:[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},{}],132:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.DEHYDRATE_HISTORY = exports.APPEND_HISTORY = exports.ADD_NAME_CHANGE = undefined;\nexports.addNameChange = addNameChange;\nexports.append = append;\nexports.dehydrate = dehydrate;\nexports.default = username;\n\nvar _users = require('./users');\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar ADD_NAME_CHANGE = exports.ADD_NAME_CHANGE = 'ADD_NAME_CHANGE';\nvar APPEND_HISTORY = exports.APPEND_HISTORY = 'APPEND_HISTORY';\nvar DEHYDRATE_HISTORY = exports.DEHYDRATE_HISTORY = 'DEHYDRATE_HISTORY';\n\nfunction addNameChange(change, user, changedBy) {\n  return {\n    type: ADD_NAME_CHANGE,\n    change: change,\n    user: user,\n    changedBy: changedBy\n  };\n}\n\nfunction append(items) {\n  return {\n    type: APPEND_HISTORY,\n    items: items\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_HISTORY,\n    items: items\n  };\n}\n\nfunction username() {\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  switch (action.type) {\n    case ADD_NAME_CHANGE:\n      var newState = state.slice();\n      newState.unshift({\n        id: Math.floor(Date.now() / 1000), // just small hax for getting id\n        changed_by: action.changedBy,\n        changed_by_username: action.changedBy.username,\n        changed_on: (0, _moment2.default)(),\n        new_username: action.change.username,\n        old_username: action.user.username\n      });\n      return newState;\n\n    case APPEND_HISTORY:\n      return state.concat(action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      }));\n\n    case DEHYDRATE_HISTORY:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          changed_on: (0, _moment2.default)(item.changed_on)\n        });\n      });\n\n    case _users.UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'avatar_hash': action.avatarHash\n          });\n        }\n\n        return item;\n      });\n\n    case _users.UPDATE_USERNAME:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.changed_by && item.changed_by.id === action.userId) {\n          item.changed_by = Object.assign({}, item.changed_by, {\n            'username': action.username,\n            'slug': action.slug\n          });\n        }\n\n        return Object.assign({}, item);\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"./users\":133,\"moment\":\"moment\"}],133:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.UPDATE_USERNAME = exports.UPDATE_AVATAR = exports.DEHYDRATE_USERS = exports.APPEND_USERS = undefined;\nexports.append = append;\nexports.dehydrate = dehydrate;\nexports.dehydrateStatus = dehydrateStatus;\nexports.updateAvatar = updateAvatar;\nexports.updateUsername = updateUsername;\nexports.default = user;\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar APPEND_USERS = exports.APPEND_USERS = 'APPEND_USERS';\nvar DEHYDRATE_USERS = exports.DEHYDRATE_USERS = 'DEHYDRATE_USERS';\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\nvar UPDATE_USERNAME = exports.UPDATE_USERNAME = 'UPDATE_USERNAME';\n\nfunction append(items) {\n  return {\n    type: APPEND_USERS,\n    items: items\n  };\n}\n\nfunction dehydrate(items) {\n  return {\n    type: DEHYDRATE_USERS,\n    items: items\n  };\n}\n\nfunction dehydrateStatus(status) {\n  if (status) {\n    return Object.assign({}, status, {\n      last_click: status.last_click ? (0, _moment2.default)(status.last_click) : null,\n      banned_until: status.banned_until ? (0, _moment2.default)(status.banned_until) : null\n    });\n  } else {\n    return null;\n  }\n}\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\nfunction updateUsername(user, username, slug) {\n  return {\n    type: UPDATE_USERNAME,\n    userId: user.id,\n    username: username,\n    slug: slug\n  };\n}\n\nfunction user() {\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  switch (action.type) {\n    case APPEND_USERS:\n      return state.concat(action.items.map(function (item) {\n        return Object.assign({}, item, {\n          joined_on: (0, _moment2.default)(item.joined_on),\n          status: dehydrateStatus(item.status)\n        });\n      }));\n\n    case DEHYDRATE_USERS:\n      return action.items.map(function (item) {\n        return Object.assign({}, item, {\n          joined_on: (0, _moment2.default)(item.joined_on),\n          status: dehydrateStatus(item.status)\n        });\n      });\n\n    case UPDATE_AVATAR:\n      return state.map(function (item) {\n        item = Object.assign({}, item);\n        if (item.id === action.userId) {\n          item.avatar_hash = action.avatarHash;\n        }\n\n        return item;\n      });\n\n    default:\n      return state;\n  }\n}\n\n},{\"moment\":\"moment\"}],134:[function(require,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\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    this._locks = {};\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 ? JSON.stringify(data) : null,\n          contentType: \"application/json; charset=utf-8\",\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\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            if (rejection.status === 404) {\n              if (!rejection.detail || rejection.detail === 'NOT FOUND') {\n                rejection.detail = gettext(\"Action link is invalid.\");\n              }\n            }\n\n            if (rejection.status === 500 && !rejection.detail) {\n              rejection.detail = gettext(\"Unknown error has occured.\");\n            }\n\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, params, lock) {\n      var _this = this;\n\n      if (params) {\n        url += '?' + $.param(params);\n      }\n\n      if (lock) {\n        var _ret = function () {\n          var self = _this;\n\n          // update url in existing lock?\n          if (_this._locks[lock]) {\n            _this._locks[lock].url = url;\n          }\n\n          // immediately dereference promise handlers without doing anything\n          // we are already waiting for existing response to resolve\n          if (_this._locks[lock] && _this._locks[lock].waiter) {\n            return {\n              v: {\n                then: function then() {\n                  return;\n                }\n              }\n            };\n\n            // return promise that will begin when original one resolves\n          } else if (_this._locks[lock] && _this._locks[lock].wait) {\n              _this._locks[lock].waiter = true;\n\n              return {\n                v: new Promise(function (resolve, reject) {\n                  var wait = function wait(url) {\n                    // keep waiting on promise\n                    if (self._locks[lock].wait) {\n                      window.setTimeout(function () {\n                        wait(url);\n                      }, 300);\n\n                      // poll for new url\n                    } else if (self._locks[lock].url !== url) {\n                        wait(self._locks[lock].url);\n\n                        // ajax backend for response\n                      } else {\n                          self._locks[lock].waiter = false;\n                          self.request('GET', self._locks[lock].url).then(function (data) {\n                            if (self._locks[lock].url === url) {\n                              resolve(data);\n                            } else {\n                              self._locks[lock].waiter = true;\n                              wait(self._locks[lock].url);\n                            }\n                          }, function (rejection) {\n                            if (self._locks[lock].url === url) {\n                              reject(rejection);\n                            } else {\n                              self._locks[lock].waiter = true;\n                              wait(self._locks[lock].url);\n                            }\n                          });\n                        }\n                  };\n\n                  window.setTimeout(function () {\n                    wait(url);\n                  }, 300);\n                })\n              };\n\n              // setup new lock without waiter\n            } else {\n                _this._locks[lock] = {\n                  url: url,\n                  wait: true,\n                  waiter: false\n                };\n\n                return {\n                  v: new Promise(function (resolve, reject) {\n                    self.request('GET', url).then(function (data) {\n                      self._locks[lock].wait = false;\n                      if (self._locks[lock].url === url) {\n                        resolve(data);\n                      }\n                    }, function (rejection) {\n                      self._locks[lock].wait = false;\n                      if (self._locks[lock].url === url) {\n                        reject(rejection);\n                      }\n                    });\n                  })\n                };\n              }\n        }();\n\n        if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === \"object\") return _ret.v;\n      } else {\n        return this.request('GET', url);\n      }\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    key: 'upload',\n    value: function upload(url, data, progress) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: 'POST',\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data,\n          contentType: false,\n          processData: false,\n\n          xhr: function xhr() {\n            var xhr = new window.XMLHttpRequest();\n            xhr.upload.addEventListener(\"progress\", function (evt) {\n              if (evt.lengthComputable) {\n                progress(Math.round(evt.loaded / evt.total * 100));\n              }\n            }, false);\n            return xhr;\n          },\n\n          success: function success(response) {\n            resolve(response);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\n            }\n\n            if (rejection.status === 404) {\n              if (!rejection.detail || rejection.detail === 'NOT FOUND') {\n                rejection.detail = gettext(\"Action link is invalid.\");\n              }\n            }\n\n            if (rejection.status === 500 && !rejection.detail) {\n              rejection.detail = gettext(\"Unknown error has occured.\");\n            }\n\n            rejection.statusText = jqXHR.statusText;\n\n            reject(rejection);\n          }\n        };\n\n        $.ajax(xhr);\n      });\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],135:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Auth = undefined;\n\nvar _auth = require('../reducers/auth');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar Auth = exports.Auth = function () {\n  function Auth() {\n    _classCallCheck(this, Auth);\n  }\n\n  _createClass(Auth, [{\n    key: 'init',\n    value: function init(store, local, modal) {\n      this._store = store;\n      this._local = local;\n      this._modal = modal;\n\n      // tell other tabs what auth state is because we are most current with it\n      this.syncSession();\n\n      // listen for other tabs to tell us that state changed\n      this.watchState();\n    }\n  }, {\n    key: 'syncSession',\n    value: function syncSession() {\n      var state = this._store.getState().auth;\n      if (state.isAuthenticated) {\n        this._local.set('auth', {\n          isAuthenticated: true,\n          username: state.user.username\n        });\n      } else {\n        this._local.set('auth', {\n          isAuthenticated: false\n        });\n      }\n    }\n  }, {\n    key: 'watchState',\n    value: function watchState() {\n      var _this = this;\n\n      this._local.watch('auth', function (newState) {\n        if (newState.isAuthenticated) {\n          _this._store.dispatch((0, _auth.signIn)({\n            username: newState.username\n          }));\n        } else {\n          _this._store.dispatch((0, _auth.signOut)());\n        }\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signIn',\n    value: function signIn(user) {\n      this._store.dispatch((0, _auth.signIn)(user));\n      this._local.set('auth', {\n        isAuthenticated: true,\n        username: user.username\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'signOut',\n    value: function signOut() {\n      this._store.dispatch((0, _auth.signOut)());\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }, {\n    key: 'softSignOut',\n    value: function softSignOut() {\n      this._store.dispatch((0, _auth.signOut)(true));\n      this._local.set('auth', {\n        isAuthenticated: false\n      });\n      this._modal.hide();\n    }\n  }]);\n\n  return Auth;\n}();\n\nexports.default = new Auth();\n\n},{\"../reducers/auth\":128}],136:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global grecaptcha */\n// jshint ignore:line\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Captcha = exports.ReCaptcha = exports.ReCaptchaComponent = exports.QACaptcha = exports.NoCaptcha = exports.BaseCaptcha = undefined;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _formGroup = require('../components/form-group');\n\nvar _formGroup2 = _interopRequireDefault(_formGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// jshint ignore:line\n\nvar BaseCaptcha = exports.BaseCaptcha = function () {\n  function BaseCaptcha() {\n    _classCallCheck(this, BaseCaptcha);\n  }\n\n  _createClass(BaseCaptcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      this._context = context;\n      this._ajax = ajax;\n      this._include = include;\n      this._snackbar = snackbar;\n    }\n  }]);\n\n  return BaseCaptcha;\n}();\n\nvar NoCaptcha = exports.NoCaptcha = function (_BaseCaptcha) {\n  _inherits(NoCaptcha, _BaseCaptcha);\n\n  function NoCaptcha() {\n    _classCallCheck(this, NoCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(NoCaptcha).apply(this, arguments));\n  }\n\n  _createClass(NoCaptcha, [{\n    key: 'load',\n    value: function load() {\n      return new Promise(function (resolve) {\n        // immediately resolve as we don't have anything to validate\n        resolve();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return null;\n    }\n  }, {\n    key: 'component',\n    value: function component() {\n      return null;\n    }\n  }]);\n\n  return NoCaptcha;\n}(BaseCaptcha);\n\nvar QACaptcha = exports.QACaptcha = function (_BaseCaptcha2) {\n  _inherits(QACaptcha, _BaseCaptcha2);\n\n  function QACaptcha() {\n    _classCallCheck(this, QACaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(QACaptcha).apply(this, arguments));\n  }\n\n  _createClass(QACaptcha, [{\n    key: 'load',\n    value: function load() {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        self._ajax.get(self._context.get('CAPTCHA_API_URL')).then(function (data) {\n          self.question = data.question;\n          self.helpText = data.help_text;\n          resolve();\n        }, function () {\n          self._snackbar.error(gettext(\"Failed to load CAPTCHA.\"));\n          reject();\n        });\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: this.question, 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: this.helpText || null },\n        _react2.default.createElement('input', { type: 'text', id: 'id_captcha', className: 'form-control',\n          'aria-describedby': 'id_captcha_status',\n          disabled: kwargs.form.state.isLoading,\n          onChange: kwargs.form.bindInput('captcha'),\n          value: kwargs.form.state.captcha })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return QACaptcha;\n}(BaseCaptcha);\n\nvar ReCaptchaComponent = exports.ReCaptchaComponent = function (_React$Component) {\n  _inherits(ReCaptchaComponent, _React$Component);\n\n  function ReCaptchaComponent() {\n    _classCallCheck(this, ReCaptchaComponent);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptchaComponent).apply(this, arguments));\n  }\n\n  _createClass(ReCaptchaComponent, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      var _this4 = this;\n\n      grecaptcha.render('recaptcha', {\n        'sitekey': this.props.siteKey,\n        'callback': function callback(response) {\n          // fire fakey event to binding\n          _this4.props.binding({\n            target: {\n              value: response\n            }\n          });\n        }\n      });\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement('div', { id: 'recaptcha' });\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return ReCaptchaComponent;\n}(_react2.default.Component);\n\nvar ReCaptcha = exports.ReCaptcha = function (_BaseCaptcha3) {\n  _inherits(ReCaptcha, _BaseCaptcha3);\n\n  function ReCaptcha() {\n    _classCallCheck(this, ReCaptcha);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(ReCaptcha).apply(this, arguments));\n  }\n\n  _createClass(ReCaptcha, [{\n    key: 'load',\n    value: function load() {\n      this._include.include('https://www.google.com/recaptcha/api.js', true);\n\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof grecaptcha === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return [];\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return _react2.default.createElement(\n        _formGroup2.default,\n        { label: gettext(\"Captcha\"), 'for': 'id_captcha',\n          labelClass: kwargs.labelClass || \"col-sm-4\",\n          controlClass: kwargs.controlClass || \"col-sm-8\",\n          validation: kwargs.form.state.errors.captcha,\n          helpText: gettext(\"Please solve the quick test.\") },\n        _react2.default.createElement(ReCaptchaComponent, { siteKey: this._context.get('SETTINGS').recaptcha_site_key,\n          binding: kwargs.form.bindInput('captcha') })\n      );\n    }\n    /* jshint ignore:end */\n\n  }]);\n\n  return ReCaptcha;\n}(BaseCaptcha);\n\nvar Captcha = exports.Captcha = function () {\n  function Captcha() {\n    _classCallCheck(this, Captcha);\n  }\n\n  _createClass(Captcha, [{\n    key: 'init',\n    value: function init(context, ajax, include, snackbar) {\n      switch (context.get('SETTINGS').captcha_type) {\n        case 'no':\n          this._captcha = new NoCaptcha();\n          break;\n\n        case 'qa':\n          this._captcha = new QACaptcha();\n          break;\n\n        case 're':\n          this._captcha = new ReCaptcha();\n          break;\n      }\n\n      this._captcha.init(context, ajax, include, snackbar);\n    }\n\n    // accessors for underlying strategy\n\n  }, {\n    key: 'load',\n    value: function load() {\n      return this._captcha.load();\n    }\n  }, {\n    key: 'validator',\n    value: function validator() {\n      return this._captcha.validator();\n    }\n  }, {\n    key: 'component',\n    value: function component(kwargs) {\n      return this._captcha.component(kwargs);\n    }\n  }]);\n\n  return Captcha;\n}();\n\nexports.default = new Captcha();\n\n},{\"../components/form-group\":67,\"react\":\"react\"}],137:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Include = exports.Include = function () {\n  function Include() {\n    _classCallCheck(this, Include);\n  }\n\n  _createClass(Include, [{\n    key: 'init',\n    value: function init(staticUrl) {\n      this._staticUrl = staticUrl;\n      this._included = [];\n    }\n  }, {\n    key: 'include',\n    value: function include(script) {\n      var remote = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n      if (this._included.indexOf(script) === -1) {\n        this._included.push(script);\n        this._include(script, remote);\n      }\n    }\n  }, {\n    key: '_include',\n    value: function _include(script, remote) {\n      $.ajax({\n        url: (!remote ? this._staticUrl : '') + script,\n        cache: true,\n        dataType: 'script'\n      });\n    }\n  }]);\n\n  return Include;\n}();\n\nexports.default = new Include();\n\n},{}],138:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar storage = window.localStorage;\n\nvar LocalStorage = exports.LocalStorage = function () {\n  function LocalStorage() {\n    _classCallCheck(this, LocalStorage);\n  }\n\n  _createClass(LocalStorage, [{\n    key: 'init',\n    value: function init(prefix) {\n      var _this = this;\n\n      this._prefix = prefix;\n      this._watchers = [];\n\n      window.addEventListener('storage', function (e) {\n        var newValueJson = JSON.parse(e.newValue);\n        _this._watchers.forEach(function (watcher) {\n          if (watcher.key === e.key && e.oldValue !== e.newValue) {\n            watcher.callback(newValueJson);\n          }\n        });\n      });\n    }\n  }, {\n    key: 'set',\n    value: function set(key, value) {\n      storage.setItem(this._prefix + key, JSON.stringify(value));\n    }\n  }, {\n    key: 'get',\n    value: function get(key) {\n      var itemString = storage.getItem(this._prefix + key);\n      if (itemString) {\n        return JSON.parse(itemString);\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'watch',\n    value: function watch(key, callback) {\n      this._watchers.push({\n        key: this._prefix + key,\n        callback: callback\n      });\n    }\n  }]);\n\n  return LocalStorage;\n}();\n\nexports.default = new LocalStorage();\n\n},{}],139:[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\":149}],140:[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\":149,\"react-dom\":\"react-dom\"}],141:[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 PageTitle = exports.PageTitle = function () {\n  function PageTitle() {\n    _classCallCheck(this, PageTitle);\n  }\n\n  _createClass(PageTitle, [{\n    key: 'init',\n    value: function init(forumName) {\n      this._forumName = forumName;\n    }\n  }, {\n    key: 'set',\n    value: function set(title) {\n      if (typeof title === 'string') {\n        title = { title: title };\n      }\n\n      var finalTitle = title.title;\n\n      if (title.page) {\n        var pageLabel = interpolate(gettext('page: %(page)s'), {\n          page: title.page\n        }, true);\n\n        finalTitle += ' (' + pageLabel + ')';\n      }\n\n      if (title.parent) {\n        finalTitle += ' | ' + title.parent;\n      }\n\n      document.title = finalTitle + ' | ' + this._forumName;\n    }\n  }]);\n\n  return PageTitle;\n}();\n\nexports.default = new PageTitle();\n\n},{}],142:[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 Polls = exports.Polls = function () {\n  function Polls() {\n    _classCallCheck(this, Polls);\n  }\n\n  _createClass(Polls, [{\n    key: \"init\",\n    value: function init(ajax, snackbar) {\n      this._ajax = ajax;\n      this._snackbar = snackbar;\n\n      this._polls = {};\n    }\n  }, {\n    key: \"start\",\n    value: function start(kwargs) {\n      var _this = this;\n\n      var poolServer = function poolServer() {\n        _this._polls[kwargs.poll] = kwargs;\n\n        _this._ajax.get(kwargs.url, kwargs.data || null).then(function (data) {\n          if (!_this._polls[kwargs.poll]._stopped) {\n            kwargs.update(data);\n\n            _this._polls[kwargs.poll].timeout = window.setTimeout(poolServer, kwargs.frequency);\n          }\n        }, function (rejection) {\n          if (!_this._polls[kwargs.poll]._stopped) {\n            if (kwargs.error) {\n              kwargs.error(rejection);\n            } else {\n              _this._snackbar.apiError(rejection);\n            }\n          }\n        });\n      };\n\n      poolServer();\n    }\n  }, {\n    key: \"stop\",\n    value: function stop(pollId) {\n      if (this._polls[pollId]) {\n        window.clearTimeout(this._polls[pollId].timeout);\n        this._polls[pollId]._stopped = true;\n      }\n    }\n  }]);\n\n  return Polls;\n}();\n\nexports.default = new Polls();\n\n},{}],143:[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 = rejection.detail;\n\n      if (!message) {\n        if (rejection.status === 404) {\n          message = gettext(\"Action link is invalid.\");\n        } else {\n          message = gettext(\"Unknown error has occured.\");\n        }\n      }\n\n      if (rejection.status === 403 && message === \"Permission denied\") {\n        message = gettext(\"You don't have permission to perform this action.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":130}],144:[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\"}],145:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/* global zxcvbn */\n\nvar Zxcvbn = exports.Zxcvbn = function () {\n  function Zxcvbn() {\n    _classCallCheck(this, Zxcvbn);\n  }\n\n  _createClass(Zxcvbn, [{\n    key: \"init\",\n    value: function init(include) {\n      this._include = include;\n    }\n  }, {\n    key: \"scorePassword\",\n    value: function scorePassword(password, inputs) {\n      // 0-4 score, the more the stronger password\n      return zxcvbn(password, inputs).score;\n    }\n  }, {\n    key: \"load\",\n    value: function load() {\n      if (typeof zxcvbn === \"undefined\") {\n        this._include.include('misago/js/zxcvbn.js');\n        return this._loadingPromise();\n      } else {\n        return this._loadedPromise();\n      }\n    }\n  }, {\n    key: \"_loadingPromise\",\n    value: function _loadingPromise() {\n      return new Promise(function (resolve) {\n        var wait = function wait() {\n          if (typeof zxcvbn === \"undefined\") {\n            window.setTimeout(function () {\n              wait();\n            }, 200);\n          } else {\n            resolve();\n          }\n        };\n        wait();\n      });\n    }\n  }, {\n    key: \"_loadedPromise\",\n    value: function _loadedPromise() {\n      // we have already loaded zxcvbn.js, resolve away!\n      return new Promise(function (resolve) {\n        resolve();\n      });\n    }\n  }]);\n\n  return Zxcvbn;\n}();\n\nexports.default = new Zxcvbn();\n\n},{}],146:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (ban, changeState) {\n  _reactDom2.default.render(\n  /* jshint ignore:start */\n  _react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(RedrawedBannedPage, { message: ban.message,\n      expires: ban.expires_on ? (0, _moment2.default)(ban.expires_on) : null })\n  ),\n  /* jshint ignore:end */\n  document.getElementById('page-mount'));\n\n  if (typeof changeState === 'undefined' || changeState) {\n    var forumName = _index2.default.get('SETTINGS').forum_name;\n    document.title = gettext(\"You are banned\") + ' | ' + forumName;\n    window.history.pushState({}, \"\", _index2.default.get('BANNED_URL'));\n  }\n};\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactDom = require('react-dom');\n\nvar _reactDom2 = _interopRequireDefault(_reactDom);\n\nvar _reactRedux = require('react-redux');\n\nvar _bannedPage = require('../components/banned-page');\n\nvar _bannedPage2 = _interopRequireDefault(_bannedPage);\n\nvar _index = require('../index');\n\nvar _index2 = _interopRequireDefault(_index);\n\nvar _store = require('../services/store');\n\nvar _store2 = _interopRequireDefault(_store);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// jshint ignore:line\n\n/* jshint ignore:start */\n// jshint ignore:line\n// jshint ignore:line\nvar select = function select(state) {\n  return state.tick;\n}; // jshint ignore:line\n// jshint ignore:line\n\nvar RedrawedBannedPage = (0, _reactRedux.connect)(select)(_bannedPage2.default);\n/* jshint ignore:end */\n\n},{\"../components/banned-page\":55,\"../index\":127,\"../services/store\":144,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],147:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (list, rowWidth) {\n  var padding = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2];\n\n  var rows = [];\n  var row = [];\n\n  list.forEach(function (element) {\n    row.push(element);\n    if (row.length === rowWidth) {\n      rows.push(row);\n      row = [];\n    }\n  });\n\n  // pad row to required length?\n  if (padding !== false && row.length > 0 && row.length < rowWidth) {\n    for (var i = row.length; i < rowWidth; i++) {\n      row.push(padding);\n    }\n  }\n\n  if (row.length) {\n    rows.push(row);\n  }\n\n  return rows;\n};\n\n},{}],148:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (bytes) {\n  if (bytes > 1000 * 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000 * 1000)) / 100 + ' GB';\n  } else if (bytes > 1000 * 1000) {\n    return Math.round(bytes * 100 / (1000 * 1000)) / 100 + ' MB';\n  } else if (bytes > 1000) {\n    return Math.round(bytes * 100 / 1000) / 100 + ' KB';\n  } else {\n    return Math.round(bytes * 100) / 100 + ' B';\n  }\n};\n\n},{}],149:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (Component, rootElementId) {\n  var connected = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2];\n\n  var rootElement = document.getElementById(rootElementId);\n\n  /* jshint ignore:start */\n  var finalComponent = Component.props ? Component : _react2.default.createElement(Component, null);\n  /* jshint ignore:end */\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        finalComponent\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      /* jshint ignore:start */\n      _reactDom2.default.render(finalComponent, rootElement);\n      /* jshint ignore:end */\n    }\n  }\n};\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},{\"../services/store\":144,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],150:[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},{}],151:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.int = int;\nexports.range = range;\nfunction int(min, max) {\n  return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\nfunction range(min, max) {\n  var array = new Array(int(min, max));\n  for (var i = 0; i < array.length; i++) {\n    array[i] = i;\n  }\n\n  return array;\n}\n\n},{}],152:[function(require,module,exports){\n\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function () {\n  window.scrollTo(0, 0);\n};\n\n},{}],153:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nexports.default = function (options) {\n  var routes = {\n    component: options.component,\n    childRoutes: [{\n      path: options.root,\n      onEnter: function onEnter(nextState, replaceState) {\n        replaceState(null, options.paths[0].path);\n      }\n    }].concat(options.paths.map(function (path) {\n      return path;\n    }))\n  };\n\n  _reactDom2.default.render(_react2.default.createElement(\n    _reactRedux.Provider,\n    { store: _store2.default.getStore() },\n    _react2.default.createElement(_reactRouter.Router, { routes: routes, history: history })\n  ), rootElement);\n};\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 _reactRouter = require('react-router');\n\nvar _createBrowserHistory = require('history/lib/createBrowserHistory');\n\nvar _createBrowserHistory2 = _interopRequireDefault(_createBrowserHistory);\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:start\n\nvar rootElement = document.getElementById('page-mount');\nvar history = new _createBrowserHistory2.default();\n\n},{\"../services/store\":144,\"history/lib/createBrowserHistory\":43,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\",\"react-router\":\"react-router\"}],154:[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},{}]},{},[2,3,4,5,17,18,19,20,21,22,23,31,32,33,34,6,7,8,9,10,11,12,13,14,15,16,24,25,26,27,28,29,30]);\n"],"sourceRoot":"/source/"}

+ 0 - 5
misago/templates/misago/base.html

@@ -8,11 +8,6 @@
     <title>{% spaceless %}{% block title %}{{ misago_settings.forum_name }}{% endblock %}{% endspaceless %}</title>
     <title>{% spaceless %}{% block title %}{{ misago_settings.forum_name }}{% endblock %}{% endspaceless %}</title>
     <meta name="description" content="{% spaceless %}{% block meta-description %}{% endblock %}{% endspaceless %}">
     <meta name="description" content="{% spaceless %}{% block meta-description %}{% endblock %}{% endspaceless %}">
     <base href="{% url 'misago:index' %}">
     <base href="{% url 'misago:index' %}">
-    <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-    <!--[if lt IE 9]>
-      <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-      <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
-    <![endif]-->
     <link href="{% static 'misago/css/misago.css' %}" rel="stylesheet">
     <link href="{% static 'misago/css/misago.css' %}" rel="stylesheet">
     <link rel="apple-touch-icon-precomposed" sizes="152x152" href="{% static 'apple-touch-icon-152-precomposed.png' %}">
     <link rel="apple-touch-icon-precomposed" sizes="152x152" href="{% static 'apple-touch-icon-152-precomposed.png' %}">
     <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{% static 'apple-touch-icon-144-precomposed.png' %}">
     <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{% static 'apple-touch-icon-144-precomposed.png' %}">

+ 1 - 1
misago/templates/misago/categories/category.html

@@ -41,7 +41,7 @@
       {% endif %}
       {% endif %}
 
 
       {% if subcategory.subcategories %}
       {% if subcategory.subcategories %}
-      <ul class="list-inline subcategory-subcategories">
+      <ul class="list-inline subcategories-list">
         {% for subsubcategory in subcategory.subcategories %}
         {% for subsubcategory in subcategory.subcategories %}
         <li>
         <li>
           <a href="{{ subsubcategory.get_absolute_url }}" class="subcategory {% if subsubcategory.css_class %}subcategory-{{ subsubcategory.css_class }}{% endif %}">
           <a href="{{ subsubcategory.get_absolute_url }}" class="subcategory {% if subsubcategory.css_class %}subcategory-{{ subsubcategory.css_class }}{% endif %}">

+ 17 - 14
misago/templates/misago/categories/list.html

@@ -27,25 +27,27 @@
   <div class="page-header">
   <div class="page-header">
     <div class="container">
     <div class="container">
       {% if is_index %}
       {% if is_index %}
-        <h1>{{ misago_settings.forum_name }}</h1>
+        {% if misago_settings.forum_index_title %}
+          <h1>{{ misago_settings.forum_index_title }}</h1>
+        {% else %}
+          <h1>{{ misago_settings.forum_name }}</h1>
+        {% endif %}
       {% else %}
       {% else %}
         <h1>{% trans "Categories" %}</h1>
         <h1>{% trans "Categories" %}</h1>
       {% endif %}
       {% endif %}
     </div>
     </div>
   </div>
   </div>
+  <div class="container">
 
 
-  {% if categories %}
-    <div class="container">
-
-      <div class="categories-list">
-        {% for category in categories %}
-          {% include "misago/categories/category.html" with category=category %}
-        {% endfor %}
+    {% if categories %}
+      <div id="categories-mount">
+        <div class="categories-list">
+          {% for category in categories %}
+            {% include "misago/categories/category.html" with category=category %}
+          {% endfor %}
+        </div>
       </div>
       </div>
-
-    </div>
-  {% else %}
-    <div class="container">
+    {% else %}
       <div class="message-panel">
       <div class="message-panel">
 
 
         <div class="message-icon">
         <div class="message-icon">
@@ -58,7 +60,8 @@
         </div>
         </div>
 
 
       </div>
       </div>
-    </div>
-  {% endif %}
+    {% endif %}
+
+  </div>
 </div>
 </div>
 {% endblock content %}
 {% endblock content %}

+ 1 - 1
misago/templates/misago/profile/username_history.html

@@ -29,7 +29,7 @@
   <div class="username-history ui-ready">
   <div class="username-history ui-ready">
     <ul class="list-group">
     <ul class="list-group">
       {% for change in history %}
       {% for change in history %}
-        <li class="list-group-item" key={item.id}>
+        <li class="list-group-item">
           <div class="username-change-avatar">
           <div class="username-change-avatar">
             {% if change.changed_by %}
             {% if change.changed_by %}
               <a href="{{ change.changed_by.get_absolute_url }}" class="user-avatar">
               <a href="{{ change.changed_by.get_absolute_url }}" class="user-avatar">

+ 106 - 1
misago/templates/misago/threadslist/base.html

@@ -1 +1,106 @@
-{% extends "misago/base.html" %}
+{% extends "misago/base.html" %}
+{% load i18n %}
+
+
+{% block content %}
+<div class="page page-threads page-threads-{{ list_type|default:'all' }} {% spaceless %}
+  {% block extra-css %}{% endblock extra-css %}
+{% endspaceless %}">
+
+  {% block page-header %}
+  {% endblock page-header %}
+
+  <div class="container">
+
+    {% if show_toolbar %}
+    <div class="toolbar">
+      {% if category.subcategories %}
+        <ul class="list-inline subcategories-list">
+          {% for subcategory in category.subcategories %}
+          <li>
+            <a href="{{ subcategory.get_absolute_url }}" class="subcategory {% if subcategory.css_class %}subcategory-{{ subcategory.css_class }}{% endif %}">
+              {{ subcategory.name }}
+            </a>
+          </li>
+          {% endfor %}
+        </ul>
+      {% endif %}
+    </div>
+    {% endif %}
+
+    <div class="threads-list ui-ready">
+      {% block threads-list %}
+        <ul class="list-group">
+          {% for thread in threads %}
+            <li class="list-group-item">
+              <a href="{{ thread.get_absolute_url }}" class="item-title">
+                {{ thread.title }}
+              </a>
+              {% if thread.top_category %}
+              <br><a href="{{ thread.top_category.get_absolute_url }}">
+                {{ thread.top_category.name }}
+              </a>
+              {% endif %}
+            </li>
+          {% empty %}
+            <li class="list-group-item empty-message">
+              {% block list-empty-message %}
+                {% if list_type == 'all' %}
+                  <p class="lead">
+                    {% if category.depth %}
+                      {% trans "There are no threads in this category." %}
+                    {% else %}
+                      {% trans "There are no threads on this forum... yet!" %}
+                    {% endif %}
+                  </p>
+                  <p>
+                    {% trans "Why not start one yourself?" %}
+                  </p>
+                {% else %}
+                  {% trans "No threads matching specified criteria were found." %}
+                {% endif %}
+              {% endblock list-empty-message %}
+            </li>
+          {% endfor %}
+        </ul>
+      {% endblock threads-list %}
+    </div>
+
+    {% if paginator.pages > 1 %}
+    <div class="pager-undercontent">
+      <nav>
+        <ul class="pager">
+          {% if paginator.previous %}
+          <li class="previous">
+            <a href="{{ REQUEST_PATH }}?page={{ paginator.previous }}">
+              <span aria-hidden="true" class="material-icon">
+                arrow_back
+              </span>
+            </a>
+          </li>
+          {% elif paginator.first %}
+          <li class="previous">
+            <a href="{{ REQUEST_PATH }}">
+              <span aria-hidden="true" class="material-icon">
+                arrow_back
+              </span>
+            </a>
+          </li>
+          {% endif %}
+          {% if paginator.next %}
+          <li class="next">
+            <a href="{{ REQUEST_PATH }}?page={{ paginator.next }}">
+              <span aria-hidden="true" class="material-icon">
+                arrow_forward
+              </span>
+            </a>
+          </li>
+          {% endif %}
+        </ul>
+      </nav>
+    </div>
+    {% endif %}
+
+  </div>
+</div>
+{% endblock content %}

+ 43 - 0
misago/templates/misago/threadslist/category.html

@@ -0,0 +1,43 @@
+{% extends "misago/threadslist/base.html" %}
+{% load i18n %}
+
+
+{% block title %}
+{% if list_name %}
+  {% if paginator.page > 1 %}
+    {{ list_name }} ({% blocktrans with page=paginator.page %}page: {{ page }}{% endblocktrans %}) | {{ category.name }} | {{ block.super }}
+  {% else %}
+    {{ list_name }} | {{ category.name }} | {{ block.super }}
+  {% endif %}
+{% elif paginator.page > 1 %}
+  {{ category.name }} ({% blocktrans with page=paginator.page %}page: {{ page }}{% endblocktrans %}) | {{ block.super }}
+{% else %}
+  {{ category.name }} | {{ block.super }}
+{% endif %}
+{% endblock title %}
+
+
+{% block meta-description %}
+{% if category.description %}
+  {{ category.description }}
+{% endif %}
+{% endblock meta-description %}
+
+
+{% block extra-css %}
+{% if category.css_class %}
+  page-{{ category.css_class }}
+{% endif %}
+{% endblock extra-css %}
+
+
+{% block page-header %}
+<div class="page-header">
+  <div class="container">
+    <h1>
+      <a href="{{ category.parent.get_absolute_url }}">&lt;</a>
+      {{ category.name }}
+    </h1>
+  </div>
+</div>
+{% endblock page-header %}

+ 43 - 4
misago/templates/misago/threadslist/threads.html

@@ -1,8 +1,47 @@
 {% extends "misago/threadslist/base.html" %}
 {% extends "misago/threadslist/base.html" %}
+{% load i18n misago_pagetitle %}
 
 
 
 
-{% block content %}
-<div class="container">
-  <p class="lead">This is placeholder for threads list.</p>
+{% block title %}
+{% if list_name %}
+  {% if paginator.page > 1 %}
+    {% trans "Threads" %} ({% blocktrans with page=paginator.page %}page: {{ page }}{% endblocktrans %}) | {% trans "Threads" %} | {{ block.super }}
+  {% else %}
+    {% trans "Threads" %} | {{ category.name }} | {{ block.super }}
+  {% endif %}
+{% elif is_index and paginator.page == 1 %}
+  {% if misago_settings.forum_index_title %}
+  {{ misago_settings.forum_index_title }}
+  {% else %}
+  {{ misago_settings.forum_name }}
+  {% endif %}
+{% elif paginator.page > 1 %}
+  {% trans "Threads" %} ({% blocktrans with page=paginator.page %}page: {{ page }}{% endblocktrans %}) | {{ block.super }}
+{% else %}
+  {% trans "Threads" %} | {{ block.super }}
+{% endif %}
+{% endblock title %}
+
+
+{% block meta-description %}
+{% if is_index and misago_settings.forum_index_meta_description %}
+  {{ misago_settings.forum_index_meta_description }}
+{% endif %}
+{% endblock meta-description %}
+
+
+{% block page-header %}
+<div class="page-header">
+  <div class="container">
+    {% if is_index %}
+      {% if misago_settings.forum_index_title %}
+        <h1>{{ misago_settings.forum_index_title }}</h1>
+      {% else %}
+        <h1>{{ misago_settings.forum_name }}</h1>
+      {% endif %}
+    {% else %}
+      <h1>{% trans "Threads" %}</h1>
+    {% endif %}
+  </div>
 </div>
 </div>
-{% endblock content %}
+{% endblock page-header %}

+ 0 - 113
misago/threads/counts.py

@@ -1,113 +0,0 @@
-from time import time
-
-from django.conf import settings
-from django.db.models import F
-from django.dispatch import receiver
-
-from misago.categories.models import Category
-
-from misago.threads.views.moderatedcontent import ModeratedContent
-from misago.threads.views.newthreads import NewThreads
-from misago.threads.views.unreadthreads import UnreadThreads
-from misago.threads.views.privatethreads import PrivateThreads
-
-
-class BaseCounter(object):
-    Threads = None
-    name = None
-
-    def __init__(self, user, session):
-        self.user = user
-        self.session = session
-        self.count = self.get_cached_count()
-
-    def __int__(self):
-        return self.count
-
-    def __unicode__(self):
-        return unicode(self.count)
-
-    def __nonzero__( self) :
-        return bool(self.count)
-
-    def get_cached_count(self):
-        count = self.session.get(self.name, None)
-
-        if not count or not self.is_cache_valid(count):
-            count = self.get_current_count_dict()
-            self.session[self.name] = count
-        return count['threads']
-
-    def is_cache_valid(self, cache):
-        if cache.get('expires', 0) > time():
-            return cache.get('user') == self.user.pk
-        else:
-            return False
-
-    def get_expiration_timestamp(self):
-        return time() + settings.MISAGO_CONTENT_COUNTING_FREQUENCY * 60
-
-    def get_current_count_dict(self):
-        return {
-            'user': self.user.pk,
-            'threads': self.count_threads(),
-            'expires': self.get_expiration_timestamp()
-        }
-
-    def count_threads(self):
-        return self.Threads(self.user).get_queryset().count()
-
-    def set(self, count):
-        self.count = count
-        self.session[self.name] = {
-            'user': self.user.pk,
-            'threads': count,
-            'expires': self.get_expiration_timestamp()
-        }
-
-    def decrease(self):
-        if self.count > 0:
-            self.count -= 1
-            self.session[self.name] = {
-                'user': self.user.pk,
-                'threads': self.count,
-                'expires': self.session[self.name]['expires']
-            }
-
-
-class ModeratedCount(BaseCounter):
-    Threads = ModeratedContent
-    name = 'moderated_content'
-
-
-class NewThreadsCount(BaseCounter):
-    Threads = NewThreads
-    name = 'new_threads'
-
-
-class UnreadThreadsCount(BaseCounter):
-    Threads = UnreadThreads
-    name = 'unread_threads'
-
-
-def sync_user_unread_private_threads_count(user):
-    if not user.sync_unread_private_threads:
-        return
-
-    threads_qs = PrivateThreads(user).get_queryset()
-
-    all_threads_count = threads_qs.count()
-
-    read_qs = user.threadread_set.filter(category=Category.objects.private_threads())
-    read_qs = read_qs.filter(last_read_on__gte=F('thread__last_post_on'))
-    read_threads_count = read_qs.count()
-
-    user.unread_private_threads = all_threads_count - read_threads_count
-    if user.unread_private_threads < 0:
-        # we may end with negative count because of race conditions in counts
-        user.unread_private_threads = 0
-
-    user.sync_unread_private_threads = False
-    user.save(update_fields=[
-        'unread_private_threads', 'sync_unread_private_threads'
-    ])

+ 0 - 0
misago/threads/tests/__int__.py → misago/threads/management/__init__.py


+ 0 - 0
misago/threads/management/commands/__init__.py


+ 39 - 0
misago/threads/management/commands/synchronizethreads.py

@@ -0,0 +1,39 @@
+import time
+
+from django.core.management.base import BaseCommand
+
+from misago.core.management.progressbar import show_progress
+from misago.core.pgutils import batch_update
+
+from misago.threads.models import Thread
+
+
+class Command(BaseCommand):
+    help = 'Synchronizes threads'
+
+    def handle(self, *args, **options):
+        threads_to_sync = Thread.objects.count()
+
+        if not threads_to_sync:
+            self.stdout.write('\n\nNo threads were found')
+        else:
+            self.sync_threads(threads_to_sync)
+
+    def sync_threads(self, threads_to_sync):
+        message = 'Synchronizing %s threads...\n'
+        self.stdout.write(message % threads_to_sync)
+
+        message = '\n\nSynchronized %s threads'
+
+        synchronized_count = 0
+        show_progress(self, synchronized_count, threads_to_sync)
+        start_time = time.time()
+        for thread in batch_update(Thread.objects.all()):
+            thread.synchronize()
+            thread.save()
+
+            synchronized_count += 1
+            show_progress(
+                self, synchronized_count, threads_to_sync, start_time)
+
+        self.stdout.write(message % synchronized_count)

+ 6 - 41
misago/threads/moderation/threads.py

@@ -6,41 +6,6 @@ from misago.threads.events import record_event
 
 
 
 
 @atomic
 @atomic
-def label_thread(user, thread, label):
-    if not thread.label_id or thread.label_id != label.pk:
-        if thread.label_id:
-            message = _("%(user)s changed thread label to %(label)s.")
-        else:
-            message = _("%(user)s set thread label to %(label)s.")
-
-        record_event(user, thread, "tag", message, {
-            'user': user,
-            'label': label.name
-        })
-
-        thread.label = label
-
-        thread.save(update_fields=['has_events', 'label'])
-        return True
-    else:
-        return False
-
-
-@atomic
-def unlabel_thread(user, thread):
-    if thread.label_id:
-        thread.label = None
-
-        message = _("%(user)s removed thread label.")
-        record_event(user, thread, "tag", message, {'user': user})
-
-        thread.save(update_fields=['has_events', 'label'])
-        return True
-    else:
-        return False
-
-
-@atomic
 def pin_thread(user, thread):
 def pin_thread(user, thread):
     if not thread.is_pinned:
     if not thread.is_pinned:
         thread.is_pinned = True
         thread.is_pinned = True
@@ -68,16 +33,16 @@ def unpin_thread(user, thread):
 
 
 
 
 @atomic
 @atomic
-def move_thread(user, thread, new_forum):
-    if thread.forum_id != new_forum.pk:
-        message = _("%(user)s moved thread from %(forum)s.")
+def move_thread(user, thread, new_category):
+    if thread.category_id != new_category.pk:
+        message = _("%(user)s moved thread from %(category)s.")
         record_event(user, thread, "arrow-right", message, {
         record_event(user, thread, "arrow-right", message, {
             'user': user,
             'user': user,
-            'forum': thread.forum
+            'category': thread.category
         })
         })
 
 
-        thread.move(new_forum)
-        thread.save(update_fields=['has_events', 'forum'])
+        thread.move(new_category)
+        thread.save(update_fields=['has_events', 'category'])
         return True
         return True
     else:
     else:
         return False
         return False

+ 2 - 9
misago/threads/permissions/threads.py

@@ -695,13 +695,6 @@ def has_time_to_edit_post(user, target):
 """
 """
 Queryset helpers
 Queryset helpers
 """
 """
-def exclude_invisible_threads(queryset, user, category=None):
-    if category:
-        return exclude_invisible_category_threads(queryset, user, category)
-    else:
-        return exclude_all_invisible_threads(queryset, user)
-
-
 def exclude_invisible_category_threads(queryset, user, category):
 def exclude_invisible_category_threads(queryset, user, category):
     if user.is_authenticated():
     if user.is_authenticated():
         condition_author = Q(starter_id=user.id)
         condition_author = Q(starter_id=user.id)
@@ -727,11 +720,11 @@ def exclude_invisible_category_threads(queryset, user, category):
     return queryset
     return queryset
 
 
 
 
-def exclude_all_invisible_threads(queryset, user):
+def exclude_invisible_threads(user, categories, queryset):
     categories_in = []
     categories_in = []
     conditions = None
     conditions = None
 
 
-    for category in Category.objects.all_categories():
+    for category in categories:
         add_acl(user, category)
         add_acl(user, category)
 
 
         condition_category = Q(category=category)
         condition_category = Q(category=category)

+ 2 - 2
misago/threads/tests/test_floodprotection_middleware.py → misago/threads/tests/-test_floodprotection_middleware.py

@@ -5,8 +5,8 @@ from django.utils import timezone
 from misago.users.testutils import AuthenticatedUserTestCase
 from misago.users.testutils import AuthenticatedUserTestCase
 
 
 from misago.threads.posting import PostingInterrupt
 from misago.threads.posting import PostingInterrupt
-from misago.threads.posting.floodprotection import (MIN_POSTING_PAUSE,
-                                                    FloodProtectionMiddleware)
+from misago.threads.posting.floodprotection import (
+    MIN_POSTING_PAUSE, FloodProtectionMiddleware)
 
 
 
 
 class FloodProtectionMiddlewareTests(AuthenticatedUserTestCase):
 class FloodProtectionMiddlewareTests(AuthenticatedUserTestCase):

+ 0 - 0
misago/threads/tests/__init__.py


+ 0 - 158
misago/threads/tests/test_counters.py

@@ -1,158 +0,0 @@
-from datetime import timedelta
-from time import time
-
-from django.core.urlresolvers import reverse
-from django.utils import timezone
-from django.utils.translation import ugettext as _
-
-from misago.forums.models import Forum
-from misago.readtracker.models import ThreadRead
-from misago.users.testutils import AuthenticatedUserTestCase
-
-from misago.threads.counts import (NewThreadsCount,
-                                   sync_user_unread_private_threads_count)
-from misago.threads import testutils
-
-
-class TestNewThreadsCount(AuthenticatedUserTestCase):
-    def setUp(self):
-        super(TestNewThreadsCount, self).setUp()
-
-        self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
-
-    def test_cast_to_int(self):
-        """counter is castable to int"""
-        counter = NewThreadsCount(self.user, {})
-        self.assertEqual(int(counter), 0)
-
-        threads = [testutils.post_thread(self.forum) for t in xrange(42)]
-        counter = NewThreadsCount(self.user, {})
-        self.assertEqual(int(counter), 42)
-
-    def test_cast_to_bool(self):
-        """counter is castable to bool"""
-        counter = NewThreadsCount(self.user, {})
-        self.assertFalse(counter)
-
-        threads = [testutils.post_thread(self.forum) for t in xrange(42)]
-        counter = NewThreadsCount(self.user, {})
-        self.assertTrue(counter)
-
-    def test_is_cache_valid(self):
-        """is_cache_valid returns valid value for different caches"""
-        counter = NewThreadsCount(self.user, {})
-
-        self.assertTrue(counter.is_cache_valid({
-            'expires': time() + 15,
-            'user': self.user.pk
-        }))
-
-        self.assertFalse(counter.is_cache_valid({
-            'expires': time() - 15,
-            'user': self.user.pk
-        }))
-
-        self.assertFalse(counter.is_cache_valid({
-            'expires': time() + 15,
-            'user': self.user.pk + 1
-        }))
-
-    def test_get_expiration_timestamp(self):
-        """get_expiration_timestamp returns greater time than current one"""
-        counter = NewThreadsCount(self.user, {})
-        self.assertTrue(counter.get_expiration_timestamp() > time())
-
-    def test_get_current_count_dict(self):
-        """get_current_count_dict returns valid count of new threads"""
-        counter = NewThreadsCount(self.user, {})
-        self.assertEqual(counter.count, 0)
-        self.assertEqual(counter.get_current_count_dict()['threads'], 0)
-
-        # create 10 new threads
-        threads = [testutils.post_thread(self.forum) for t in xrange(10)]
-        self.assertEqual(counter.get_current_count_dict()['threads'], 10)
-
-        # create new counter
-        counter = NewThreadsCount(self.user, {})
-        self.assertEqual(counter.count, 10)
-        self.assertEqual(counter.get_current_count_dict()['threads'], 10)
-
-    def test_set(self):
-        """set allows for changing count of threads"""
-        session = {}
-        counter = NewThreadsCount(self.user, session)
-        counter.set(128)
-
-        self.assertEqual(int(counter), 128)
-        self.assertEqual(session[counter.name]['threads'], 128)
-
-    def test_decrease(self):
-        """decrease is not allowing for negative threads counts"""
-        session = {}
-        counter = NewThreadsCount(self.user, session)
-        counter.set(128)
-        counter.decrease()
-
-        self.assertEqual(int(counter), 127)
-        self.assertEqual(session[counter.name]['threads'], 127)
-
-    def test_decrease_zero(self):
-        """decrease is not allowing for negative threads counts"""
-        session = {}
-        counter = NewThreadsCount(self.user, session)
-        counter.decrease()
-
-        self.assertEqual(int(counter), 0)
-        self.assertEqual(session[counter.name]['threads'], 0)
-
-
-class TestSyncUnreadPrivateThreadsCount(AuthenticatedUserTestCase):
-    def setUp(self):
-        super(TestSyncUnreadPrivateThreadsCount, self).setUp()
-
-        self.forum = Forum.objects.private_threads()
-        self.user.sync_unread_private_threads = True
-
-    def test_user_with_no_threads(self):
-        """user with no private threads has 0 unread threads"""
-        for i in range(5):
-            # post 5 invisible threads
-            testutils.post_thread(
-                self.forum, started_on=timezone.now() - timedelta(days=2))
-
-        sync_user_unread_private_threads_count(self.user)
-        self.assertEqual(self.user.unread_private_threads, 0)
-
-    def test_user_with_new_thread(self):
-        """user has one new private thread"""
-        for i in range(5):
-            # post 5 invisible threads
-            testutils.post_thread(
-                self.forum, started_on=timezone.now() - timedelta(days=2))
-
-        thread = testutils.post_thread(
-            self.forum, started_on=timezone.now() - timedelta(days=2))
-        thread.threadparticipant_set.create(user=self.user)
-
-        sync_user_unread_private_threads_count(self.user)
-        self.assertEqual(self.user.unread_private_threads, 1)
-
-    def test_user_with_new_thread(self):
-        """user has one unread private thread"""
-        for i in range(5):
-            # post 5 invisible threads
-            testutils.post_thread(
-                self.forum, started_on=timezone.now() - timedelta(days=2))
-
-        thread = testutils.post_thread(
-            self.forum, started_on=timezone.now() - timedelta(days=2))
-        thread.threadparticipant_set.create(user=self.user)
-
-        ThreadRead.objects.create(
-            user=self.user,
-            forum=self.forum,
-            thread=thread,
-            last_read_on=timezone.now() - timedelta(days=3))
-
-        sync_user_unread_private_threads_count(self.user)
-        self.assertEqual(self.user.unread_private_threads, 1)

+ 8 - 6
misago/threads/tests/test_event_model.py

@@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.checksums import is_event_valid, update_event_checksum
 from misago.threads.checksums import is_event_valid, update_event_checksum
 from misago.threads.models import Thread, Event
 from misago.threads.models import Thread, Event
@@ -15,15 +15,16 @@ class EventModelTests(TestCase):
 
 
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
@@ -31,12 +32,13 @@ class EventModelTests(TestCase):
     def test_is_event_valid(self):
     def test_is_event_valid(self):
         """event is_valid flag returns valid value"""
         """event is_valid flag returns valid value"""
         event = Event.objects.create(
         event = Event.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             author=self.user,
             author=self.user,
             message="Lorem ipsum",
             message="Lorem ipsum",
             author_name=self.user.username,
             author_name=self.user.username,
-            author_slug=self.user.slug)
+            author_slug=self.user.slug
+        )
 
 
         update_event_checksum(event)
         update_event_checksum(event)
 
 

+ 6 - 5
misago/threads/tests/test_events.py

@@ -4,7 +4,7 @@ from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
 from misago.acl import add_acl
 from misago.acl import add_acl
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.events import record_event, add_events_to_posts
 from misago.threads.events import record_event, add_events_to_posts
 from misago.threads.models import Thread, Event
 from misago.threads.models import Thread, Event
@@ -18,20 +18,21 @@ class EventsAPITests(TestCase):
 
 
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
 
 
-        add_acl(self.user, self.forum)
+        add_acl(self.user, self.category)
         add_acl(self.user, self.thread)
         add_acl(self.user, self.thread)
 
 
     def test_record_event(self):
     def test_record_event(self):

+ 11 - 13
misago/threads/tests/test_participants.py

@@ -2,37 +2,34 @@ from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.models import Thread, ThreadParticipant, Post
 from misago.threads.models import Thread, ThreadParticipant, Post
-from misago.threads.participants import (thread_has_participants,
-                                         make_thread_participants_aware,
-                                         set_thread_owner,
-                                         set_user_unread_private_threads_sync,
-                                         add_owner,
-                                         remove_participant
-                                         )
+from misago.threads.participants import (
+    thread_has_participants, make_thread_participants_aware, set_thread_owner,
+    set_user_unread_private_threads_sync, add_owner, remove_participant)
 
 
 
 
 class ParticipantsTests(TestCase):
 class ParticipantsTests(TestCase):
     def setUp(self):
     def setUp(self):
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster_name='Tester',
             poster_name='Tester',
             poster_ip='127.0.0.1',
             poster_ip='127.0.0.1',
@@ -40,7 +37,8 @@ class ParticipantsTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         self.thread.first_post = post
         self.thread.first_post = post
         self.thread.last_post = post
         self.thread.last_post = post

+ 26 - 18
misago/threads/tests/test_post_model.py

@@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.checksums import update_post_checksum
 from misago.threads.checksums import update_post_checksum
 from misago.threads.models import Thread, Post
 from misago.threads.models import Thread, Post
@@ -17,21 +17,22 @@ class PostModelTests(TestCase):
 
 
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
 
 
         self.post = Post.objects.create(
         self.post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=self.user,
             poster=self.user,
             poster_name=self.user.username,
             poster_name=self.user.username,
@@ -40,7 +41,8 @@ class PostModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         update_post_checksum(self.post)
         update_post_checksum(self.post)
         self.post.save(update_fields=['checksum'])
         self.post.save(update_fields=['checksum'])
@@ -58,7 +60,7 @@ class PostModelTests(TestCase):
         other_user = User.objects.create_user("Jeff", "Je@ff.com", "Pass.123")
         other_user = User.objects.create_user("Jeff", "Je@ff.com", "Pass.123")
 
 
         other_post = Post.objects.create(
         other_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=other_user,
             poster=other_user,
             poster_name=other_user.username,
             poster_name=other_user.username,
@@ -67,22 +69,24 @@ class PostModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=timezone.now() + timedelta(minutes=5),
             posted_on=timezone.now() + timedelta(minutes=5),
-            updated_on=timezone.now() + timedelta(minutes=5))
+            updated_on=timezone.now() + timedelta(minutes=5)
+        )
 
 
         with self.assertRaises(ValueError):
         with self.assertRaises(ValueError):
             self.post.merge(other_post)
             self.post.merge(other_post)
 
 
         other_thread = Thread.objects.create(
         other_thread = Thread.objects.create(
-            forum=self.forum,
+            category=self.category,
             started_on=timezone.now(),
             started_on=timezone.now(),
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=timezone.now(),
             last_post_on=timezone.now(),
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         other_post = Post.objects.create(
         other_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=other_thread,
             thread=other_thread,
             poster=self.user,
             poster=self.user,
             poster_name=self.user.username,
             poster_name=self.user.username,
@@ -91,13 +95,14 @@ class PostModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=timezone.now() + timedelta(minutes=5),
             posted_on=timezone.now() + timedelta(minutes=5),
-            updated_on=timezone.now() + timedelta(minutes=5))
+            updated_on=timezone.now() + timedelta(minutes=5)
+        )
 
 
         with self.assertRaises(ValueError):
         with self.assertRaises(ValueError):
             self.post.merge(other_post)
             self.post.merge(other_post)
 
 
         other_post = Post.objects.create(
         other_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster_name=other_user.username,
             poster_name=other_user.username,
             poster_ip='127.0.0.1',
             poster_ip='127.0.0.1',
@@ -105,7 +110,8 @@ class PostModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=timezone.now() + timedelta(minutes=5),
             posted_on=timezone.now() + timedelta(minutes=5),
-            updated_on=timezone.now() + timedelta(minutes=5))
+            updated_on=timezone.now() + timedelta(minutes=5)
+        )
 
 
         with self.assertRaises(ValueError):
         with self.assertRaises(ValueError):
             self.post.merge(other_post)
             self.post.merge(other_post)
@@ -115,7 +121,7 @@ class PostModelTests(TestCase):
     def test_merge(self):
     def test_merge(self):
         """merge method merges two posts into one"""
         """merge method merges two posts into one"""
         other_post = Post.objects.create(
         other_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=self.user,
             poster=self.user,
             poster_name=self.user.username,
             poster_name=self.user.username,
@@ -124,7 +130,8 @@ class PostModelTests(TestCase):
             parsed="<p>I am other message!</p>",
             parsed="<p>I am other message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=timezone.now() + timedelta(minutes=5),
             posted_on=timezone.now() + timedelta(minutes=5),
-            updated_on=timezone.now() + timedelta(minutes=5))
+            updated_on=timezone.now() + timedelta(minutes=5)
+        )
 
 
         other_post.merge(self.post)
         other_post.merge(self.post)
 
 
@@ -135,13 +142,14 @@ class PostModelTests(TestCase):
     def test_move(self):
     def test_move(self):
         """move method moves post to other thread"""
         """move method moves post to other thread"""
         new_thread = Thread.objects.create(
         new_thread = Thread.objects.create(
-            forum=self.forum,
+            category=self.category,
             started_on=timezone.now(),
             started_on=timezone.now(),
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=timezone.now(),
             last_post_on=timezone.now(),
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.post.move(new_thread)
         self.post.move(new_thread)
 
 

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

@@ -1,4 +1,4 @@
-from misago.forums.models import Forum
+from misago.categories.models import Category
 from misago.users.testutils import AuthenticatedUserTestCase
 from misago.users.testutils import AuthenticatedUserTestCase
 
 
 from misago.threads import moderation, testutils
 from misago.threads import moderation, testutils
@@ -9,8 +9,8 @@ class PostsModerationTests(AuthenticatedUserTestCase):
     def setUp(self):
     def setUp(self):
         super(PostsModerationTests, self).setUp()
         super(PostsModerationTests, self).setUp()
 
 
-        self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
-        self.thread = testutils.post_thread(self.forum)
+        self.category = Category.objects.all_categories()[:1][0]
+        self.thread = testutils.post_thread(self.category)
         self.post = testutils.reply_thread(self.thread)
         self.post = testutils.reply_thread(self.thread)
 
 
     def reload_thread(self):
     def reload_thread(self):

+ 4 - 4
misago/threads/tests/test_synchronizethreads.py

@@ -1,7 +1,7 @@
 from django.test import TestCase
 from django.test import TestCase
 from django.utils.six import StringIO
 from django.utils.six import StringIO
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads import testutils
 from misago.threads import testutils
 from misago.threads.management.commands import synchronizethreads
 from misago.threads.management.commands import synchronizethreads
@@ -20,9 +20,9 @@ class SynchronizeThreadsTests(TestCase):
 
 
     def test_threads_sync(self):
     def test_threads_sync(self):
         """command synchronizes threads"""
         """command synchronizes threads"""
-        forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
+        category = Category.objects.all_categories()[:1][0]
 
 
-        threads = [testutils.post_thread(forum) for t in xrange(10)]
+        threads = [testutils.post_thread(category) for t in xrange(10)]
         for i, thread in enumerate(threads):
         for i, thread in enumerate(threads):
             [testutils.reply_thread(thread) for r in xrange(i)]
             [testutils.reply_thread(thread) for r in xrange(i)]
             thread.replies = 0
             thread.replies = 0
@@ -34,7 +34,7 @@ class SynchronizeThreadsTests(TestCase):
         command.execute(stdout=out)
         command.execute(stdout=out)
 
 
         for i, thread in enumerate(threads):
         for i, thread in enumerate(threads):
-            db_thread = forum.thread_set.get(id=thread.id)
+            db_thread = category.thread_set.get(id=thread.id)
             self.assertEqual(db_thread.replies, i)
             self.assertEqual(db_thread.replies, i)
 
 
         command_output = out.getvalue().splitlines()[-1].strip()
         command_output = out.getvalue().splitlines()[-1].strip()

+ 44 - 29
misago/threads/tests/test_thread_model.py

@@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.models import Thread, ThreadParticipant, Post, Event
 from misago.threads.models import Thread, ThreadParticipant, Post, Event
 
 
@@ -13,21 +13,22 @@ class ThreadModelTests(TestCase):
     def setUp(self):
     def setUp(self):
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster_name='Tester',
             poster_name='Tester',
             poster_ip='127.0.0.1',
             poster_ip='127.0.0.1',
@@ -35,7 +36,8 @@ class ThreadModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         self.thread.first_post = post
         self.thread.first_post = post
         self.thread.last_post = post
         self.thread.last_post = post
@@ -50,7 +52,7 @@ class ThreadModelTests(TestCase):
 
 
         datetime = timezone.now() + timedelta(5)
         datetime = timezone.now() + timedelta(5)
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=user,
             poster=user,
             poster_name=user.username,
             poster_name=user.username,
@@ -59,7 +61,8 @@ class ThreadModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         # first sync call, updates last thread
         # first sync call, updates last thread
         self.thread.synchronize()
         self.thread.synchronize()
@@ -77,7 +80,7 @@ class ThreadModelTests(TestCase):
 
 
         # add moderated post
         # add moderated post
         moderated_post = Post.objects.create(
         moderated_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=user,
             poster=user,
             poster_name=user.username,
             poster_name=user.username,
@@ -87,7 +90,8 @@ class ThreadModelTests(TestCase):
             checksum="nope",
             checksum="nope",
             posted_on=datetime + timedelta(5),
             posted_on=datetime + timedelta(5),
             updated_on=datetime + timedelta(5),
             updated_on=datetime + timedelta(5),
-            is_moderated=True)
+            is_moderated=True
+        )
 
 
         self.thread.synchronize()
         self.thread.synchronize()
         self.assertEqual(self.thread.last_post, post)
         self.assertEqual(self.thread.last_post, post)
@@ -103,7 +107,7 @@ class ThreadModelTests(TestCase):
 
 
         # add hidden post
         # add hidden post
         hidden_post = Post.objects.create(
         hidden_post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=user,
             poster=user,
             poster_name=user.username,
             poster_name=user.username,
@@ -113,7 +117,8 @@ class ThreadModelTests(TestCase):
             checksum="nope",
             checksum="nope",
             posted_on=datetime + timedelta(10),
             posted_on=datetime + timedelta(10),
             updated_on=datetime + timedelta(10),
             updated_on=datetime + timedelta(10),
-            is_hidden=True)
+            is_hidden=True
+        )
 
 
         self.thread.synchronize()
         self.thread.synchronize()
         self.assertEqual(self.thread.last_post, hidden_post)
         self.assertEqual(self.thread.last_post, hidden_post)
@@ -163,11 +168,12 @@ class ThreadModelTests(TestCase):
 
 
         # add event
         # add event
         event = Event.objects.create(
         event = Event.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             author_name=user.username,
             author_name=user.username,
             author_slug=user.slug,
             author_slug=user.slug,
-            message="How bout nope?")
+            message="How bout nope?"
+        )
 
 
         # sync set has_events flag
         # sync set has_events flag
         self.thread.synchronize()
         self.thread.synchronize()
@@ -186,7 +192,7 @@ class ThreadModelTests(TestCase):
         datetime = timezone.now() + timedelta(5)
         datetime = timezone.now() + timedelta(5)
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=user,
             poster=user,
             poster_name=user.username,
             poster_name=user.username,
@@ -195,7 +201,8 @@ class ThreadModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         self.thread.set_first_post(post)
         self.thread.set_first_post(post)
         self.assertEqual(self.thread.first_post, post)
         self.assertEqual(self.thread.first_post, post)
@@ -212,7 +219,7 @@ class ThreadModelTests(TestCase):
         datetime = timezone.now() + timedelta(5)
         datetime = timezone.now() + timedelta(5)
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster=user,
             poster=user,
             poster_name=user.username,
             poster_name=user.username,
@@ -221,7 +228,8 @@ class ThreadModelTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         self.thread.set_last_post(post)
         self.thread.set_last_post(post)
         self.assertEqual(self.thread.last_post, post)
         self.assertEqual(self.thread.last_post, post)
@@ -231,15 +239,20 @@ class ThreadModelTests(TestCase):
         self.assertEqual(self.thread.last_poster_slug, user.slug)
         self.assertEqual(self.thread.last_poster_slug, user.slug)
 
 
     def test_move(self):
     def test_move(self):
-        """move(new_forum) moves thread to other forum"""
-        # pick category instead of forum (so we don't have to create one)
-        new_forum = Forum.objects.filter(role="category")[:1][0]
-
-        self.thread.move(new_forum)
-        self.assertEqual(self.thread.forum, new_forum)
+        """move(new_category) moves thread to other category"""
+        # pick category instead of category (so we don't have to create one)
+        root_category = Category.objects.root_category()
+        Category(
+            name='New Category',
+            slug='new-category',
+        ).insert_at(root_category, position='last-child', save=True)
+        new_category = Category.objects.get(slug='new-category')
+
+        self.thread.move(new_category)
+        self.assertEqual(self.thread.category, new_category)
 
 
         for post in self.thread.post_set.all():
         for post in self.thread.post_set.all():
-            self.assertEqual(post.forum_id, new_forum.id)
+            self.assertEqual(post.category_id, new_category.id)
 
 
     def test_merge(self):
     def test_merge(self):
         """merge(other_thread) moves other thread content to this thread"""
         """merge(other_thread) moves other thread content to this thread"""
@@ -249,19 +262,20 @@ class ThreadModelTests(TestCase):
         datetime = timezone.now() + timedelta(5)
         datetime = timezone.now() + timedelta(5)
 
 
         other_thread = Thread(
         other_thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         other_thread.set_title("Other thread")
         other_thread.set_title("Other thread")
         other_thread.save()
         other_thread.save()
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=other_thread,
             thread=other_thread,
             poster_name='Admin',
             poster_name='Admin',
             poster_ip='127.0.0.1',
             poster_ip='127.0.0.1',
@@ -269,7 +283,8 @@ class ThreadModelTests(TestCase):
             parsed="<p>Hello! I am other message!</p>",
             parsed="<p>Hello! I am other message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         other_thread.first_post = post
         other_thread.first_post = post
         other_thread.last_post = post
         other_thread.last_post = post

+ 8 - 6
misago/threads/tests/test_threadparticipant_model.py

@@ -2,7 +2,7 @@ from django.contrib.auth import get_user_model
 from django.test import TestCase
 from django.test import TestCase
 from django.utils import timezone
 from django.utils import timezone
 
 
-from misago.forums.models import Forum
+from misago.categories.models import Category
 
 
 from misago.threads.models import Thread, ThreadParticipant, Post
 from misago.threads.models import Thread, ThreadParticipant, Post
 
 
@@ -11,21 +11,22 @@ class ThreadParticipantTests(TestCase):
     def setUp(self):
     def setUp(self):
         datetime = timezone.now()
         datetime = timezone.now()
 
 
-        self.forum = Forum.objects.filter(role="forum")[:1][0]
+        self.category = Category.objects.all_categories()[:1][0]
         self.thread = Thread(
         self.thread = Thread(
-            forum=self.forum,
+            category=self.category,
             started_on=datetime,
             started_on=datetime,
             starter_name='Tester',
             starter_name='Tester',
             starter_slug='tester',
             starter_slug='tester',
             last_post_on=datetime,
             last_post_on=datetime,
             last_poster_name='Tester',
             last_poster_name='Tester',
-            last_poster_slug='tester')
+            last_poster_slug='tester'
+        )
 
 
         self.thread.set_title("Test thread")
         self.thread.set_title("Test thread")
         self.thread.save()
         self.thread.save()
 
 
         post = Post.objects.create(
         post = Post.objects.create(
-            forum=self.forum,
+            category=self.category,
             thread=self.thread,
             thread=self.thread,
             poster_name='Tester',
             poster_name='Tester',
             poster_ip='127.0.0.1',
             poster_ip='127.0.0.1',
@@ -33,7 +34,8 @@ class ThreadParticipantTests(TestCase):
             parsed="<p>Hello! I am test message!</p>",
             parsed="<p>Hello! I am test message!</p>",
             checksum="nope",
             checksum="nope",
             posted_on=datetime,
             posted_on=datetime,
-            updated_on=datetime)
+            updated_on=datetime
+        )
 
 
         self.thread.first_post = post
         self.thread.first_post = post
         self.thread.last_post = post
         self.thread.last_post = post

+ 21 - 51
misago/threads/tests/test_threads_moderation.py

@@ -1,58 +1,23 @@
-from misago.forums.models import Forum
+from misago.categories.models import Category
 from misago.users.testutils import AuthenticatedUserTestCase
 from misago.users.testutils import AuthenticatedUserTestCase
 
 
 from misago.threads import moderation, testutils
 from misago.threads import moderation, testutils
-from misago.threads.models import Label, Thread, Post, Event
+from misago.threads.models import Thread, Post, Event
 
 
 
 
 class ThreadsModerationTests(AuthenticatedUserTestCase):
 class ThreadsModerationTests(AuthenticatedUserTestCase):
     def setUp(self):
     def setUp(self):
         super(ThreadsModerationTests, self).setUp()
         super(ThreadsModerationTests, self).setUp()
 
 
-        self.forum = Forum.objects.all_forums().filter(role="forum")[:1][0]
-        self.thread = testutils.post_thread(self.forum)
-        Label.objects.clear_cache()
+        self.category = Category.objects.all_categories()[:1][0]
+        self.thread = testutils.post_thread(self.category)
 
 
     def tearDown(self):
     def tearDown(self):
         super(ThreadsModerationTests, self).tearDown()
         super(ThreadsModerationTests, self).tearDown()
-        Label.objects.clear_cache()
 
 
     def reload_thread(self):
     def reload_thread(self):
         self.thread = Thread.objects.get(pk=self.thread.pk)
         self.thread = Thread.objects.get(pk=self.thread.pk)
 
 
-    def test_label_thread(self):
-        """label_thread makes thread announcement"""
-        label = Label.objects.create(name="Label", slug="label")
-
-        self.assertIsNone(self.thread.label)
-        self.assertTrue(moderation.label_thread(self.user, self.thread, label))
-
-        self.reload_thread()
-        self.assertEqual(self.thread.label, label)
-
-        self.assertTrue(self.thread.has_events)
-        event = self.thread.event_set.last()
-
-        self.assertEqual(event.icon, "tag")
-        self.assertIn("set thread label to", event.message)
-
-    def test_unlabel_thread(self):
-        """unlabel_thread removes thread label"""
-        label = Label.objects.create(name="Label", slug="label")
-        self.assertTrue(moderation.label_thread(self.user, self.thread, label))
-
-        self.reload_thread()
-        self.assertTrue(moderation.unlabel_thread(self.user, self.thread))
-
-        self.reload_thread()
-        self.assertIsNone(self.thread.label)
-
-        self.assertTrue(self.thread.has_events)
-        event = self.thread.event_set.last()
-
-        self.assertEqual(event.icon, "tag")
-        self.assertIn("removed thread label.", event.message)
-
     def test_pin_thread(self):
     def test_pin_thread(self):
         """pin_thread makes thread pinned"""
         """pin_thread makes thread pinned"""
         self.assertFalse(self.thread.is_pinned)
         self.assertFalse(self.thread.is_pinned)
@@ -97,7 +62,7 @@ class ThreadsModerationTests(AuthenticatedUserTestCase):
 
 
     def test_approve_thread(self):
     def test_approve_thread(self):
         """approve_thread approves moderated thread"""
         """approve_thread approves moderated thread"""
-        thread = testutils.post_thread(self.forum, is_moderated=True)
+        thread = testutils.post_thread(self.category, is_moderated=True)
 
 
         self.assertTrue(thread.is_moderated)
         self.assertTrue(thread.is_moderated)
         self.assertTrue(thread.first_post.is_moderated)
         self.assertTrue(thread.first_post.is_moderated)
@@ -113,29 +78,34 @@ class ThreadsModerationTests(AuthenticatedUserTestCase):
         self.assertEqual(event.icon, "check")
         self.assertEqual(event.icon, "check")
 
 
     def test_move_thread(self):
     def test_move_thread(self):
-        """moves_thread moves moderated thread to other froum"""
-        new_forum = Forum.objects.all_forums().filter(role="category")[:1][0]
-
-        self.assertEqual(self.thread.forum, self.forum)
+        """moves_thread moves moderated thread to other category"""
+        root_category = Category.objects.root_category()
+        Category(
+            name='New Category',
+            slug='new-category',
+        ).insert_at(root_category, position='last-child', save=True)
+        new_category = Category.objects.get(slug='new-category')
+
+        self.assertEqual(self.thread.category, self.category)
         self.assertTrue(
         self.assertTrue(
-            moderation.move_thread(self.user, self.thread, new_forum))
+            moderation.move_thread(self.user, self.thread, new_category))
 
 
         self.reload_thread()
         self.reload_thread()
-        self.assertEqual(self.thread.forum, new_forum)
+        self.assertEqual(self.thread.category, new_category)
         self.assertTrue(self.thread.has_events)
         self.assertTrue(self.thread.has_events)
         event = self.thread.event_set.last()
         event = self.thread.event_set.last()
 
 
         self.assertIn("moved thread", event.message)
         self.assertIn("moved thread", event.message)
         self.assertEqual(event.icon, "arrow-right")
         self.assertEqual(event.icon, "arrow-right")
 
 
-    def test_move_thread_to_same_forum(self):
-        """moves_thread does not move thread to same forum it is in"""
-        self.assertEqual(self.thread.forum, self.forum)
+    def test_move_thread_to_same_category(self):
+        """moves_thread does not move thread to same category it is in"""
+        self.assertEqual(self.thread.category, self.category)
         self.assertFalse(
         self.assertFalse(
-            moderation.move_thread(self.user, self.thread, self.forum))
+            moderation.move_thread(self.user, self.thread, self.category))
 
 
         self.reload_thread()
         self.reload_thread()
-        self.assertEqual(self.thread.forum, self.forum)
+        self.assertEqual(self.thread.category, self.category)
         self.assertFalse(self.thread.has_events)
         self.assertFalse(self.thread.has_events)
 
 
     def test_close_thread(self):
     def test_close_thread(self):

+ 272 - 0
misago/threads/tests/test_threadslists_views.py

@@ -0,0 +1,272 @@
+from misago.acl.testutils import override_acl
+from misago.categories.models import Category
+from misago.core import threadstore
+from misago.core.cache import cache
+from misago.users.testutils import AuthenticatedUserTestCase
+
+from misago.threads import testutils
+
+
+class ThreadsListTestCase(AuthenticatedUserTestCase):
+    def setUp(self):
+        super(ThreadsListTestCase, self).setUp()
+
+        cache.clear()
+        threadstore.clear()
+
+        self.root = Category.objects.root_category()
+        self.first_category = Category.objects.get(slug='first-category')
+
+        """
+        Create categories tree for test cases:
+
+        First category (created by migration)
+
+        Category A
+          + Category B
+            + Subcategory C
+            + Subcategory D
+
+        Category E
+          + Subcategory F
+        """
+        Category(
+            name='Category A',
+            slug='category-a',
+        ).insert_at(self.root, position='last-child', save=True)
+        Category(
+            name='Category E',
+            slug='category-e',
+        ).insert_at(self.root, position='last-child', save=True)
+
+        self.root = Category.objects.root_category()
+
+        self.category_a = Category.objects.get(slug='category-a')
+
+        Category(
+            name='Category B',
+            slug='category-b',
+        ).insert_at(self.category_a, position='last-child', save=True)
+
+        self.category_b = Category.objects.get(slug='category-b')
+
+        Category(
+            name='Category C',
+            slug='category-c',
+        ).insert_at(self.category_b, position='last-child', save=True)
+        Category(
+            name='Category D',
+            slug='category-d',
+        ).insert_at(self.category_b, position='last-child', save=True)
+
+        self.category_c = Category.objects.get(slug='category-c')
+        self.category_d = Category.objects.get(slug='category-d')
+
+        self.category_e = Category.objects.get(slug='category-e')
+        Category(
+            name='Category F',
+            slug='category-f',
+        ).insert_at(self.category_e, position='last-child', save=True)
+
+        self.category_f = Category.objects.get(slug='category-f')
+
+        cache.clear()
+        threadstore.clear()
+
+        self.access_all_categories()
+
+    def access_all_categories(self):
+        categories_acl = {'categories': {}, 'visible_categories': []}
+        for category in Category.objects.all_categories():
+            categories_acl['visible_categories'].append(category.pk)
+            categories_acl['categories'][category.pk] = {
+                'can_see': 1,
+                'can_browse': 1,
+                'can_see_all_threads': 1,
+                'can_see_own_threads': 0,
+            }
+        override_acl(self.user, categories_acl)
+        return categories_acl
+
+
+class ThreadsListTests(ThreadsListTestCase):
+    def test_list_renders_empty(self):
+        """empty threads list renders"""
+        LISTS_URLS = (
+            '/',
+            '/my/',
+            '/new/',
+            '/unread/',
+            '/subscribed/'
+        )
+
+        for url in LISTS_URLS:
+            self.access_all_categories()
+
+            response = self.client.get(url)
+            self.assertEqual(response.status_code, 200)
+            self.assertIn("empty-message", response.content)
+
+    def test_list_authenticated_only_views(self):
+        """authenticated only views return 403 for guests"""
+        LISTS_URLS = (
+            '/my/',
+            '/new/',
+            '/unread/',
+            '/subscribed/'
+        )
+
+        self.logout_user()
+        for url in LISTS_URLS:
+            response = self.client.get(url)
+            self.assertEqual(response.status_code, 403)
+
+    def test_empty_list_hides_categories_picker(self):
+        """categories picker is hidden on empty list"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        response = self.client.get('/')
+        self.assertEqual(response.status_code, 200)
+
+        self.assertNotIn(self.category_a.get_absolute_url(), response.content)
+        self.assertNotIn(self.category_e.get_absolute_url(), response.content)
+
+    def test_list_renders_categories_picker(self):
+        """categories picker renders valid categories"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        testutils.post_thread(
+            category=self.category_a,
+        )
+
+        response = self.client.get('/')
+        self.assertEqual(response.status_code, 200)
+
+        self.assertIn(self.category_a.get_absolute_url(), response.content)
+
+        # readable categories, but non-accessible directly
+        self.assertNotIn(self.category_b.get_absolute_url(), response.content)
+        self.assertNotIn(self.category_c.get_absolute_url(), response.content)
+        self.assertNotIn(self.category_d.get_absolute_url(), response.content)
+        self.assertNotIn(self.category_f.get_absolute_url(), response.content)
+
+        # hidden category
+        self.assertNotIn(test_category.get_absolute_url(), response.content)
+
+    def test_list_renders_test_thread(self):
+        """list renders test thread with valid top category"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        test_thread = testutils.post_thread(
+            category=self.category_c,
+        )
+
+        response = self.client.get('/')
+        self.assertEqual(response.status_code, 200)
+
+        self.assertIn(self.category_a.get_absolute_url(), response.content)
+        self.assertIn(test_thread.get_absolute_url(), response.content)
+
+        # other top category is hidden from user
+        self.assertNotIn(self.category_e.get_absolute_url(), response.content)
+
+        # real thread's category is hidden away from user
+        self.assertNotIn(self.category_c.get_absolute_url(), response.content)
+
+    def test_list_renders_hidden_thread(self):
+        """list renders empty due to no permissions"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        test_thread = testutils.post_thread(
+            category=test_category,
+        )
+
+        response = self.client.get('/')
+        self.assertEqual(response.status_code, 200)
+        self.assertIn("empty-message", response.content)
+
+
+class CategoryThreadsListTests(ThreadsListTestCase):
+    def test_list_renders_empty(self):
+        """empty threads list renders"""
+        LISTS_URLS = (
+            '',
+            'my/',
+            'new/',
+            'unread/',
+            'subscribed/'
+        )
+
+        for url in LISTS_URLS:
+            self.access_all_categories()
+
+            response = self.client.get(self.category_b.get_absolute_url() + url)
+            self.assertEqual(response.status_code, 200)
+            self.assertIn(self.category_b.name, response.content)
+            self.assertIn("empty-message", response.content)
+
+    def test_access_hidden_category(self):
+        """hidden category returns 404"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        LISTS_URLS = (
+            '',
+            'my/',
+            'new/',
+            'unread/',
+            'subscribed/'
+        )
+
+        for url in LISTS_URLS:
+            response = self.client.get(test_category.get_absolute_url() + url)
+            self.assertEqual(response.status_code, 404)
+
+    def test_access_protected_category(self):
+        """protected category returns 403"""
+        Category(
+            name='Hidden Category',
+            slug='hidden-category',
+        ).insert_at(self.root, position='last-child', save=True)
+        test_category = Category.objects.get(slug='hidden-category')
+
+        LISTS_URLS = (
+            '',
+            'my/',
+            'new/',
+            'unread/',
+            'subscribed/'
+        )
+
+        for url in LISTS_URLS:
+            override_acl(self.user, {
+                'visible_categories': [test_category.pk],
+                'categories': {
+                    test_category.pk: {
+                        'can_see': 1,
+                        'can_browse': 0,
+                    }
+                }
+            });
+
+            response = self.client.get(test_category.get_absolute_url() + url)
+            self.assertEqual(response.status_code, 403)

+ 69 - 0
misago/threads/urls/__init__.py

@@ -0,0 +1,69 @@
+from django.conf import settings
+from django.conf.urls import patterns, url
+
+from misago.threads.views.threadslist import (
+    ThreadsList, CategoryThreadsList, PrivateThreadsList)
+
+
+PATTERNS_KWARGS = (
+    {'list_type': 'all'},
+    {'list_type': 'my'},
+    {'list_type': 'new'},
+    {'list_type': 'unread'},
+    {'list_type': 'subscribed'},
+)
+
+
+def threads_list_patterns(root_name, view, patterns):
+    urlpatterns = []
+
+    for i, pattern in enumerate(patterns):
+        if i > 0:
+            url_name = '%s_%s' % (root_name, PATTERNS_KWARGS[i]['list_type'])
+        else:
+            url_name = root_name
+
+        urlpatterns.append(url(
+            pattern,
+            view.as_view(),
+            name=url_name,
+            kwargs=PATTERNS_KWARGS[i],
+        ))
+
+    return urlpatterns
+
+
+if settings.MISAGO_CATEGORIES_ON_INDEX:
+    urlpatterns = threads_list_patterns('threads', ThreadsList, (
+        r'^threads/$',
+        r'^threads/my/$',
+        r'^threads/new/$',
+        r'^threads/unread/$',
+        r'^threads/subscribed/$',
+    ))
+else:
+    urlpatterns = threads_list_patterns('threads', ThreadsList, (
+        r'^$',
+        r'^my/$',
+        r'^new/$',
+        r'^unread/$',
+        r'^subscribed/$',
+    ))
+
+
+urlpatterns += threads_list_patterns('category', CategoryThreadsList, (
+    r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/$',
+    r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/my/$',
+    r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/new/$',
+    r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/unread/$',
+    r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/subscribed/$',
+))
+
+
+urlpatterns += threads_list_patterns('private_threads', CategoryThreadsList, (
+    r'^private-threads/$',
+    r'^private-threads/my/$',
+    r'^private-threads/new/$',
+    r'^private-threads/unread/$',
+    r'^private-threads/subscribed/$',
+))

+ 0 - 15
misago/threads/urls/threads.py

@@ -1,15 +0,0 @@
-from django.conf import settings
-from django.conf.urls import patterns, url
-
-
-if settings.MISAGO_CATEGORIES_ON_INDEX:
-    URL_PATH = r'^threads/$'
-else:
-    URL_PATH = r'^$'
-
-
-urlpatterns = patterns('misago.threads.views.threadslist',
-    url(URL_PATH, 'threads_list', name='threads'),
-
-    url(r'^category/(?P<category_slug>[-a-zA-Z0-9]+)-(?P<category_id>\d+)/$', 'threads_list', name='category'),
-)

+ 22 - 0
misago/threads/utils.py

@@ -0,0 +1,22 @@
+def add_categories_to_threads(categories, threads):
+    categories_dict = {}
+    for category in categories:
+        categories_dict[category.pk] = category
+
+    top_categories_map = {}
+
+    for thread in threads:
+        thread.category = categories_dict[thread.category_id]
+
+        if thread.category == categories[0]:
+            thread.top_category = None
+        elif thread.category.parent_id == categories[0].pk:
+            thread.top_category = thread.category
+        elif thread.category_id in top_categories_map:
+            thread.top_category = top_categories_map[thread.category_id]
+        else:
+            for category in categories:
+                if (category.parent_id == categories[0].pk and
+                        category.has_child(thread.category)):
+                    top_categories_map[thread.category_id] = category
+                    thread.top_category = category

+ 163 - 2
misago/threads/views/threadslist.py

@@ -1,5 +1,166 @@
+from django.conf import settings
+from django.core.exceptions import PermissionDenied
+from django.http import Http404
 from django.shortcuts import render
 from django.shortcuts import render
+from django.views.generic import View
+from django.utils.translation import ugettext as _, ugettext_lazy
 
 
+from misago.categories.models import CATEGORIES_TREE_ID, Category
+from misago.categories.permissions import (
+    allow_see_category, allow_browse_category)
+from misago.core.shortcuts import (
+    get_object_or_404, paginate, pagination_dict, validate_slug)
+from misago.readtracker import threadstracker
 
 
-def threads_list(request):
-    return render(request, 'misago/threadslist/threads.html')
+from misago.threads.models import Thread
+from misago.threads.permissions import exclude_invisible_threads
+from misago.threads.utils import add_categories_to_threads
+
+
+LISTS_NAMES = {
+    'my': ugettext_lazy("Your threads"),
+    'new': ugettext_lazy("New threads"),
+    'unread': ugettext_lazy("Unread threads"),
+    'subscribed': ugettext_lazy("subscribed threads"),
+}
+
+
+def get_threads_queryset(user, categories, list_type):
+    queryset = Thread.objects.all()
+    return exclude_invisible_threads(user, categories, queryset)
+
+
+class BaseList(View):
+    template_name = 'misago/threadslist/threads.html'
+    preloaded_data_prefix = ''
+
+    def allow_see_list(self, request, category, list_type):
+        if request.user.is_anonymous():
+            if list_type == 'my':
+                raise PermissionDenied( _("You have to sign in to see list of "
+                                          "threads that you have started."))
+
+            if list_type == 'new':
+                raise PermissionDenied(_("You have to sign in to see list of "
+                                         "threads you haven't read."))
+
+            if list_type == 'unread':
+                raise PermissionDenied(_("You have to sign in to see list of "
+                                         "threads with new replies."))
+
+            if list_type == 'subscribed':
+                raise PermissionDenied(_("You have to sign in to see list of "
+                                         "threads you are subscribing."))
+
+    def get_category(self, request, **kwargs):
+        return Category.objects.root_category()
+
+    def get_queryset(self, request, categories, list_type):
+        return get_threads_queryset(request.user, categories, list_type)
+
+    def get_subcategories(self, request, category):
+        if category.is_leaf_node():
+            return []
+
+        visible_categories = request.user.acl['visible_categories']
+        queryset = category.get_descendants().filter(id__in=visible_categories)
+        return list(queryset.order_by('lft'))
+
+    def get_extra_context(self, request, category, subcategories, list_type):
+        return {}
+
+    def get(self, request, **kwargs):
+        try:
+            page = int(request.GET.get('page', 0))
+            if page == 1:
+                page = None
+        except ValueError:
+            raise Http404()
+
+        list_type = kwargs['list_type']
+        category = self.get_category(request, **kwargs)
+
+        self.allow_see_list(request, category, list_type)
+
+        subcategories = self.get_subcategories(request, category)
+        categories = [category] + subcategories
+
+        queryset = self.get_queryset(request, categories, list_type)
+
+        page = paginate(queryset, page, 24, 6)
+        paginator = pagination_dict(page)
+
+        threadstracker.make_threads_read_aware(request.user, page.object_list)
+        add_categories_to_threads(categories, page.object_list)
+
+        visible_subcategories = []
+        for thread in page.object_list:
+            if (thread.top_category and
+                    thread.top_category not in visible_subcategories):
+                visible_subcategories.append(thread.top_category.pk)
+
+        category.subcategories = []
+        for subcategory in subcategories:
+            if subcategory.pk in visible_subcategories:
+                category.subcategories.append(subcategory)
+
+        extra_context = self.get_extra_context(
+            request, category, subcategories, list_type)
+
+        show_toolbar = False
+        if paginator['count']:
+            if category.subcategories:
+                show_toolbar = True
+            if request.user.is_authenticated():
+                show_toolbar = True
+
+        return render(request, self.template_name, dict(
+            category=category,
+            show_toolbar=show_toolbar,
+
+            list_type=list_type,
+            list_name=LISTS_NAMES.get(list_type),
+
+            threads=page.object_list,
+            paginator=paginator,
+            count=paginator['count'],
+
+            **extra_context
+        ))
+
+
+class ThreadsList(BaseList):
+    template_name = 'misago/threadslist/threads.html'
+
+    def get_extra_context(self, request, category, subcategories, list_type):
+        return {
+            'is_index': not settings.MISAGO_CATEGORIES_ON_INDEX
+        }
+
+
+class CategoryThreadsList(ThreadsList):
+    template_name = 'misago/threadslist/category.html'
+    preloaded_data_prefix = 'CATEGORY_'
+
+    def get_category(self, request, **kwargs):
+        category = get_object_or_404(Category.objects.select_related('parent'),
+            tree_id=CATEGORIES_TREE_ID,
+            id=kwargs['category_id'],
+        )
+
+        allow_see_category(request.user, category)
+        allow_browse_category(request.user, category)
+
+        validate_slug(category, kwargs['category_slug'])
+
+        return category
+
+class PrivateThreadsList(ThreadsList):
+    template_name = 'misago/threadslist/private_threads.html'
+    preloaded_data_prefix = 'PRIVATE_'
+
+    def get_category(self, request, **kwargs):
+        return Category.objects.private_threads()
+
+    def get_subcategories(self, request, category):
+        return []

+ 1 - 1
misago/urls.py

@@ -7,7 +7,7 @@ urlpatterns = patterns('',
     url(r'^', include('misago.legal.urls')),
     url(r'^', include('misago.legal.urls')),
     url(r'^', include('misago.users.urls')),
     url(r'^', include('misago.users.urls')),
     url(r'^', include('misago.categories.urls')),
     url(r'^', include('misago.categories.urls')),
-    url(r'^', include('misago.threads.urls.threads')),
+    url(r'^', include('misago.threads.urls')),
     url(r'^', include('misago.readtracker.urls')),
     url(r'^', include('misago.readtracker.urls')),
 )
 )
 
 

+ 8 - 8
misago/users/views/profile.py

@@ -10,8 +10,8 @@ from django.utils.translation import ugettext as _
 
 
 from misago.acl import add_acl
 from misago.acl import add_acl
 from misago.core.decorators import require_POST
 from misago.core.decorators import require_POST
-from misago.core.shortcuts import (get_object_or_404, paginate,
-                                   pagination_dict, validate_slug)
+from misago.core.shortcuts import (
+    get_object_or_404, paginate, pagination_dict, validate_slug)
 from misago.core.utils import clean_return_path
 from misago.core.utils import clean_return_path
 from misago.threads.permissions import allow_message_user
 from misago.threads.permissions import allow_message_user
 
 
@@ -19,13 +19,13 @@ from misago.users.bans import get_user_ban
 from misago.users.decorators import deny_guests
 from misago.users.decorators import deny_guests
 from misago.users.online.utils import get_user_status
 from misago.users.online.utils import get_user_status
 from misago.users.pages import user_profile
 from misago.users.pages import user_profile
-from misago.users.permissions.profiles import (allow_follow_user,
-                                               allow_block_user)
-from misago.users.serializers import (UserSerializer, UserProfileSerializer,
-                                      BanDetailsSerializer)
+from misago.users.permissions.profiles import (
+    allow_follow_user, allow_block_user)
+from misago.users.serializers import (
+    UserSerializer, UserProfileSerializer, BanDetailsSerializer)
 from misago.users.serializers.usernamechange import  UsernameChangeSerializer
 from misago.users.serializers.usernamechange import  UsernameChangeSerializer
-from misago.users.warnings import (get_warning_levels, get_user_warning_level,
-                                   get_user_warning_obj)
+from misago.users.warnings import (
+    get_warning_levels, get_user_warning_level, get_user_warning_obj)
 
 
 
 
 def profile_view(f):
 def profile_view(f):