Browse Source

pick avatar from gallery

Rafał Pitoń 9 years ago
parent
commit
bca67aa77c

+ 156 - 0
frontend/src/components/change-avatar/gallery.js

@@ -0,0 +1,156 @@
+import React from 'react';
+import Button from 'misago/components/button'; // jshint ignore:line
+import misago from 'misago/index'; // jshint ignore:line
+import ajax from 'misago/services/ajax'; // jshint ignore:line
+import snackbar from 'misago/services/snackbar'; // jshint ignore:line
+import batch from 'misago/utils/batch'; // jshint ignore:line
+
+export class GalleryItem extends React.Component {
+  /* jshint ignore:start */
+  select = () => {
+    this.props.select(this.props.image);
+  };
+  /* jshint ignore:end */
+
+  getClassName() {
+    if (this.props.selection === this.props.image) {
+      if (this.props.disabled) {
+        return 'btn btn-avatar btn-disabled avatar-selected';
+      } else {
+        return 'btn btn-avatar avatar-selected';
+      }
+    } else if (this.props.disabled) {
+      return 'btn btn-avatar btn-disabled';
+    } else {
+      return 'btn btn-avatar';
+    }
+  }
+
+  render() {
+    /* jshint ignore:start */
+    return <button type="button"
+                   className={this.getClassName()}
+                   disabled={this.props.disabled}
+                   onClick={this.select}>
+      <img src={misago.get('MEDIA_URL') + this.props.image} />
+    </button>
+    /* jshint ignore:end */
+  }
+}
+
+export class Gallery extends React.Component {
+  render() {
+    /* jshint ignore:start */
+    return <div className="avatars-gallery">
+      <h3>{this.props.name}</h3>
+
+      <div className="avatars-gallery-images">
+        {batch(this.props.images, 4, null).map((row, i) => {
+          return <div className="row" key={i}>
+            {row.map((item, i) => {
+              return <div className="col-xs-3" key={i}>
+                {item ? <GalleryItem image={item}
+                                     disabled={this.props.disabled}
+                                     select={this.props.select}
+                                     selection={this.props.selection} />
+                      : <div className="blank-avatar" />}
+              </div>
+            })}
+          </div>
+        })}
+      </div>
+    </div>;
+    /* jshint ignore:end */
+  }
+}
+
+export default class extends React.Component {
+  constructor(props) {
+    super(props);
+
+    this.state = {
+      'selection': null,
+      'isLoading': false
+    };
+  }
+
+  /* jshint ignore:start */
+  select = (image) => {
+    this.setState({
+      selection: image
+    });
+  };
+
+  save = () => {
+    if (this.state.isLoading) {
+      return false;
+    }
+
+    this.setState({
+      'isLoading': true
+    });
+
+    ajax.post(this.props.user.avatar_api_url, {
+      avatar: 'galleries',
+      image: this.state.selection
+    }).then((response) => {
+      this.setState({
+        'isLoading': false
+      });
+
+      snackbar.success(response.detail);
+      this.props.onComplete(response.avatar_hash, response.options);
+    }, (rejection) => {
+      if (rejection.status === 400) {
+        snackbar.error(rejection.detail);
+      } else {
+        this.props.showError(rejection);
+      }
+
+      this.setState({
+        'isLoading': false
+      });
+    });
+  };
+  /* jshint ignore:end */
+
+  render() {
+    /* jshint ignore:start */
+    return <div>
+      <div className="modal-body modal-avatar-gallery">
+
+        {this.props.options.galleries.map((item, i) => {
+          return <Gallery name={item.name}
+                          images={item.images}
+                          selection={this.state.selection}
+                          disabled={this.state.isLoading}
+                          select={this.select}
+                          key={i} />;
+        })}
+
+      </div>
+      <div className="modal-footer">
+        <div className="row">
+          <div className="col-md-6 col-md-offset-3">
+
+            <Button 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")}
+            </Button>
+
+            <Button onClick={this.props.showIndex}
+                    disabled={this.state.isLoading}
+                    className="btn-default btn-block">
+              {gettext("Cancel")}
+            </Button>
+
+          </div>
+        </div>
+      </div>
+    </div>;
+    /* jshint ignore:end */
+  }
+}

+ 16 - 0
frontend/src/components/change-avatar/index.js

@@ -69,6 +69,20 @@ export default class extends React.Component {
     }
     }
   }
   }
 
 
+  getGalleryButton() {
+    if (this.props.options.galleries) {
+      /* jshint ignore:start */
+      return <Button onClick={this.props.showGallery}
+              disabled={this.state.isLoading}
+              className="btn-default btn-block btn-avatar-gallery">
+        {gettext("Pick avatar from gallery")}
+      </Button>;
+      /* jshint ignore:end */
+    } else {
+      return null;
+    }
+  }
+
   getAvatarPreview() {
   getAvatarPreview() {
     if (this.state.isLoading) {
     if (this.state.isLoading) {
       /* jshint ignore:start */
       /* jshint ignore:start */
@@ -105,6 +119,8 @@ export default class extends React.Component {
             {gettext("Generate my individual avatar")}
             {gettext("Generate my individual avatar")}
           </Button>
           </Button>
 
 
+          {this.getGalleryButton()}
+
         </div>
         </div>
       </div>
       </div>
     </div>;
     </div>;

+ 10 - 2
frontend/src/components/change-avatar/root.js

@@ -1,5 +1,6 @@
 import React from 'react';
 import React from 'react';
 import AvatarIndex from 'misago/components/change-avatar/index'; // jshint ignore:line
 import AvatarIndex from 'misago/components/change-avatar/index'; // jshint ignore:line
+import AvatarGallery from 'misago/components/change-avatar/gallery'; // jshint ignore:line
 import Loader from 'misago/components/modal-loader'; // jshint ignore:line
 import Loader from 'misago/components/modal-loader'; // jshint ignore:line
 import { updateAvatar } from 'misago/reducers/users'; // jshint ignore:line
 import { updateAvatar } from 'misago/reducers/users'; // jshint ignore:line
 import ajax from 'misago/services/ajax';
 import ajax from 'misago/services/ajax';
@@ -61,6 +62,12 @@ export default class extends React.Component {
     });
     });
   };
   };
 
 
+  showGallery = () => {
+    this.setState({
+      'component': AvatarGallery
+    });
+  };
+
   completeFlow = (avatarHash, options) => {
   completeFlow = (avatarHash, options) => {
     store.dispatch(updateAvatar(this.props.user, avatarHash));
     store.dispatch(updateAvatar(this.props.user, avatarHash));
 
 
@@ -82,9 +89,10 @@ export default class extends React.Component {
         /* jshint ignore:start */
         /* jshint ignore:start */
         return <this.state.component options={this.state.options}
         return <this.state.component options={this.state.options}
                                      user={this.props.user}
                                      user={this.props.user}
-                                     onComplete={this.onComplete}
+                                     onComplete={this.completeFlow}
                                      showError={this.showError}
                                      showError={this.showError}
-                                     showIndex={this.showIndex} />;
+                                     showIndex={this.showIndex}
+                                     showGallery={this.showGallery} />;
         /* jshint ignore:end */
         /* jshint ignore:end */
       }
       }
     } else {
     } else {

+ 1 - 1
frontend/src/components/form-group.js

@@ -72,7 +72,7 @@ export default class extends React.Component {
     return <div className={this.getClassName()}>
     return <div className={this.getClassName()}>
       <label className={'control-label ' + (this.props.labelClass || '')}
       <label className={'control-label ' + (this.props.labelClass || '')}
              htmlFor={this.props.for || ''}>
              htmlFor={this.props.for || ''}>
-        {this.props.label}:
+        {this.props.label + ':'}
       </label>
       </label>
       <div className={this.props.controlClass || ''}>
       <div className={this.props.controlClass || ''}>
         {this.props.children}
         {this.props.children}

+ 25 - 0
frontend/src/utils/batch.js

@@ -0,0 +1,25 @@
+export default function(list, rowWidth, padding=false) {
+  let rows = [];
+  let row = [];
+
+  list.forEach(function(element) {
+    row.push(element);
+    if (row.length === rowWidth) {
+      rows.push(row);
+      row = [];
+    }
+  });
+
+  // pad row to required length?
+  if (padding !== false && row.length > 0 && row.length < rowWidth) {
+    for (let i = row.length; i < rowWidth; i ++) {
+      row.push(padding);
+    }
+  }
+
+  if (row.length) {
+    rows.push(row);
+  }
+
+  return rows;
+}

+ 64 - 1
frontend/style/misago/change-avatar.less

@@ -2,7 +2,8 @@
 // Change Avatar Modal
 // Change Avatar Modal
 // --------------------------------------------------
 // --------------------------------------------------
 
 
-// Index page
+
+// Index
 .modal-change-avatar .modal-avatar-index {
 .modal-change-avatar .modal-avatar-index {
   .avatar-preview {
   .avatar-preview {
     border-radius: @border-radius-large;
     border-radius: @border-radius-large;
@@ -40,9 +41,71 @@
         display: block;
         display: block;
       }
       }
     }
     }
+
+    @media (max-width: (@grid-float-breakpoint - 1)) {
+      margin-bottom: @line-height-computed;
+
+      width: 150px;
+      height: 150px;
+
+      img {
+        width: 150px;
+        height: 150px;
+      }
+
+      .loader {
+        top: 25px;
+        height: 100px;
+
+        .loader-spinning-wheel {
+          width: 100px;
+          height: 100px;
+        }
+      }
+    }
   }
   }
 
 
   .btn {
   .btn {
     text-align: left;
     text-align: left;
   }
   }
+}
+
+
+// Gallery
+.modal-change-avatar .modal-avatar-gallery {
+  padding-bottom: 0px;
+
+  .avatars-gallery {
+    margin-bottom: @line-height-computed;
+
+    h3 {
+      margin-top: 0px;
+    }
+  }
+
+  .avatars-gallery-images {
+    .row {
+      margin-bottom: @line-height-computed / 2;
+    }
+
+    .btn {
+      border-radius: @border-radius-base + 2px;
+      border: 2px solid @gray-lighter;
+      background: none;
+      padding: 2px;
+
+      &:hover, &:focus {
+        border-color: @gray-light;
+      }
+
+      &.avatar-selected, &:active {
+        border-color: @link-color;
+      }
+
+      img {
+        border-radius: @border-radius-base;
+        width: 100%;
+      }
+    }
+  }
 }
 }

+ 28 - 0
frontend/tests/batch.js

@@ -0,0 +1,28 @@
+import assert from 'assert';
+import batch from 'misago/utils/batch';
+
+describe('Batch', function() {
+  it("splits list into batches", function() {
+    assert.deepEqual(batch(['a', 'b', 'c', 'd', 'e'], 2), [
+      ['a', 'b'], ['c', 'd'], ['e']
+    ], "list was correctly batched");
+
+    assert.deepEqual(batch(['a', 'b', 'c', 'd', 'e', 'f'], 2), [
+      ['a', 'b'], ['c', 'd'], ['e', 'f']
+    ], "list was correctly batched");
+
+    assert.deepEqual(batch(['a', 'b', 'c', 'd', 'e', 'f'], 3), [
+      ['a', 'b', 'c'], ['d', 'e', 'f']
+    ], "list was correctly batched");
+  });
+
+  it("splits list into batches, pads them", function() {
+    assert.deepEqual(batch(['a', 'b', 'c', 'd', 'e'], 2, '-'), [
+      ['a', 'b'], ['c', 'd'], ['e', '-']
+    ], "list was correctly batched and padded");
+
+    assert.deepEqual(batch(['a', 'b', 'c', 'd', 'e', 'f'], 3, '-'), [
+      ['a', 'b', 'c'], ['d', 'e', 'f']
+    ], "list was correctly batched and padded");
+  });
+});

+ 360 - 0
frontend/tests/components/change-avatar/gallery.js

@@ -0,0 +1,360 @@
+import assert from 'assert';
+import React from 'react'; // jshint ignore:line
+import ChangeAvatarGallery, { Gallery, GalleryItem } from 'misago/components/change-avatar/gallery'; // jshint ignore:line
+import misago from 'misago/index';
+import snackbar from 'misago/services/snackbar';
+import * as testUtils from 'misago/utils/test-utils';
+
+let snackbarStore = null;
+
+let apiResponse = {
+    "crop_tmp": false,
+    "galleries": [
+        {
+            "images": [
+                "avatars/Nature/arctic_fox.jpg",
+                "avatars/Nature/baby_fox.jpg",
+                "avatars/Nature/blackbird.jpg",
+                "avatars/Nature/rabbit.jpg",
+                "avatars/Nature/serval.jpg"
+            ],
+            "name": "Nature"
+        },
+        {
+            "images": [
+                "avatars/Space/andromeda.jpg",
+                "avatars/Space/antennae_galaxies.jpg",
+                "avatars/Space/barred_spiral_galaxy.jpg",
+                "avatars/Space/messier_74.jpg",
+                "avatars/Space/ngc_1672.jpg",
+                "avatars/Space/ngc_4414.jpg"
+            ],
+            "name": "Space"
+        }
+    ],
+    "crop_org": false,
+    "upload": {
+        "allowed_extensions": [
+            ".gif",
+            ".png",
+            ".jpg",
+            ".jpeg"
+        ],
+        "limit": 750000,
+        "allowed_mime_types": [
+            "image/gif",
+            "image/jpeg",
+            "image/png"
+        ]
+    },
+    "generated": true,
+    "gravatar": true
+};
+
+describe("Change Avatar Gallery", function() {
+  beforeEach(function() {
+    snackbarStore = testUtils.snackbarStoreMock();
+    snackbar.init(snackbarStore);
+
+    misago._context = {
+      'user': {
+        'id': 123,
+        'avatar_hash': 'aabbccdd',
+        'avatar_api_url': '/test-api/users/123/avatar/'
+      }
+    };
+  });
+
+  afterEach(function() {
+    testUtils.unmountComponents();
+    testUtils.snackbarClear(snackbar);
+    $.mockjax.clear();
+  });
+
+  it("renders", function(done) {
+    /* jshint ignore:start */
+    testUtils.render(
+      <ChangeAvatarGallery user={misago.get('user')}
+                           options={apiResponse} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .modal-avatar-gallery', function() {
+      assert.ok(true, "component renders");
+      done();
+    });
+  });
+
+  it("handles backend rejection", function(done) {
+    $.mockjax({
+      url: '/test-api/users/123/avatar/',
+      status: 400,
+      responseText: {
+        detail: "Lol nope!"
+      }
+    });
+
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Lol nope!",
+        type: 'error'
+      }, "error message was shown");
+
+      done();
+    });
+
+    let component = null;
+
+    /* jshint ignore:start */
+    component = testUtils.render(
+      <ChangeAvatarGallery user={misago.get('user')}
+                           options={apiResponse} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .btn-avatar', function() {
+      testUtils.simulateClick('#test-mount .btn-avatar');
+    });
+
+    testUtils.onElement('#test-mount .avatar-selected', function() {
+      assert.equal(component.state.selection, "avatars/Nature/arctic_fox.jpg",
+        "avatar selection callback works");
+      testUtils.simulateClick('#test-mount .btn-primary');
+    });
+  });
+
+  it("handles backend error", function(done) { // jshint ignore:line
+    $.mockjax({
+      url: '/test-api/users/123/avatar/',
+      status: 403,
+      responseText: {
+        detail: "Avatar can't be changed at this time!"
+      }
+    });
+
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Lol nope!",
+        type: 'error'
+      }, "error message was shown");
+
+      done();
+    });
+
+    let component = null;
+
+    /* jshint ignore:start */
+    let showError = function(error) {
+      assert.equal(error.detail, "Avatar can't be changed at this time!",
+        "callback was called with backend error message");
+      done()
+    };
+
+    component = testUtils.render(
+      <ChangeAvatarGallery user={misago.get('user')}
+                           options={apiResponse}
+                           showError={showError} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .btn-avatar', function() {
+      testUtils.simulateClick('#test-mount .btn-avatar');
+    });
+
+    testUtils.onElement('#test-mount .avatar-selected', function() {
+      assert.equal(component.state.selection, "avatars/Nature/arctic_fox.jpg",
+        "avatar selection callback works");
+      testUtils.simulateClick('#test-mount .btn-primary');
+    });
+  });
+
+  it("selects and submits avatar", function(done) { // jshint ignore:line
+    $.mockjax({
+      url: '/test-api/users/123/avatar/',
+      status: 200,
+      responseText: {
+        detail: "Gallery avataru set!",
+        avatar_hash: 'n33wh44sh',
+        options: apiResponse
+      }
+    });
+
+    snackbarStore.callback(function(message) {
+      assert.deepEqual(message, {
+        message: "Gallery avataru set!",
+        type: 'success'
+      }, "valid message was shown");
+    });
+
+    let component = null;
+
+    /* jshint ignore:start */
+    let onComplete = function(avatarHash, options) {
+      assert.equal(avatarHash, 'n33wh44sh', "new hash was passed to callback");
+      assert.deepEqual(options, apiResponse, "new ops ware passed to callback");
+
+      done();
+    }
+
+    component = testUtils.render(
+      <ChangeAvatarGallery user={misago.get('user')}
+                           options={apiResponse}
+                           onComplete={onComplete} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .btn-avatar', function() {
+      testUtils.simulateClick('#test-mount .btn-avatar');
+    });
+
+    testUtils.onElement('#test-mount .avatar-selected', function() {
+      assert.equal(component.state.selection, "avatars/Nature/arctic_fox.jpg",
+        "avatar selection callback works");
+      testUtils.simulateClick('#test-mount .btn-primary');
+    });
+  });
+});
+
+
+describe("Avatar Gallery", function() {
+  beforeEach(function() {
+    misago._context = {
+      MEDIA_URL: '/test-media/'
+    };
+  });
+
+  afterEach(function() {
+    testUtils.unmountComponents();
+  });
+
+  it("renders", function() {
+    /* jshint ignore:start */
+    testUtils.render(
+      <Gallery name="Test gallery"
+               images={apiResponse.galleries[0].images} />
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount .avatars-gallery');
+    assert.ok(element.length, "component renders");
+    assert.equal(element.find('h3').text().trim(), "Test gallery",
+      "gallery title is rendered");
+
+    apiResponse.galleries[0].images.forEach(function(i) {
+      assert.ok(element.find('button>img[src="/test-media/' + i + '"]').length,
+        "component contains image");
+    });
+  });
+
+  it("passess callback", function(done) { // jshint ignore:line
+    /* jshint ignore:start */
+    let select = function(image) {
+      assert.equal(image, "avatars/Nature/arctic_fox.jpg",
+        "callback was called with valid argument");
+      done();
+    };
+
+    testUtils.render(
+      <Gallery name="Test gallery"
+               images={apiResponse.galleries[0].images}
+               select={select} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.simulateClick("#test-mount button");
+  });
+
+  it("disables buttons", function() {
+    /* jshint ignore:start */
+    testUtils.render(
+      <Gallery name="Test gallery"
+               images={apiResponse.galleries[0].images}
+               disabled={true} />
+    );
+    /* jshint ignore:end */
+
+    apiResponse.galleries[0].images.forEach(function(i) {
+      let image = $('#test-mount button>img[src="/test-media/' + i + '"]');
+      assert.ok(image.parent().attr('disabled'), "has disabled attr");
+      assert.ok(image.parent().hasClass('btn-disabled'), "has disabled class");
+    });
+  });
+});
+
+describe("Avatar Gallery Item", function() {
+  beforeEach(function() {
+    misago._context = {
+      MEDIA_URL: '/test-media/'
+    };
+  });
+
+  afterEach(function() {
+    testUtils.unmountComponents();
+  });
+
+  it("renders", function() {
+    /* jshint ignore:start */
+    testUtils.render(
+      <GalleryItem image="avatars/Nature/arctic_fox.jpg"
+                   disabled={false}
+                   selection={null} />
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount button');
+    assert.ok(element.length, "component renders");
+    assert.ok(!element.hasClass('avatar-selected'), "item is not selected");
+
+    assert.equal(
+      element.find('img').attr('src'),
+      '/test-media/avatars/Nature/arctic_fox.jpg',
+      "component builds valid image url");
+  });
+
+  it("renders selected", function() {
+    /* jshint ignore:start */
+    testUtils.render(
+      <GalleryItem image="avatars/Nature/arctic_fox.jpg"
+                   disabled={false}
+                   selection="avatars/Nature/arctic_fox.jpg" />
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount button');
+    assert.ok(element.length, "component renders");
+    assert.ok(element.hasClass('avatar-selected'), "item is selected");
+  });
+
+  it("renders disabled", function() {
+    /* jshint ignore:start */
+    testUtils.render(
+      <GalleryItem image="avatars/Nature/arctic_fox.jpg"
+                   disabled={true}
+                   selection="avatars/Nature/arctic_fox.jpg" />
+    );
+    /* jshint ignore:end */
+
+    let element = $('#test-mount button');
+    assert.ok(element.length, "component renders");
+    assert.ok(element.attr('disabled'), "has disabled attr");
+    assert.ok(element.hasClass('btn-disabled'), "has disabled class");
+    assert.ok(element.hasClass('avatar-selected'), "item is selected");
+  });
+
+  it("executes callback", function(done) { // jshint ignore:line
+    /* jshint ignore:start */
+    let select = function(image) {
+      assert.equal(image, "avatars/Nature/arctic_fox.jpg",
+        "callback was called with valid argument");
+      done();
+    };
+
+    testUtils.render(
+      <GalleryItem image="avatars/Nature/arctic_fox.jpg"
+                   select={select} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.simulateClick('#test-mount button');
+  });
+});

+ 16 - 0
frontend/tests/components/change-avatar/index.js

@@ -100,6 +100,22 @@ describe("Change Avatar Index", function() {
     });
     });
   });
   });
 
 
+  it("renders without gallery button", function(done) {
+    /* jshint ignore:start */
+    let amendedOptions = Object.assign({}, apiResponse, {galleries: false});
+    testUtils.render(
+      <ChangeAvatarIndex user={misago.get('user')}
+                         options={amendedOptions} />
+    );
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .modal-avatar-index', function() {
+      assert.ok(!$('#test-mount .btn-avatar-gallery').length,
+        "gallery option is hidden");
+      done();
+    });
+  });
+
   it("shows alert with error on rejection", function(done) {
   it("shows alert with error on rejection", function(done) {
     $.mockjax({
     $.mockjax({
       url: '/test-api/users/123/avatar/',
       url: '/test-api/users/123/avatar/',

+ 28 - 0
frontend/tests/components/change-avatar/root.js

@@ -182,6 +182,34 @@ describe("Change Avatar", function() {
       done();
       done();
     });
     });
   });
   });
+
+  it("switches to gallery and back", function(done) {
+    $.mockjax({
+      url: '/test-api/users/123/avatar/',
+      status: 200,
+      responseText: apiResponse
+    });
+
+    /* jshint ignore:start */
+    testUtils.render(<ChangeAvatar user={misago.get('user')} />);
+    /* jshint ignore:end */
+
+    testUtils.onElement('#test-mount .btn-avatar-gallery', function() {
+      testUtils.simulateClick('#test-mount .btn-avatar-gallery');
+    });
+
+    testUtils.onElement('#test-mount .modal-avatar-gallery', function() {
+      assert.ok($('#test-mount .modal-avatar-gallery').length,
+        "gallery was displayed via showGallery");
+
+      testUtils.simulateClick('#test-mount .modal-footer .btn-default');
+
+      testUtils.onElement('#test-mount .modal-avatar-index', function() {
+        assert.ok(true, 'returned to index via showIndex');
+        done();
+      });
+    });
+  });
 });
 });
 
 
 describe("Change Avatar Error", function() {
 describe("Change Avatar Error", function() {

+ 1 - 1
misago/static/misago/css/misago.css

@@ -1 +1 @@
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */hr,img{border:0}body,figure{margin:0}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.img-thumbnail,.table,label{max-width:100%}.alerts-snackbar,a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;height:auto}.dropdown-menu .divider,.nav .nav-divider,.sr-only{height:1px;overflow:hidden}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{font-style:normal}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.btn,.caret{vertical-align:middle}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px}.media-object.img-thumbnail,.nav>li>a>img{max-width:none}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.btn-block,input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.active,.btn:active,.dropdown-toggle:focus,.modal,.modal-content,.navbar-toggle:focus,.open>a{outline:0}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.alert .alert-link,.close{font-weight:700}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn-sm{padding:5px 10px}.btn-xs{padding:1px 5px}.btn-block{display:block}.btn-block+.btn-block{margin-top:5px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.nav>li,.nav>li>a,.open>.dropdown-menu{display:block}.dropdown-menu .divider{margin:9px 0;background-color:#e5e5e5}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-header,.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.nav>li.disabled>a{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav>li,.nav>li>a,.navbar{position:relative}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{margin:9px 0;background-color:#e5e5e5}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{min-height:50px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.alerts-snackbar,.auth-message{transition:top .3s ease;width:100%}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.affix,.auth-message{position:fixed}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.row:after,.row:before{content:" ";display:table}.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.material-icon,.user-dropdown .dropdown-header strong{font-weight:400}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}.navbar.navbar-misago{min-height:auto}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.alerts-snackbar p,.navbar .navbar-full .navbar-brand>*{display:inline-block}.auth-message{background-color:#eee;padding:20px 0;top:-100%;left:0;z-index:1070}.auth-message.show{top:0;bottom:auto}.auth-message p{padding:5px 0;color:#222}@media screen and (max-width:991px){.auth-message{text-align:center}.auth-message .btn{padding:10px 16px;font-size:18px}}.alerts-snackbar{position:fixed;top:-100%;z-index:1060;text-align:center;font-size:18px}.alerts-snackbar.in{top:0;transition:top .2s ease}.alerts-snackbar p{border-radius:0 0 4px 4px;margin:0;pointer-events:all}.loader{width:100%;height:49px;text-align:center}.loader-spinning-wheel{width:49px;height:49px;margin:0 auto;border:3px solid #777;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:cssload-spin 575ms infinite linear;-o-animation:cssload-spin 575ms infinite linear;-ms-animation:cssload-spin 575ms infinite linear;-webkit-animation:cssload-spin 575ms infinite linear;-moz-animation:cssload-spin 575ms infinite linear}@keyframes cssload-spin{100%{transform:rotate(360deg)}}@-o-keyframes cssload-spin{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes cssload-spin{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes cssload-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes cssload-spin{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}.navbar{margin-bottom:0}.navbar .navbar-full .navbar-brand img{height:16px}.navbar .navbar-full .nav-guest,.navbar .navbar-full .nav-user{float:right}.navbar .navbar-full .nav-guest .navbar-btn,.navbar .navbar-full .nav-user .navbar-btn{margin-left:15px}.navbar .navbar-full .nav-user .dropdown-toggle{padding:8px}.navbar .navbar-full .nav-user .dropdown-toggle img{width:34px;height:34px}.navbar ul.navbar-compact-nav{margin:0;display:table;width:100%}.navbar ul.navbar-compact-nav>li{display:table-cell}.navbar ul.navbar-compact-nav>li>a,.navbar ul.navbar-compact-nav>li>button{background:0 0;border:none;margin:0;padding-top:10px;padding-bottom:10px;width:100%;color:#777;text-align:center}.navbar ul.navbar-compact-nav>li>a:focus,.navbar ul.navbar-compact-nav>li>a:hover,.navbar ul.navbar-compact-nav>li>button:focus,.navbar ul.navbar-compact-nav>li>button:hover{color:#333;background-color:transparent}.navbar ul.navbar-compact-nav>li>a>img,.navbar ul.navbar-compact-nav>li>button>img{width:24px;height:24px}.navbar ul.navbar-compact-nav>li>button{padding-top:10px;padding-bottom:10px}.navbar ul.navbar-compact-nav>li>a>.material-icon{font-size:24px;line-height:24px}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(../fonts/MaterialIcons-Regular.woff2) format('woff2'),url(../fonts/MaterialIcons-Regular.woff) format('woff'),url(../fonts/MaterialIcons-Regular.ttf) format('truetype')}.material-icon{font-family:'Material Icons';font-style:normal;display:inline-block;width:1em;height:1em;line-height:1;text-align:center;text-transform:none;letter-spacing:normal;vertical-align:middle;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:'liga'}@media screen and (max-width:991px){.modal-message{text-align:center}.modal-message .message-icon{margin:30px}.modal-message .message-icon .material-icon{font-size:160px}}@media screen and (min-width:992px){.modal-message .modal-body{padding-top:20px;padding-bottom:30px}.modal-message .message-icon{float:left}.modal-message .message-icon .material-icon{font-size:50px}.modal-message .message-body{margin-left:75px;margin-top:10px}.modal-message .message-body .lead{margin-bottom:0}}.modal-loader{padding:50px 0}.modal-loader .loader{width:100%;height:80px;text-align:center}.modal-loader .loader-spinning-wheel{width:80px;height:80px}.modal-register .modal-footer a{float:left;margin-top:6.67px}@media screen and (max-width:991px){.modal-register .modal-footer{text-align:center}.modal-register .modal-footer a{display:block}.modal-register .modal-footer .btn{display:block;float:none;margin-top:10px;width:100%}}.has-feedback .material-icon.form-control-feedback{top:6px;right:24px;font-size:1.42857143;line-height:1.42857143}.well.well-form.well-done{font-size:18px;text-align:center}.well.well-form.well-done .message-icon{margin-bottom:10px;font-size:90px;line-height:90px}.well.well-form.well-done .message-body{margin-bottom:6.67px}.well.well-form.well-noscript{font-size:18px;text-align:center}.well.well-form.well-noscript .message-icon{margin-bottom:10px;font-size:90px;line-height:90px}.btn.btn-loading,.btn.btn-loading:active,.btn.btn-loading:focus,.btn.btn-loading:hover,.btn.btn-loading:link,.btn.btn-loading:visited{color:transparent}.btn.btn-loading .loader,.btn.btn-loading:active .loader,.btn.btn-loading:focus .loader,.btn.btn-loading:hover .loader,.btn.btn-loading:link .loader,.btn.btn-loading:visited .loader{height:20px;margin-top:-20px}.btn.btn-loading .loader>div,.btn.btn-loading:active .loader>div,.btn.btn-loading:focus .loader>div,.btn.btn-loading:hover .loader>div,.btn.btn-loading:link .loader>div,.btn.btn-loading:visited .loader>div{width:20px;height:20px}.btn.btn-loading.btn-default .loader>div{border-top-color:#333;border-bottom-color:#333}.btn.btn-loading.btn-danger .loader>div,.btn.btn-loading.btn-info .loader>div,.btn.btn-loading.btn-primary .loader>div,.btn.btn-loading.btn-success .loader>div,.btn.btn-loading.btn-warning .loader>div{border-top-color:#fff;border-bottom-color:#fff}.dropdown-menu>li>.btn-link,.dropdown-menu>li>a{display:block;border:none;clear:both;float:none;padding:4px 20px;width:100%;color:#333;font-weight:400;line-height:1.42857143;text-align:left;white-space:nowrap}.dropdown-menu>li>.btn-link:focus,.dropdown-menu>li>.btn-link:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#f5f5f5;color:#262626;text-decoration:none}.dropdown-menu>li>.btn-link .material-icon,.dropdown-menu>li>a .material-icon{margin:-2px 7px -2px 0;position:relative;bottom:1px;font-size:18px}.dropdown-menu .dropdown-footer{padding:6px 20px}.mobile-dropdown{position:static;margin:0}.mobile-dropdown.open>.dropdown-menu{border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;display:block;margin:0;width:100%;position:static}.user-dropdown .guest-preview{text-align:center}.user-dropdown .guest-preview .row{margin:0}.navbar .user-dropdown{width:240px}.user-dropdown .dropdown-header{padding:6px 20px;font-size:18px}.misago-footer{margin-top:30px;margin-bottom:50px}.misago-footer .footer-content{border-top:1px solid #eee;padding-top:30px}.misago-footer .noscript-message .material-icon{position:relative;bottom:1px;font-size:18px}.modal-change-avatar .modal-avatar-index .avatar-preview{border-radius:6px;margin:0 auto;overflow:hidden;position:relative;width:200px;height:200px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader{display:none;position:absolute;top:50px;height:100px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader .loader-spinning-wheel{border-width:10px;border-color:#fff transparent;width:100px;height:100px}.modal-change-avatar .modal-avatar-index .avatar-preview.preview-loading img{opacity:.33;filter:alpha(opacity=33)}.modal-change-avatar .modal-avatar-index .avatar-preview.preview-loading .loader{display:block}.modal-change-avatar .modal-avatar-index .btn{text-align:left}@media screen and (max-width:991px){.page-error,.page-message{text-align:center}.page-error .message-icon,.page-message .message-icon{margin:30px}.page-error .message-icon .material-icon,.page-message .message-icon .material-icon{font-size:160px}}@media screen and (min-width:992px){.page-error .message-panel,.page-message .message-panel{margin:60px auto;max-width:779.35px;overflow:auto}.page-error .message-icon,.page-message .message-icon{float:left}.page-error .message-icon .material-icon,.page-message .message-icon .material-icon{font-size:80px}.page-error .message-body,.page-message .message-body{margin-left:100px}}
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */hr,img{border:0}body,figure{margin:0}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}.img-thumbnail,.table,label{max-width:100%}.alerts-snackbar,a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{background:#ff0;color:#000}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{box-sizing:content-box;height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{background:0 0!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.btn.active,.btn:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;height:auto}.dropdown-menu .divider,.nav .nav-divider,.sr-only{height:1px;overflow:hidden}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;margin:-1px;padding:0;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.list-inline,.list-unstyled{padding-left:0;list-style:none}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{font-style:normal}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-left:15px;padding-right:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.btn,.caret{vertical-align:middle}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px}.media-object.img-thumbnail,.nav>li>a>img{max-width:none}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px\9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:400;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.btn-block,input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;touch-action:manipulation;cursor:pointer;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:dotted thin;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.active,.btn:active,.dropdown-toggle:focus,.modal,.modal-content,.navbar-toggle:focus,.open>a{outline:0}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#337ab7;font-weight:400;border-radius:0}.alert .alert-link,.close{font-weight:700}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-xs{font-size:12px;line-height:1.5;border-radius:3px}.btn-sm{padding:5px 10px}.btn-xs{padding:1px 5px}.btn-block{display:block}.btn-block+.btn-block{margin-top:5px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{height:0;overflow:hidden;-webkit-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu-right,.dropdown-menu.pull-right{left:auto;right:0}.nav>li,.nav>li>a,.open>.dropdown-menu{display:block}.dropdown-menu .divider{margin:9px 0;background-color:#e5e5e5}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#337ab7}.dropdown-header,.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.nav>li.disabled>a{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.nav>li,.nav>li>a,.navbar{position:relative}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{margin:9px 0;background-color:#e5e5e5}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{min-height:50px;border:1px solid transparent}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.modal,.modal-backdrop{top:0;right:0;bottom:0;left:0}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal{display:none;position:fixed;z-index:1050;-webkit-overflow-scrolling:touch}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.alerts-snackbar,.auth-message{transition:top .3s ease;width:100%}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);background-clip:padding-box}.modal-backdrop{position:fixed;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.affix,.auth-message{position:fixed}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.row:after,.row:before{content:" ";display:table}.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.material-icon,.user-dropdown .dropdown-header strong{font-weight:400}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!important}}@media (max-width:767px){.hidden-xs{display:none!important}.navbar.navbar-misago{min-height:auto}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}.alerts-snackbar p,.navbar .navbar-full .navbar-brand>*{display:inline-block}.auth-message{background-color:#eee;padding:20px 0;top:-100%;left:0;z-index:1070}.auth-message.show{top:0;bottom:auto}.auth-message p{padding:5px 0;color:#222}@media screen and (max-width:991px){.auth-message{text-align:center}.auth-message .btn{padding:10px 16px;font-size:18px}}.alerts-snackbar{position:fixed;top:-100%;z-index:1060;text-align:center;font-size:18px}.alerts-snackbar.in{top:0;transition:top .2s ease}.alerts-snackbar p{border-radius:0 0 4px 4px;margin:0;pointer-events:all}.loader{width:100%;height:49px;text-align:center}.loader-spinning-wheel{width:49px;height:49px;margin:0 auto;border:3px solid #777;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:cssload-spin 575ms infinite linear;-o-animation:cssload-spin 575ms infinite linear;-ms-animation:cssload-spin 575ms infinite linear;-webkit-animation:cssload-spin 575ms infinite linear;-moz-animation:cssload-spin 575ms infinite linear}@keyframes cssload-spin{100%{transform:rotate(360deg)}}@-o-keyframes cssload-spin{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes cssload-spin{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes cssload-spin{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes cssload-spin{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}.navbar{margin-bottom:0}.navbar .navbar-full .navbar-brand img{height:16px}.navbar .navbar-full .nav-guest,.navbar .navbar-full .nav-user{float:right}.navbar .navbar-full .nav-guest .navbar-btn,.navbar .navbar-full .nav-user .navbar-btn{margin-left:15px}.navbar .navbar-full .nav-user .dropdown-toggle{padding:8px}.navbar .navbar-full .nav-user .dropdown-toggle img{width:34px;height:34px}.navbar ul.navbar-compact-nav{margin:0;display:table;width:100%}.navbar ul.navbar-compact-nav>li{display:table-cell}.navbar ul.navbar-compact-nav>li>a,.navbar ul.navbar-compact-nav>li>button{background:0 0;border:none;margin:0;padding-top:10px;padding-bottom:10px;width:100%;color:#777;text-align:center}.navbar ul.navbar-compact-nav>li>a:focus,.navbar ul.navbar-compact-nav>li>a:hover,.navbar ul.navbar-compact-nav>li>button:focus,.navbar ul.navbar-compact-nav>li>button:hover{color:#333;background-color:transparent}.navbar ul.navbar-compact-nav>li>a>img,.navbar ul.navbar-compact-nav>li>button>img{width:24px;height:24px}.navbar ul.navbar-compact-nav>li>button{padding-top:10px;padding-bottom:10px}.navbar ul.navbar-compact-nav>li>a>.material-icon{font-size:24px;line-height:24px}@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local('Material Icons'),local('MaterialIcons-Regular'),url(../fonts/MaterialIcons-Regular.woff2) format('woff2'),url(../fonts/MaterialIcons-Regular.woff) format('woff'),url(../fonts/MaterialIcons-Regular.ttf) format('truetype')}.material-icon{font-family:'Material Icons';font-style:normal;display:inline-block;width:1em;height:1em;line-height:1;text-align:center;text-transform:none;letter-spacing:normal;vertical-align:middle;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:'liga'}@media screen and (max-width:991px){.modal-message{text-align:center}.modal-message .message-icon{margin:30px}.modal-message .message-icon .material-icon{font-size:160px}}@media screen and (min-width:992px){.modal-message .modal-body{padding-top:20px;padding-bottom:30px}.modal-message .message-icon{float:left}.modal-message .message-icon .material-icon{font-size:50px}.modal-message .message-body{margin-left:75px;margin-top:10px}.modal-message .message-body .lead{margin-bottom:0}}.modal-loader{padding:50px 0}.modal-loader .loader{width:100%;height:80px;text-align:center}.modal-loader .loader-spinning-wheel{width:80px;height:80px}.modal-register .modal-footer a{float:left;margin-top:6.67px}@media screen and (max-width:991px){.modal-register .modal-footer{text-align:center}.modal-register .modal-footer a{display:block}.modal-register .modal-footer .btn{display:block;float:none;margin-top:10px;width:100%}}.has-feedback .material-icon.form-control-feedback{top:6px;right:24px;font-size:1.42857143;line-height:1.42857143}.well.well-form.well-done{font-size:18px;text-align:center}.well.well-form.well-done .message-icon{margin-bottom:10px;font-size:90px;line-height:90px}.well.well-form.well-done .message-body{margin-bottom:6.67px}.well.well-form.well-noscript{font-size:18px;text-align:center}.well.well-form.well-noscript .message-icon{margin-bottom:10px;font-size:90px;line-height:90px}.btn.btn-loading,.btn.btn-loading:active,.btn.btn-loading:focus,.btn.btn-loading:hover,.btn.btn-loading:link,.btn.btn-loading:visited{color:transparent}.btn.btn-loading .loader,.btn.btn-loading:active .loader,.btn.btn-loading:focus .loader,.btn.btn-loading:hover .loader,.btn.btn-loading:link .loader,.btn.btn-loading:visited .loader{height:20px;margin-top:-20px}.btn.btn-loading .loader>div,.btn.btn-loading:active .loader>div,.btn.btn-loading:focus .loader>div,.btn.btn-loading:hover .loader>div,.btn.btn-loading:link .loader>div,.btn.btn-loading:visited .loader>div{width:20px;height:20px}.btn.btn-loading.btn-default .loader>div{border-top-color:#333;border-bottom-color:#333}.btn.btn-loading.btn-danger .loader>div,.btn.btn-loading.btn-info .loader>div,.btn.btn-loading.btn-primary .loader>div,.btn.btn-loading.btn-success .loader>div,.btn.btn-loading.btn-warning .loader>div{border-top-color:#fff;border-bottom-color:#fff}.dropdown-menu>li>.btn-link,.dropdown-menu>li>a{display:block;border:none;clear:both;float:none;padding:4px 20px;width:100%;color:#333;font-weight:400;line-height:1.42857143;text-align:left;white-space:nowrap}.dropdown-menu>li>.btn-link:focus,.dropdown-menu>li>.btn-link:hover,.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#f5f5f5;color:#262626;text-decoration:none}.dropdown-menu>li>.btn-link .material-icon,.dropdown-menu>li>a .material-icon{margin:-2px 7px -2px 0;position:relative;bottom:1px;font-size:18px}.dropdown-menu .dropdown-footer{padding:6px 20px}.mobile-dropdown{position:static;margin:0}.mobile-dropdown.open>.dropdown-menu{border:none;border-radius:0;-webkit-box-shadow:none;box-shadow:none;display:block;margin:0;width:100%;position:static}.user-dropdown .guest-preview{text-align:center}.user-dropdown .guest-preview .row{margin:0}.navbar .user-dropdown{width:240px}.user-dropdown .dropdown-header{padding:6px 20px;font-size:18px}.misago-footer{margin-top:30px;margin-bottom:50px}.misago-footer .footer-content{border-top:1px solid #eee;padding-top:30px}.misago-footer .noscript-message .material-icon{position:relative;bottom:1px;font-size:18px}.modal-change-avatar .modal-avatar-index .avatar-preview{border-radius:6px;margin:0 auto;overflow:hidden;position:relative;width:200px;height:200px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader{display:none;position:absolute;top:50px;height:100px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader .loader-spinning-wheel{border-width:10px;border-color:#fff transparent;width:100px;height:100px}.modal-change-avatar .modal-avatar-index .avatar-preview.preview-loading img{opacity:.33;filter:alpha(opacity=33)}.modal-change-avatar .modal-avatar-index .avatar-preview.preview-loading .loader{display:block}@media (max-width:767px){.modal-change-avatar .modal-avatar-index .avatar-preview{margin-bottom:20px;width:150px;height:150px}.modal-change-avatar .modal-avatar-index .avatar-preview img{width:150px;height:150px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader{top:25px;height:100px}.modal-change-avatar .modal-avatar-index .avatar-preview .loader .loader-spinning-wheel{width:100px;height:100px}}.modal-change-avatar .modal-avatar-index .btn{text-align:left}.modal-change-avatar .modal-avatar-gallery{padding-bottom:0}.modal-change-avatar .modal-avatar-gallery .avatars-gallery{margin-bottom:20px}.modal-change-avatar .modal-avatar-gallery .avatars-gallery h3{margin-top:0}.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .row{margin-bottom:10px}.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn{border-radius:6px;border:2px solid #eee;background:0 0;padding:2px}.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn:focus,.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn:hover{border-color:#777}.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn.avatar-selected,.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn:active{border-color:#337ab7}.modal-change-avatar .modal-avatar-gallery .avatars-gallery-images .btn img{border-radius:4px;width:100%}@media screen and (max-width:991px){.page-error,.page-message{text-align:center}.page-error .message-icon,.page-message .message-icon{margin:30px}.page-error .message-icon .material-icon,.page-message .message-icon .material-icon{font-size:160px}}@media screen and (min-width:992px){.page-error .message-panel,.page-message .message-panel{margin:60px auto;max-width:779.35px;overflow:auto}.page-error .message-icon,.page-message .message-icon{float:left}.page-error .message-icon .material-icon,.page-message .message-icon .material-icon{font-size:80px}.page-error .message-body,.page-message .message-body{margin-left:100px}}

+ 4 - 4
misago/static/misago/js/misago.js

@@ -1,5 +1,5 @@
-!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(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.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../../../documents/misago/frontend/src/utils/ordered-list":62}],2:[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":45,"../../../../../documents/misago/frontend/src/services/ajax":50}],3:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,d["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"),d=a(c);i["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/components/auth-message":24,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61,"react-redux":"react-redux"}],4:[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":45,"../../../../../documents/misago/frontend/src/reducers/auth":46,"../../../../../documents/misago/frontend/src/services/store":58}],5:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(f["default"],p["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),d=e("../../../../../documents/misago/frontend/src/services/store"),f=a(d),m=e("../../../../../documents/misago/frontend/src/services/local-storage"),p=a(m);s["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/services/auth":51,"../../../../../documents/misago/frontend/src/services/local-storage":54,"../../../../../documents/misago/frontend/src/services/modal":56,"../../../../../documents/misago/frontend/src/services/store":58}],6:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("BAN_MESSAGE")&&(0,u["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var 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":45,"../../../../../documents/misago/frontend/src/utils/banned-page":60}],7:[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"],f["default"],p["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),d=e("../../../../../documents/misago/frontend/src/services/include"),f=a(d),m=e("../../../../../documents/misago/frontend/src/services/snackbar"),p=a(m);s["default"].addInitializer({name:"captcha",initializer:r})},{"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/services/ajax":50,"../../../../../documents/misago/frontend/src/services/captcha":52,"../../../../../documents/misago/frontend/src/services/include":53,"../../../../../documents/misago/frontend/src/services/snackbar":57}],8:[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":45,"../../../../../documents/misago/frontend/src/services/include":53}],9:[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":45,"../../../../../documents/misago/frontend/src/services/local-storage":54}],10:[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":45,"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown":55}],11:[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":45,"../../../../../documents/misago/frontend/src/services/modal":56}],12:[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":45,moment:"moment"}],13:[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":37,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61}],14:[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":38,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61}],15:[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":39,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61}],16:[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":41,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61,"react-redux":"react-redux"}],17:[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":45,"../../../../../documents/misago/frontend/src/reducers/snackbar":47,"../../../../../documents/misago/frontend/src/services/store":58}],18:[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":45,"../../../../../documents/misago/frontend/src/services/snackbar":57,"../../../../../documents/misago/frontend/src/services/store":58}],19:[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":45,"../../../../../documents/misago/frontend/src/services/store":58}],20:[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":45,"../../../../../documents/misago/frontend/src/reducers/tick":48,"../../../../../documents/misago/frontend/src/services/store":58}],21:[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":45,"../../../../../documents/misago/frontend/src/reducers/tick":48,"../../../../../documents/misago/frontend/src/services/store":58}],22:[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":43,"../../../../../documents/misago/frontend/src/index":45,"../../../../../documents/misago/frontend/src/utils/mount-component":61,"react-redux":"react-redux"}],23:[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":45,"../../../../../documents/misago/frontend/src/services/include":53,"../../../../../documents/misago/frontend/src/services/zxcvbn":59}],24:[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),d=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"]=d},{react:"react"}],25:[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/",d=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"]=d},{react:"react"}],26:[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"),d=a(c),f=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?d["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):d["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-error page-error-banned"},d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"message-panel"},d["default"].createElement("div",{className:"message-icon"},d["default"].createElement("span",{className:"material-icon"},"highlight_off")),d["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),d["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(d["default"].Component);n["default"]=f},{moment:"moment",react:"react"}],27:[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"),d=a(c),f=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(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":32,react:"react"}],28:[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"),d=a(c),f=e("../button"),m=a(f),p=e("../loader"),h=a(p),v=e("../../services/ajax"),g=a(v),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 g["default"].post(this.props.user.avatar_api_url,{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.props.showError(e),t.setState({isLoading:!1})}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(m["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getAvatarPreview",value:function(){return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(d["default"],{user:this.props.user,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(m["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")))))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":50,"../../services/snackbar":57,"../avatar":25,"../button":27,"../loader":32,react:"react"}],29:[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),d=e("./index"),f=a(d),m=e("../modal-loader"),p=a(m),h=e("../../reducers/users"),v=e("../../services/ajax"),g=a(v),b=e("../../services/store"),y=a(b),_=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),w=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:f["default"]})},a.completeFlow=function(e,t){y["default"].dispatch((0,h.updateAvatar)(a.props.user,e)),a.setState({component:f["default"],options:t})},s=n,o(a,s)}return s(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;g["default"].get(this.props.user.avatar_api_url).then(function(t){e.setState({component:f["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(_,{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.onComplete,showError:this.showError,showIndex:this.showIndex}):c["default"].createElement(p["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"]=w},{"../../reducers/users":49,"../../services/ajax":50,"../../services/store":58,"../modal-loader":33,"./index":28,react:"react"}],30:[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"}],31:[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("../utils/validators"),d=(0,c.required)(),f=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.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var r=a.state.errors||{};r[e]=a.validateField(e,n[e]),n.errors=r,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},s=n,o(a,s)}return s(t,e),i(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],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=[],a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=d(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){}}]),t}(l["default"].Component);n["default"]=f},{"../utils/validators":63,react:"react"}],32:[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:"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],33:[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"),d=a(c),f=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(d["default"],null))}}]),t}(l["default"].Component);n["default"]=f},{"./loader":32,react:"react"}],34:[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"),d=a(c),f=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],m=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.")],p=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=d["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 "+f[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"},m[e]))),l["default"].createElement("p",{className:"text-small"},m[e]))}}]),t}(l["default"].Component);n["default"]=p},{"../services/zxcvbn":59,react:"react"}],35:[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"),d=a(c),f=e("./register.js"),m=a(f),p=e("../services/captcha"),h=a(p),v=e("../services/modal"),g=a(v),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?g["default"].show(m["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),g["default"].show(m["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(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":52,"../services/modal":56,"../services/snackbar":57,"../services/zxcvbn":59,"./loader":32,"./register.js":36,react:"react"}],36:[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),d=e("./button"),f=r(d),m=e("./form"),p=r(m),h=e("./form-group"),v=r(h),g=e("./password-strength"),b=r(g),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/captcha"),j=r(x),P=e("../services/modal"),N=r(P),C=e("../services/snackbar"),S=r(C),M=e("../utils/banned-page"),T=r(M),I=e("../utils/validators"),A=a(I),R=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:[A.usernameContent(),A.usernameMinLength(_["default"].get("SETTINGS")),A.usernameMaxLength(_["default"].get("SETTINGS"))],email:[A.email()],password:[A.passwordMinLength(_["default"].get("SETTINGS"))],captcha:j["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return 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)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),N["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(v["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(v["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(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})),j["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(p["default"]),L=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),z=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?(N["default"].hide(),O["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(L,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(R,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=z},{"../index":45,"../services/ajax":50,"../services/auth":51,"../services/captcha":52,"../services/modal":56,"../services/snackbar":57,"../utils/banned-page":60,"../utils/validators":63,"./button":27,"./form":31,"./form-group":30,"./password-strength":34,react:"react"}],37:[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),d=e("../index"),f=r(d),m=e("./button"),p=r(m),h=e("./form"),v=r(h),g=e("../services/ajax"),b=r(g),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),k=e("../utils/banned-page"),O=r(k),x=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(f["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),j=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),P=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(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=P},{"../index":45,"../services/ajax":50,"../services/snackbar":57,"../utils/banned-page":60,"../utils/validators":63,"./button":27,"./form":31,react:"react"}],38:[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),d=e("react-dom"),f=r(d),m=e("../index"),p=r(m),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),k=e("../utils/validators"),O=a(k),x=e("../utils/banned-page"),j=r(x),P=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:[O.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(p["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,j["default"])(e.ban):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(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),N=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),C=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:p["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),S=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){f["default"].render(c["default"].createElement(C,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(P,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=S},{"../index":45,"../services/ajax":50,"../services/snackbar":57,"../utils/banned-page":60,"../utils/validators":63,"./button":27,"./form":31,react:"react","react-dom":"react-dom"}],39:[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),d=e("react-dom"),f=r(d),m=e("../index"),p=r(m),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/modal"),j=r(x),P=e("../services/snackbar"),N=r(P),C=e("../utils/validators"),S=a(C),M=e("../utils/banned-page"),T=r(M),I=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:[S.passwordMinLength(p["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?N["default"].error(this.state.errors.password[0]):N["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(p["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):N["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),A=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(){j["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),R=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){O["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),f["default"].render(c["default"].createElement(A,{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(I,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=R},{"../index":45,"../services/ajax":50,"../services/auth":51,"../services/modal":56,"../services/snackbar":57,"../utils/banned-page":60,"../utils/validators":63,"./button":27,"./form":31,"./sign-in.js":40,react:"react","react-dom":"react-dom"}],40:[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"),d=a(c),f=e("./button"),m=a(f),p=e("./form"),h=a(p),v=e("../services/ajax"),g=a(v),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),k=a(E),O=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 g["default"].post(d["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(g["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,k["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,k["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:d["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(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:d["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":45,"../services/ajax":50,"../services/modal":56,"../services/snackbar":57,"../utils/banned-page":60,"./button":27,"./form":31,react:"react"}],41:[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),d={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 "+d[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],42:[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"),d=a(c),f=e("../register-button"),m=a(f),p=e("../sign-in.js"),h=a(p),v=e("../../services/mobile-navbar-dropdown"),g=a(v),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(m["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(m["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(){g["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(d["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":55,"../../services/modal":56,"../avatar":25,"../register-button":35,"../sign-in.js":40,react:"react"}],43:[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),d=e("./guest-nav"),f=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(f.UserNav,{user:this.props.user}):c["default"].createElement(d.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(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":42,"./user-nav":44,react:"react"}],44:[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),d=e("react-redux"),f=e("../avatar"),m=a(f),p=e("../change-avatar/root"),h=a(p),v=e("../../index"),g=a(v),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,d.connect)(p.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:g["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"},"face"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),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(m["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,d.connect)(i)(E))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(m["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":45,"../../services/mobile-navbar-dropdown":55,"../../services/modal":56,"../avatar":25,"../change-avatar/root":29,react:"react","react-redux":"react-redux"}],45:[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.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":62}],46:[function(e,t,n){"use strict";function a(e){return{type:u,user:e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:l,soft:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?i:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case u:return Object.assign({},e,{signedIn:t.user});case l:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case s.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var n=Object.assign({},e);return n.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),n}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.initialState=void 0,n.signIn=a,n.signOut=r,n["default"]=o;var s=e("./users"),i=n.initialState={signedIn:!1,signedOut:!1},u=n.SIGN_IN="SIGN_IN",l=n.SIGN_OUT="SIGN_OUT"},{"./users":49}],47:[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"},{}],48:[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"},{}],49:[function(e,t,n){"use strict";function a(e,t){return{type:r,userId:e.id,avatarHash:t}}Object.defineProperty(n,"__esModule",{value:!0}),n.updateAvatar=a;var r=n.UPDATE_AVATAR="UPDATE_AVATAR"},{}],50:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var o=n.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n||{},dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}},{key:"get",value:function(e){return this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}}]),e}();n["default"]=new o},{}],51:[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":46}],52:[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"),d=a(c),f=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}(),m=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}(f),p=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(d["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}(f),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),v=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(d["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}(f),g=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 m;break;case"qa":this._captcha=new p;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new g},{"../components/form-group":30,react:"react"}],53:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var 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},{}],54:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var 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},{}],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")}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":61}],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")}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":61,"react-dom":"react-dom"}],57:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),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=gettext("Unknown error has occured.");0===e.status&&(t=e.detail),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":47}],58:[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"}],59:[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},{}],60:[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:v["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=p["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",p["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"),d=e("../components/banned-page"),f=a(d),m=e("../index"),p=a(m),h=e("../services/store"),v=a(h),g=function(e){return e.tick},b=(0,c.connect)(g)(f["default"])},{"../components/banned-page":26,"../index":45,"../services/store":58,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],61:[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);a&&(n?i["default"].render(o["default"].createElement(u.Provider,{store:c["default"].getStore()},o["default"].createElement(e,null)),a):i["default"].render(o["default"].createElement(e,null),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":58,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],62:[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},{}],63:[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 d.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 f.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 d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]);
+!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(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.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../../../../documents/misago/frontend/src/utils/ordered-list":64}],2:[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":46,"../../../../../documents/misago/frontend/src/services/ajax":51}],3:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){(0,d["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"),d=a(c);i["default"].addInitializer({name:"component:auth-message",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/components/auth-message":24,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63,"react-redux":"react-redux"}],4:[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":46,"../../../../../documents/misago/frontend/src/reducers/auth":47,"../../../../../documents/misago/frontend/src/services/store":59}],5:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(){u["default"].init(f["default"],p["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),d=e("../../../../../documents/misago/frontend/src/services/store"),f=a(d),m=e("../../../../../documents/misago/frontend/src/services/local-storage"),p=a(m);s["default"].addInitializer({name:"auth",initializer:r,after:"store"})},{"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/services/auth":52,"../../../../../documents/misago/frontend/src/services/local-storage":55,"../../../../../documents/misago/frontend/src/services/modal":57,"../../../../../documents/misago/frontend/src/services/store":59}],6:[function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{"default":e}}function r(e){e.get("BAN_MESSAGE")&&(0,u["default"])(e.get("BAN_MESSAGE"),!1)}Object.defineProperty(n,"__esModule",{value:!0}),n["default"]=r;var 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":46,"../../../../../documents/misago/frontend/src/utils/banned-page":61}],7:[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"],f["default"],p["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),d=e("../../../../../documents/misago/frontend/src/services/include"),f=a(d),m=e("../../../../../documents/misago/frontend/src/services/snackbar"),p=a(m);s["default"].addInitializer({name:"captcha",initializer:r})},{"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/services/ajax":51,"../../../../../documents/misago/frontend/src/services/captcha":53,"../../../../../documents/misago/frontend/src/services/include":54,"../../../../../documents/misago/frontend/src/services/snackbar":58}],8:[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":46,"../../../../../documents/misago/frontend/src/services/include":54}],9:[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":46,"../../../../../documents/misago/frontend/src/services/local-storage":55}],10:[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":46,"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown":56}],11:[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":46,"../../../../../documents/misago/frontend/src/services/modal":57}],12:[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":46,moment:"moment"}],13:[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":38,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63}],14:[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":39,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63}],15:[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":40,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63}],16:[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":42,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63,"react-redux":"react-redux"}],17:[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":46,"../../../../../documents/misago/frontend/src/reducers/snackbar":48,"../../../../../documents/misago/frontend/src/services/store":59}],18:[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":46,"../../../../../documents/misago/frontend/src/services/snackbar":58,"../../../../../documents/misago/frontend/src/services/store":59}],19:[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":46,"../../../../../documents/misago/frontend/src/services/store":59}],20:[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":46,"../../../../../documents/misago/frontend/src/reducers/tick":49,"../../../../../documents/misago/frontend/src/services/store":59}],21:[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":46,"../../../../../documents/misago/frontend/src/reducers/tick":49,"../../../../../documents/misago/frontend/src/services/store":59}],22:[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":44,"../../../../../documents/misago/frontend/src/index":46,"../../../../../documents/misago/frontend/src/utils/mount-component":63,"react-redux":"react-redux"}],23:[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":46,"../../../../../documents/misago/frontend/src/services/include":54,"../../../../../documents/misago/frontend/src/services/zxcvbn":60}],24:[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),d=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"]=d},{react:"react"}],25:[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/",d=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"]=d},{react:"react"}],26:[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"),d=a(c),f=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?d["default"].createElement("div",{className:"lead",dangerouslySetInnerHTML:{__html:this.props.message.html}}):d["default"].createElement("p",{className:"lead"},this.props.message.plain)}},{key:"getExpirationMessage",value:function(){return this.props.expires?this.props.expires.isAfter((0,l["default"])())?interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0):gettext("This ban has expired."):gettext("This ban is permanent.")}},{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-error page-error-banned"},d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"message-panel"},d["default"].createElement("div",{className:"message-icon"},d["default"].createElement("span",{className:"material-icon"},"highlight_off")),d["default"].createElement("div",{className:"message-body"},this.getReasonMessage(),d["default"].createElement("p",{className:"message-footnote"},this.getExpirationMessage())))))}}]),t}(d["default"].Component);n["default"]=f},{moment:"moment",react:"react"}],27:[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"),d=a(c),f=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(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":33,react:"react"}],28:[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"),d=a(c),f=e("../../index"),m=a(f),p=e("../../services/ajax"),h=a(p),v=e("../../services/snackbar"),g=a(v),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:m["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.avatar_api_url,{avatar:"galleries",image:n.state.selection}).then(function(e){n.setState({isLoading:!1}),g["default"].success(e.detail),n.props.onComplete(e.avatar_hash,e.options)},function(e){400===e.status?g["default"].error(e.detail):n.props.showError(e),n.setState({isLoading:!1})}))},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(d["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(d["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(l["default"].Component);n["default"]=E},{"../../index":46,"../../services/ajax":51,"../../services/snackbar":58,"../../utils/batch":62,"../button":27,react:"react"}],29:[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"),d=a(c),f=e("../button"),m=a(f),p=e("../loader"),h=a(p),v=e("../../services/ajax"),g=a(v),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 g["default"].post(this.props.user.avatar_api_url,{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.props.showError(e),t.setState({isLoading:!1})}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?l["default"].createElement(m["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?l["default"].createElement(m["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(){return this.state.isLoading?l["default"].createElement("div",{className:"avatar-preview preview-loading"},l["default"].createElement(d["default"],{user:this.props.user,size:"200"}),l["default"].createElement(h["default"],null)):l["default"].createElement("div",{className:"avatar-preview"},l["default"].createElement(d["default"],{user:this.props.user,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(m["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getGalleryButton())))}}]),t}(l["default"].Component);n["default"]=_},{"../../services/ajax":51,"../../services/snackbar":58,"../avatar":25,"../button":27,"../loader":33,react:"react"}],30:[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),d=e("./index"),f=a(d),m=e("./gallery"),p=a(m),h=e("../modal-loader"),v=a(h),g=e("../../reducers/users"),b=e("../../services/ajax"),y=a(b),_=e("../../services/store"),w=a(_),E=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),k=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:f["default"]})},a.showGallery=function(){a.setState({component:p["default"]})},a.completeFlow=function(e,t){w["default"].dispatch((0,g.updateAvatar)(a.props.user,e)),a.setState({component:f["default"],options:t})},s=n,o(a,s)}return s(t,e),u(t,[{key:"componentDidMount",value:function(){var e=this;y["default"].get(this.props.user.avatar_api_url).then(function(t){e.setState({component:f["default"],options:t,error:null})},function(t){e.showError(t)})}},{key:"getBody",value:function(){return this.state?this.state.error?c["default"].createElement(E,{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,showGallery:this.showGallery}):c["default"].createElement(v["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"]=k},{"../../reducers/users":50,"../../services/ajax":51,"../../services/store":59,"../modal-loader":34,"./gallery":28,"./index":29,react:"react"}],31:[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"}],32:[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("../utils/validators"),d=(0,c.required)(),f=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.bindInput=function(e){return function(t){var n={};n[e]=t.target.value;var r=a.state.errors||{};r[e]=a.validateField(e,n[e]),n.errors=r,a.setState(n)}},a.handleSubmit=function(e){if(e.preventDefault(),!a.state.isLoading&&a.clean()){a.setState({isLoading:!0});var t=a.send();t?t.then(function(e){a.setState({isLoading:!1}),a.handleSuccess(e)},function(e){a.setState({isLoading:!1}),a.handleError(e)}):a.setState({isLoading:!1})}},s=n,o(a,s)}return s(t,e),i(t,[{key:"validate",value:function(){var e={},t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},n=[];for(var a in t.required)t.required.hasOwnProperty(a)&&t.required[a]&&n.push(a);for(var a in t.optional)t.optional.hasOwnProperty(a)&&t.optional[a]&&n.push(a);for(var r in n){var a=n[r],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=[],a={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=d(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){}}]),t}(l["default"].Component);n["default"]=f},{"../utils/validators":65,react:"react"}],33:[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:"loader"},l["default"].createElement("div",{className:"loader-spinning-wheel"}))}}]),t}(l["default"].Component);n["default"]=c},{react:"react"}],34:[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"),d=a(c),f=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(d["default"],null))}}]),t}(l["default"].Component);n["default"]=f},{"./loader":33,react:"react"}],35:[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"),d=a(c),f=n.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],m=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.")],p=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=d["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 "+f[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"},m[e]))),l["default"].createElement("p",{className:"text-small"},m[e]))}}]),t}(l["default"].Component);n["default"]=p},{"../services/zxcvbn":60,react:"react"}],36:[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"),d=a(c),f=e("./register.js"),m=a(f),p=e("../services/captcha"),h=a(p),v=e("../services/modal"),g=a(v),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?g["default"].show(m["default"]):(n.setState({isLoading:!0}),Promise.all([h["default"].load(),w["default"].load()]).then(function(){n.state.isLoaded||n.setState({isLoading:!1,isLoaded:!1}),g["default"].show(m["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(d["default"],null):null)}}]),t}(l["default"].Component);n["default"]=E},{"../services/captcha":53,"../services/modal":57,"../services/snackbar":58,"../services/zxcvbn":60,"./loader":33,"./register.js":37,react:"react"}],37:[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),d=e("./button"),f=r(d),m=e("./form"),p=r(m),h=e("./form-group"),v=r(h),g=e("./password-strength"),b=r(g),y=e("../index"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/captcha"),j=r(x),P=e("../services/modal"),N=r(P),C=e("../services/snackbar"),S=r(C),M=e("../utils/banned-page"),T=r(M),I=e("../utils/validators"),A=a(I),L=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:[A.usernameContent(),A.usernameMinLength(_["default"].get("SETTINGS")),A.usernameMaxLength(_["default"].get("SETTINGS"))],email:[A.email()],password:[A.passwordMinLength(_["default"].get("SETTINGS"))],captcha:j["default"].validator()},errors:{}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(S["default"].error(gettext("Form contains errors.")),this.setState({errors:this.validate()}),!1)}},{key:"send",value:function(){return 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)}),S["default"].error(gettext("Form contains errors."))):403===e.status&&e.ban?((0,T["default"])(e.ban),N["default"].hide()):S["default"].apiError(e)}},{key:"getLegalFootNote",value:function(){return _["default"].get("TERMS_OF_SERVICE_URL")?c["default"].createElement("a",{href:_["default"].get("TERMS_OF_SERVICE_URL"),target:"_blank"},gettext("By registering you agree to site's terms and conditions.")):null}},{key:"render",value:function(){return c["default"].createElement("div",{className:"modal-dialog modal-register",role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Register"))),c["default"].createElement("form",{onSubmit:this.handleSubmit,className:"form-horizontal"},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"modal-body"},c["default"].createElement(v["default"],{label:gettext("Username"),"for":"id_username",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.username},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control","aria-describedby":"id_username_status",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username})),c["default"].createElement(v["default"],{label:gettext("E-mail"),"for":"id_email",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.email},c["default"].createElement("input",{type:"text",id:"id_email",className:"form-control","aria-describedby":"id_email_status",disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email})),c["default"].createElement(v["default"],{label:gettext("Password"),"for":"id_password",labelClass:"col-sm-4",controlClass:"col-sm-8",validation:this.state.errors.password,extra:c["default"].createElement(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})),j["default"].component({form:this,labelClass:"col-sm-4",controlClass:"col-sm-8"})),c["default"].createElement("div",{className:"modal-footer"},this.getLegalFootNote(),c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Register account"))))))}}]),t}(p["default"]),R=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),z=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?(N["default"].hide(),O["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(R,{activation:this.state.complete.activation,username:this.state.complete.username,email:this.state.complete.email}):c["default"].createElement(L,{callback:this.completeRegistration})}}]),t}(c["default"].Component);n["default"]=z},{"../index":46,"../services/ajax":51,"../services/auth":52,"../services/captcha":53,"../services/modal":57,"../services/snackbar":58,"../utils/banned-page":61,"../utils/validators":65,"./button":27,"./form":32,"./form-group":31,"./password-strength":35,react:"react"}],38:[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),d=e("../index"),f=r(d),m=e("./button"),p=r(m),h=e("./form"),v=r(h),g=e("../services/ajax"),b=r(g),y=e("../services/snackbar"),_=r(y),w=e("../utils/validators"),E=a(w),k=e("../utils/banned-page"),O=r(k),x=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(f["default"].get("SEND_ACTIVATION_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["already_active","inactive_admin"].indexOf(e.code)>-1?_["default"].info(e.detail):403===e.status&&e.ban?(0,O["default"])(e.ban):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-request-activation-link"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"text",className:"form-control",placeholder:gettext("Your e-mail address"),disabled:this.state.isLoading,onChange:this.bindInput("email"),value:this.state.email}))),c["default"].createElement(p["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(v["default"]),j=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),P=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(j,{user:this.state.complete,callback:this.reset}):c["default"].createElement(x,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=P},{"../index":46,"../services/ajax":51,"../services/snackbar":58,"../utils/banned-page":61,"../utils/validators":65,"./button":27,"./form":32,react:"react"}],39:[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),d=e("react-dom"),f=r(d),m=e("../index"),p=r(m),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("../services/ajax"),_=r(y),w=e("../services/snackbar"),E=r(w),k=e("../utils/validators"),O=a(k),x=e("../utils/banned-page"),j=r(x),P=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:[O.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(p["default"].get("SEND_PASSWORD_RESET_API"),{email:this.state.email})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){["inactive_user","inactive_admin"].indexOf(e.code)>-1?this.props.showInactivePage(e):403===e.status&&e.ban?(0,j["default"])(e.ban):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(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Send link"))))}}]),t}(b["default"]),N=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),C=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:p["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),S=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){f["default"].render(c["default"].createElement(C,{activation:e.code,message:e.detail}),document.getElementById("page-mount"))}},{key:"render",value:function(){return this.state.complete?c["default"].createElement(N,{user:this.state.complete,callback:this.reset}):c["default"].createElement(P,{callback:this.complete,showInactivePage:this.showInactivePage})}}]),t}(c["default"].Component);n["default"]=S},{"../index":46,"../services/ajax":51,"../services/snackbar":58,"../utils/banned-page":61,"../utils/validators":65,"./button":27,"./form":32,react:"react","react-dom":"react-dom"}],40:[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),d=e("react-dom"),f=r(d),m=e("../index"),p=r(m),h=e("./button"),v=r(h),g=e("./form"),b=r(g),y=e("./sign-in.js"),_=r(y),w=e("../services/ajax"),E=r(w),k=e("../services/auth"),O=r(k),x=e("../services/modal"),j=r(x),P=e("../services/snackbar"),N=r(P),C=e("../utils/validators"),S=a(C),M=e("../utils/banned-page"),T=r(M),I=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:[S.passwordMinLength(p["default"].get("SETTINGS"))]}},n}return i(t,e),u(t,[{key:"clean",value:function(){return this.isValid()?!0:(this.state.password.trim().length?N["default"].error(this.state.errors.password[0]):N["default"].error(gettext("Enter new password.")),!1)}},{key:"send",value:function(){return E["default"].post(p["default"].get("CHANGE_PASSWORD_API"),{password:this.state.password})}},{key:"handleSuccess",value:function(e){this.props.callback(e)}},{key:"handleError",value:function(e){403===e.status&&e.ban?(0,T["default"])(e.ban):N["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("div",{className:"well well-form well-form-reset-password"},c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"form-group"},c["default"].createElement("div",{className:"control-input"},c["default"].createElement("input",{type:"password",className:"form-control",placeholder:gettext("Enter new password"),disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement(v["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Change password"))))}}]),t}(b["default"]),A=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(){j["default"].show(_["default"])}},{key:"render",value:function(){return c["default"].createElement("div",{className:"page page-message page-message-success page-forgotten-password-changed"},c["default"].createElement("div",{className:"container"},c["default"].createElement("div",{className:"message-panel"},c["default"].createElement("div",{className:"message-icon"},c["default"].createElement("span",{className:"material-icon"},"check")),c["default"].createElement("div",{className:"message-body"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,gettext("You will have to sign in using new password before continuing.")),c["default"].createElement("p",null,c["default"].createElement("button",{type:"button",className:"btn btn-primary",onClick:this.showSignIn},gettext("Sign in")))))))}}]),t}(c["default"].Component),L=function(e){function t(){var e,n,a,r;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){O["default"].softSignOut(),$('#hidden-login-form input[name="redirect_to"]').remove(),f["default"].render(c["default"].createElement(A,{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(I,{callback:this.complete})}}]),t}(c["default"].Component);n["default"]=L},{"../index":46,"../services/ajax":51,"../services/auth":52,"../services/modal":57,"../services/snackbar":58,"../utils/banned-page":61,"../utils/validators":65,"./button":27,"./form":32,"./sign-in.js":41,react:"react","react-dom":"react-dom"}],41:[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"),d=a(c),f=e("./button"),m=a(f),p=e("./form"),h=a(p),v=e("../services/ajax"),g=a(v),b=e("../services/modal"),y=a(b),_=e("../services/snackbar"),w=a(_),E=e("../utils/banned-page"),k=a(E),O=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 g["default"].post(d["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(g["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,k["default"])(e.detail),y["default"].hide()):w["default"].error(e.detail):403===e.status&&e.ban?((0,k["default"])(e.ban),y["default"].hide()):w["default"].apiError(e)}},{key:"getActivationButton",value:function(){return this.state.showActivation?l["default"].createElement("a",{href:d["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(m["default"],{className:"btn-primary btn-block",loading:this.state.isLoading},gettext("Sign in")),l["default"].createElement("a",{href:d["default"].get("FORGOTTEN_PASSWORD_URL"),className:"btn btn-default btn-block"},gettext("Forgot password?"))))))}}]),t}(h["default"]);n["default"]=O},{"../index":46,"../services/ajax":51,"../services/modal":57,"../services/snackbar":58,"../utils/banned-page":61,"./button":27,"./form":32,react:"react"}],42:[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),d={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 "+d[this.props.type]},this.props.message))}}]),t}(c["default"].Component)},{react:"react"}],43:[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"),d=a(c),f=e("../register-button"),m=a(f),p=e("../sign-in.js"),h=a(p),v=e("../../services/mobile-navbar-dropdown"),g=a(v),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(m["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(m["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(){g["default"].show(_)}},{key:"render",value:function(){return l["default"].createElement("button",{type:"button",onClick:this.showGuestMenu},l["default"].createElement(d["default"],{size:"64"}))}}]),t}(l["default"].Component)},{"../../services/mobile-navbar-dropdown":56,"../../services/modal":57,"../avatar":25,"../register-button":36,"../sign-in.js":41,react:"react"}],44:[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),d=e("./guest-nav"),f=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(f.UserNav,{user:this.props.user}):c["default"].createElement(d.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(f.CompactUserNav,{user:this.props.user}):c["default"].createElement(d.CompactGuestNav,null)}}]),t}(c["default"].Component)},{"./guest-nav":43,"./user-nav":45,react:"react"}],45:[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),d=e("react-redux"),f=e("../avatar"),m=a(f),p=e("../change-avatar/root"),h=a(p),v=e("../../index"),g=a(v),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,d.connect)(p.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:g["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"},"face"),gettext("Change avatar"))),c["default"].createElement("li",{className:"divider"}),c["default"].createElement("li",{className:"dropdown-footer"},c["default"].createElement("button",{type:"button",className:"btn btn-default btn-block",onClick:this.logout},gettext("Log out"))))}}]),t}(c["default"].Component);n.UserNav=function(e){function t(){return r(this,t),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(m["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,d.connect)(i)(E))}},{key:"render",value:function(){return c["default"].createElement("button",{type:"button",onClick:this.showUserMenu},c["default"].createElement(m["default"],{user:this.props.user,size:"64"}))}}]),t}(c["default"].Component)},{"../../index":46,"../../services/mobile-navbar-dropdown":56,"../../services/modal":57,"../avatar":25,"../change-avatar/root":30,react:"react","react-redux":"react-redux"}],46:[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.hasOwnProperty(e)}},{key:"get",value:function(e,t){return this.has(e)?this._context[e]:t||void 0}}]),e}(),l=new u;t.misago=l,n["default"]=l}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./utils/ordered-list":64}],47:[function(e,t,n){"use strict";function a(e){return{type:u,user:e}}function r(){var e=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];return{type:l,soft:e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?i:arguments[0],t=arguments.length<=1||void 0===arguments[1]?null:arguments[1];switch(t.type){case u:return Object.assign({},e,{signedIn:t.user});case l:return Object.assign({},e,{isAuthenticated:!1,isAnonymous:!0,signedOut:!t.soft});case s.UPDATE_AVATAR:if(e.isAuthenticated&&e.user.id===t.userId){var n=Object.assign({},e);return n.user=Object.assign({},e.user,{avatar_hash:t.avatarHash}),n}return e;default:return e}}Object.defineProperty(n,"__esModule",{value:!0}),n.SIGN_OUT=n.SIGN_IN=n.initialState=void 0,n.signIn=a,n.signOut=r,n["default"]=o;var s=e("./users"),i=n.initialState={signedIn:!1,signedOut:!1},u=n.SIGN_IN="SIGN_IN",l=n.SIGN_OUT="SIGN_OUT"},{"./users":50}],48:[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"},{}],49:[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"},{}],50:[function(e,t,n){"use strict";function a(e,t){return{type:r,userId:e.id,avatarHash:t}}Object.defineProperty(n,"__esModule",{value:!0}),n.updateAvatar=a;var r=n.UPDATE_AVATAR="UPDATE_AVATAR"},{}],51:[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.Ajax=function(){function e(){a(this,e),this._cookieName=null,this._csrfToken=null}return r(e,[{key:"init",value:function(e){this._cookieName=e,this._csrfToken=this.getCsrfToken()}},{key:"getCsrfToken",value:function(){if(-1!==document.cookie.indexOf(this._cookieName)){var e=new RegExp(this._cookieName+"=([^;]*)"),t=document.cookie.match(e)[0];return t?t.split("=")[1]:null}return null}},{key:"request",value:function(e,t,n){var a=this;return new Promise(function(r,o){var s={url:t,method:e,headers:{"X-CSRFToken":a._csrfToken},data:n||{},dataType:"json",success:function(e){r(e)},error:function(e){var t=e.responseJSON||{};t.status=e.status,0===t.status&&(t.detail=gettext("Lost connection with application.")),t.statusText=e.statusText,o(t)}};$.ajax(s)})}},{key:"get",value:function(e){return this.request("GET",e)}},{key:"post",value:function(e,t){return this.request("POST",e,t)}},{key:"patch",value:function(e,t){return this.request("PATCH",e,t)}},{key:"put",value:function(e,t){return this.request("PUT",e,t)}},{key:"delete",value:function(e){return this.request("DELETE",e)}}]),e}();n["default"]=new o},{}],52:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0}),n.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":47}],53:[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"),d=a(c),f=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}(),m=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}(f),p=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(d["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}(f),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),v=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(d["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}(f),g=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 m;break;case"qa":this._captcha=new p;break;case"re":this._captcha=new v}this._captcha.init(e,t,n,a)}},{key:"load",value:function(){return this._captcha.load()}},{key:"validator",value:function(){return this._captcha.validator()}},{key:"component",value:function(e){return this._captcha.component(e)}}]),e}();n["default"]=new g},{"../components/form-group":31,react:"react"}],54:[function(e,t,n){"use strict";function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}();Object.defineProperty(n,"__esModule",{value:!0});var 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},{}],55:[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},{}],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")}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":63}],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")}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":63,"react-dom":"react-dom"}],58:[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=gettext("Unknown error has occured.");0===e.status&&(t=e.detail),400===e.status&&e.detail&&(t=e.detail),403===e.status&&(t=e.detail,"Permission denied"===t&&(t=gettext("You don't have permission to perform this action."))),404===e.status&&(t=gettext("Action link is invalid.")),this.error(t)}}]),e}();n["default"]=new u},{"../reducers/snackbar":48}],59:[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"}],60:[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},{}],61:[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:v["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=p["default"].get("SETTINGS").forum_name;document.title=gettext("You are banned")+" | "+n,window.history.pushState({},"",p["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"),d=e("../components/banned-page"),f=a(d),m=e("../index"),p=a(m),h=e("../services/store"),v=a(h),g=function(e){return e.tick},b=(0,c.connect)(g)(f["default"])},{"../components/banned-page":26,"../index":46,"../services/store":59,moment:"moment",react:"react","react-dom":"react-dom","react-redux":"react-redux"}],62:[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}},{}],63:[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);a&&(n?i["default"].render(o["default"].createElement(u.Provider,{store:c["default"].getStore()},o["default"].createElement(e,null)),a):i["default"].render(o["default"].createElement(e,null),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":59,react:"react","react-dom":"react-dom","react-redux":"react-redux"}],64:[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},{}],65:[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 d.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 f.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 d=/^(([^<>()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i,f=new RegExp("^[0-9a-z]+$","i")},{}]},{},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]);
 //# 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","global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","value","Misago","undefined","_orderedList","_orderedList2","this","_initializers","_context","initializer","push","name","item","after","before","context","_this","initOrder","orderedValues","forEach","hasOwnProperty","fallback","has","misago","self","window","../../../../documents/misago/frontend/src/utils/ordered-list",2,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../../documents/misago/frontend/src/index","../../../../../documents/misago/frontend/src/services/ajax",3,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../documents/misago/frontend/src/components/auth-message","../../../../../documents/misago/frontend/src/utils/mount-component","react-redux",4,"_store2","addReducer","_auth2","assign","isAuthenticated","isAnonymous","user","_auth","initialState","_store","../../../../../documents/misago/frontend/src/reducers/auth","../../../../../documents/misago/frontend/src/services/store",5,"_localStorage2","_modal2","_modal","_localStorage","../../../../../documents/misago/frontend/src/services/auth","../../../../../documents/misago/frontend/src/services/local-storage","../../../../../documents/misago/frontend/src/services/modal",6,"_bannedPage2","_bannedPage","../../../../../documents/misago/frontend/src/utils/banned-page",7,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../../documents/misago/frontend/src/services/captcha","../../../../../documents/misago/frontend/src/services/include","../../../../../documents/misago/frontend/src/services/snackbar",8,9,10,"element","document","getElementById","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown",11,12,"_moment2","locale","$","attr","_moment","moment",13,"_requestActivationLink2","_requestActivationLink","../../../../../documents/misago/frontend/src/components/request-activation-link",14,"_requestPasswordReset2","_requestPasswordReset","../../../../../documents/misago/frontend/src/components/request-password-reset",15,"_resetPasswordForm2","_resetPasswordForm","../../../../../documents/misago/frontend/src/components/reset-password-form",16,"Snackbar","../../../../../documents/misago/frontend/src/components/snackbar",17,"../../../../../documents/misago/frontend/src/reducers/snackbar",18,19,20,"_tick2","_tick","../../../../../documents/misago/frontend/src/reducers/tick",21,"setInterval","dispatch","doTick","TICK_PERIOD",22,"_root","UserMenu","CompactUserMenu","../../../../../documents/misago/frontend/src/components/user-menu/root",23,"_zxcvbn2","_zxcvbn","../../../../../documents/misago/frontend/src/services/zxcvbn",24,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","state","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","apply","arguments","location","reload","interpolate","gettext","username","createElement","className","getClassName","getMessage","type","onClick","refresh","Component","react",25,"BASE_URL","size","url","id","avatar_hash","src","getSrc","title",26,"message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",27,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",28,"_avatar","_avatar2","_button","_button2","setGravatar","callApi","setGenerated","isLoading","avatarType","_this2","setState","post","avatar_api_url","avatar","then","response","success","detail","onComplete","options","rejection","status","error","showError","gravatar","getAvatarPreview","getGravatarButton","../../services/ajax","../../services/snackbar","../avatar","../button","../loader",29,"ChangeAvatarError","_modalLoader","_modalLoader2","_users","reason","getErrorReason","_React$Component2","_Object$getPrototypeO","_temp","_ret","_len","args","Array","_key","concat","showIndex","component","completeFlow","avatarHash","updateAvatar","_this3","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./index",30,"validation","isValidated","map","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",31,"_validators","validateRequired","required","bindInput","event","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","validationError","../utils/validators",32,33,34,"LABELS","STYLES","_score","_password","_inputs","password","inputs","cacheStale","trim","scorePassword","score","getScore","style","width","aria-valuenow","aria-valuemin","aria-valuemax","../services/zxcvbn",35,"_register","_register2","showRegisterModal","account_activation","info","isLoaded","show","Promise","all","load","../services/captcha","../services/modal","../services/snackbar","./register.js",36,"_interopRequireWildcard","newObj","RegisterComplete","RegisterForm","_form","_form2","_formGroup","_formGroup2","_passwordStrength","_passwordStrength2","_Form","email","captcha","usernameContent","usernameMinLength","usernameMaxLength","passwordMinLength","validator","isValid","apiResponse","callback","ban","hide","apiError","href","onSubmit","display","for","aria-describedby","onChange","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","complete","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",37,"LinkSent","RequestLinkForm","indexOf","placeholder","reset",38,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","_React$Component3","_this4","render","react-dom",39,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",40,"showActivation","append","find","val","getCsrfToken","pathname","submit","getActivationButton",41,"snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",42,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",43,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",44,"selectUserMenu","_root2","decision","confirm","absolute_url","changeAvatar","logout","data-toggle","aria-haspopup","aria-expanded","showConnected","showUserMenu","../../index","../change-avatar/root",45,"./utils/ordered-list",46,"SIGN_IN","signOut","soft","SIGN_OUT","action","UPDATE_AVATAR","userId","./users",47,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",48,"TICK","tick",49,50,"Ajax","_cookieName","_csrfToken","cookieName","cookie","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",51,"Auth","store","local","modal","_local","syncSession","watchState","getState","set","watch","../reducers/auth",52,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","binding","_BaseCaptcha3","wait","setTimeout","recaptcha_site_key","captcha_type","../components/form-group",53,"Include","staticUrl","_staticUrl","_included","script","remote","cache",54,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",55,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",56,"Modal","on","unmountComponentAtNode",57,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert","../reducers/snackbar",58,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",59,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",60,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page","../services/store",61,"rootElementId","connected","rootElement",62,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",63,"EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","settings","username_length_min","username_length_max","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n(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.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../../../documents/misago/frontend/src/utils/ordered-list\":62}],2:[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\":45,\"../../../../../documents/misago/frontend/src/services/ajax\":50}],3:[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\":24,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61,\"react-redux\":\"react-redux\"}],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/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\":45,\"../../../../../documents/misago/frontend/src/reducers/auth\":46,\"../../../../../documents/misago/frontend/src/services/store\":58}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/auth\":51,\"../../../../../documents/misago/frontend/src/services/local-storage\":54,\"../../../../../documents/misago/frontend/src/services/modal\":56,\"../../../../../documents/misago/frontend/src/services/store\":58}],6:[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.get('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/banned-page\":60}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/ajax\":50,\"../../../../../documents/misago/frontend/src/services/captcha\":52,\"../../../../../documents/misago/frontend/src/services/include\":53,\"../../../../../documents/misago/frontend/src/services/snackbar\":57}],8:[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\":45,\"../../../../../documents/misago/frontend/src/services/include\":53}],9:[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\":45,\"../../../../../documents/misago/frontend/src/services/local-storage\":54}],10:[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\":45,\"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown\":55}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/modal\":56}],12:[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\":45,\"moment\":\"moment\"}],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 _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\":37,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61}],14:[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\":38,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61}],15:[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\":39,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61}],16:[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\":41,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61,\"react-redux\":\"react-redux\"}],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 _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\":45,\"../../../../../documents/misago/frontend/src/reducers/snackbar\":47,\"../../../../../documents/misago/frontend/src/services/store\":58}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/snackbar\":57,\"../../../../../documents/misago/frontend/src/services/store\":58}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/store\":58}],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 _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\":45,\"../../../../../documents/misago/frontend/src/reducers/tick\":48,\"../../../../../documents/misago/frontend/src/services/store\":58}],21:[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\":45,\"../../../../../documents/misago/frontend/src/reducers/tick\":48,\"../../../../../documents/misago/frontend/src/services/store\":58}],22:[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\":43,\"../../../../../documents/misago/frontend/src/index\":45,\"../../../../../documents/misago/frontend/src/utils/mount-component\":61,\"react-redux\":\"react-redux\"}],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 _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\":45,\"../../../../../documents/misago/frontend/src/services/include\":53,\"../../../../../documents/misago/frontend/src/services/zxcvbn\":59}],24:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\"}],25:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\"}],26:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],27:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":32,\"react\":\"react\"}],28:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\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.avatar_api_url, {\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        } else {\n          _this2.props.showError(rejection);\n        }\n\n        _this2.setState({\n          'isLoading': false\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: 'getAvatarPreview',\n    value: function getAvatarPreview() {\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: this.props.user, 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: this.props.user, 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          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../../services/ajax\":50,\"../../services/snackbar\":57,\"../avatar\":25,\"../button\":27,\"../loader\":32,\"react\":\"react\"}],29:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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 _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\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.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.avatar_api_url).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.onComplete,\n              showError: this.showError,\n              showIndex: this.showIndex });\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\":49,\"../../services/ajax\":50,\"../../services/store\":58,\"../modal-loader\":33,\"./index\":28,\"react\":\"react\"}],30:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'isValidated',\n    value: function isValidated() {\n      return typeof this.props.validation !== \"undefined\";\n    }\n  }, {\n    key: 'getClassName',\n    value: function getClassName() {\n      var className = 'form-group';\n      if (this.isValidated()) {\n        className += ' has-feedback';\n        if (this.props.validation === null) {\n          className += ' has-success';\n        } else {\n          className += ' has-error';\n        }\n      }\n      return className;\n    }\n  }, {\n    key: 'getFeedback',\n    value: function getFeedback() {\n      var _this2 = this;\n\n      if (this.props.validation) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'div',\n          { className: 'help-block errors' },\n          this.props.validation.map(function (error, i) {\n            return _react2.default.createElement(\n              'p',\n              { key: _this2.props.for + 'FeedbackItem' + i },\n              error\n            );\n          })\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackIcon',\n    value: function getFeedbackIcon() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { className: 'material-icon form-control-feedback',\n            'aria-hidden': 'true', key: this.props.for + 'FeedbackIcon' },\n          this.props.validation ? 'clear' : 'check'\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getFeedbackDescription',\n    value: function getFeedbackDescription() {\n      if (this.isValidated()) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'span',\n          { id: this.props.for + '_status', className: 'sr-only' },\n          this.props.validation ? gettext('(error)') : gettext('(success)')\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'getHelpText',\n    value: function getHelpText() {\n      if (this.props.helpText) {\n        /* jshint ignore:start */\n        return _react2.default.createElement(\n          'p',\n          { className: 'help-block' },\n          this.props.helpText\n        );\n        /* jshint ignore:end */\n      } else {\n          return null;\n        }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: this.getClassName() },\n        _react2.default.createElement(\n          'label',\n          { className: 'control-label ' + (this.props.labelClass || ''),\n            htmlFor: this.props.for || '' },\n          this.props.label,\n          ':'\n        ),\n        _react2.default.createElement(\n          'div',\n          { className: this.props.controlClass || '' },\n          this.props.children,\n          this.getFeedbackIcon(),\n          this.getFeedbackDescription(),\n          this.getFeedback(),\n          this.getHelpText(),\n          this.props.extra || null\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"react\":\"react\"}],31:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = {};\n        newState[name] = event.target.value;\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ 'isLoading': true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ 'isLoading': false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ 'isLoading': false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ 'isLoading': false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":63,\"react\":\"react\"}],32:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"loader\" },\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\"}],33:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":32,\"react\":\"react\"}],34:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":59,\"react\":\"react\"}],35:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\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\":52,\"../services/modal\":56,\"../services/snackbar\":57,\"../services/zxcvbn\":59,\"./loader\":32,\"./register.js\":36,\"react\":\"react\"}],36:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":45,\"../services/ajax\":50,\"../services/auth\":51,\"../services/captcha\":52,\"../services/modal\":56,\"../services/snackbar\":57,\"../utils/banned-page\":60,\"../utils/validators\":63,\"./button\":27,\"./form\":31,\"./form-group\":30,\"./password-strength\":34,\"react\":\"react\"}],37:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":45,\"../services/ajax\":50,\"../services/snackbar\":57,\"../utils/banned-page\":60,\"../utils/validators\":63,\"./button\":27,\"./form\":31,\"react\":\"react\"}],38:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\":45,\"../services/ajax\":50,\"../services/snackbar\":57,\"../utils/banned-page\":60,\"../utils/validators\":63,\"./button\":27,\"./form\":31,\"react\":\"react\",\"react-dom\":\"react-dom\"}],39:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":45,\"../services/ajax\":50,\"../services/auth\":51,\"../services/modal\":56,\"../services/snackbar\":57,\"../utils/banned-page\":60,\"../utils/validators\":63,\"./button\":27,\"./form\":31,\"./sign-in.js\":40,\"react\":\"react\",\"react-dom\":\"react-dom\"}],40:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\":45,\"../services/ajax\":50,\"../services/modal\":56,\"../services/snackbar\":57,\"../utils/banned-page\":60,\"./button\":27,\"./form\":31,\"react\":\"react\"}],41:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\"}],42:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":55,\"../../services/modal\":56,\"../avatar\":25,\"../register-button\":35,\"../sign-in.js\":40,\"react\":\"react\"}],43:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":42,\"./user-nav\":44,\"react\":\"react\"}],44:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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              'face'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar UserNav = exports.UserNav = function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n}(_react2.default.Component);\n\nfunction selectUserMenu(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\":45,\"../../services/mobile-navbar-dropdown\":55,\"../../services/modal\":56,\"../avatar\":25,\"../change-avatar/root\":29,\"react\":\"react\",\"react-redux\":\"react-redux\"}],45:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return this._context.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":62}],46:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.initialState = undefined;\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 SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    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    default:\n      return state;\n  }\n}\n\n},{\"./users\":49}],47:[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},{}],48:[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},{}],49:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.updateAvatar = updateAvatar;\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\n},{}],50:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data || {},\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\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) {\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],51:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":46}],52:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* 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\":30,\"react\":\"react\"}],53:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar 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},{}],54:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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},{}],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});\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\":61}],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});\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\":61,\"react-dom\":\"react-dom\"}],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});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":47}],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});\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\"}],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\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},{}],60:[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\":26,\"../index\":45,\"../services/store\":58,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],61:[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  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n};\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\":58,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],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\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},{}],63:[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},{}]},{},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]);\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","global","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","_createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","value","Misago","undefined","_orderedList","_orderedList2","this","_initializers","_context","initializer","push","name","item","after","before","context","_this","initOrder","orderedValues","forEach","hasOwnProperty","fallback","has","misago","self","window","../../../../documents/misago/frontend/src/utils/ordered-list",2,"_ajax2","init","_index2","get","_index","_ajax","addInitializer","../../../../../documents/misago/frontend/src/index","../../../../../documents/misago/frontend/src/services/ajax",3,"_mountComponent2","_reactRedux","connect","_authMessage","select","_authMessage2","_mountComponent","../../../../../documents/misago/frontend/src/components/auth-message","../../../../../documents/misago/frontend/src/utils/mount-component","react-redux",4,"_store2","addReducer","_auth2","assign","isAuthenticated","isAnonymous","user","_auth","initialState","_store","../../../../../documents/misago/frontend/src/reducers/auth","../../../../../documents/misago/frontend/src/services/store",5,"_localStorage2","_modal2","_modal","_localStorage","../../../../../documents/misago/frontend/src/services/auth","../../../../../documents/misago/frontend/src/services/local-storage","../../../../../documents/misago/frontend/src/services/modal",6,"_bannedPage2","_bannedPage","../../../../../documents/misago/frontend/src/utils/banned-page",7,"_captcha2","_include2","_snackbar2","_captcha","_include","_snackbar","../../../../../documents/misago/frontend/src/services/captcha","../../../../../documents/misago/frontend/src/services/include","../../../../../documents/misago/frontend/src/services/snackbar",8,9,10,"element","document","getElementById","_mobileNavbarDropdown2","_mobileNavbarDropdown","../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown",11,12,"_moment2","locale","$","attr","_moment","moment",13,"_requestActivationLink2","_requestActivationLink","../../../../../documents/misago/frontend/src/components/request-activation-link",14,"_requestPasswordReset2","_requestPasswordReset","../../../../../documents/misago/frontend/src/components/request-password-reset",15,"_resetPasswordForm2","_resetPasswordForm","../../../../../documents/misago/frontend/src/components/reset-password-form",16,"Snackbar","../../../../../documents/misago/frontend/src/components/snackbar",17,"../../../../../documents/misago/frontend/src/reducers/snackbar",18,19,20,"_tick2","_tick","../../../../../documents/misago/frontend/src/reducers/tick",21,"setInterval","dispatch","doTick","TICK_PERIOD",22,"_root","UserMenu","CompactUserMenu","../../../../../documents/misago/frontend/src/components/user-menu/root",23,"_zxcvbn2","_zxcvbn","../../../../../documents/misago/frontend/src/services/zxcvbn",24,"_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","constructor","setPrototypeOf","__proto__","state","auth","signedIn","signedOut","_react","_react2","_class","_React$Component","getPrototypeOf","apply","arguments","location","reload","interpolate","gettext","username","createElement","className","getClassName","getMessage","type","onClick","refresh","Component","react",25,"BASE_URL","size","url","id","avatar_hash","src","getSrc","title",26,"message","html","dangerouslySetInnerHTML","__html","plain","expires","isAfter","expires_on","fromNow","getReasonMessage","getExpirationMessage",27,"_loader","_loader2","Button","disabled","loading","children","defaultProps","./loader",28,"Gallery","GalleryItem","_button","_button2","_batch","_batch2","_Object$getPrototypeO","_temp","_ret","_len","args","Array","_key","concat","image","selection","_React$Component2","_this3","images","map","row","_React$Component3","_this4","setState","save","isLoading","post","avatar_api_url","avatar","then","response","success","detail","onComplete","options","rejection","status","error","showError","_this5","galleries","showIndex","../../index","../../services/ajax","../../services/snackbar","../../utils/batch","../button",29,"_avatar","_avatar2","setGravatar","callApi","setGenerated","avatarType","_this2","gravatar","showGallery","getAvatarPreview","getGravatarButton","getGalleryButton","../avatar","../loader",30,"ChangeAvatarError","_gallery","_gallery2","_modalLoader","_modalLoader2","_users","reason","getErrorReason","component","completeFlow","avatarHash","updateAvatar","role","data-dismiss","aria-label","aria-hidden","getBody","../../reducers/users","../../services/store","../modal-loader","./gallery","./index",31,"validation","isValidated","helpText","labelClass","htmlFor","label","controlClass","getFeedbackIcon","getFeedbackDescription","getFeedback","getHelpText","extra",32,"_validators","validateRequired","required","bindInput","event","newState","formErrors","errors","validateField","handleSubmit","preventDefault","clean","promise","send","handleSuccess","handleError","validators","optional","validatedFields","fieldErrors","validate","field","requiredError","validationError","../utils/validators",33,34,35,"LABELS","STYLES","_score","_password","_inputs","password","inputs","cacheStale","trim","scorePassword","score","getScore","style","width","aria-valuenow","aria-valuemin","aria-valuemax","../services/zxcvbn",36,"_register","_register2","showRegisterModal","account_activation","info","isLoaded","show","Promise","all","load","../services/captcha","../services/modal","../services/snackbar","./register.js",37,"_interopRequireWildcard","newObj","RegisterComplete","RegisterForm","_form","_form2","_formGroup","_formGroup2","_passwordStrength","_passwordStrength2","_Form","email","captcha","usernameContent","usernameMinLength","usernameMaxLength","passwordMinLength","validator","isValid","apiResponse","callback","ban","hide","apiError","href","onSubmit","display","for","aria-describedby","onChange","form","getLegalFootNote","activation","getLead","getSubscript","completeRegistration","signIn","complete","../index","../services/ajax","../services/auth","../utils/banned-page","./button","./form","./form-group","./password-strength",38,"LinkSent","RequestLinkForm","indexOf","placeholder","reset",39,"AccountInactivePage","RequestResetForm","_reactDom","_reactDom2","showInactivePage","getActivateButton","render","react-dom",40,"PasswordChangedPage","ResetPasswordForm","_signIn","_signIn2","showSignIn","softSignOut","remove","./sign-in.js",41,"showActivation","append","find","val","getCsrfToken","pathname","submit","getActivationButton",42,"snackbar","TYPES_CLASSES","warning","snackbarClass","isVisible","getSnackbarClass",43,"CompactGuestNav","GuestNav","GuestMenu","_registerButton","_registerButton2","showSignInModal","_GuestMenu","showGuestMenu","../../services/mobile-navbar-dropdown","../../services/modal","../register-button","../sign-in.js",44,"_guestNav","_userNav","UserNav","CompactUserNav","./guest-nav","./user-nav",45,"selectUserMenu","_root2","decision","confirm","absolute_url","changeAvatar","logout","data-toggle","aria-haspopup","aria-expanded","showConnected","showUserMenu","../change-avatar/root",46,"./utils/ordered-list",47,"SIGN_IN","signOut","soft","SIGN_OUT","action","UPDATE_AVATAR","userId","./users",48,"showSnackbar","SHOW_SNACKBAR","messageType","hideSnackbar","HIDE_SNACKBAR",49,"TICK","tick",50,51,"Ajax","_cookieName","_csrfToken","cookieName","cookie","cookieRegex","RegExp","match","split","method","data","resolve","reject","xhr","headers","X-CSRFToken","dataType","jqXHR","responseJSON","statusText","ajax","request",52,"Auth","store","local","modal","_local","syncSession","watchState","getState","set","watch","../reducers/auth",53,"Captcha","ReCaptcha","ReCaptchaComponent","QACaptcha","NoCaptcha","BaseCaptcha","include","_BaseCaptcha","_BaseCaptcha2","question","help_text","kwargs","grecaptcha","sitekey","siteKey","binding","_BaseCaptcha3","wait","setTimeout","recaptcha_site_key","captcha_type","../components/form-group",54,"Include","staticUrl","_staticUrl","_included","script","remote","cache",55,"storage","localStorage","LocalStorage","prefix","_prefix","_watchers","addEventListener","newValueJson","JSON","parse","newValue","watcher","oldValue","setItem","stringify","itemString","getItem",56,"MobileNavbarDropdown","_element","_component","addClass","removeClass","../utils/mount-component",57,"Modal","on","unmountComponentAtNode",58,"HIDE_ANIMATION_LENGTH","MESSAGE_SHOW_LENGTH","_timeout","clearTimeout","alert","../reducers/snackbar",59,"StoreWrapper","_redux","_reducers","_initialState","reducer","createStore","combineReducers","redux",60,"Zxcvbn","zxcvbn","_loadingPromise","_loadedPromise",61,"changeState","Provider","getStore","RedrawedBannedPage","forumName","forum_name","history","pushState","../components/banned-page","../services/store",62,"list","rowWidth","padding","rows",63,"rootElementId","connected","rootElement",64,"OrderedList","items","isOrdered","_items","order","values","values_only","_order","unordered","insertItem","insertAt","ordering","ordered","splice","index","iterations",65,"EMAIL","test","minLength","limitValue","returnMessage","ngettext","limit_value","show_value","maxLength","settings","username_length_min","username_length_max","USERNAME","password_length_min"],"mappings":"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","file":"misago.js","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){\n(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.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"../../../../documents/misago/frontend/src/utils/ordered-list\":64}],2:[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\":46,\"../../../../../documents/misago/frontend/src/services/ajax\":51}],3:[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\":24,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63,\"react-redux\":\"react-redux\"}],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/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\":46,\"../../../../../documents/misago/frontend/src/reducers/auth\":47,\"../../../../../documents/misago/frontend/src/services/store\":59}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/auth\":52,\"../../../../../documents/misago/frontend/src/services/local-storage\":55,\"../../../../../documents/misago/frontend/src/services/modal\":57,\"../../../../../documents/misago/frontend/src/services/store\":59}],6:[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.get('BAN_MESSAGE')) {\n    (0, _bannedPage2.default)(context.get('BAN_MESSAGE'), false);\n  }\n}\n\n_index2.default.addInitializer({\n  name: 'component:baned-page',\n  initializer: initializer,\n  after: 'store'\n});\n\n},{\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/banned-page\":61}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/ajax\":51,\"../../../../../documents/misago/frontend/src/services/captcha\":53,\"../../../../../documents/misago/frontend/src/services/include\":54,\"../../../../../documents/misago/frontend/src/services/snackbar\":58}],8:[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\":46,\"../../../../../documents/misago/frontend/src/services/include\":54}],9:[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\":46,\"../../../../../documents/misago/frontend/src/services/local-storage\":55}],10:[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\":46,\"../../../../../documents/misago/frontend/src/services/mobile-navbar-dropdown\":56}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/modal\":57}],12:[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\":46,\"moment\":\"moment\"}],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 _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\":38,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63}],14:[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\":39,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63}],15:[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\":40,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63}],16:[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\":42,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63,\"react-redux\":\"react-redux\"}],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 _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\":46,\"../../../../../documents/misago/frontend/src/reducers/snackbar\":48,\"../../../../../documents/misago/frontend/src/services/store\":59}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/snackbar\":58,\"../../../../../documents/misago/frontend/src/services/store\":59}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/store\":59}],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 _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\":46,\"../../../../../documents/misago/frontend/src/reducers/tick\":49,\"../../../../../documents/misago/frontend/src/services/store\":59}],21:[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\":46,\"../../../../../documents/misago/frontend/src/reducers/tick\":49,\"../../../../../documents/misago/frontend/src/services/store\":59}],22:[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\":44,\"../../../../../documents/misago/frontend/src/index\":46,\"../../../../../documents/misago/frontend/src/utils/mount-component\":63,\"react-redux\":\"react-redux\"}],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 _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\":46,\"../../../../../documents/misago/frontend/src/services/include\":54,\"../../../../../documents/misago/frontend/src/services/zxcvbn\":60}],24:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\"}],25:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\"}],26:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _moment = require('moment');\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: 'getReasonMessage',\n    value: function getReasonMessage() {\n      /* jshint ignore:start */\n      if (this.props.message.html) {\n        return _react2.default.createElement('div', { className: 'lead',\n          dangerouslySetInnerHTML: { __html: this.props.message.html } });\n      } else {\n        return _react2.default.createElement(\n          'p',\n          { className: 'lead' },\n          this.props.message.plain\n        );\n      }\n      /* jshint ignore:end */\n    }\n  }, {\n    key: 'getExpirationMessage',\n    value: function getExpirationMessage() {\n      if (this.props.expires) {\n        if (this.props.expires.isAfter((0, _moment2.default)())) {\n          return interpolate(gettext(\"This ban expires %(expires_on)s.\"), { 'expires_on': this.props.expires.fromNow() }, true);\n        } else {\n          return gettext(\"This ban has expired.\");\n        }\n      } else {\n        return gettext(\"This ban is permanent.\");\n      }\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'div',\n        { className: 'page page-error page-error-banned' },\n        _react2.default.createElement(\n          'div',\n          { className: 'container' },\n          _react2.default.createElement(\n            'div',\n            { className: 'message-panel' },\n            _react2.default.createElement(\n              'div',\n              { className: 'message-icon' },\n              _react2.default.createElement(\n                'span',\n                { className: 'material-icon' },\n                'highlight_off'\n              )\n            ),\n            _react2.default.createElement(\n              'div',\n              { className: 'message-body' },\n              this.getReasonMessage(),\n              _react2.default.createElement(\n                'p',\n                { className: 'message-footnote' },\n                this.getExpirationMessage()\n              )\n            )\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"moment\":\"moment\",\"react\":\"react\"}],27:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":33,\"react\":\"react\"}],28:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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.avatar_api_url, {\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        } else {\n          _this4.props.showError(rejection);\n        }\n\n        _this4.setState({\n          'isLoading': false\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\":46,\"../../services/ajax\":51,\"../../services/snackbar\":58,\"../../utils/batch\":62,\"../button\":27,\"react\":\"react\"}],29:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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.avatar_api_url, {\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        } else {\n          _this2.props.showError(rejection);\n        }\n\n        _this2.setState({\n          'isLoading': false\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: '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      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: this.props.user, 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: this.props.user, 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.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\":51,\"../../services/snackbar\":58,\"../avatar\":25,\"../button\":27,\"../loader\":33,\"react\":\"react\"}],30:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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 _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\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.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.avatar_api_url).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              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\":50,\"../../services/ajax\":51,\"../../services/store\":59,\"../modal-loader\":34,\"./gallery\":28,\"./index\":29,\"react\":\"react\"}],31:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\"}],32:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _validators = require('../utils/validators');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar validateRequired = (0, _validators.required)();\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    var _Object$getPrototypeO;\n\n    var _temp, _this, _ret;\n\n    _classCallCheck(this, _class);\n\n    for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n\n    return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(_class)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.bindInput = function (name) {\n      return function (event) {\n        var newState = {};\n        newState[name] = event.target.value;\n\n        var formErrors = _this.state.errors || {};\n        formErrors[name] = _this.validateField(name, newState[name]);\n        newState.errors = formErrors;\n\n        _this.setState(newState);\n      };\n    }, _this.handleSubmit = function (event) {\n      // we don't reload page on submissions\n      event.preventDefault();\n      if (_this.state.isLoading) {\n        return;\n      }\n\n      if (_this.clean()) {\n        _this.setState({ 'isLoading': true });\n        var promise = _this.send();\n\n        if (promise) {\n          promise.then(function (success) {\n            _this.setState({ 'isLoading': false });\n            _this.handleSuccess(success);\n          }, function (rejection) {\n            _this.setState({ 'isLoading': false });\n            _this.handleError(rejection);\n          });\n        } else {\n          _this.setState({ 'isLoading': false });\n        }\n      }\n    }, _temp), _possibleConstructorReturn(_this, _ret);\n  }\n\n  _createClass(_class, [{\n    key: 'validate',\n    value: function validate() {\n      var errors = {};\n\n      var validators = {\n        required: this.state.validators.required || this.state.validators,\n        optional: this.state.validators.optional || {}\n      };\n\n      var validatedFields = [];\n\n      // add required fields to validation\n      for (var name in validators.required) {\n        if (validators.required.hasOwnProperty(name) && validators.required[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // add optional fields to validation\n      for (var name in validators.optional) {\n        if (validators.optional.hasOwnProperty(name) && validators.optional[name]) {\n          validatedFields.push(name);\n        }\n      }\n\n      // validate fields values\n      for (var i in validatedFields) {\n        var name = validatedFields[i];\n        var fieldErrors = this.validateField(name, this.state[name]);\n\n        if (fieldErrors === null) {\n          errors[name] = null;\n        } else if (fieldErrors) {\n          errors[name] = fieldErrors;\n        }\n      }\n\n      return errors;\n    }\n  }, {\n    key: 'isValid',\n    value: function isValid() {\n      var errors = this.validate();\n      for (var field in errors) {\n        if (errors.hasOwnProperty(field)) {\n          if (errors[field] !== null) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    }\n  }, {\n    key: 'validateField',\n    value: function validateField(name, value) {\n      var errors = [];\n\n      var validators = {\n        required: (this.state.validators.required || this.state.validators)[name],\n        optional: (this.state.validators.optional || {})[name]\n      };\n\n      var requiredError = validateRequired(value) || false;\n\n      if (validators.required) {\n        if (requiredError) {\n          errors = [requiredError];\n        } else {\n          for (var i in validators.required) {\n            var validationError = validators.required[i](value);\n            if (validationError) {\n              errors.push(validationError);\n            }\n          }\n        }\n\n        return errors.length ? errors : null;\n      } else if (requiredError === false && validators.optional) {\n        for (var i in validators.optional) {\n          var validationError = validators.optional[i](value);\n          if (validationError) {\n            errors.push(validationError);\n          }\n        }\n\n        return errors.length ? errors : null;\n      }\n\n      return false; // false === field wasn't validated\n    }\n\n    /* jshint ignore:start */\n\n  }, {\n    key: 'clean',\n    value: function clean() {\n      return true;\n    }\n  }, {\n    key: 'send',\n    value: function send() {\n      return null;\n    }\n  }, {\n    key: 'handleSuccess',\n    value: function handleSuccess(success) {\n      return;\n    }\n  }, {\n    key: 'handleError',\n\n    /* jshint ignore:end */\n    value: function handleError(rejection) {\n      return;\n    }\n  }]);\n\n  return _class;\n}(_react2.default.Component);\n\nexports.default = _class;\n\n},{\"../utils/validators\":65,\"react\":\"react\"}],33:[function(require,module,exports){\n\"use strict\";\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _class = function (_React$Component) {\n  _inherits(_class, _React$Component);\n\n  function _class() {\n    _classCallCheck(this, _class);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(_class).apply(this, arguments));\n  }\n\n  _createClass(_class, [{\n    key: \"render\",\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        \"div\",\n        { className: \"loader\" },\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\"}],34:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":33,\"react\":\"react\"}],35:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\":60,\"react\":\"react\"}],36:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":53,\"../services/modal\":57,\"../services/snackbar\":58,\"../services/zxcvbn\":60,\"./loader\":33,\"./register.js\":37,\"react\":\"react\"}],37:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, 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\":46,\"../services/ajax\":51,\"../services/auth\":52,\"../services/captcha\":53,\"../services/modal\":57,\"../services/snackbar\":58,\"../utils/banned-page\":61,\"../utils/validators\":65,\"./button\":27,\"./form\":32,\"./form-group\":31,\"./password-strength\":35,\"react\":\"react\"}],38:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\":46,\"../services/ajax\":51,\"../services/snackbar\":58,\"../utils/banned-page\":61,\"../utils/validators\":65,\"./button\":27,\"./form\":32,\"react\":\"react\"}],39:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":46,\"../services/ajax\":51,\"../services/snackbar\":58,\"../utils/banned-page\":61,\"../utils/validators\":65,\"./button\":27,\"./form\":32,\"react\":\"react\",\"react-dom\":\"react-dom\"}],40:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":46,\"../services/ajax\":51,\"../services/auth\":52,\"../services/modal\":57,\"../services/snackbar\":58,\"../utils/banned-page\":61,\"../utils/validators\":65,\"./button\":27,\"./form\":32,\"./sign-in.js\":41,\"react\":\"react\",\"react-dom\":\"react-dom\"}],41:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\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\":46,\"../services/ajax\":51,\"../services/modal\":57,\"../services/snackbar\":58,\"../utils/banned-page\":61,\"./button\":27,\"./form\":32,\"react\":\"react\"}],42:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\"}],43:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":56,\"../../services/modal\":57,\"../avatar\":25,\"../register-button\":36,\"../sign-in.js\":41,\"react\":\"react\"}],44:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\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\":43,\"./user-nav\":45,\"react\":\"react\"}],45:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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              'face'\n            ),\n            gettext(\"Change avatar\")\n          )\n        ),\n        _react2.default.createElement('li', { className: 'divider' }),\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown-footer' },\n          _react2.default.createElement(\n            'button',\n            { type: 'button', className: 'btn btn-default btn-block',\n              onClick: this.logout },\n            gettext(\"Log out\")\n          )\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserMenu;\n}(_react2.default.Component);\n\nvar UserNav = exports.UserNav = function (_React$Component2) {\n  _inherits(UserNav, _React$Component2);\n\n  function UserNav() {\n    _classCallCheck(this, UserNav);\n\n    return _possibleConstructorReturn(this, Object.getPrototypeOf(UserNav).apply(this, arguments));\n  }\n\n  _createClass(UserNav, [{\n    key: 'render',\n    value: function render() {\n      /* jshint ignore:start */\n      return _react2.default.createElement(\n        'ul',\n        { className: 'ul nav navbar-nav nav-user' },\n        _react2.default.createElement(\n          'li',\n          { className: 'dropdown' },\n          _react2.default.createElement(\n            'a',\n            { href: this.props.user.absolute_url, className: 'dropdown-toggle',\n              'data-toggle': 'dropdown', 'aria-haspopup': 'true', 'aria-expanded': 'false',\n              role: 'button' },\n            _react2.default.createElement(_avatar2.default, { user: this.props.user, size: '64' })\n          ),\n          _react2.default.createElement(UserMenu, { user: this.props.user })\n        )\n      );\n      /* jshint ignore:end */\n    }\n  }]);\n\n  return UserNav;\n}(_react2.default.Component);\n\nfunction selectUserMenu(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\":46,\"../../services/mobile-navbar-dropdown\":56,\"../../services/modal\":57,\"../avatar\":25,\"../change-avatar/root\":30,\"react\":\"react\",\"react-redux\":\"react-redux\"}],46:[function(require,module,exports){\n(function (global){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.Misago = undefined;\n\nvar _orderedList = require('./utils/ordered-list');\n\nvar _orderedList2 = _interopRequireDefault(_orderedList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Misago = exports.Misago = function () {\n  function Misago() {\n    _classCallCheck(this, Misago);\n\n    this._initializers = [];\n    this._context = {};\n  }\n\n  _createClass(Misago, [{\n    key: 'addInitializer',\n    value: function addInitializer(initializer) {\n      this._initializers.push({\n        key: initializer.name,\n\n        item: initializer.initializer,\n\n        after: initializer.after,\n        before: initializer.before\n      });\n    }\n  }, {\n    key: 'init',\n    value: function init(context) {\n      var _this = this;\n\n      this._context = context;\n\n      var initOrder = new _orderedList2.default(this._initializers).orderedValues();\n      initOrder.forEach(function (initializer) {\n        initializer(_this);\n      });\n    }\n\n    // context accessors\n\n  }, {\n    key: 'has',\n    value: function has(key) {\n      return this._context.hasOwnProperty(key);\n    }\n  }, {\n    key: 'get',\n    value: function get(key, fallback) {\n      if (this.has(key)) {\n        return this._context[key];\n      } else {\n        return fallback || undefined;\n      }\n    }\n  }]);\n\n  return Misago;\n}();\n\n// create  singleton\n\nvar misago = new Misago();\n\n// expose it globally\nglobal.misago = misago;\n\n// and export it for tests and stuff\nexports.default = misago;\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"./utils/ordered-list\":64}],47:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.SIGN_OUT = exports.SIGN_IN = exports.initialState = undefined;\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 SIGN_IN = exports.SIGN_IN = 'SIGN_IN';\nvar SIGN_OUT = exports.SIGN_OUT = 'SIGN_OUT';\n\nfunction signIn(user) {\n  return {\n    type: SIGN_IN,\n    user: user\n  };\n}\n\nfunction signOut() {\n  var soft = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0];\n\n  return {\n    type: SIGN_OUT,\n    soft: soft\n  };\n}\n\nfunction auth() {\n  var state = arguments.length <= 0 || arguments[0] === undefined ? initialState : arguments[0];\n  var action = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n  switch (action.type) {\n    case SIGN_IN:\n      return Object.assign({}, state, {\n        signedIn: action.user\n      });\n\n    case SIGN_OUT:\n      return Object.assign({}, state, {\n        isAuthenticated: false,\n        isAnonymous: true,\n        signedOut: !action.soft\n      });\n\n    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    default:\n      return state;\n  }\n}\n\n},{\"./users\":50}],48:[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},{}],49:[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},{}],50:[function(require,module,exports){\n'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.updateAvatar = updateAvatar;\nvar UPDATE_AVATAR = exports.UPDATE_AVATAR = 'UPDATE_AVATAR';\n\nfunction updateAvatar(user, avatarHash) {\n  return {\n    type: UPDATE_AVATAR,\n    userId: user.id,\n    avatarHash: avatarHash\n  };\n}\n\n},{}],51:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Ajax = exports.Ajax = function () {\n  function Ajax() {\n    _classCallCheck(this, Ajax);\n\n    this._cookieName = null;\n    this._csrfToken = null;\n  }\n\n  _createClass(Ajax, [{\n    key: 'init',\n    value: function init(cookieName) {\n      this._cookieName = cookieName;\n      this._csrfToken = this.getCsrfToken();\n    }\n  }, {\n    key: 'getCsrfToken',\n    value: function getCsrfToken() {\n      if (document.cookie.indexOf(this._cookieName) !== -1) {\n        var cookieRegex = new RegExp(this._cookieName + '\\=([^;]*)');\n        var cookie = document.cookie.match(cookieRegex)[0];\n        return cookie ? cookie.split('=')[1] : null;\n      } else {\n        return null;\n      }\n    }\n  }, {\n    key: 'request',\n    value: function request(method, url, data) {\n      var self = this;\n      return new Promise(function (resolve, reject) {\n        var xhr = {\n          url: url,\n          method: method,\n          headers: {\n            'X-CSRFToken': self._csrfToken\n          },\n\n          data: data || {},\n          dataType: 'json',\n\n          success: function success(data) {\n            resolve(data);\n          },\n\n          error: function error(jqXHR) {\n            var rejection = jqXHR.responseJSON || {};\n\n            rejection.status = jqXHR.status;\n\n            if (rejection.status === 0) {\n              rejection.detail = gettext(\"Lost connection with application.\");\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) {\n      return this.request('GET', url);\n    }\n  }, {\n    key: 'post',\n    value: function post(url, data) {\n      return this.request('POST', url, data);\n    }\n  }, {\n    key: 'patch',\n    value: function patch(url, data) {\n      return this.request('PATCH', url, data);\n    }\n  }, {\n    key: 'put',\n    value: function put(url, data) {\n      return this.request('PUT', url, data);\n    }\n  }, {\n    key: 'delete',\n    value: function _delete(url) {\n      return this.request('DELETE', url);\n    }\n  }]);\n\n  return Ajax;\n}();\n\nexports.default = new Ajax();\n\n},{}],52:[function(require,module,exports){\n'use strict';\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\nexports.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\":47}],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; }; }(); /* 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\":31,\"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\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},{}],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\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},{}],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});\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\":63}],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});\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\":63,\"react-dom\":\"react-dom\"}],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});\nexports.Snackbar = undefined;\n\nvar _snackbar = require('../reducers/snackbar');\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HIDE_ANIMATION_LENGTH = 300;\nvar MESSAGE_SHOW_LENGTH = 5000;\n\nvar Snackbar = exports.Snackbar = function () {\n  function Snackbar() {\n    _classCallCheck(this, Snackbar);\n  }\n\n  _createClass(Snackbar, [{\n    key: 'init',\n    value: function init(store) {\n      this._store = store;\n      this._timeout = null;\n    }\n  }, {\n    key: 'alert',\n    value: function alert(message, type) {\n      var _this = this;\n\n      if (this._timeout) {\n        window.clearTimeout(this._timeout);\n        this._store.dispatch((0, _snackbar.hideSnackbar)());\n\n        this._timeout = window.setTimeout(function () {\n          _this._timeout = null;\n          _this.alert(message, type);\n        }, HIDE_ANIMATION_LENGTH);\n      } else {\n        this._store.dispatch((0, _snackbar.showSnackbar)(message, type));\n        this._timeout = window.setTimeout(function () {\n          _this._store.dispatch((0, _snackbar.hideSnackbar)());\n          _this._timeout = null;\n        }, MESSAGE_SHOW_LENGTH);\n      }\n    }\n\n    // shorthands for message types\n\n  }, {\n    key: 'info',\n    value: function info(message) {\n      this.alert(message, 'info');\n    }\n  }, {\n    key: 'success',\n    value: function success(message) {\n      this.alert(message, 'success');\n    }\n  }, {\n    key: 'warning',\n    value: function warning(message) {\n      this.alert(message, 'warning');\n    }\n  }, {\n    key: 'error',\n    value: function error(message) {\n      this.alert(message, 'error');\n    }\n\n    // shorthand for api errors\n\n  }, {\n    key: 'apiError',\n    value: function apiError(rejection) {\n      var message = gettext(\"Unknown error has occured.\");\n\n      if (rejection.status === 0) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 400 && rejection.detail) {\n        message = rejection.detail;\n      }\n\n      if (rejection.status === 403) {\n        message = rejection.detail;\n        if (message === \"Permission denied\") {\n          message = gettext(\"You don't have permission to perform this action.\");\n        }\n      }\n\n      if (rejection.status === 404) {\n        message = gettext(\"Action link is invalid.\");\n      }\n\n      this.error(message);\n    }\n  }]);\n\n  return Snackbar;\n}();\n\nexports.default = new Snackbar();\n\n},{\"../reducers/snackbar\":48}],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});\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\"}],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\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},{}],61:[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\":26,\"../index\":46,\"../services/store\":59,\"moment\":\"moment\",\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],62:[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},{}],63:[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  if (rootElement) {\n    if (connected) {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(\n        _reactRedux.Provider,\n        { store: _store2.default.getStore() },\n        _react2.default.createElement(Component, null)\n      ),\n      /* jshint ignore:end */\n      rootElement);\n    } else {\n      _reactDom2.default.render(\n      /* jshint ignore:start */\n      _react2.default.createElement(Component, null),\n      /* jshint ignore:end */\n      rootElement);\n    }\n  }\n};\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\":59,\"react\":\"react\",\"react-dom\":\"react-dom\",\"react-redux\":\"react-redux\"}],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\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},{}],65:[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},{}]},{},[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]);\n"],"sourceRoot":"/source/"}