Browse Source

wip #865: further work on docs, added help texts to edit form

Rafał Pitoń 8 years ago
parent
commit
467280b4af

+ 109 - 0
docs/ProfileFields.md

@@ -8,8 +8,117 @@ In addition to those, Misago also uses "read only" profile fields to displays us
 
 
 ## Writing custom profile field
 ## Writing custom profile field
 
 
+Under the hood, profile fields are Python classes inheriting from either the `misago.users.profilefields.ProfileField` class or one of higher-level base fields.
+
+To write your own profile field, you'll need to create custom class that specifies following properties and methods:
+
+
+### `fieldname`
+
+The `fieldname` attribute specifies field's unique identifier in Misago. This identifier is used as key on `user.profile_fields` model field to store field's value as well as source form inputs `name` and `id` attributes.
+
+Example "Website" field that specifies `website` as it's fieldname:
+
+```python
+class WebsiteField(basefields.UrlProfileField):
+    fieldname = 'website'
+    label = _("Website")
+```
+
+
+### `label` and `get_label`
+
+Your field will have to define either `label` attribute, or `get_label(user)` method if you wish to customize the label content's depending on user's field contents.
+
+Below field will always display "Skype ID" as its label:
+
+```python
+class SkypeHandleField(basefields.TextProfileField):
+    fieldname = 'skype'
+    label = _("Skype ID")
+```
+
+And example field that will look up user's gender before displaying label:
+
+```python
+class DynamicLabelField(basefields.TextProfileField):
+    fieldname = 'dynamiclabelexample'
+    
+    def get_label(self, user):
+        if user.profile_fields.get('gender') == 'female'
+            return _("Your femine interest")
+        if user.profile_fields.get('gender') == 'male':
+            return _("Your masculine interest")
+        return _("Your interest")
+```
+
+
+### `help_text` and `get_help_text`
+
+If you wish to, your field may profile help text for display in forms that will provide additional help to users filling in their details.
+
+Unlike label, the help text is displayed only in forms.
+
+Below fields have no help text:
+
+```python
+class LocationField(basefields.TextProfileField):
+    fieldname = 'location'
+    label = _("Location")
+
+
+class FullNameField(basefields.TextProfileField):
+    fieldname = 'fullname'
+    label = _("Full name")
+    help_text = None
+```
+
+This field specifies help text via `help_text` property:
+
+```python
+class WebsiteField(basefields.UrlProfileField):
+    fieldname = 'website'
+    label = _("Website")
+    help_text = _(
+        "If you own page in the internet you wish to share on your profile "
+        "you may enter its address here. Remember to for it to be valid http "
+        "address starting with either http:// or https://"
+    )
+```
+
+And this field builds help text using user's slug:
+
+```python
+class TwitterHandleField(basefields.TextProfileField):
+    fieldname = 'twitter'
+    label = _("Twitter handle")
+
+    def get_help_text(self, user):
+        return _(
+            'If you own Twitter account, here you may enter your Twitter handle for other users '
+            'to find you. Starting your handle with "@" sign is optional. Either "@%(slug)s" or '
+            '"%(slug)s" are valid values.'
+        ) % {
+            'slug': user.slug
+        }
+```
+
+
+### `get_form_field`
+### `get_form_field_json`
+### `get_input_json`
+### `clean`
+### `get_display_data`
+### `get_value_display_data`
+### `search_users`
+
+
 ## Read only profile fields
 ## Read only profile fields
 
 
+## Base fields
+
+## Default fields
+
 ## Obtaining list of profile fields keys existing in database
 ## Obtaining list of profile fields keys existing in database
 
 
 ## Removing profile fields from database
 ## Removing profile fields from database

+ 1 - 0
frontend/src/components/edit-details/fieldset.js

@@ -11,6 +11,7 @@ export default function({ disabled, errors, fields, name, onChange, value }) {
         return (
         return (
           <FormGroup
           <FormGroup
             for={"id_" + field.fieldname}
             for={"id_" + field.fieldname}
+            helpText={field.help_text}
             key={field.fieldname}
             key={field.fieldname}
             label={field.label}
             label={field.label}
             validation={errors[field.fieldname]}
             validation={errors[field.fieldname]}

+ 1 - 1
misago/static/misago/js/misago.js

@@ -1,5 +1,5 @@
 !function e(t,a,n){function r(l,s){if(!a[l]){if(!t[l]){var i="function"==typeof require&&require;if(!s&&i)return i(l,!0);if(o)return o(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var c=a[l]={exports:{}};t[l][0].call(c.exports,function(e){var a=t[l][1][e];return r(a?a:e)},c,c.exports,e,t,a,n)}return a[l].exports}for(var o="function"==typeof require&&require,l=0;l<n.length;l++)r(n[l]);return r}({1:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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 d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Add participant")))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i;var c=e("react"),d=r(c),f=e("./form"),p=r(f),m=e("./form-group"),h=r(m),b=e("../reducers/participants"),v=n(b),y=e("../reducers/thread"),g=e("../services/ajax"),_=r(g),E=e("../services/modal"),w=r(E),O=e("../services/snackbar"),k=r(O),x=e("../services/store"),N=r(x),j=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onUsernameChange=function(e){a.changeValue("username",e.target.value)},a.state={isLoading:!1,username:""},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.state.username.trim().length||(k["default"].error(gettext("You have to enter user name.")),!1)}},{key:"send",value:function(){return _["default"].patch(this.props.thread.api.index,[{op:"add",path:"participants",value:this.state.username},{op:"add",path:"acl",value:1}])}},{key:"handleSuccess",value:function(e){N["default"].dispatch((0,y.updateAcl)(e)),N["default"].dispatch(v.replace(e.participants)),k["default"].success(gettext("New participant has been added to thread.")),w["default"].hide()}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog modal-sm",role:"document"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement(i,null),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(h["default"],{"for":"id_username",label:gettext("User to add")},d["default"].createElement("input",{id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.onUsernameChange,type:"text",value:this.state.username}))),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-block btn-primary",disabled:this.state.isLoading},gettext("Add participant")),d["default"].createElement("button",{className:"btn btn-block btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel"))))))}}]),t}(p["default"]);a["default"]=j},{"../reducers/participants":322,"../reducers/thread":331,"../services/ajax":336,"../services/modal":342,"../services/snackbar":347,"../services/store":348,"./form":52,"./form-group":51,react:"react"}],2:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(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:"render",value:function(){var e="auth-message";return(this.props.signedIn||this.props.signedOut)&&(e+=" show"),c["default"].createElement("div",{className:e},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{className:"btn btn-default",type:"button",onClick:this.refresh},gettext("Reload page")),c["default"].createElement("span",{className:"hidden-xs hidden-sm"}," "+gettext("or press F5 key.")))))}}]),t}(c["default"].Component);a["default"]=d},{react:"react"}],3:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){return e&&e.id?o(e.avatars,t).url:u["default"].get("BLANK_AVATAR_URL")}function o(e,t){var a=e[0];return e.forEach(function(e){e.size>=t&&(a=e)}),a}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.size||100,a=e.size2x||t;return s["default"].createElement("img",{alt:"",className:e.className||"user-avatar",src:r(e.user,t),srcSet:r(e.user,a),width:t,height:t})},a.getSrc=r,a.resolveAvatarForSize=o;var l=e("react"),s=n(l),i=e(".."),u=n(i)},{"..":275,react:"react"}],4:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("moment"),u=n(i),c=e("react"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(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(){if(this.props.expires){if(this.props.expires.isAfter((0,u["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.props.expires.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0);return d["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return 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);a["default"]=f},{moment:"moment",react:"react"}],5:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),u["default"].createElement("button",{className:e,disabled:t,onClick:this.props.onClick,type:this.props.onClick?"button":"submit"},this.props.children,this.props.loading?u["default"].createElement(d["default"],null):null)}}]),t}(u["default"].Component);a["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":54,react:"react"}],6:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"categories-list"},o["default"].createElement("ul",{className:"list-group"},o["default"].createElement("li",{className:"list-group-item empty-message"},o["default"].createElement("p",{className:"lead"},gettext("No categories exist or you don't have permission to see them.")))))};var r=e("react"),o=n(r)},{react:"react"}],7:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.categories;return o["default"].createElement("div",{className:"categories-list"},t.map(function(e){return o["default"].createElement(s["default"],{category:e,key:e.id})}))};var r=e("react"),o=n(r),l=e("./category"),s=n(l)},{"./category":8,react:"react"}],8:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a="list-group list-group-category";return t.css_class&&(a+=" list-group-category-has-flavor",a+=" list-group-category-"+t.css_class),o["default"].createElement("ul",{className:a},o["default"].createElement(s["default"],{category:t,isFirst:!0}),t.subcategories.map(function(e){return o["default"].createElement(s["default"],{category:e,isFirst:!1,key:e.id})}))};var r=e("react"),o=n(r),l=e("./list-item"),s=n(l)},{"./list-item":11,react:"react"}],9:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return t.description?o["default"].createElement("div",{className:"category-description",dangerouslySetInnerHTML:{__html:t.description.html}}):null};var r=e("react"),o=n(r)},{react:"react"}],10:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.is_read?"read-status item-read":"read-status item-new"}function o(e){return e.is_closed?e.is_read?gettext("This category has no new posts. (closed)"):gettext("This category has new posts. (closed)"):e.is_read?gettext("This category has no new posts."):gettext("This category has new posts.")}function l(e){return e.is_closed?e.is_read?"lock_outline":"lock":e.is_read?"chat_bubble_outline":"chat_bubble"}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return i["default"].createElement("div",{className:r(t),title:o(t)},i["default"].createElement("span",{className:"material-icon"},l(t)))},a.getClassName=r,a.getTitle=o,a.getIcon=l;var s=e("react"),i=n(s)},{react:"react"}],11:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.isFirst,n="list-group-item";return n+=t.description?" list-group-category-has-description":" list-group-category-no-description",a&&(n+=" list-group-item-first"),t.css_class&&(n+=" list-group-category-has-flavor",n+=" list-group-item-category-"+t.css_class),o["default"].createElement("li",{className:n},o["default"].createElement("div",{className:"row"},o["default"].createElement(s["default"],{category:t}),o["default"].createElement(d["default"],{category:t}),o["default"].createElement(u["default"],{category:t})),o["default"].createElement(p["default"],{category:t,isFirst:a}))};var r=e("react"),o=n(r),l=e("./main"),s=n(l),i=e("./last-thread"),u=n(i),c=e("./stats"),d=n(c),f=e("./subcategories"),p=n(f)},{"./last-thread":12,"./main":13,"./stats":14,"./subcategories":15,react:"react"}],12:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.category;return t.acl.can_browse&&t.acl.can_see_all_threads&&t.last_thread_title?f["default"].createElement("div",{className:"media"},f["default"].createElement("div",{className:"media-left hidden-xs"},f["default"].createElement(o,{category:t})),f["default"].createElement("div",{className:"media-body"},f["default"].createElement("div",{className:"media-heading"},f["default"].createElement("a",{className:"item-title thread-title",href:t.url.last_thread_new,title:t.last_thread_title},t.last_thread_title)),f["default"].createElement("ul",{className:"list-inline"},f["default"].createElement("li",{className:"category-last-thread-poster"},f["default"].createElement(l,{category:t})),f["default"].createElement("li",{className:"divider"},"—"),f["default"].createElement("li",{className:"category-last-thread-date"},f["default"].createElement("a",{href:t.url.last_post},t.last_post_on.fromNow()))))):null}function o(e){var t=e.category;return t.last_poster?f["default"].createElement("a",{className:"last-poster-avatar",href:t.last_poster.url,title:t.last_poster_name},f["default"].createElement(m["default"],{className:"media-object",size:40,user:t.last_poster})):f["default"].createElement("span",{className:"last-poster-avatar",title:t.last_poster_name},f["default"].createElement(m["default"],{className:"media-object",size:40}))}function l(e){var t=e.category;return t.last_poster?f["default"].createElement("a",{className:"item-title",href:t.last_poster.url},t.last_poster_name):f["default"].createElement("span",{className:"item-title"},t.last_poster_name)}function s(e){var t=e.category;return t.acl.can_browse&&t.acl.can_see_all_threads?t.last_thread_title?null:f["default"].createElement(c,{message:gettext("This category is empty. No threads were posted within it so far.")}):null}function i(e){var t=e.category;return t.acl.can_browse?t.acl.can_see_all_threads?null:f["default"].createElement(c,{message:gettext("This category is private. You can see only your own threads within it.")}):null}function u(e){var t=e.category;return t.acl.can_browse?null:f["default"].createElement(c,{message:gettext("This category is protected. You can't browse it's contents.")})}function c(e){var t=e.message;return f["default"].createElement("div",{className:"media category-thread-message"},f["default"].createElement("div",{className:"media-left"},f["default"].createElement("span",{className:"material-icon"},"info_outline")),f["default"].createElement("div",{className:"media-body"},f["default"].createElement("p",null,t)))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return f["default"].createElement("div",{className:"col-xs-12 col-sm-6 col-md-4 category-last-thread"},f["default"].createElement(r,{category:t}),f["default"].createElement(s,{category:t}),f["default"].createElement(i,{category:t}),f["default"].createElement(u,{category:t}))},a.LastThread=r,a.LastPosterAvatar=o,a.LastPosterName=l,a.Empty=s,a.Private=i,a.Protected=u,a.Message=c;var d=e("react"),f=n(d),p=e("../../../avatar"),m=n(p)},{"../../../avatar":3,react:"react"}],13:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return o["default"].createElement("div",{className:"col-xs-12 col-sm-6 col-md-6 category-main"},o["default"].createElement("div",{className:"media"},o["default"].createElement("div",{className:"media-left"},o["default"].createElement(u["default"],{category:t})),o["default"].createElement("div",{className:"media-body"},o["default"].createElement("h4",{className:"media-heading"},o["default"].createElement("a",{href:t.url.index},t.name)),o["default"].createElement(s["default"],{category:t}))))};var r=e("react"),o=n(r),l=e("./description"),s=n(l),i=e("./icon"),u=n(i)},{"./description":9,"./icon":10,react:"react"}],14:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.threads,a=ngettext("%(threads)s thread","%(threads)s threads",t);return s["default"].createElement("li",{className:"category-stat-threads"},interpolate(a,{threads:t},!0))}function o(e){var t=e.posts,a=ngettext("%(posts)s post","%(posts)s posts",t);return s["default"].createElement("li",{className:"category-stat-posts"},interpolate(a,{posts:t},!0))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return s["default"].createElement("div",{className:"col-md-2 hidden-xs hidden-sm"},s["default"].createElement("ul",{className:"list-unstyled category-stats"},s["default"].createElement(r,{threads:t.threads}),s["default"].createElement(o,{posts:t.posts})))},a.Threads=r,a.Posts=o;var l=e("react"),s=n(l),i=e("../../../avatar");n(i)},{"../../../avatar":3,react:"react"}],15:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.isFirst;return a?null:0===t.subcategories.length?null:o["default"].createElement("div",{className:"row subcategories-list"},t.subcategories.map(function(e){return o["default"].createElement(s["default"],{category:e,key:e.id})}))};var r=e("react"),o=n(r),l=e("./list-item"),s=n(l)},{"./list-item":16,react:"react"}],16:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.is_closed?e.is_read?"lock_outline":"lock":e.is_read?"chat_bubble_outline":"chat_bubble"}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a="btn btn-default btn-block btn-sm btn-subcategory";return t.is_read||(a+=" btn-subcategory-new"),l["default"].createElement("div",{className:"col-xs-12 col-sm-4 col-md-3"},l["default"].createElement("a",{className:a,href:t.url.index},l["default"].createElement("span",{className:"material-icon"},r(t)),l["default"].createElement("span",{className:"icon-text"},t.name)))},a.getIcon=r;var o=e("react"),l=n(o)},{react:"react"}],17:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick}}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("moment"),c=n(u),d=e("react"),f=n(d),p=e("./blankslate"),m=n(p),h=e("./categories-list"),b=n(h),v=e("../../index"),y=n(v),g=e("../../services/polls"),_=n(g),E=function O(e){return Object.assign({},e,{last_post_on:e.last_post_on?(0,c["default"])(e.last_post_on):null,subcategories:e.subcategories.map(O)})},w=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){a.setState({categories:e.map(E)})},a.state={categories:y["default"].get("CATEGORIES").map(E)},a.startPolling(y["default"].get("CATEGORIES_API")),a}return l(t,e),i(t,[{key:"startPolling",value:function(e){_["default"].start({poll:"categories",url:e,frequency:18e4,update:this.update})}},{key:"render",value:function(){var e=this.state.categories;return 0===e.length?f["default"].createElement(m["default"],null):f["default"].createElement(b["default"],{categories:e})}}]),t}(f["default"].Component);a["default"]=w},{"../../index":275,"../../services/polls":345,"./blankslate":6,"./categories-list":7,moment:"moment",react:"react"}],18:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("select",{className:e.className||"form-control",disabled:e.disabled||!1,id:e.id||null,onChange:e.onChange,value:e.value},e.choices.map(function(e){return o["default"].createElement("option",{disabled:e.disabled||!1,key:e.value,value:e.value},"- - ".repeat(e.level)+e.label)}))};var r=e("react"),o=n(r)},{react:"react"}],19:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=(n(c),e("../button")),f=n(d),p=e("../../services/ajax"),m=n(p),h=e("../../services/snackbar"),b=n(h),v=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.cropAvatar=function(){if(a.state.isLoading)return!1;a.setState({isLoading:!0});var e=a.props.upload?"crop_tmp":"crop_src",t=$(".crop-form"),n=t.cropit("exportZoom"),r=t.cropit("offset");m["default"].post(a.props.user.api.avatar,{avatar:e,crop:{offset:{x:r.x*n,y:r.y*n},zoom:t.cropit("zoom")*n}}).then(function(e){a.props.onComplete(e),b["default"].success(e.detail)},function(e){400===e.status?(b["default"].error(e.detail),a.setState({isLoading:!1})):a.props.showError(e)})},a.state={isLoading:!1,deviceRatio:1},a}return l(t,e),s(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_src.size}},{key:"getImagePath",value:function(){return this.props.upload?this.props.dataUrl:this.props.options.crop_src.url}},{key:"componentDidMount",value:function(){for(var e=this,t=$(".crop-form"),a=this.getAvatarSize(),n=t.width();n<a;)a/=2;var r=this.getAvatarSize()/a;t.width(a),t.cropit({width:a,height:a,exportZoom:r,imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var a=t.cropit("zoom"),n=t.cropit("imageSize");if(n.width>n.height){var r=n.width*a,o=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:o,y:0})}else if(n.width<n.height){var l=n.height*a,s=(l-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:s})}else t.cropit("offset",{x:0,y:0})}else{var i=e.props.options.crop_src.crop;i&&(t.cropit("zoom",i.zoom),t.cropit("offset",{x:i.x,y:i.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement("div",{className:"modal-body modal-avatar-crop"},u["default"].createElement("div",{className:"crop-form"},u["default"].createElement("div",{className:"cropit-preview"}),u["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},u["default"].createElement(f["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),u["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(u["default"].Component);a["default"]=v},{"../../services/ajax":336,"../../services/snackbar":347,"../avatar":3,"../button":5,react:"react"}],20:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.Gallery=a.GalleryItem=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../avatar"),f=(n(d),e("../button")),p=n(f),m=e("../../index"),h=(n(m),e("../../services/ajax")),b=n(h),v=e("../../services/snackbar"),y=n(v),g=e("../../utils/batch"),_=n(g),E=a.GalleryItem=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.select=function(){n.props.select(n.props.id)},l=a,o(n,l)}return l(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.id?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 c["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},c["default"].createElement("img",{src:this.props.url}))}}]),t}(c["default"].Component),w=a.Gallery=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"avatars-gallery"},c["default"].createElement("h3",null,this.props.name),c["default"].createElement("div",{className:"avatars-gallery-images"},(0,_["default"])(this.props.images,4,null).map(function(t,a){return c["default"].createElement("div",{className:"row",key:a},t.map(function(t,a){return c["default"].createElement("div",{className:"col-xs-3",key:a},t?c["default"].createElement(E,s({disabled:e.props.disabled,select:e.props.select,selection:e.props.selection},t)):c["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(c["default"].Component),O=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.select=function(e){a.setState({selection:e})},a.save=function(){return!a.state.isLoading&&(a.setState({isLoading:!0}),void b["default"].post(a.props.user.api.avatar,{avatar:"galleries",image:a.state.selection}).then(function(e){a.setState({isLoading:!1}),y["default"].success(e.detail),a.props.onComplete(e),a.props.showIndex()},function(e){400===e.status?(y["default"].error(e.detail),a.setState({isLoading:!1})):a.props.showError(e)}))},a.state={selection:null,isLoading:!1},a}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",null,c["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,a){return c["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:a})})),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},c["default"].createElement(p["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")),c["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(c["default"].Component);a["default"]=O},{"../../index":275,"../../services/ajax":336,"../../services/snackbar":347,
 !function e(t,a,n){function r(l,s){if(!a[l]){if(!t[l]){var i="function"==typeof require&&require;if(!s&&i)return i(l,!0);if(o)return o(l,!0);var u=new Error("Cannot find module '"+l+"'");throw u.code="MODULE_NOT_FOUND",u}var c=a[l]={exports:{}};t[l][0].call(c.exports,function(e){var a=t[l][1][e];return r(a?a:e)},c,c.exports,e,t,a,n)}return a[l].exports}for(var o="function"==typeof require&&require,l=0;l<n.length;l++)r(n[l]);return r}({1:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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 d["default"].createElement("div",{className:"modal-header"},d["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},d["default"].createElement("span",{"aria-hidden":"true"},"×")),d["default"].createElement("h4",{className:"modal-title"},gettext("Add participant")))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.ModalHeader=i;var c=e("react"),d=r(c),f=e("./form"),p=r(f),m=e("./form-group"),h=r(m),b=e("../reducers/participants"),v=n(b),y=e("../reducers/thread"),g=e("../services/ajax"),_=r(g),E=e("../services/modal"),w=r(E),O=e("../services/snackbar"),k=r(O),x=e("../services/store"),N=r(x),j=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onUsernameChange=function(e){a.changeValue("username",e.target.value)},a.state={isLoading:!1,username:""},a}return s(t,e),u(t,[{key:"clean",value:function(){return!!this.state.username.trim().length||(k["default"].error(gettext("You have to enter user name.")),!1)}},{key:"send",value:function(){return _["default"].patch(this.props.thread.api.index,[{op:"add",path:"participants",value:this.state.username},{op:"add",path:"acl",value:1}])}},{key:"handleSuccess",value:function(e){N["default"].dispatch((0,y.updateAcl)(e)),N["default"].dispatch(v.replace(e.participants)),k["default"].success(gettext("New participant has been added to thread.")),w["default"].hide()}},{key:"render",value:function(){return d["default"].createElement("div",{className:"modal-dialog modal-sm",role:"document"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"modal-content"},d["default"].createElement(i,null),d["default"].createElement("div",{className:"modal-body"},d["default"].createElement(h["default"],{"for":"id_username",label:gettext("User to add")},d["default"].createElement("input",{id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.onUsernameChange,type:"text",value:this.state.username}))),d["default"].createElement("div",{className:"modal-footer"},d["default"].createElement("button",{className:"btn btn-block btn-primary",disabled:this.state.isLoading},gettext("Add participant")),d["default"].createElement("button",{className:"btn btn-block btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel"))))))}}]),t}(p["default"]);a["default"]=j},{"../reducers/participants":322,"../reducers/thread":331,"../services/ajax":336,"../services/modal":342,"../services/snackbar":347,"../services/store":348,"./form":52,"./form-group":51,react:"react"}],2:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{user:e.auth.user,signedIn:e.auth.signedIn,signedOut:e.auth.signedOut}}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(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:"render",value:function(){var e="auth-message";return(this.props.signedIn||this.props.signedOut)&&(e+=" show"),c["default"].createElement("div",{className:e},c["default"].createElement("div",{className:"container"},c["default"].createElement("p",{className:"lead"},this.getMessage()),c["default"].createElement("p",null,c["default"].createElement("button",{className:"btn btn-default",type:"button",onClick:this.refresh},gettext("Reload page")),c["default"].createElement("span",{className:"hidden-xs hidden-sm"}," "+gettext("or press F5 key.")))))}}]),t}(c["default"].Component);a["default"]=d},{react:"react"}],3:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){return e&&e.id?o(e.avatars,t).url:u["default"].get("BLANK_AVATAR_URL")}function o(e,t){var a=e[0];return e.forEach(function(e){e.size>=t&&(a=e)}),a}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.size||100,a=e.size2x||t;return s["default"].createElement("img",{alt:"",className:e.className||"user-avatar",src:r(e.user,t),srcSet:r(e.user,a),width:t,height:t})},a.getSrc=r,a.resolveAvatarForSize=o;var l=e("react"),s=n(l),i=e(".."),u=n(i)},{"..":275,react:"react"}],4:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("moment"),u=n(i),c=e("react"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(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(){if(this.props.expires){if(this.props.expires.isAfter((0,u["default"])())){var e=interpolate(gettext("This ban expires on %(expires_on)s."),{expires_on:this.props.expires.format("LL, LT")},!0),t=interpolate(gettext("This ban expires %(expires_on)s."),{expires_on:this.props.expires.fromNow()},!0);return d["default"].createElement("abbr",{title:e},t)}return gettext("This ban has expired.")}return 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);a["default"]=f},{moment:"moment",react:"react"}],5:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){var e="btn "+this.props.className,t=this.props.disabled;return this.props.loading&&(e+=" btn-loading",t=!0),u["default"].createElement("button",{className:e,disabled:t,onClick:this.props.onClick,type:this.props.onClick?"button":"submit"},this.props.children,this.props.loading?u["default"].createElement(d["default"],null):null)}}]),t}(u["default"].Component);a["default"]=f,f.defaultProps={className:"btn-default",type:"submit",loading:!1,disabled:!1,onClick:null}},{"./loader":54,react:"react"}],6:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"categories-list"},o["default"].createElement("ul",{className:"list-group"},o["default"].createElement("li",{className:"list-group-item empty-message"},o["default"].createElement("p",{className:"lead"},gettext("No categories exist or you don't have permission to see them.")))))};var r=e("react"),o=n(r)},{react:"react"}],7:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.categories;return o["default"].createElement("div",{className:"categories-list"},t.map(function(e){return o["default"].createElement(s["default"],{category:e,key:e.id})}))};var r=e("react"),o=n(r),l=e("./category"),s=n(l)},{"./category":8,react:"react"}],8:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a="list-group list-group-category";return t.css_class&&(a+=" list-group-category-has-flavor",a+=" list-group-category-"+t.css_class),o["default"].createElement("ul",{className:a},o["default"].createElement(s["default"],{category:t,isFirst:!0}),t.subcategories.map(function(e){return o["default"].createElement(s["default"],{category:e,isFirst:!1,key:e.id})}))};var r=e("react"),o=n(r),l=e("./list-item"),s=n(l)},{"./list-item":11,react:"react"}],9:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return t.description?o["default"].createElement("div",{className:"category-description",dangerouslySetInnerHTML:{__html:t.description.html}}):null};var r=e("react"),o=n(r)},{react:"react"}],10:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.is_read?"read-status item-read":"read-status item-new"}function o(e){return e.is_closed?e.is_read?gettext("This category has no new posts. (closed)"):gettext("This category has new posts. (closed)"):e.is_read?gettext("This category has no new posts."):gettext("This category has new posts.")}function l(e){return e.is_closed?e.is_read?"lock_outline":"lock":e.is_read?"chat_bubble_outline":"chat_bubble"}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return i["default"].createElement("div",{className:r(t),title:o(t)},i["default"].createElement("span",{className:"material-icon"},l(t)))},a.getClassName=r,a.getTitle=o,a.getIcon=l;var s=e("react"),i=n(s)},{react:"react"}],11:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.isFirst,n="list-group-item";return n+=t.description?" list-group-category-has-description":" list-group-category-no-description",a&&(n+=" list-group-item-first"),t.css_class&&(n+=" list-group-category-has-flavor",n+=" list-group-item-category-"+t.css_class),o["default"].createElement("li",{className:n},o["default"].createElement("div",{className:"row"},o["default"].createElement(s["default"],{category:t}),o["default"].createElement(d["default"],{category:t}),o["default"].createElement(u["default"],{category:t})),o["default"].createElement(p["default"],{category:t,isFirst:a}))};var r=e("react"),o=n(r),l=e("./main"),s=n(l),i=e("./last-thread"),u=n(i),c=e("./stats"),d=n(c),f=e("./subcategories"),p=n(f)},{"./last-thread":12,"./main":13,"./stats":14,"./subcategories":15,react:"react"}],12:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.category;return t.acl.can_browse&&t.acl.can_see_all_threads&&t.last_thread_title?f["default"].createElement("div",{className:"media"},f["default"].createElement("div",{className:"media-left hidden-xs"},f["default"].createElement(o,{category:t})),f["default"].createElement("div",{className:"media-body"},f["default"].createElement("div",{className:"media-heading"},f["default"].createElement("a",{className:"item-title thread-title",href:t.url.last_thread_new,title:t.last_thread_title},t.last_thread_title)),f["default"].createElement("ul",{className:"list-inline"},f["default"].createElement("li",{className:"category-last-thread-poster"},f["default"].createElement(l,{category:t})),f["default"].createElement("li",{className:"divider"},"—"),f["default"].createElement("li",{className:"category-last-thread-date"},f["default"].createElement("a",{href:t.url.last_post},t.last_post_on.fromNow()))))):null}function o(e){var t=e.category;return t.last_poster?f["default"].createElement("a",{className:"last-poster-avatar",href:t.last_poster.url,title:t.last_poster_name},f["default"].createElement(m["default"],{className:"media-object",size:40,user:t.last_poster})):f["default"].createElement("span",{className:"last-poster-avatar",title:t.last_poster_name},f["default"].createElement(m["default"],{className:"media-object",size:40}))}function l(e){var t=e.category;return t.last_poster?f["default"].createElement("a",{className:"item-title",href:t.last_poster.url},t.last_poster_name):f["default"].createElement("span",{className:"item-title"},t.last_poster_name)}function s(e){var t=e.category;return t.acl.can_browse&&t.acl.can_see_all_threads?t.last_thread_title?null:f["default"].createElement(c,{message:gettext("This category is empty. No threads were posted within it so far.")}):null}function i(e){var t=e.category;return t.acl.can_browse?t.acl.can_see_all_threads?null:f["default"].createElement(c,{message:gettext("This category is private. You can see only your own threads within it.")}):null}function u(e){var t=e.category;return t.acl.can_browse?null:f["default"].createElement(c,{message:gettext("This category is protected. You can't browse it's contents.")})}function c(e){var t=e.message;return f["default"].createElement("div",{className:"media category-thread-message"},f["default"].createElement("div",{className:"media-left"},f["default"].createElement("span",{className:"material-icon"},"info_outline")),f["default"].createElement("div",{className:"media-body"},f["default"].createElement("p",null,t)))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return f["default"].createElement("div",{className:"col-xs-12 col-sm-6 col-md-4 category-last-thread"},f["default"].createElement(r,{category:t}),f["default"].createElement(s,{category:t}),f["default"].createElement(i,{category:t}),f["default"].createElement(u,{category:t}))},a.LastThread=r,a.LastPosterAvatar=o,a.LastPosterName=l,a.Empty=s,a.Private=i,a.Protected=u,a.Message=c;var d=e("react"),f=n(d),p=e("../../../avatar"),m=n(p)},{"../../../avatar":3,react:"react"}],13:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return o["default"].createElement("div",{className:"col-xs-12 col-sm-6 col-md-6 category-main"},o["default"].createElement("div",{className:"media"},o["default"].createElement("div",{className:"media-left"},o["default"].createElement(u["default"],{category:t})),o["default"].createElement("div",{className:"media-body"},o["default"].createElement("h4",{className:"media-heading"},o["default"].createElement("a",{href:t.url.index},t.name)),o["default"].createElement(s["default"],{category:t}))))};var r=e("react"),o=n(r),l=e("./description"),s=n(l),i=e("./icon"),u=n(i)},{"./description":9,"./icon":10,react:"react"}],14:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.threads,a=ngettext("%(threads)s thread","%(threads)s threads",t);return s["default"].createElement("li",{className:"category-stat-threads"},interpolate(a,{threads:t},!0))}function o(e){var t=e.posts,a=ngettext("%(posts)s post","%(posts)s posts",t);return s["default"].createElement("li",{className:"category-stat-posts"},interpolate(a,{posts:t},!0))}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category;return s["default"].createElement("div",{className:"col-md-2 hidden-xs hidden-sm"},s["default"].createElement("ul",{className:"list-unstyled category-stats"},s["default"].createElement(r,{threads:t.threads}),s["default"].createElement(o,{posts:t.posts})))},a.Threads=r,a.Posts=o;var l=e("react"),s=n(l),i=e("../../../avatar");n(i)},{"../../../avatar":3,react:"react"}],15:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a=e.isFirst;return a?null:0===t.subcategories.length?null:o["default"].createElement("div",{className:"row subcategories-list"},t.subcategories.map(function(e){return o["default"].createElement(s["default"],{category:e,key:e.id})}))};var r=e("react"),o=n(r),l=e("./list-item"),s=n(l)},{"./list-item":16,react:"react"}],16:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return e.is_closed?e.is_read?"lock_outline":"lock":e.is_read?"chat_bubble_outline":"chat_bubble"}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.category,a="btn btn-default btn-block btn-sm btn-subcategory";return t.is_read||(a+=" btn-subcategory-new"),l["default"].createElement("div",{className:"col-xs-12 col-sm-4 col-md-3"},l["default"].createElement("a",{className:a,href:t.url.index},l["default"].createElement("span",{className:"material-icon"},r(t)),l["default"].createElement("span",{className:"icon-text"},t.name)))},a.getIcon=r;var o=e("react"),l=n(o)},{react:"react"}],17:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick}}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("moment"),c=n(u),d=e("react"),f=n(d),p=e("./blankslate"),m=n(p),h=e("./categories-list"),b=n(h),v=e("../../index"),y=n(v),g=e("../../services/polls"),_=n(g),E=function O(e){return Object.assign({},e,{last_post_on:e.last_post_on?(0,c["default"])(e.last_post_on):null,subcategories:e.subcategories.map(O)})},w=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.update=function(e){a.setState({categories:e.map(E)})},a.state={categories:y["default"].get("CATEGORIES").map(E)},a.startPolling(y["default"].get("CATEGORIES_API")),a}return l(t,e),i(t,[{key:"startPolling",value:function(e){_["default"].start({poll:"categories",url:e,frequency:18e4,update:this.update})}},{key:"render",value:function(){var e=this.state.categories;return 0===e.length?f["default"].createElement(m["default"],null):f["default"].createElement(b["default"],{categories:e})}}]),t}(f["default"].Component);a["default"]=w},{"../../index":275,"../../services/polls":345,"./blankslate":6,"./categories-list":7,moment:"moment",react:"react"}],18:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("select",{className:e.className||"form-control",disabled:e.disabled||!1,id:e.id||null,onChange:e.onChange,value:e.value},e.choices.map(function(e){return o["default"].createElement("option",{disabled:e.disabled||!1,key:e.value,value:e.value},"- - ".repeat(e.level)+e.label)}))};var r=e("react"),o=n(r)},{react:"react"}],19:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=(n(c),e("../button")),f=n(d),p=e("../../services/ajax"),m=n(p),h=e("../../services/snackbar"),b=n(h),v=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.cropAvatar=function(){if(a.state.isLoading)return!1;a.setState({isLoading:!0});var e=a.props.upload?"crop_tmp":"crop_src",t=$(".crop-form"),n=t.cropit("exportZoom"),r=t.cropit("offset");m["default"].post(a.props.user.api.avatar,{avatar:e,crop:{offset:{x:r.x*n,y:r.y*n},zoom:t.cropit("zoom")*n}}).then(function(e){a.props.onComplete(e),b["default"].success(e.detail)},function(e){400===e.status?(b["default"].error(e.detail),a.setState({isLoading:!1})):a.props.showError(e)})},a.state={isLoading:!1,deviceRatio:1},a}return l(t,e),s(t,[{key:"getAvatarSize",value:function(){return this.props.upload?this.props.options.crop_tmp.size:this.props.options.crop_src.size}},{key:"getImagePath",value:function(){return this.props.upload?this.props.dataUrl:this.props.options.crop_src.url}},{key:"componentDidMount",value:function(){for(var e=this,t=$(".crop-form"),a=this.getAvatarSize(),n=t.width();n<a;)a/=2;var r=this.getAvatarSize()/a;t.width(a),t.cropit({width:a,height:a,exportZoom:r,imageState:{src:this.getImagePath()},onImageLoaded:function(){if(e.props.upload){var a=t.cropit("zoom"),n=t.cropit("imageSize");if(n.width>n.height){var r=n.width*a,o=(r-e.getAvatarSize())/-2;t.cropit("offset",{x:o,y:0})}else if(n.width<n.height){var l=n.height*a,s=(l-e.getAvatarSize())/-2;t.cropit("offset",{x:0,y:s})}else t.cropit("offset",{x:0,y:0})}else{var i=e.props.options.crop_src.crop;i&&(t.cropit("zoom",i.zoom),t.cropit("offset",{x:i.x,y:i.y}))}}})}},{key:"componentWillUnmount",value:function(){$(".crop-form").cropit("disable")}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement("div",{className:"modal-body modal-avatar-crop"},u["default"].createElement("div",{className:"crop-form"},u["default"].createElement("div",{className:"cropit-preview"}),u["default"].createElement("input",{type:"range",className:"cropit-image-zoom-input"}))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},u["default"].createElement(f["default"],{onClick:this.cropAvatar,loading:this.state.isLoading,className:"btn-primary btn-block"},this.props.upload?gettext("Set avatar"):gettext("Crop image")),u["default"].createElement(f["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel")))))}}]),t}(u["default"].Component);a["default"]=v},{"../../services/ajax":336,"../../services/snackbar":347,"../avatar":3,"../button":5,react:"react"}],20:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.Gallery=a.GalleryItem=void 0;var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../avatar"),f=(n(d),e("../button")),p=n(f),m=e("../../index"),h=(n(m),e("../../services/ajax")),b=n(h),v=e("../../services/snackbar"),y=n(v),g=e("../../utils/batch"),_=n(g),E=a.GalleryItem=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.select=function(){n.props.select(n.props.id)},l=a,o(n,l)}return l(t,e),i(t,[{key:"getClassName",value:function(){return this.props.selection===this.props.id?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 c["default"].createElement("button",{type:"button",className:this.getClassName(),disabled:this.props.disabled,onClick:this.select},c["default"].createElement("img",{src:this.props.url}))}}]),t}(c["default"].Component),w=a.Gallery=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"avatars-gallery"},c["default"].createElement("h3",null,this.props.name),c["default"].createElement("div",{className:"avatars-gallery-images"},(0,_["default"])(this.props.images,4,null).map(function(t,a){return c["default"].createElement("div",{className:"row",key:a},t.map(function(t,a){return c["default"].createElement("div",{className:"col-xs-3",key:a},t?c["default"].createElement(E,s({disabled:e.props.disabled,select:e.props.select,selection:e.props.selection},t)):c["default"].createElement("div",{className:"blank-avatar"}))}))})))}}]),t}(c["default"].Component),O=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.select=function(e){a.setState({selection:e})},a.save=function(){return!a.state.isLoading&&(a.setState({isLoading:!0}),void b["default"].post(a.props.user.api.avatar,{avatar:"galleries",image:a.state.selection}).then(function(e){a.setState({isLoading:!1}),y["default"].success(e.detail),a.props.onComplete(e),a.props.showIndex()},function(e){400===e.status?(y["default"].error(e.detail),a.setState({isLoading:!1})):a.props.showError(e)}))},a.state={selection:null,isLoading:!1},a}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",null,c["default"].createElement("div",{className:"modal-body modal-avatar-gallery"},this.props.options.galleries.map(function(t,a){return c["default"].createElement(w,{name:t.name,images:t.images,selection:e.state.selection,disabled:e.state.isLoading,select:e.select,key:a})})),c["default"].createElement("div",{className:"modal-footer"},c["default"].createElement("div",{className:"row"},c["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},c["default"].createElement(p["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")),c["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:this.state.isLoading,className:"btn-default btn-block"},gettext("Cancel"))))))}}]),t}(c["default"].Component);a["default"]=O},{"../../index":275,"../../services/ajax":336,"../../services/snackbar":347,
-"../../utils/batch":351,"../avatar":3,"../button":5,react:"react"}],21:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=e("../button"),p=n(f),m=e("../loader"),h=n(m),b=e("../../services/ajax"),v=n(b),y=e("../../services/snackbar"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.setGravatar=function(){a.callApi("gravatar")},a.setGenerated=function(){a.callApi("generated")},a.state={isLoading:!1},a}return l(t,e),s(t,[{key:"callApi",value:function(e){var t=this;return!this.state.isLoading&&(this.setState({isLoading:!0}),void v["default"].post(this.props.user.api.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),g["default"].success(e.detail),t.props.onComplete(e)},function(e){400===e.status?(g["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?u["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_src?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-crop",disabled:this.state.isLoading,onClick:this.props.showCrop},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-upload",disabled:this.state.isLoading,onClick:this.props.showUpload},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-gallery",disabled:this.state.isLoading,onClick:this.props.showGallery},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){var e={id:this.props.user.id,avatars:this.props.options.avatars};return this.state.isLoading?u["default"].createElement("div",{className:"avatar-preview preview-loading"},u["default"].createElement(d["default"],{size:"200",user:e}),u["default"].createElement(h["default"],null)):u["default"].createElement("div",{className:"avatar-preview"},u["default"].createElement(d["default"],{size:"200",user:e}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-index"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),u["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),u["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(u["default"].Component);a["default"]=_},{"../../services/ajax":336,"../../services/snackbar":347,"../avatar":3,"../button":5,"../loader":54,react:"react"}],22:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{user:e.auth.user}}Object.defineProperty(a,"__esModule",{value:!0}),a.ChangeAvatarError=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=e("./index"),f=n(d),p=e("./crop"),m=n(p),h=e("./upload"),b=n(h),v=e("./gallery"),y=n(v),g=e("../modal-loader"),_=n(g),E=e("../../reducers/users"),w=e("../../services/ajax"),O=n(w),k=e("../../services/store"),x=n(k),N=a.ChangeAvatarError=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(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(),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}}]),t}(c["default"].Component),j=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.showError=function(e){n.setState({error:e})},n.showIndex=function(){n.setState({component:f["default"]})},n.showUpload=function(){n.setState({component:b["default"]})},n.showCrop=function(){n.setState({component:m["default"]})},n.showGallery=function(){n.setState({component:y["default"]})},n.completeFlow=function(e){x["default"].dispatch((0,E.updateAvatar)(n.props.user,e.avatars)),n.setState({component:f["default"],options:e})},l=a,o(n,l)}return l(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;O["default"].get(this.props.user.api.avatar).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(N,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);a["default"]=j},{"../../reducers/users":335,"../../services/ajax":336,"../../services/store":348,"../modal-loader":57,"./crop":19,"./gallery":20,"./index":21,"./upload":23,react:"react"}],23:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./crop"),d=n(c),f=e("../button"),p=n(f),m=e("../../services/ajax"),h=n(m),b=e("../../services/snackbar"),v=n(b),y=e("../../utils/file-size"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},a.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0];if(e){var t=a.validateFile(e);if(t)return void v["default"].error(t);a.setState({image:e,preview:URL.createObjectURL(e),progress:0});var n=new FormData;n.append("avatar","upload"),n.append("image",e),h["default"].upload(a.props.user.api.avatar,n,function(e){a.setState({progress:e})}).then(function(e){a.setState({options:e,uploaded:e.detail}),v["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status||413===e.status?(v["default"].error(e.detail),a.setState({isLoading:!1,image:null,progress:0})):a.props.showError(e)})}},a.state={image:null,preview:null,progress:0,uploaded:null,dataUrl:null},a}return l(t,e),s(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,g["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(this.props.options.upload.allowed_mime_types.indexOf(e.type)===-1)return t;var a=!1,n=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){n.substr(e.length*-1)===e&&(a=!0)}),!a&&t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,g["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},u["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),u["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement("div",{className:"upload-progress"},u["default"].createElement("img",{src:this.state.preview}),u["default"].createElement("div",{className:"progress"},u["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{width:this.state.progress+"%"}},u["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return u["default"].createElement("div",null,u["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},u["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return u["default"].createElement(d["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,dataUrl:this.state.preview,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(u["default"].Component);a["default"]=_},{"../../services/ajax":336,"../../services/snackbar":347,"../../utils/file-size":355,"../button":5,"./crop":19,react:"react"}],24:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.dropdown?"btn btn-default btn-aligned btn-icon btn-dropdown-toggle open hidden-md hidden-lg":"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg"}},{key:"render",value:function(){return u["default"].createElement("button",{className:this.getClassName(),type:"button",onClick:this.props.toggleNav,"aria-haspopup":"true","aria-expanded":this.props.dropdown?"true":"false"},u["default"].createElement("i",{className:"material-icon"},"menu"))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],25:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.display;return t?o["default"].createElement(s["default"],{helpText:gettext("No profile details are editable at this time."),message:gettext("This option is currently unavailable.")}):null};var r=e("react"),o=n(r),l=e("../panel-message"),s=n(l)},{"../panel-message":72,react:"react"}],26:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../select"),d=n(c),f=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onChange=function(e){var t=n.props,a=t.field,r=t.onChange;r(a.fieldname,e.target.value)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){var e=this.props,t=e.disabled,a=e.field,n=e.value,r=a.input;return"select"===r.type?u["default"].createElement(d["default"],{choices:r.choices,disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,value:n}):"textarea"===r.type?u["default"].createElement("textarea",{className:"form-control",disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,rows:"4",type:"text",value:n}):"text"===r.type?u["default"].createElement("input",{className:"form-control",disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,type:"text",value:n}):null}}]),t}(u["default"].Component);a["default"]=f},{"../select":188,react:"react"}],27:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.disabled,a=e.errors,n=e.fields,r=e.name,l=e.onChange,i=e.value;return o["default"].createElement("fieldset",null,o["default"].createElement("legend",null,r),n.map(function(e){return o["default"].createElement(u["default"],{"for":"id_"+e.fieldname,key:e.fieldname,label:e.label,validation:a[e.fieldname]},o["default"].createElement(s["default"],{disabled:t,field:e,onChange:l,value:i[e.fieldname]}))}))};var r=e("react"),o=n(r),l=e("./field-input"),s=n(l),i=e("../form-group"),u=n(i)},{"../form-group":51,"./field-input":26,react:"react"}],28:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)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){var t=e.onCancel,a=e.disabled;return t?d["default"].createElement("button",{className:"btn btn-default",disabled:a,onClick:t,type:"button"},gettext("Cancel")):null}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.CancelButton=i;var c=e("react"),d=n(c),f=e("./fieldset"),p=n(f),m=e("../button"),h=n(m),b=e("../form"),v=n(b),y=e("../../services/ajax"),g=n(y),_=e("../../services/snackbar"),E=n(_),w=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.onChange=function(e,t){a.setState(r({},e,t))},a.state={isLoading:!1,errors:{}};for(var n=e.groups.length,s=0;s<n;s++)for(var i=e.groups[s],u=i.fields.length,c=0;c<u;c++){var d=i.fields[c].fieldname,f=i.fields[c].initial;a.state[d]=f}return a}return s(t,e),u(t,[{key:"send",value:function(){var e=Object.assign({},this.state,{errors:null,isLoading:null});return g["default"].post(this.props.api,e)}},{key:"handleSuccess",value:function(e){this.props.onSuccess(e)}},{key:"handleError",value:function(e){400===e.status?(E["default"].error(gettext("Form contains errors.")),this.setState({errors:e})):E["default"].apiError(e)}},{key:"render",value:function(){var e=this;return d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"panel-body"},this.props.groups.map(function(t,a){return d["default"].createElement(p["default"],{disabled:e.state.isLoading,errors:e.state.errors,fields:t.fields,name:t.name,key:a,onChange:e.onChange,value:e.state})})),d["default"].createElement("div",{className:"panel-footer text-right"},d["default"].createElement(i,{disabled:this.state.isLoading,onCancel:this.props.onCancel})," ",d["default"].createElement(h["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}}]),t}(v["default"]);a["default"]=w},{"../../services/ajax":336,"../../services/snackbar":347,"../button":5,"../form":52,"./fieldset":27,react:"react"}],29:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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){var t=e.api,a=e.display,n=e.groups,r=e.onCancel,o=e.onSuccess;return a?c["default"].createElement(b["default"],{api:t,groups:n,onCancel:r,onSuccess:o}):null}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.FormDisplay=s;var u=e("react"),c=n(u),d=e("./blankslate"),f=n(d),p=e("./loader"),m=n(p),h=e("./form"),b=n(h),v=e("../../services/ajax"),y=n(v),g=e("../../services/snackbar"),_=n(g),E=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={loading:!0,groups:null},a}return l(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;y["default"].get(this.props.api).then(function(t){e.setState({loading:!1,groups:t})},function(t){_["default"].apiError(t),e.props.cancel&&e.props.cancel()})}},{key:"render",value:function(){var e=this.state,t=e.groups,a=e.loading;return c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Edit details"))),c["default"].createElement(m["default"],{display:a}),c["default"].createElement(f["default"],{display:!a&&!t.length}),c["default"].createElement(s,{api:this.props.api,display:!a&&t.length,groups:t,onCancel:this.props.onCancel,onSuccess:this.props.onSuccess}))}}]),t}(c["default"].Component);a["default"]=E},{"../../services/ajax":336,"../../services/snackbar":347,"./blankslate":25,"./form":28,"./loader":30,react:"react"}],30:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.display;return t?o["default"].createElement("div",{className:"panel-body"},o["default"].createElement(s["default"],null)):null};var r=e("react"),o=n(r),l=e("../loader"),s=n(l)},{"../loader":54,react:"react"}],31:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){n.props.replaceSelection(n.props.execAction)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("button",{className:"btn btn-icon "+this.props.className,disabled:this.props.disabled,onClick:this.onClick,title:this.props.title,type:"button"},this.props.children)}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],32:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a=$.trim(prompt(gettext("Enter name of syntax of your code (optional)")+":"));t("\n\n```"+a+"\n"+e+"\n```\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert code")},e),s["default"].createElement("span",{className:"material-icon"},"functions"))},a.insertCode=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url");n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],33:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("*"+e+"*")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Emphase selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_italic"))},a.makeEmphasis=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],34:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){t("\n\n- - - - -\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert horizontal ruler")},e),s["default"].createElement("span",{className:"material-icon"},"remove"))},a.insertHr=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],35:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a="",n="";e.length&&((0,d["default"])(e)?a=e:n=e),a=$.trim(prompt(gettext("Enter link to image")+":",a)),n=$.trim(prompt(gettext("Enter image label (optional)")+":",n)),a.length&&t(n.length>0?"!["+n+"]("+a+")":"!("+a+")")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert image")},e),s["default"].createElement("span",{className:"material-icon"},"insert_photo"))},a.insertImage=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url"),d=n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],36:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a="",n="";e.length&&((0,d["default"])(e)?a=e:n=e),a=$.trim(prompt(gettext("Enter link address")+":",a)),n=$.trim(prompt(gettext("Enter link label (optional)")+":",n)),a.length&&t(n.length>0?"["+n+"]("+a+")":a)}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert link")},e),s["default"].createElement("span",{className:"material-icon"},"insert_link"))},a.insertLink=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url"),d=n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],37:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a=$.trim(prompt(gettext("Enter quote autor, prefix usernames with @")+":",a));t(a?'\n\n[quote="'+a+'"]\n'+e+"\n[/quote]\n\n":"\n\n[quote]\n"+e+"\n[/quote]\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert quote")},e),s["default"].createElement("span",{className:"material-icon"},"format_quote"))},a.insertQuote=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url");n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],38:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("~~"+e+"~~")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Striketrough selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_strikethrough"))},a.makeStriketrough=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],39:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("**"+e+"**")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Bolder selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_bold"))},a.makeStrong=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],40:[function(e,t,a){"use strict";function n(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");
+"../../utils/batch":351,"../avatar":3,"../button":5,react:"react"}],21:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../avatar"),d=n(c),f=e("../button"),p=n(f),m=e("../loader"),h=n(m),b=e("../../services/ajax"),v=n(b),y=e("../../services/snackbar"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.setGravatar=function(){a.callApi("gravatar")},a.setGenerated=function(){a.callApi("generated")},a.state={isLoading:!1},a}return l(t,e),s(t,[{key:"callApi",value:function(e){var t=this;return!this.state.isLoading&&(this.setState({isLoading:!0}),void v["default"].post(this.props.user.api.avatar,{avatar:e}).then(function(e){t.setState({isLoading:!1}),g["default"].success(e.detail),t.props.onComplete(e)},function(e){400===e.status?(g["default"].error(e.detail),t.setState({isLoading:!1})):t.props.showError(e)}))}},{key:"getGravatarButton",value:function(){return this.props.options.gravatar?u["default"].createElement(p["default"],{onClick:this.setGravatar,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-gravatar"},gettext("Download my Gravatar")):null}},{key:"getCropButton",value:function(){return this.props.options.crop_src?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-crop",disabled:this.state.isLoading,onClick:this.props.showCrop},gettext("Re-crop uploaded image")):null}},{key:"getUploadButton",value:function(){return this.props.options.upload?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-upload",disabled:this.state.isLoading,onClick:this.props.showUpload},gettext("Upload new image")):null}},{key:"getGalleryButton",value:function(){return this.props.options.galleries?u["default"].createElement(p["default"],{className:"btn-default btn-block btn-avatar-gallery",disabled:this.state.isLoading,onClick:this.props.showGallery},gettext("Pick avatar from gallery")):null}},{key:"getAvatarPreview",value:function(){var e={id:this.props.user.id,avatars:this.props.options.avatars};return this.state.isLoading?u["default"].createElement("div",{className:"avatar-preview preview-loading"},u["default"].createElement(d["default"],{size:"200",user:e}),u["default"].createElement(h["default"],null)):u["default"].createElement("div",{className:"avatar-preview"},u["default"].createElement(d["default"],{size:"200",user:e}))}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-index"},u["default"].createElement("div",{className:"row"},u["default"].createElement("div",{className:"col-md-5"},this.getAvatarPreview()),u["default"].createElement("div",{className:"col-md-7"},this.getGravatarButton(),u["default"].createElement(p["default"],{onClick:this.setGenerated,disabled:this.state.isLoading,className:"btn-default btn-block btn-avatar-generate"},gettext("Generate my individual avatar")),this.getCropButton(),this.getUploadButton(),this.getGalleryButton())))}}]),t}(u["default"].Component);a["default"]=_},{"../../services/ajax":336,"../../services/snackbar":347,"../avatar":3,"../button":5,"../loader":54,react:"react"}],22:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{user:e.auth.user}}Object.defineProperty(a,"__esModule",{value:!0}),a.ChangeAvatarError=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s;var u=e("react"),c=n(u),d=e("./index"),f=n(d),p=e("./crop"),m=n(p),h=e("./upload"),b=n(h),v=e("./gallery"),y=n(v),g=e("../modal-loader"),_=n(g),E=e("../../reducers/users"),w=e("../../services/ajax"),O=n(w),k=e("../../services/store"),x=n(k),N=a.ChangeAvatarError=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),i(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(),c["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}}]),t}(c["default"].Component),j=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.showError=function(e){n.setState({error:e})},n.showIndex=function(){n.setState({component:f["default"]})},n.showUpload=function(){n.setState({component:b["default"]})},n.showCrop=function(){n.setState({component:m["default"]})},n.showGallery=function(){n.setState({component:y["default"]})},n.completeFlow=function(e){x["default"].dispatch((0,E.updateAvatar)(n.props.user,e.avatars)),n.setState({component:f["default"],options:e})},l=a,o(n,l)}return l(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;O["default"].get(this.props.user.api.avatar).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(N,{message:this.state.error.detail,reason:this.state.error.reason}):c["default"].createElement(this.state.component,{options:this.state.options,user:this.props.user,onComplete:this.completeFlow,showError:this.showError,showIndex:this.showIndex,showCrop:this.showCrop,showUpload:this.showUpload,showGallery:this.showGallery}):c["default"].createElement(_["default"],null)}},{key:"getClassName",value:function(){return this.state&&this.state.error?"modal-dialog modal-message modal-change-avatar":"modal-dialog modal-change-avatar"}},{key:"render",value:function(){return c["default"].createElement("div",{className:this.getClassName(),role:"document"},c["default"].createElement("div",{className:"modal-content"},c["default"].createElement("div",{className:"modal-header"},c["default"].createElement("button",{type:"button",className:"close","data-dismiss":"modal","aria-label":gettext("Close")},c["default"].createElement("span",{"aria-hidden":"true"},"×")),c["default"].createElement("h4",{className:"modal-title"},gettext("Change your avatar"))),this.getBody()))}}]),t}(c["default"].Component);a["default"]=j},{"../../reducers/users":335,"../../services/ajax":336,"../../services/store":348,"../modal-loader":57,"./crop":19,"./gallery":20,"./index":21,"./upload":23,react:"react"}],23:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./crop"),d=n(c),f=e("../button"),p=n(f),m=e("../../services/ajax"),h=n(m),b=e("../../services/snackbar"),v=n(b),y=e("../../utils/file-size"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.pickFile=function(){document.getElementById("avatar-hidden-upload").click()},a.uploadFile=function(){var e=document.getElementById("avatar-hidden-upload").files[0];if(e){var t=a.validateFile(e);if(t)return void v["default"].error(t);a.setState({image:e,preview:URL.createObjectURL(e),progress:0});var n=new FormData;n.append("avatar","upload"),n.append("image",e),h["default"].upload(a.props.user.api.avatar,n,function(e){a.setState({progress:e})}).then(function(e){a.setState({options:e,uploaded:e.detail}),v["default"].info(gettext("Your image has been uploaded and you may now crop it."))},function(e){400===e.status||413===e.status?(v["default"].error(e.detail),a.setState({isLoading:!1,image:null,progress:0})):a.props.showError(e)})}},a.state={image:null,preview:null,progress:0,uploaded:null,dataUrl:null},a}return l(t,e),s(t,[{key:"validateFile",value:function(e){if(e.size>this.props.options.upload.limit)return interpolate(gettext("Selected file is too big. (%(filesize)s)"),{filesize:(0,g["default"])(e.size)},!0);var t=gettext("Selected file type is not supported.");if(this.props.options.upload.allowed_mime_types.indexOf(e.type)===-1)return t;var a=!1,n=e.name.toLowerCase();return this.props.options.upload.allowed_extensions.map(function(e){n.substr(e.length*-1)===e&&(a=!0)}),!a&&t}},{key:"getUploadRequirements",value:function(e){var t=e.allowed_extensions.map(function(e){return e.substr(1)});return interpolate(gettext("%(files)s files smaller than %(limit)s"),{files:t.join(", "),limit:(0,g["default"])(e.limit)},!0)}},{key:"getUploadButton",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement(p["default"],{className:"btn-pick-file",onClick:this.pickFile},u["default"].createElement("div",{className:"material-icon"},"input"),gettext("Select file")),u["default"].createElement("p",{className:"text-muted"},this.getUploadRequirements(this.props.options.upload)))}},{key:"getUploadProgressLabel",value:function(){return interpolate(gettext("%(progress)s % complete"),{progress:this.state.progress},!0)}},{key:"getUploadProgress",value:function(){return u["default"].createElement("div",{className:"modal-body modal-avatar-upload"},u["default"].createElement("div",{className:"upload-progress"},u["default"].createElement("img",{src:this.state.preview}),u["default"].createElement("div",{className:"progress"},u["default"].createElement("div",{className:"progress-bar",role:"progressbar","aria-valuenow":"{this.state.progress}","aria-valuemin":"0","aria-valuemax":"100",style:{width:this.state.progress+"%"}},u["default"].createElement("span",{className:"sr-only"},this.getUploadProgressLabel())))))}},{key:"renderUpload",value:function(){return u["default"].createElement("div",null,u["default"].createElement("input",{type:"file",id:"avatar-hidden-upload",className:"hidden-file-upload",onChange:this.uploadFile}),this.state.image?this.getUploadProgress():this.getUploadButton(),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("div",{className:"col-md-6 col-md-offset-3"},u["default"].createElement(p["default"],{onClick:this.props.showIndex,disabled:!!this.state.image,className:"btn-default btn-block"},gettext("Cancel")))))}},{key:"renderCrop",value:function(){return u["default"].createElement(d["default"],{options:this.state.options,user:this.props.user,upload:this.state.uploaded,dataUrl:this.state.preview,onComplete:this.props.onComplete,showError:this.props.showError,showIndex:this.props.showIndex})}},{key:"render",value:function(){return this.state.uploaded?this.renderCrop():this.renderUpload()}}]),t}(u["default"].Component);a["default"]=_},{"../../services/ajax":336,"../../services/snackbar":347,"../../utils/file-size":355,"../button":5,"./crop":19,react:"react"}],24:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.dropdown?"btn btn-default btn-aligned btn-icon btn-dropdown-toggle open hidden-md hidden-lg":"btn btn-default btn-aligned btn-icon btn-dropdown-toggle hidden-md hidden-lg"}},{key:"render",value:function(){return u["default"].createElement("button",{className:this.getClassName(),type:"button",onClick:this.props.toggleNav,"aria-haspopup":"true","aria-expanded":this.props.dropdown?"true":"false"},u["default"].createElement("i",{className:"material-icon"},"menu"))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],25:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.display;return t?o["default"].createElement(s["default"],{helpText:gettext("No profile details are editable at this time."),message:gettext("This option is currently unavailable.")}):null};var r=e("react"),o=n(r),l=e("../panel-message"),s=n(l)},{"../panel-message":72,react:"react"}],26:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../select"),d=n(c),f=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onChange=function(e){var t=n.props,a=t.field,r=t.onChange;r(a.fieldname,e.target.value)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){var e=this.props,t=e.disabled,a=e.field,n=e.value,r=a.input;return"select"===r.type?u["default"].createElement(d["default"],{choices:r.choices,disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,value:n}):"textarea"===r.type?u["default"].createElement("textarea",{className:"form-control",disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,rows:"4",type:"text",value:n}):"text"===r.type?u["default"].createElement("input",{className:"form-control",disabled:t,id:"id_"+a.fieldname,onChange:this.onChange,type:"text",value:n}):null}}]),t}(u["default"].Component);a["default"]=f},{"../select":188,react:"react"}],27:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.disabled,a=e.errors,n=e.fields,r=e.name,l=e.onChange,i=e.value;return o["default"].createElement("fieldset",null,o["default"].createElement("legend",null,r),n.map(function(e){return o["default"].createElement(u["default"],{"for":"id_"+e.fieldname,helpText:e.help_text,key:e.fieldname,label:e.label,validation:a[e.fieldname]},o["default"].createElement(s["default"],{disabled:t,field:e,onChange:l,value:i[e.fieldname]}))}))};var r=e("react"),o=n(r),l=e("./field-input"),s=n(l),i=e("../form-group"),u=n(i)},{"../form-group":51,"./field-input":26,react:"react"}],28:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)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){var t=e.onCancel,a=e.disabled;return t?d["default"].createElement("button",{className:"btn btn-default",disabled:a,onClick:t,type:"button"},gettext("Cancel")):null}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.CancelButton=i;var c=e("react"),d=n(c),f=e("./fieldset"),p=n(f),m=e("../button"),h=n(m),b=e("../form"),v=n(b),y=e("../../services/ajax"),g=n(y),_=e("../../services/snackbar"),E=n(_),w=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.onChange=function(e,t){a.setState(r({},e,t))},a.state={isLoading:!1,errors:{}};for(var n=e.groups.length,s=0;s<n;s++)for(var i=e.groups[s],u=i.fields.length,c=0;c<u;c++){var d=i.fields[c].fieldname,f=i.fields[c].initial;a.state[d]=f}return a}return s(t,e),u(t,[{key:"send",value:function(){var e=Object.assign({},this.state,{errors:null,isLoading:null});return g["default"].post(this.props.api,e)}},{key:"handleSuccess",value:function(e){this.props.onSuccess(e)}},{key:"handleError",value:function(e){400===e.status?(E["default"].error(gettext("Form contains errors.")),this.setState({errors:e})):E["default"].apiError(e)}},{key:"render",value:function(){var e=this;return d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"panel-body"},this.props.groups.map(function(t,a){return d["default"].createElement(p["default"],{disabled:e.state.isLoading,errors:e.state.errors,fields:t.fields,name:t.name,key:a,onChange:e.onChange,value:e.state})})),d["default"].createElement("div",{className:"panel-footer text-right"},d["default"].createElement(i,{disabled:this.state.isLoading,onCancel:this.props.onCancel})," ",d["default"].createElement(h["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes"))))}}]),t}(v["default"]);a["default"]=w},{"../../services/ajax":336,"../../services/snackbar":347,"../button":5,"../form":52,"./fieldset":27,react:"react"}],29:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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){var t=e.api,a=e.display,n=e.groups,r=e.onCancel,o=e.onSuccess;return a?c["default"].createElement(b["default"],{api:t,groups:n,onCancel:r,onSuccess:o}):null}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.FormDisplay=s;var u=e("react"),c=n(u),d=e("./blankslate"),f=n(d),p=e("./loader"),m=n(p),h=e("./form"),b=n(h),v=e("../../services/ajax"),y=n(v),g=e("../../services/snackbar"),_=n(g),E=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={loading:!0,groups:null},a}return l(t,e),i(t,[{key:"componentDidMount",value:function(){var e=this;y["default"].get(this.props.api).then(function(t){e.setState({loading:!1,groups:t})},function(t){_["default"].apiError(t),e.props.cancel&&e.props.cancel()})}},{key:"render",value:function(){var e=this.state,t=e.groups,a=e.loading;return c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Edit details"))),c["default"].createElement(m["default"],{display:a}),c["default"].createElement(f["default"],{display:!a&&!t.length}),c["default"].createElement(s,{api:this.props.api,display:!a&&t.length,groups:t,onCancel:this.props.onCancel,onSuccess:this.props.onSuccess}))}}]),t}(c["default"].Component);a["default"]=E},{"../../services/ajax":336,"../../services/snackbar":347,"./blankslate":25,"./form":28,"./loader":30,react:"react"}],30:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.display;return t?o["default"].createElement("div",{className:"panel-body"},o["default"].createElement(s["default"],null)):null};var r=e("react"),o=n(r),l=e("../loader"),s=n(l)},{"../loader":54,react:"react"}],31:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){n.props.replaceSelection(n.props.execAction)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("button",{className:"btn btn-icon "+this.props.className,disabled:this.props.disabled,onClick:this.onClick,title:this.props.title,type:"button"},this.props.children)}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],32:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a=$.trim(prompt(gettext("Enter name of syntax of your code (optional)")+":"));t("\n\n```"+a+"\n"+e+"\n```\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert code")},e),s["default"].createElement("span",{className:"material-icon"},"functions"))},a.insertCode=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url");n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],33:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("*"+e+"*")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Emphase selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_italic"))},a.makeEmphasis=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],34:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){t("\n\n- - - - -\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert horizontal ruler")},e),s["default"].createElement("span",{className:"material-icon"},"remove"))},a.insertHr=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],35:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a="",n="";e.length&&((0,d["default"])(e)?a=e:n=e),a=$.trim(prompt(gettext("Enter link to image")+":",a)),n=$.trim(prompt(gettext("Enter image label (optional)")+":",n)),a.length&&t(n.length>0?"!["+n+"]("+a+")":"!("+a+")")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert image")},e),s["default"].createElement("span",{className:"material-icon"},"insert_photo"))},a.insertImage=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url"),d=n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],36:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a="",n="";e.length&&((0,d["default"])(e)?a=e:n=e),a=$.trim(prompt(gettext("Enter link address")+":",a)),n=$.trim(prompt(gettext("Enter link label (optional)")+":",n)),a.length&&t(n.length>0?"["+n+"]("+a+")":a)}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert link")},e),s["default"].createElement("span",{className:"material-icon"},"insert_link"))},a.insertLink=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url"),d=n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],37:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a=$.trim(prompt(gettext("Enter quote autor, prefix usernames with @")+":",a));t(a?'\n\n[quote="'+a+'"]\n'+e+"\n[/quote]\n\n":"\n\n[quote]\n"+e+"\n[/quote]\n\n")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Insert quote")},e),s["default"].createElement("span",{className:"material-icon"},"format_quote"))},a.insertQuote=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i),c=e("../../../utils/is-url");n(c)},{"../../../utils/is-url":356,"./action":31,react:"react"}],38:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("~~"+e+"~~")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Striketrough selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_strikethrough"))},a.makeStriketrough=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],39:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){e.length&&t("**"+e+"**")}Object.defineProperty(a,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return s["default"].createElement(u["default"],o({execAction:r,title:gettext("Bolder selection")},e),s["default"].createElement("span",{className:"material-icon"},"format_bold"))},a.makeStrong=r;var l=e("react"),s=n(l),i=e("./action"),u=n(i)},{"./action":31,react:"react"}],40:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.item.is_image?g["default"].createElement(i,e):g["default"].createElement(u,e)}function i(e){var t=e.item.url.thumb||e.item.url.index;return g["default"].createElement("div",{className:"editor-attachment-image"},g["default"].createElement("a",{href:e.item.url.index+"?shva=1",style:{backgroundImage:"url('"+t+"?shva=1')"},target:"_blank"}))}function u(e){return g["default"].createElement("div",{className:"editor-attachment-icon"},g["default"].createElement("span",{className:"material-icon"},"insert_drive_file"))}function c(e){return g["default"].createElement("h4",null,g["default"].createElement("a",{className:"item-title",href:e.item.url.index+"?shva=1",target:"_blank"},e.item.filename))}function d(e){var t=null;t=e.item.url.uploader?interpolate(j,{url:(0,w["default"])(e.item.url.uploader),user:(0,w["default"])(e.item.uploader_name)},!0):interpolate(N,{user:(0,w["default"])(e.item.uploader_name)},!0);var a=interpolate(x,{absolute:(0,w["default"])(e.item.uploaded_on.format("LLL")),relative:(0,w["default"])(e.item.uploaded_on.fromNow())},!0),n=interpolate((0,w["default"])(gettext("%(filetype)s, %(size)s, uploaded by %(uploader)s %(uploaded_on)s.")),{filetype:e.item.filetype,size:(0,k["default"])(e.item.size),uploader:t,uploaded_on:a},!0);return g["default"].createElement("p",{dangerouslySetInnerHTML:{__html:n}})}function f(e){return g["default"].createElement("div",{className:"editor-attachment-actions"},g["default"].createElement("div",{className:"row"},g["default"].createElement(p,e),g["default"].createElement(m,e),g["default"].createElement(h,e)))}function p(e){return e.item.isRemoved?null:g["default"].createElement("div",{className:"col-xs-6"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onInsert,type:"button"},gettext("Insert")))}function m(e){return e.item.isRemoved&&e.item.acl.can_delete?null:g["default"].createElement("div",{className:"col-xs-6"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onRemove,type:"button"},gettext("Remove")))}function h(e){return e.item.isRemoved?g["default"].createElement("div",{className:"col-xs-12"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onUndo,type:"button"},gettext("Undo removal"))):null}Object.defineProperty(a,"__esModule",{value:!0});var b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},v=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Preview=s,a.Image=i,a.Icon=u,a.Filename=c,a.Details=d,a.Actions=f,a.Insert=p,a.Remove=m,a.Undo=h;var y=e("react"),g=n(y),_=e("../../../.."),E=(n(_),e("../../../../utils/escape-html")),w=n(E),O=e("../../../../utils/file-size"),k=n(O),x='<abbr title="%(absolute)s">%(relative)s</abbr>',N='<span class="item-title">%(user)s</span>',j='<a href="%(url)s" class="item-title">%(user)s</a>',P=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onInsert=function(){n.props.replaceSelection(n.insertAttachment)},n.insertAttachment=function(e,t){var a=n.props.item;t(a.is_image?a.url.thumb?"[!["+a.filename+"]("+a.url.thumb+")]("+a.url.index+")":"[!["+a.filename+"]("+a.url.index+")]("+a.url.index+")":"["+a.filename+"]("+a.url.index+")")},n.onRemove=function(){n.updateItem({isRemoved:!0})},n.onUndo=function(){n.updateItem({isRemoved:!1})},n.updateItem=function(e){var t=n.props.attachments.map(function(t){return t.id===n.props.item.id?Object.assign({},t,e):t});n.props.onAttachmentsChange(t)},l=a,o(n,l)}return l(t,e),v(t,[{key:"render",value:function(){return g["default"].createElement("li",{className:"editor-attachment-complete"},g["default"].createElement("div",{className:"row"},g["default"].createElement("div",{className:"col-xs-12 col-sm-8 col-md-9"},g["default"].createElement(s,this.props),g["default"].createElement("div",{className:"editor-attachment-details"},g["default"].createElement(c,this.props),g["default"].createElement(d,this.props))),g["default"].createElement("div",{className:"col-xs-12 col-sm-4 col-md-3 xs-margin-top-half"},g["default"].createElement(f,b({onInsert:this.onInsert,onRemove:this.onRemove,onUndo:this.onUndo},this.props)))))}}]),t}(g["default"].Component);a["default"]=P},{"../../../..":275,"../../../../utils/escape-html":354,"../../../../utils/file-size":355,react:"react"}],41:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../../../utils/escape-html"),d=n(c),f="<strong>%(name)s</strong>",p=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){var e=n.props.attachments.filter(function(e){return e.key!==n.props.item.key});n.props.onAttachmentsChange(e)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){var e=interpolate(f,{name:(0,d["default"])(this.props.item.filename)},!0),t=interpolate(gettext("Error uploading %(filename)s"),{filename:e,progress:this.props.item.progress+"%"},!0);return u["default"].createElement("li",{className:"editor-attachment-error"},u["default"].createElement("div",{className:"editor-attachment-error-icon"},u["default"].createElement("span",{className:"material-icon"},"warning")),u["default"].createElement("div",{className:"editor-attachment-error-message"},u["default"].createElement("h4",{dangerouslySetInnerHTML:{__html:t+":"}}),u["default"].createElement("p",null,this.props.item.error),u["default"].createElement("button",{className:"btn btn-default btn-sm",onClick:this.onClick,type:"button"},gettext("Dismiss"))))}}]),t}(u["default"].Component);a["default"]=p},{"../../../../utils/escape-html":354,react:"react"}],42:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e.item.id?o["default"].createElement(s["default"],e):e.item.error?o["default"].createElement(u["default"],e):o["default"].createElement(d["default"],e)};var r=e("react"),o=n(r),l=e("./complete"),s=n(l),i=e("./error"),u=n(i),c=e("./upload"),d=n(c),f=e("../../../.."),p=(n(f),e("../../../../utils/escape-html"));n(p)},{"../../../..":275,"../../../../utils/escape-html":354,"./complete":40,"./error":41,"./upload":43,react:"react"}],43:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=interpolate(i,{name:(0,s["default"])(e.item.filename)},!0),a=interpolate(gettext("Uploading %(filename)s... %(progress)s"),{filename:t,progress:e.item.progress+"%"},!0);return o["default"].createElement("li",{className:"editor-attachment-upload"},o["default"].createElement("div",{className:"editor-attachment-progress-bar"},o["default"].createElement("div",{className:"editor-attachment-progress",style:{width:e.item.progress+"%"}})),o["default"].createElement("p",{className:"editor-attachment-upload-message",dangerouslySetInnerHTML:{__html:a}}))};var r=e("react"),o=n(r),l=e("../../../../utils/escape-html"),s=n(l),i="<strong>%(name)s</strong>"},{"../../../../utils/escape-html":354,react:"react"}],44:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return d["default"].get("user").acl.max_attachment_size?o["default"].createElement("div",{className:"editor-attachments"},o["default"].createElement(s["default"],e),o["default"].createElement(u["default"],e)):null};var r=e("react"),o=n(r),l=e("./list"),s=n(l),i=e("./uploader"),u=n(i),c=e("../../.."),d=n(c)},{"../../..":275,"./list":45,"./uploader":47,react:"react"}],45:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return l["default"].createElement("ul",{className:"list-unstyled editor-attachments-list"},e.attachments.map(function(t){return l["default"].createElement(i["default"],r({item:t,key:t.id||t.key},e))}))};var o=e("react"),l=n(o),s=e("./attachment"),i=n(s)},{"./attachment":42,react:"react"}],46:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../.."),d=n(c),f=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){document.getElementById("editor-upload-field").click()},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return d["default"].get("user").acl.max_attachment_size?u["default"].createElement("button",{className:"btn btn-icon "+this.props.className,disabled:this.props.disabled,onClick:this.onClick,title:gettext("Upload file"),type:"button"},u["default"].createElement("span",{className:"material-icon"},"file_upload")):null}}]),t}(u["default"].Component);a["default"]=f},{"../../..":275,react:"react"}],47:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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(){return"upld-"+Math.round((new Date).getTime())}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.getRandomKey=s;var u=e("react"),c=n(u),d=e("moment"),f=n(d),p=e("../../.."),m=n(p),h=e("../../../services/ajax"),b=n(h),v=e("../../../services/snackbar"),y=n(v),g=function(e){function t(){var e,a,n,l;r(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.onChange=function(e){var t=e.target.files[0];if(t){var a={id:null,key:s(),progress:0,error:null,filename:t.name};n.props.onAttachmentsChange([a].concat(n.props.attachments));var r=new FormData;r.append("upload",t),b["default"].upload(m["default"].get("ATTACHMENTS_API"),r,function(e){a.progress=e,n.props.onAttachmentsChange(n.props.attachments.concat())}).then(function(e){e.uploaded_on=(0,f["default"])(e.uploaded_on),Object.assign(a,e),n.props.onAttachmentsChange(n.props.attachments.concat())},function(e){400===e.status||413===e.status?(a.error=e.detail,n.props.onAttachmentsChange(n.props.attachments.concat())):y["default"].apiError(e)})}},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("input",{id:"editor-upload-field",onChange:this.onChange,type:"file"})}}]),t}(c["default"].Component);a["default"]=g},{"../../..":275,"../../../services/ajax":336,"../../../services/snackbar":347,moment:"moment",react:"react"}],48:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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){if(!e.canProtect)return null;var t=e.protect?gettext("Protected"):gettext("Protect");return d["default"].createElement("button",{className:"btn btn-icon btn-default btn-protect btn-sm pull-right",disabled:e.disabled,onClick:e.protect?e.onUnprotect:e.onProtect,title:t,type:"button"},d["default"].createElement("span",{className:"material-icon"},e.protect?"lock":"lock_outline"),d["default"].createElement("span",{className:"btn-text hidden-md hidden-lg"},t))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Protect=i;var c=e("react"),d=r(c),f=e("./actions/code"),p=r(f),m=e("./actions/emphasis"),h=r(m),b=e("./actions/hr"),v=r(b),y=e("./actions/image"),g=r(y),_=e("./actions/link"),E=r(_),w=e("./actions/striketrough"),O=r(w),k=e("./actions/strong"),x=r(k),N=e("./actions/quote"),j=r(N),P=e("./attachments"),C=r(P),S=e("./attachments/upload-button/"),M=r(S),T=e("./markup-preview"),L=r(T),R=e("./textUtils"),A=n(R),I=e("../button"),D=r(I),U=e("../.."),B=r(U),H=e("../../services/ajax"),z=r(H),F=e("../../services/modal"),q=r(F),G=e("../../services/snackbar"),V=r(G),Y=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onPreviewClick=function(){a.state.isPreviewLoading||(a.setState({isPreviewLoading:!0}),z["default"].post(B["default"].get("PARSE_MARKUP_API"),{post:a.props.value}).then(function(e){q["default"].show(d["default"].createElement(L["default"],{markup:e.parsed})),a.setState({isPreviewLoading:!1})},function(e){400===e.status?V["default"].error(e.detail):V["default"].apiError(e),a.setState({isPreviewLoading:!1})}))},a.replaceSelection=function(e){e(A.getSelectionText(),a._replaceSelection)},a._replaceSelection=function(e){a.props.onChange({target:{value:A.replace(e)}})},a.state={isPreviewLoading:!1},a}return s(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"editor-border"},d["default"].createElement("textarea",{className:"form-control",value:this.props.value,disabled:this.props.loading,id:"editor-textarea",onChange:this.props.onChange,rows:"9"}),d["default"].createElement("div",{className:"editor-footer"},d["default"].createElement("div",{className:"buttons-list pull-left"},d["default"].createElement(x["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(h["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(O["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(v["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(E["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(g["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(j["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(p["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(M["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading})),d["default"].createElement(D["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,onClick:this.onPreviewClick,type:"button"},gettext("Preview")),d["default"].createElement(D["default"],{className:"btn-primary btn-sm pull-right",loading:this.props.loading},this.props.submitLabel||gettext("Post")),d["default"].createElement("button",{className:"btn btn-default btn-sm pull-right",disabled:this.props.loading,onClick:this.props.onCancel,type:"button"},gettext("Cancel")),d["default"].createElement("div",{className:"clearfix visible-xs-block"}),d["default"].createElement(i,{canProtect:this.props.canProtect,disabled:this.props.loading,onProtect:this.props.onProtect,onUnprotect:this.props.onUnprotect,protect:this.props.protect})),d["default"].createElement(C["default"],{attachments:this.props.attachments,onAttachmentsChange:this.props.onAttachmentsChange,placeholder:this.props.placeholder,replaceSelection:this.replaceSelection}))}}]),t}(d["default"].Component);a["default"]=Y},{"../..":275,"../../services/ajax":336,"../../services/modal":342,"../../services/snackbar":347,"../button":5,"./actions/code":32,"./actions/emphasis":33,"./actions/hr":34,"./actions/image":35,"./actions/link":36,"./actions/quote":37,"./actions/striketrough":38,"./actions/strong":39,"./attachments":44,"./attachments/upload-button/":46,"./markup-preview":49,"./textUtils":50,react:"react"}],49:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"modal-dialog",role:"document"},o["default"].createElement("div",{className:"modal-content"},o["default"].createElement("div",{className:"modal-header"},o["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},o["default"].createElement("span",{"aria-hidden":"true"},"×")),o["default"].createElement("h4",{className:"modal-title"},gettext("Preview message"))),o["default"].createElement("div",{className:"modal-body markup-preview"},o["default"].createElement(s["default"],{markup:e.markup}))))};var r=e("react"),o=n(r),l=e("../misago-markup"),s=n(l)},{"../misago-markup":56,react:"react"}],50:[function(e,t,a){"use strict";function n(){return document.getElementById(d)}function r(){return document.getElementById(d).value}function o(e,t){return{start:e,end:t}}function l(){var e=n();if(document.selection){e.focus();var t=document.selection.createRange(),a=t.text.length;return t.moveStart("character",-e.value.length),o(t.text.length-a,t.text.length)}if(e.selectionStart||"0"==e.selectionStart)return o(e.selectionStart,e.selectionEnd)}function s(){var e=l();return $.trim(r().substring(e.start,e.end))}function i(e){var t=n();if(t.setSelectionRange)t.focus(),t.setSelectionRange(e.start,e.end);else if(t.createTextRange){var a=t.createTextRange();a.collapse(!0),a.moveStart("character",e.start),a.moveEnd("character",e.end),a.select()}}function u(e,t){var a=n(),r=a.value,l=r.substring(0,e.start);return a.value=r.substring(0,e.start)+t+r.substring(e.end),i(o(l.length+t.length,l.length+t.length)),a.value}function c(e){return u(l(),e)}Object.defineProperty(a,"__esModule",{value:!0}),a.getTextarea=n,a.getValue=r,a.getSelectionRange=o,a.getSelection=l,a.getSelectionText=s,a.setSelection=i,a._replace=u,a.replace=c;var d=a.textareaId="editor-textarea"},{}],51:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?u["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,a){return u["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+a},t)})):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?u["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?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName()},u["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),u["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],52:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../utils/validators"),f=e("../services/snackbar"),p=n(f),m=(0,d.required)(),h=function(e){function t(){var e,a,n,s;o(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.bindInput=function(e){return function(t){n.changeValue(e,t.target.value)}},n.changeValue=function(e,t){var a=r({},e,t),o=n.state.errors||{};o[e]=n.validateField(e,a[e]),a.errors=o,n.setState(a)},n.handleSubmit=function(e){if(e.preventDefault(),!n.state.isLoading&&n.clean()){n.setState({isLoading:!0});var t=n.send();t?t.then(function(e){n.setState({isLoading:!1}),n.handleSuccess(e)},function(e){n.setState({isLoading:!1}),n.handleError(e)}):n.setState({isLoading:!1})}},s=a,l(n,s)}return s(t,e),i(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},a=[];for(var n in t.required)t.required.hasOwnProperty(n)&&t.required[n]&&a.push(n);for(var r in t.optional)t.optional.hasOwnProperty(r)&&t.optional[r]&&a.push(r);for(var o in a){var l=a[o],s=this.validateField(l,this.state[l]);null===s?e[l]=null:s&&(e[l]=s)}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 a=[];if(!this.state.validators)return a;var n={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=m(t)||!1;if(n.required){if(r)a=[r];else for(var o in n.required){var l=n.required[o](t);l&&a.push(l)}return a.length?a:null}if(r===!1&&n.optional){for(var s in n.optional){var i=n.optional[s](t);i&&a.push(i)}return a.length?a:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){p["default"].apiError(e)}}]),t}(c["default"].Component);a["default"]=h},{"../services/snackbar":347,"../utils/validators":364,react:"react"}],53:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"isActive",value:function(){return this.props.isControlled?this.props.isActive:!!this.props.path&&0===document.location.pathname.indexOf(this.props.path)}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return u["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],54:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:e.className||"loader"},o["default"].createElement("div",{className:"loader-spinning-wheel"}))};var r=e("react"),o=n(r)},{react:"react"}],55:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./button"),d=n(c),f=e("./form"),p=n(f),m=e("./form-group"),h=n(m),b=e("../services/ajax"),v=n(b),y=e("../services/modal"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.handleSuccess=function(e){a.props.onSuccess(e),g["default"].hide()},a.handleError=function(e){a.props.onError(e)},a.onPollChange=function(e){a.changeValue("poll",e.target.value)},a.state={isLoading:!1,poll:0},a}return l(t,e),s(t,[{key:"clean",value:function(){var e=confirm(gettext("Are you sure? This will delete other polls."));return e}},{key:"send",value:function(){var e=Object.assign({},this.props.data,{poll:this.state.poll});return v["default"].post(this.props.api,e)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-dialog",role:"document"
 return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return e.item.is_image?g["default"].createElement(i,e):g["default"].createElement(u,e)}function i(e){var t=e.item.url.thumb||e.item.url.index;return g["default"].createElement("div",{className:"editor-attachment-image"},g["default"].createElement("a",{href:e.item.url.index+"?shva=1",style:{backgroundImage:"url('"+t+"?shva=1')"},target:"_blank"}))}function u(e){return g["default"].createElement("div",{className:"editor-attachment-icon"},g["default"].createElement("span",{className:"material-icon"},"insert_drive_file"))}function c(e){return g["default"].createElement("h4",null,g["default"].createElement("a",{className:"item-title",href:e.item.url.index+"?shva=1",target:"_blank"},e.item.filename))}function d(e){var t=null;t=e.item.url.uploader?interpolate(j,{url:(0,w["default"])(e.item.url.uploader),user:(0,w["default"])(e.item.uploader_name)},!0):interpolate(N,{user:(0,w["default"])(e.item.uploader_name)},!0);var a=interpolate(x,{absolute:(0,w["default"])(e.item.uploaded_on.format("LLL")),relative:(0,w["default"])(e.item.uploaded_on.fromNow())},!0),n=interpolate((0,w["default"])(gettext("%(filetype)s, %(size)s, uploaded by %(uploader)s %(uploaded_on)s.")),{filetype:e.item.filetype,size:(0,k["default"])(e.item.size),uploader:t,uploaded_on:a},!0);return g["default"].createElement("p",{dangerouslySetInnerHTML:{__html:n}})}function f(e){return g["default"].createElement("div",{className:"editor-attachment-actions"},g["default"].createElement("div",{className:"row"},g["default"].createElement(p,e),g["default"].createElement(m,e),g["default"].createElement(h,e)))}function p(e){return e.item.isRemoved?null:g["default"].createElement("div",{className:"col-xs-6"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onInsert,type:"button"},gettext("Insert")))}function m(e){return e.item.isRemoved&&e.item.acl.can_delete?null:g["default"].createElement("div",{className:"col-xs-6"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onRemove,type:"button"},gettext("Remove")))}function h(e){return e.item.isRemoved?g["default"].createElement("div",{className:"col-xs-12"},g["default"].createElement("button",{className:"btn btn-default btn-sm btn-block",onClick:e.onUndo,type:"button"},gettext("Undo removal"))):null}Object.defineProperty(a,"__esModule",{value:!0});var b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},v=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Preview=s,a.Image=i,a.Icon=u,a.Filename=c,a.Details=d,a.Actions=f,a.Insert=p,a.Remove=m,a.Undo=h;var y=e("react"),g=n(y),_=e("../../../.."),E=(n(_),e("../../../../utils/escape-html")),w=n(E),O=e("../../../../utils/file-size"),k=n(O),x='<abbr title="%(absolute)s">%(relative)s</abbr>',N='<span class="item-title">%(user)s</span>',j='<a href="%(url)s" class="item-title">%(user)s</a>',P=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onInsert=function(){n.props.replaceSelection(n.insertAttachment)},n.insertAttachment=function(e,t){var a=n.props.item;t(a.is_image?a.url.thumb?"[!["+a.filename+"]("+a.url.thumb+")]("+a.url.index+")":"[!["+a.filename+"]("+a.url.index+")]("+a.url.index+")":"["+a.filename+"]("+a.url.index+")")},n.onRemove=function(){n.updateItem({isRemoved:!0})},n.onUndo=function(){n.updateItem({isRemoved:!1})},n.updateItem=function(e){var t=n.props.attachments.map(function(t){return t.id===n.props.item.id?Object.assign({},t,e):t});n.props.onAttachmentsChange(t)},l=a,o(n,l)}return l(t,e),v(t,[{key:"render",value:function(){return g["default"].createElement("li",{className:"editor-attachment-complete"},g["default"].createElement("div",{className:"row"},g["default"].createElement("div",{className:"col-xs-12 col-sm-8 col-md-9"},g["default"].createElement(s,this.props),g["default"].createElement("div",{className:"editor-attachment-details"},g["default"].createElement(c,this.props),g["default"].createElement(d,this.props))),g["default"].createElement("div",{className:"col-xs-12 col-sm-4 col-md-3 xs-margin-top-half"},g["default"].createElement(f,b({onInsert:this.onInsert,onRemove:this.onRemove,onUndo:this.onUndo},this.props)))))}}]),t}(g["default"].Component);a["default"]=P},{"../../../..":275,"../../../../utils/escape-html":354,"../../../../utils/file-size":355,react:"react"}],41:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../../../utils/escape-html"),d=n(c),f="<strong>%(name)s</strong>",p=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){var e=n.props.attachments.filter(function(e){return e.key!==n.props.item.key});n.props.onAttachmentsChange(e)},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){var e=interpolate(f,{name:(0,d["default"])(this.props.item.filename)},!0),t=interpolate(gettext("Error uploading %(filename)s"),{filename:e,progress:this.props.item.progress+"%"},!0);return u["default"].createElement("li",{className:"editor-attachment-error"},u["default"].createElement("div",{className:"editor-attachment-error-icon"},u["default"].createElement("span",{className:"material-icon"},"warning")),u["default"].createElement("div",{className:"editor-attachment-error-message"},u["default"].createElement("h4",{dangerouslySetInnerHTML:{__html:t+":"}}),u["default"].createElement("p",null,this.props.item.error),u["default"].createElement("button",{className:"btn btn-default btn-sm",onClick:this.onClick,type:"button"},gettext("Dismiss"))))}}]),t}(u["default"].Component);a["default"]=p},{"../../../../utils/escape-html":354,react:"react"}],42:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return e.item.id?o["default"].createElement(s["default"],e):e.item.error?o["default"].createElement(u["default"],e):o["default"].createElement(d["default"],e)};var r=e("react"),o=n(r),l=e("./complete"),s=n(l),i=e("./error"),u=n(i),c=e("./upload"),d=n(c),f=e("../../../.."),p=(n(f),e("../../../../utils/escape-html"));n(p)},{"../../../..":275,"../../../../utils/escape-html":354,"./complete":40,"./error":41,"./upload":43,react:"react"}],43:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=interpolate(i,{name:(0,s["default"])(e.item.filename)},!0),a=interpolate(gettext("Uploading %(filename)s... %(progress)s"),{filename:t,progress:e.item.progress+"%"},!0);return o["default"].createElement("li",{className:"editor-attachment-upload"},o["default"].createElement("div",{className:"editor-attachment-progress-bar"},o["default"].createElement("div",{className:"editor-attachment-progress",style:{width:e.item.progress+"%"}})),o["default"].createElement("p",{className:"editor-attachment-upload-message",dangerouslySetInnerHTML:{__html:a}}))};var r=e("react"),o=n(r),l=e("../../../../utils/escape-html"),s=n(l),i="<strong>%(name)s</strong>"},{"../../../../utils/escape-html":354,react:"react"}],44:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return d["default"].get("user").acl.max_attachment_size?o["default"].createElement("div",{className:"editor-attachments"},o["default"].createElement(s["default"],e),o["default"].createElement(u["default"],e)):null};var r=e("react"),o=n(r),l=e("./list"),s=n(l),i=e("./uploader"),u=n(i),c=e("../../.."),d=n(c)},{"../../..":275,"./list":45,"./uploader":47,react:"react"}],45:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return l["default"].createElement("ul",{className:"list-unstyled editor-attachments-list"},e.attachments.map(function(t){return l["default"].createElement(i["default"],r({item:t,key:t.id||t.key},e))}))};var o=e("react"),l=n(o),s=e("./attachment"),i=n(s)},{"./attachment":42,react:"react"}],46:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../.."),d=n(c),f=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){document.getElementById("editor-upload-field").click()},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return d["default"].get("user").acl.max_attachment_size?u["default"].createElement("button",{className:"btn btn-icon "+this.props.className,disabled:this.props.disabled,onClick:this.onClick,title:gettext("Upload file"),type:"button"},u["default"].createElement("span",{className:"material-icon"},"file_upload")):null}}]),t}(u["default"].Component);a["default"]=f},{"../../..":275,react:"react"}],47:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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(){return"upld-"+Math.round((new Date).getTime())}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.getRandomKey=s;var u=e("react"),c=n(u),d=e("moment"),f=n(d),p=e("../../.."),m=n(p),h=e("../../../services/ajax"),b=n(h),v=e("../../../services/snackbar"),y=n(v),g=function(e){function t(){var e,a,n,l;r(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.onChange=function(e){var t=e.target.files[0];if(t){var a={id:null,key:s(),progress:0,error:null,filename:t.name};n.props.onAttachmentsChange([a].concat(n.props.attachments));var r=new FormData;r.append("upload",t),b["default"].upload(m["default"].get("ATTACHMENTS_API"),r,function(e){a.progress=e,n.props.onAttachmentsChange(n.props.attachments.concat())}).then(function(e){e.uploaded_on=(0,f["default"])(e.uploaded_on),Object.assign(a,e),n.props.onAttachmentsChange(n.props.attachments.concat())},function(e){400===e.status||413===e.status?(a.error=e.detail,n.props.onAttachmentsChange(n.props.attachments.concat())):y["default"].apiError(e)})}},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("input",{id:"editor-upload-field",onChange:this.onChange,type:"file"})}}]),t}(c["default"].Component);a["default"]=g},{"../../..":275,"../../../services/ajax":336,"../../../services/snackbar":347,moment:"moment",react:"react"}],48:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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){if(!e.canProtect)return null;var t=e.protect?gettext("Protected"):gettext("Protect");return d["default"].createElement("button",{className:"btn btn-icon btn-default btn-protect btn-sm pull-right",disabled:e.disabled,onClick:e.protect?e.onUnprotect:e.onProtect,title:t,type:"button"},d["default"].createElement("span",{className:"material-icon"},e.protect?"lock":"lock_outline"),d["default"].createElement("span",{className:"btn-text hidden-md hidden-lg"},t))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.Protect=i;var c=e("react"),d=r(c),f=e("./actions/code"),p=r(f),m=e("./actions/emphasis"),h=r(m),b=e("./actions/hr"),v=r(b),y=e("./actions/image"),g=r(y),_=e("./actions/link"),E=r(_),w=e("./actions/striketrough"),O=r(w),k=e("./actions/strong"),x=r(k),N=e("./actions/quote"),j=r(N),P=e("./attachments"),C=r(P),S=e("./attachments/upload-button/"),M=r(S),T=e("./markup-preview"),L=r(T),R=e("./textUtils"),A=n(R),I=e("../button"),D=r(I),U=e("../.."),B=r(U),H=e("../../services/ajax"),z=r(H),F=e("../../services/modal"),q=r(F),G=e("../../services/snackbar"),V=r(G),Y=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onPreviewClick=function(){a.state.isPreviewLoading||(a.setState({isPreviewLoading:!0}),z["default"].post(B["default"].get("PARSE_MARKUP_API"),{post:a.props.value}).then(function(e){q["default"].show(d["default"].createElement(L["default"],{markup:e.parsed})),a.setState({isPreviewLoading:!1})},function(e){400===e.status?V["default"].error(e.detail):V["default"].apiError(e),a.setState({isPreviewLoading:!1})}))},a.replaceSelection=function(e){e(A.getSelectionText(),a._replaceSelection)},a._replaceSelection=function(e){a.props.onChange({target:{value:A.replace(e)}})},a.state={isPreviewLoading:!1},a}return s(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"editor-border"},d["default"].createElement("textarea",{className:"form-control",value:this.props.value,disabled:this.props.loading,id:"editor-textarea",onChange:this.props.onChange,rows:"9"}),d["default"].createElement("div",{className:"editor-footer"},d["default"].createElement("div",{className:"buttons-list pull-left"},d["default"].createElement(x["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(h["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(O["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(v["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(E["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(g["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(j["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(p["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,replaceSelection:this.replaceSelection}),d["default"].createElement(M["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading})),d["default"].createElement(D["default"],{className:"btn-default btn-sm pull-left",disabled:this.props.loading||this.state.isPreviewLoading,onClick:this.onPreviewClick,type:"button"},gettext("Preview")),d["default"].createElement(D["default"],{className:"btn-primary btn-sm pull-right",loading:this.props.loading},this.props.submitLabel||gettext("Post")),d["default"].createElement("button",{className:"btn btn-default btn-sm pull-right",disabled:this.props.loading,onClick:this.props.onCancel,type:"button"},gettext("Cancel")),d["default"].createElement("div",{className:"clearfix visible-xs-block"}),d["default"].createElement(i,{canProtect:this.props.canProtect,disabled:this.props.loading,onProtect:this.props.onProtect,onUnprotect:this.props.onUnprotect,protect:this.props.protect})),d["default"].createElement(C["default"],{attachments:this.props.attachments,onAttachmentsChange:this.props.onAttachmentsChange,placeholder:this.props.placeholder,replaceSelection:this.replaceSelection}))}}]),t}(d["default"].Component);a["default"]=Y},{"../..":275,"../../services/ajax":336,"../../services/modal":342,"../../services/snackbar":347,"../button":5,"./actions/code":32,"./actions/emphasis":33,"./actions/hr":34,"./actions/image":35,"./actions/link":36,"./actions/quote":37,"./actions/striketrough":38,"./actions/strong":39,"./attachments":44,"./attachments/upload-button/":46,"./markup-preview":49,"./textUtils":50,react:"react"}],49:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:"modal-dialog",role:"document"},o["default"].createElement("div",{className:"modal-content"},o["default"].createElement("div",{className:"modal-header"},o["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},o["default"].createElement("span",{"aria-hidden":"true"},"×")),o["default"].createElement("h4",{className:"modal-title"},gettext("Preview message"))),o["default"].createElement("div",{className:"modal-body markup-preview"},o["default"].createElement(s["default"],{markup:e.markup}))))};var r=e("react"),o=n(r),l=e("../misago-markup"),s=n(l)},{"../misago-markup":56,react:"react"}],50:[function(e,t,a){"use strict";function n(){return document.getElementById(d)}function r(){return document.getElementById(d).value}function o(e,t){return{start:e,end:t}}function l(){var e=n();if(document.selection){e.focus();var t=document.selection.createRange(),a=t.text.length;return t.moveStart("character",-e.value.length),o(t.text.length-a,t.text.length)}if(e.selectionStart||"0"==e.selectionStart)return o(e.selectionStart,e.selectionEnd)}function s(){var e=l();return $.trim(r().substring(e.start,e.end))}function i(e){var t=n();if(t.setSelectionRange)t.focus(),t.setSelectionRange(e.start,e.end);else if(t.createTextRange){var a=t.createTextRange();a.collapse(!0),a.moveStart("character",e.start),a.moveEnd("character",e.end),a.select()}}function u(e,t){var a=n(),r=a.value,l=r.substring(0,e.start);return a.value=r.substring(0,e.start)+t+r.substring(e.end),i(o(l.length+t.length,l.length+t.length)),a.value}function c(e){return u(l(),e)}Object.defineProperty(a,"__esModule",{value:!0}),a.getTextarea=n,a.getValue=r,a.getSelectionRange=o,a.getSelection=l,a.getSelectionText=s,a.setSelection=i,a._replace=u,a.replace=c;var d=a.textareaId="editor-textarea"},{}],51:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"isValidated",value:function(){return"undefined"!=typeof this.props.validation}},{key:"getClassName",value:function(){var e="form-group";return this.isValidated()&&(e+=" has-feedback",e+=null===this.props.validation?" has-success":" has-error"),e}},{key:"getFeedback",value:function(){var e=this;return this.props.validation?u["default"].createElement("div",{className:"help-block errors"},this.props.validation.map(function(t,a){return u["default"].createElement("p",{key:e.props["for"]+"FeedbackItem"+a},t)})):null}},{key:"getFeedbackDescription",value:function(){return this.isValidated()?u["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?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:this.getClassName()},u["default"].createElement("label",{className:"control-label "+(this.props.labelClass||""),htmlFor:this.props["for"]||""},this.props.label+":"),u["default"].createElement("div",{className:this.props.controlClass||""},this.props.children,this.getFeedbackDescription(),this.getFeedback(),this.getHelpText(),this.props.extra||null))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],52:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=n(u),d=e("../utils/validators"),f=e("../services/snackbar"),p=n(f),m=(0,d.required)(),h=function(e){function t(){var e,a,n,s;o(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=l(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.bindInput=function(e){return function(t){n.changeValue(e,t.target.value)}},n.changeValue=function(e,t){var a=r({},e,t),o=n.state.errors||{};o[e]=n.validateField(e,a[e]),a.errors=o,n.setState(a)},n.handleSubmit=function(e){if(e.preventDefault(),!n.state.isLoading&&n.clean()){n.setState({isLoading:!0});var t=n.send();t?t.then(function(e){n.setState({isLoading:!1}),n.handleSuccess(e)},function(e){n.setState({isLoading:!1}),n.handleError(e)}):n.setState({isLoading:!1})}},s=a,l(n,s)}return s(t,e),i(t,[{key:"validate",value:function(){var e={};if(!this.state.validators)return e;var t={required:this.state.validators.required||this.state.validators,optional:this.state.validators.optional||{}},a=[];for(var n in t.required)t.required.hasOwnProperty(n)&&t.required[n]&&a.push(n);for(var r in t.optional)t.optional.hasOwnProperty(r)&&t.optional[r]&&a.push(r);for(var o in a){var l=a[o],s=this.validateField(l,this.state[l]);null===s?e[l]=null:s&&(e[l]=s)}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 a=[];if(!this.state.validators)return a;var n={required:(this.state.validators.required||this.state.validators)[e],optional:(this.state.validators.optional||{})[e]},r=m(t)||!1;if(n.required){if(r)a=[r];else for(var o in n.required){var l=n.required[o](t);l&&a.push(l)}return a.length?a:null}if(r===!1&&n.optional){for(var s in n.optional){var i=n.optional[s](t);i&&a.push(i)}return a.length?a:null}return!1}},{key:"clean",value:function(){return!0}},{key:"send",value:function(){return null}},{key:"handleSuccess",value:function(e){}},{key:"handleError",value:function(e){p["default"].apiError(e)}}]),t}(c["default"].Component);a["default"]=h},{"../services/snackbar":347,"../utils/validators":364,react:"react"}],53:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"isActive",value:function(){return this.props.isControlled?this.props.isActive:!!this.props.path&&0===document.location.pathname.indexOf(this.props.path)}},{key:"getClassName",value:function(){return this.isActive()?(this.props.className||"")+" "+(this.props.activeClassName||"active"):this.props.className||""}},{key:"render",value:function(){return u["default"].createElement("li",{className:this.getClassName()},this.props.children)}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],54:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){return o["default"].createElement("div",{className:e.className||"loader"},o["default"].createElement("div",{className:"loader-spinning-wheel"}))};var r=e("react"),o=n(r)},{react:"react"}],55:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./button"),d=n(c),f=e("./form"),p=n(f),m=e("./form-group"),h=n(m),b=e("../services/ajax"),v=n(b),y=e("../services/modal"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.handleSuccess=function(e){a.props.onSuccess(e),g["default"].hide()},a.handleError=function(e){a.props.onError(e)},a.onPollChange=function(e){a.changeValue("poll",e.target.value)},a.state={isLoading:!1,poll:0},a}return l(t,e),s(t,[{key:"clean",value:function(){var e=confirm(gettext("Are you sure? This will delete other polls."));return e}},{key:"send",value:function(){var e=Object.assign({},this.props.data,{poll:this.state.poll});return v["default"].post(this.props.api,e)}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-dialog",role:"document"
 },u["default"].createElement("div",{className:"modal-content"},u["default"].createElement("div",{className:"modal-header"},u["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},u["default"].createElement("span",{"aria-hidden":"true"},"×")),u["default"].createElement("h4",{className:"modal-title"},gettext("Merge polls"))),u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("p",null,gettext("Select poll to use in merged thread. Other polls will be deleted.")),u["default"].createElement(h["default"],{label:gettext("Poll"),"for":"id_poll"},u["default"].createElement("select",{className:"form-control",id:"id_poll",onChange:this.onPollChange,value:this.state.poll},this.props.polls.map(function(e){return u["default"].createElement("option",{value:e[0],key:e[0]},e[1])})))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Merge polls"))))))}}]),t}(p["default"]);a["default"]=_},{"../services/ajax":336,"../services/modal":342,"./button":5,"./form":52,"./form-group":51,react:"react"}],56:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../services/one-box"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){d["default"].render(this.documentNode)}},{key:"componentDidUpdate",value:function(e,t){d["default"].render(this.documentNode)}},{key:"shouldComponentUpdate",value:function(e,t){return e.markup!==this.props.markup}},{key:"render",value:function(){var e=this;return u["default"].createElement("article",{className:"misago-markup",dangerouslySetInnerHTML:{__html:this.props.markup},ref:function(t){e.documentNode=t}})}}]),t}(u["default"].Component);a["default"]=f},{"../services/one-box":343,react:"react"}],57:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body modal-loader"},u["default"].createElement(d["default"],null))}}]),t}(u["default"].Component);a["default"]=f},{"./loader":54,react:"react"}],58:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./panel-message"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText(),u["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}}]),t}(d["default"]);a["default"]=f},{"./panel-message":72,react:"react"}],59:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(){return o["default"].createElement("div",{className:"panel panel-default panel-form"},o["default"].createElement("div",{className:"panel-heading"},o["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),o["default"].createElement(s["default"],null))};var r=e("react"),o=n(r),l=e("../../panel-loader"),s=n(l)},{"../../panel-loader":71,react:"react"}],60:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../panel-message"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),u["default"].createElement(d["default"],{helpText:this.getHelpText(),message:gettext("You can't change your username at the moment.")}))}}]),t}(u["default"].Component);a["default"]=f},{"../../panel-message":72,react:"react"}],61:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../../services/ajax"),y=r(v),g=e("../../../services/snackbar"),_=r(g),E=e("../../../utils/validators"),w=n(E),O=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={username:"",validators:{username:[w.usernameContent(),w.usernameMinLength(e.options.length_min),w.usernameMaxLength(e.options.length_max)]},isLoading:!1},a}return s(t,e),i(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var a=ngettext("Used changes become available again after %(name_changes_expire)s day.","Used changes become available again after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(a,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(_["default"].error(e.username[0]),!1):this.state.username.trim()!==this.props.user.username||(_["default"].info(gettext("Your new username is same as current one.")),!1)}},{key:"send",value:function(){return y["default"].post(this.props.user.api.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(b["default"],{label:gettext("New username"),"for":"id_username",helpText:this.getHelpText()},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))}}]),t}(m["default"]);a["default"]=O},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../../utils/validators":364,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],62:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("moment"),u=n(i),c=e("react"),d=n(c),f=e("./form-loading"),p=n(f),m=e("./form-locked"),h=n(m),b=e("./form"),v=n(b),y=e("../../username-history/root"),g=n(y),_=e("../../../index"),E=n(_),w=e("../../../reducers/username-history"),O=e("../../../reducers/users"),k=e("../../../services/ajax"),x=n(k),N=e("../../../services/page-title"),j=n(N),P=e("../../../services/snackbar"),C=n(P),S=e("../../../services/store"),M=n(S),T=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onComplete=function(e,t,n){a.setState({options:n}),M["default"].dispatch((0,w.addNameChange)({username:e,slug:t},a.props.user,a.props.user)),M["default"].dispatch((0,O.updateUsername)(a.props.user,e,t)),C["default"].success(gettext("Your username has been changed successfully."))},a.state={isLoaded:!1,options:null},a}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([x["default"].get(this.props.user.api.username),x["default"].get(E["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){M["default"].dispatch((0,w.hydrate)(t[1].results)),e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,u["default"])(t[0].next_on):null}})})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?0===this.state.options.changes_left?d["default"].createElement(h["default"],{options:this.state.options}):d["default"].createElement(v["default"],{complete:this.onComplete,options:this.state.options,user:this.props.user}):d["default"].createElement(p["default"],null)}},{key:"render",value:function(){return d["default"].createElement("div",null,this.getChangeForm(),d["default"].createElement(g["default"],{changes:this.props["username-history"],isLoaded:this.state.isLoaded}))}}]),t}(d["default"].Component);a["default"]=T},{"../../../index":275,"../../../reducers/username-history":334,"../../../reducers/users":335,"../../../services/ajax":336,"../../../services/page-title":344,"../../../services/snackbar":347,"../../../services/store":348,"../../username-history/root":253,"./form":61,"./form-loading":59,"./form-locked":60,moment:"moment",react:"react"}],63:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../edit-details"),d=n(c),f=e("../../services/page-title"),p=n(f),m=e("../../services/snackbar"),h=n(m),b=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onSuccess=function(){h["default"].info(gettext("Your details have been updated."))},l=a,o(n,l)}return l(t,e),s(t,[{key:"componentDidMount",value:function(){p["default"].set({title:gettext("Edit details"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement(d["default"],{api:this.props.user.api.edit_details,onSuccess:this.onSuccess})}}]),t}(u["default"].Component);a["default"]=b},{"../../services/page-title":344,"../../services/snackbar":347,"../edit-details":29,react:"react"}],64:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../button"),d=n(c),f=e("../form"),p=n(f),m=e("../form-group"),h=n(m),b=e("../select"),v=n(b),y=e("../yes-no-switch"),g=n(y),_=e("../../reducers/auth"),E=e("../../services/ajax"),w=n(E),O=e("../../services/page-title"),k=n(O),x=e("../../services/snackbar"),N=n(x),j=e("../../services/store"),P=n(j),C=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},a.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],a.subscribeToChoices=[{value:0,icon:"star_border",label:gettext("No")},{value:1,icon:"star_half",label:gettext("Notify")},{value:2,icon:"star",label:gettext("Notify with e-mail")}],a}return l(t,e),s(t,[{key:"send",value:function(){return w["default"].post(this.props.user.api.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patch)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),N["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?N["default"].error(gettext("Please reload page and try again.")):N["default"].apiError(e)}},{key:"componentDidMount",value:function(){k["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),u["default"].createElement("div",{className:"panel-body"},u["default"].createElement("fieldset",null,u["default"].createElement("legend",null,gettext("Privacy settings")),u["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence"},u["default"].createElement(g["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility_off",iconOff:"visibility",labelOn:gettext("Hide my presence from other users"),labelOff:gettext("Show my presence to other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),u["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to"},u["default"].createElement(v["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),u["default"].createElement("fieldset",null,u["default"].createElement("legend",null,gettext("Automatic subscriptions")),u["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads"},u["default"].createElement(v["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),u["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads"},u["default"].createElement(v["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),u["default"].createElement("div",{className:"panel-footer"},u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))}}]),t}(p["default"]);a["default"]=C},{"../../reducers/auth":321,"../../services/ajax":336,"../../services/page-title":344,"../../services/snackbar":347,"../../services/store":348,"../button":5,"../form":52,"../form-group":51,"../select":188,"../yes-no-switch":273,react:"react"}],65:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return s["default"].createElement("div",{className:"list-group nav-side"},e.options.map(function(t){return s["default"].createElement(i.Link,{to:e.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},s["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}function o(e){return s["default"].createElement("ul",{className:e.className||"dropdown-menu stick-to-bottom",role:"menu"},e.options.map(function(t){return s["default"].createElement(c["default"],{path:e.baseUrl+t.component+"/",key:t.component},s["default"].createElement(i.Link,{to:e.baseUrl+t.component+"/",onClick:e.hideNav},s["default"].createElement("span",{className:"material-icon hidden-sm"},t.icon),t.name))}))}Object.defineProperty(a,"__esModule",{value:!0}),a.SideNav=r,a.CompactNav=o;var l=e("react"),s=n(l),i=e("react-router"),u=e("../li"),c=n(u),d=e("../../index");n(d)},{"../../index":275,"../li":53,react:"react","react-router":"react-router"}],66:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function i(){return[{path:N["default"].get("USERCP_URL")+"forum-options/",component:(0,f.connect)(s)(y["default"])},{path:N["default"].get("USERCP_URL")+"edit-details/",component:(0,f.connect)(s)(b["default"])},{path:N["default"].get("USERCP_URL")+"change-username/",component:(0,f.connect)(s)(_["default"])},{path:N["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,f.connect)(s)(w["default"])}]}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s,a.paths=i;var c=e("react"),d=n(c),f=e("react-redux"),p=e("../dropdown-toggle"),m=(n(p),e("./navs")),h=e("./edit-details"),b=n(h),v=e("./forum-options"),y=n(v),g=e("./change-username/root"),_=n(g),E=e("./sign-in-credentials/root"),w=n(E),O=e("../with-dropdown"),k=n(O),x=e("../../index"),N=n(x),j=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-options"},d["default"].createElement("div",{className:"page-header-bg"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",null,gettext("Change your options"))),d["default"].createElement("div",{className:"page-tabs visible-xs-block visible-sm-block"},d["default"].createElement("div",{className:"container"},d["default"].createElement(m.CompactNav,{className:"nav nav-pills",baseUrl:N["default"].get("USERCP_URL"),options:N["default"].get("USER_OPTIONS")}))))),d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},d["default"].createElement(m.SideNav,{baseUrl:N["default"].get("USERCP_URL"),options:N["default"].get("USER_OPTIONS")})),d["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(k["default"]);a["default"]=j},{"../../index":275,"../dropdown-toggle":24,"../with-dropdown":272,"./change-username/root":62,"./edit-details":63,"./forum-options":64,"./navs":65,"./sign-in-credentials/root":69,react:"react","react-redux":"react-redux"}],67:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../../services/ajax"),y=r(v),g=e("../../../services/snackbar"),_=r(g),E=e("../../../utils/validators"),w=n(E),O=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={new_email:"",password:"",validators:{new_email:[w.email()],password:[]},isLoading:!1},a}return s(t,e),i(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return t.indexOf(0)!==-1?(_["default"].error(gettext("Fill out all fields.")),!1):!e.new_email||(_["default"].error(e.new_email[0]),!1)}},{key:"send",value:function(){return y["default"].post(this.props.user.api.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),_["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?_["default"].error(e.new_email):_["default"].error(e.password):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(b["default"],{label:gettext("New e-mail"),"for":"id_new_email"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(b["default"],{label:gettext("Your current password"),"for":"id_password"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))}}]),t}(m["default"]);a["default"]=O},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../../utils/validators":364,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],68:[function(e,t,a){"use strict";function n(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){
 },u["default"].createElement("div",{className:"modal-content"},u["default"].createElement("div",{className:"modal-header"},u["default"].createElement("button",{"aria-label":gettext("Close"),className:"close","data-dismiss":"modal",type:"button"},u["default"].createElement("span",{"aria-hidden":"true"},"×")),u["default"].createElement("h4",{className:"modal-title"},gettext("Merge polls"))),u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("p",null,gettext("Select poll to use in merged thread. Other polls will be deleted.")),u["default"].createElement(h["default"],{label:gettext("Poll"),"for":"id_poll"},u["default"].createElement("select",{className:"form-control",id:"id_poll",onChange:this.onPollChange,value:this.state.poll},this.props.polls.map(function(e){return u["default"].createElement("option",{value:e[0],key:e[0]},e[1])})))),u["default"].createElement("div",{className:"modal-footer"},u["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",disabled:this.state.isLoading,type:"button"},gettext("Cancel")),u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Merge polls"))))))}}]),t}(p["default"]);a["default"]=_},{"../services/ajax":336,"../services/modal":342,"./button":5,"./form":52,"./form-group":51,react:"react"}],56:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../services/one-box"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){d["default"].render(this.documentNode)}},{key:"componentDidUpdate",value:function(e,t){d["default"].render(this.documentNode)}},{key:"shouldComponentUpdate",value:function(e,t){return e.markup!==this.props.markup}},{key:"render",value:function(){var e=this;return u["default"].createElement("article",{className:"misago-markup",dangerouslySetInnerHTML:{__html:this.props.markup},ref:function(t){e.documentNode=t}})}}]),t}(u["default"].Component);a["default"]=f},{"../services/one-box":343,react:"react"}],57:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body modal-loader"},u["default"].createElement(d["default"],null))}}]),t}(u["default"].Component);a["default"]=f},{"./loader":54,react:"react"}],58:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./panel-message"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"modal-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText(),u["default"].createElement("button",{className:"btn btn-default","data-dismiss":"modal",type:"button"},gettext("Ok"))))}}]),t}(d["default"]);a["default"]=f},{"./panel-message":72,react:"react"}],59:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(){return o["default"].createElement("div",{className:"panel panel-default panel-form"},o["default"].createElement("div",{className:"panel-heading"},o["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),o["default"].createElement(s["default"],null))};var r=e("react"),o=n(r),l=e("../../panel-loader"),s=n(l)},{"../../panel-loader":71,react:"react"}],60:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../panel-message"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.options.next_on?interpolate(gettext("You will be able to change your username %(next_change)s."),{next_change:this.props.options.next_on.fromNow()},!0):gettext("You have used up available name changes.")}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),u["default"].createElement(d["default"],{helpText:this.getHelpText(),message:gettext("You can't change your username at the moment.")}))}}]),t}(u["default"].Component);a["default"]=f},{"../../panel-message":72,react:"react"}],61:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../../services/ajax"),y=r(v),g=e("../../../services/snackbar"),_=r(g),E=e("../../../utils/validators"),w=n(E),O=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={username:"",validators:{username:[w.usernameContent(),w.usernameMinLength(e.options.length_min),w.usernameMaxLength(e.options.length_max)]},isLoading:!1},a}return s(t,e),i(t,[{key:"getHelpText",value:function(){var e=[];if(this.props.options.changes_left>0){var t=ngettext("You can change your username %(changes_left)s more time.","You can change your username %(changes_left)s more times.",this.props.options.changes_left);e.push(interpolate(t,{changes_left:this.props.options.changes_left},!0))}if(this.props.user.acl.name_changes_expire>0){var a=ngettext("Used changes become available again after %(name_changes_expire)s day.","Used changes become available again after %(name_changes_expire)s days.",this.props.user.acl.name_changes_expire);e.push(interpolate(a,{name_changes_expire:this.props.user.acl.name_changes_expire},!0))}return e.length?e.join(" "):null}},{key:"clean",value:function(){var e=this.validate();return e.username?(_["default"].error(e.username[0]),!1):this.state.username.trim()!==this.props.user.username||(_["default"].info(gettext("Your new username is same as current one.")),!1)}},{key:"send",value:function(){return y["default"].post(this.props.user.api.username,{username:this.state.username})}},{key:"handleSuccess",value:function(e){this.setState({username:""}),this.props.complete(e.username,e.slug,e.options)}},{key:"handleError",value:function(e){_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change username"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(b["default"],{label:gettext("New username"),"for":"id_username",helpText:this.getHelpText()},c["default"].createElement("input",{type:"text",id:"id_username",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("username"),value:this.state.username}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change username")))))}}]),t}(m["default"]);a["default"]=O},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../../utils/validators":364,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],62:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("moment"),u=n(i),c=e("react"),d=n(c),f=e("./form-loading"),p=n(f),m=e("./form-locked"),h=n(m),b=e("./form"),v=n(b),y=e("../../username-history/root"),g=n(y),_=e("../../../index"),E=n(_),w=e("../../../reducers/username-history"),O=e("../../../reducers/users"),k=e("../../../services/ajax"),x=n(k),N=e("../../../services/page-title"),j=n(N),P=e("../../../services/snackbar"),C=n(P),S=e("../../../services/store"),M=n(S),T=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onComplete=function(e,t,n){a.setState({options:n}),M["default"].dispatch((0,w.addNameChange)({username:e,slug:t},a.props.user,a.props.user)),M["default"].dispatch((0,O.updateUsername)(a.props.user,e,t)),C["default"].success(gettext("Your username has been changed successfully."))},a.state={isLoaded:!1,options:null},a}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;j["default"].set({title:gettext("Change username"),parent:gettext("Change your options")}),Promise.all([x["default"].get(this.props.user.api.username),x["default"].get(E["default"].get("USERNAME_CHANGES_API"),{user:this.props.user.id})]).then(function(t){M["default"].dispatch((0,w.hydrate)(t[1].results)),e.setState({isLoaded:!0,options:{changes_left:t[0].changes_left,length_min:t[0].length_min,length_max:t[0].length_max,next_on:t[0].next_on?(0,u["default"])(t[0].next_on):null}})})}},{key:"getChangeForm",value:function(){return this.state.isLoaded?0===this.state.options.changes_left?d["default"].createElement(h["default"],{options:this.state.options}):d["default"].createElement(v["default"],{complete:this.onComplete,options:this.state.options,user:this.props.user}):d["default"].createElement(p["default"],null)}},{key:"render",value:function(){return d["default"].createElement("div",null,this.getChangeForm(),d["default"].createElement(g["default"],{changes:this.props["username-history"],isLoaded:this.state.isLoaded}))}}]),t}(d["default"].Component);a["default"]=T},{"../../../index":275,"../../../reducers/username-history":334,"../../../reducers/users":335,"../../../services/ajax":336,"../../../services/page-title":344,"../../../services/snackbar":347,"../../../services/store":348,"../../username-history/root":253,"./form":61,"./form-loading":59,"./form-locked":60,moment:"moment",react:"react"}],63:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../edit-details"),d=n(c),f=e("../../services/page-title"),p=n(f),m=e("../../services/snackbar"),h=n(m),b=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onSuccess=function(){h["default"].info(gettext("Your details have been updated."))},l=a,o(n,l)}return l(t,e),s(t,[{key:"componentDidMount",value:function(){p["default"].set({title:gettext("Edit details"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement(d["default"],{api:this.props.user.api.edit_details,onSuccess:this.onSuccess})}}]),t}(u["default"].Component);a["default"]=b},{"../../services/page-title":344,"../../services/snackbar":347,"../edit-details":29,react:"react"}],64:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../button"),d=n(c),f=e("../form"),p=n(f),m=e("../form-group"),h=n(m),b=e("../select"),v=n(b),y=e("../yes-no-switch"),g=n(y),_=e("../../reducers/auth"),E=e("../../services/ajax"),w=n(E),O=e("../../services/page-title"),k=n(O),x=e("../../services/snackbar"),N=n(x),j=e("../../services/store"),P=n(j),C=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={isLoading:!1,is_hiding_presence:e.user.is_hiding_presence,limits_private_thread_invites_to:e.user.limits_private_thread_invites_to,subscribe_to_started_threads:e.user.subscribe_to_started_threads,subscribe_to_replied_threads:e.user.subscribe_to_replied_threads,errors:{}},a.privateThreadInvitesChoices=[{value:0,icon:"help_outline",label:gettext("Everybody")},{value:1,icon:"done_all",label:gettext("Users I follow")},{value:2,icon:"highlight_off",label:gettext("Nobody")}],a.subscribeToChoices=[{value:0,icon:"star_border",label:gettext("No")},{value:1,icon:"star_half",label:gettext("Notify")},{value:2,icon:"star",label:gettext("Notify with e-mail")}],a}return l(t,e),s(t,[{key:"send",value:function(){return w["default"].post(this.props.user.api.options,{is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})}},{key:"handleSuccess",value:function(){P["default"].dispatch((0,_.patch)({is_hiding_presence:this.state.is_hiding_presence,limits_private_thread_invites_to:this.state.limits_private_thread_invites_to,subscribe_to_started_threads:this.state.subscribe_to_started_threads,subscribe_to_replied_threads:this.state.subscribe_to_replied_threads})),N["default"].success(gettext("Your forum options have been changed."))}},{key:"handleError",value:function(e){400===e.status?N["default"].error(gettext("Please reload page and try again.")):N["default"].apiError(e)}},{key:"componentDidMount",value:function(){k["default"].set({title:gettext("Forum options"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change forum options"))),u["default"].createElement("div",{className:"panel-body"},u["default"].createElement("fieldset",null,u["default"].createElement("legend",null,gettext("Privacy settings")),u["default"].createElement(h["default"],{label:gettext("Hide my presence"),helpText:gettext("If you hide your presence, only members with permission to see hidden users will see when you are online."),"for":"id_is_hiding_presence"},u["default"].createElement(g["default"],{id:"id_is_hiding_presence",disabled:this.state.isLoading,iconOn:"visibility_off",iconOff:"visibility",labelOn:gettext("Hide my presence from other users"),labelOff:gettext("Show my presence to other users"),onChange:this.bindInput("is_hiding_presence"),value:this.state.is_hiding_presence})),u["default"].createElement(h["default"],{label:gettext("Private thread invitations"),"for":"id_limits_private_thread_invites_to"},u["default"].createElement(v["default"],{id:"id_limits_private_thread_invites_to",disabled:this.state.isLoading,onChange:this.bindInput("limits_private_thread_invites_to"),value:this.state.limits_private_thread_invites_to,choices:this.privateThreadInvitesChoices}))),u["default"].createElement("fieldset",null,u["default"].createElement("legend",null,gettext("Automatic subscriptions")),u["default"].createElement(h["default"],{label:gettext("Threads I start"),"for":"id_subscribe_to_started_threads"},u["default"].createElement(v["default"],{id:"id_subscribe_to_started_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_started_threads"),value:this.state.subscribe_to_started_threads,choices:this.subscribeToChoices})),u["default"].createElement(h["default"],{label:gettext("Threads I reply to"),"for":"id_subscribe_to_replied_threads"},u["default"].createElement(v["default"],{id:"id_subscribe_to_replied_threads",disabled:this.state.isLoading,onChange:this.bindInput("subscribe_to_replied_threads"),value:this.state.subscribe_to_replied_threads,choices:this.subscribeToChoices})))),u["default"].createElement("div",{className:"panel-footer"},u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Save changes")))))}}]),t}(p["default"]);a["default"]=C},{"../../reducers/auth":321,"../../services/ajax":336,"../../services/page-title":344,"../../services/snackbar":347,"../../services/store":348,"../button":5,"../form":52,"../form-group":51,"../select":188,"../yes-no-switch":273,react:"react"}],65:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){return s["default"].createElement("div",{className:"list-group nav-side"},e.options.map(function(t){return s["default"].createElement(i.Link,{to:e.baseUrl+t.component+"/",className:"list-group-item",activeClassName:"active",key:t.component},s["default"].createElement("span",{className:"material-icon"},t.icon),t.name)}))}function o(e){return s["default"].createElement("ul",{className:e.className||"dropdown-menu stick-to-bottom",role:"menu"},e.options.map(function(t){return s["default"].createElement(c["default"],{path:e.baseUrl+t.component+"/",key:t.component},s["default"].createElement(i.Link,{to:e.baseUrl+t.component+"/",onClick:e.hideNav},s["default"].createElement("span",{className:"material-icon hidden-sm"},t.icon),t.name))}))}Object.defineProperty(a,"__esModule",{value:!0}),a.SideNav=r,a.CompactNav=o;var l=e("react"),s=n(l),i=e("react-router"),u=e("../li"),c=n(u),d=e("../../index");n(d)},{"../../index":275,"../li":53,react:"react","react-router":"react-router"}],66:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e){return{tick:e.tick.tick,user:e.auth.user,"username-history":e["username-history"]}}function i(){return[{path:N["default"].get("USERCP_URL")+"forum-options/",component:(0,f.connect)(s)(y["default"])},{path:N["default"].get("USERCP_URL")+"edit-details/",component:(0,f.connect)(s)(b["default"])},{path:N["default"].get("USERCP_URL")+"change-username/",component:(0,f.connect)(s)(_["default"])},{path:N["default"].get("USERCP_URL")+"sign-in-credentials/",component:(0,f.connect)(s)(w["default"])}]}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.select=s,a.paths=i;var c=e("react"),d=n(c),f=e("react-redux"),p=e("../dropdown-toggle"),m=(n(p),e("./navs")),h=e("./edit-details"),b=n(h),v=e("./forum-options"),y=n(v),g=e("./change-username/root"),_=n(g),E=e("./sign-in-credentials/root"),w=n(E),O=e("../with-dropdown"),k=n(O),x=e("../../index"),N=n(x),j=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),u(t,[{key:"render",value:function(){return d["default"].createElement("div",{className:"page page-options"},d["default"].createElement("div",{className:"page-header-bg"},d["default"].createElement("div",{className:"page-header"},d["default"].createElement("div",{className:"container"},d["default"].createElement("h1",null,gettext("Change your options"))),d["default"].createElement("div",{className:"page-tabs visible-xs-block visible-sm-block"},d["default"].createElement("div",{className:"container"},d["default"].createElement(m.CompactNav,{className:"nav nav-pills",baseUrl:N["default"].get("USERCP_URL"),options:N["default"].get("USER_OPTIONS")}))))),d["default"].createElement("div",{className:"container"},d["default"].createElement("div",{className:"row"},d["default"].createElement("div",{className:"col-md-3 hidden-xs hidden-sm"},d["default"].createElement(m.SideNav,{baseUrl:N["default"].get("USERCP_URL"),options:N["default"].get("USER_OPTIONS")})),d["default"].createElement("div",{className:"col-md-9"},this.props.children))))}}]),t}(k["default"]);a["default"]=j},{"../../index":275,"../dropdown-toggle":24,"../with-dropdown":272,"./change-username/root":62,"./edit-details":63,"./forum-options":64,"./navs":65,"./sign-in-credentials/root":69,react:"react","react-redux":"react-redux"}],67:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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)}Object.defineProperty(a,"__esModule",{value:!0});var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),u=e("react"),c=r(u),d=e("../../button"),f=r(d),p=e("../../form"),m=r(p),h=e("../../form-group"),b=r(h),v=e("../../../services/ajax"),y=r(v),g=e("../../../services/snackbar"),_=r(g),E=e("../../../utils/validators"),w=n(E),O=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={new_email:"",password:"",validators:{new_email:[w.email()],password:[]},isLoading:!1},a}return s(t,e),i(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_email.trim().length,this.state.password.trim().length];return t.indexOf(0)!==-1?(_["default"].error(gettext("Fill out all fields.")),!1):!e.new_email||(_["default"].error(e.new_email[0]),!1)}},{key:"send",value:function(){return y["default"].post(this.props.user.api.change_email,{new_email:this.state.new_email,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_email:"",password:""}),_["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_email?_["default"].error(e.new_email):_["default"].error(e.password):_["default"].apiError(e)}},{key:"render",value:function(){return c["default"].createElement("form",{onSubmit:this.handleSubmit},c["default"].createElement("input",{type:"type",style:{display:"none"}}),c["default"].createElement("input",{type:"password",style:{display:"none"}}),c["default"].createElement("div",{className:"panel panel-default panel-form"},c["default"].createElement("div",{className:"panel-heading"},c["default"].createElement("h3",{className:"panel-title"},gettext("Change e-mail address"))),c["default"].createElement("div",{className:"panel-body"},c["default"].createElement(b["default"],{label:gettext("New e-mail"),"for":"id_new_email"},c["default"].createElement("input",{type:"text",id:"id_new_email",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_email"),value:this.state.new_email})),c["default"].createElement("hr",null),c["default"].createElement(b["default"],{label:gettext("Your current password"),"for":"id_password"},c["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),c["default"].createElement("div",{className:"panel-footer"},c["default"].createElement(f["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change e-mail")))))}}]),t}(m["default"]);a["default"]=O},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../../utils/validators":364,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],68:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../button"),d=n(c),f=e("../../form"),p=n(f),m=e("../../form-group"),h=n(m),b=e("../../../services/ajax"),v=n(b),y=e("../../../services/snackbar"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[],repeat_password:[],password:[]},isLoading:!1},a}return l(t,e),s(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return t.indexOf(0)!==-1?(g["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(g["default"].error(e.new_password[0]),!1):this.state.new_password===this.state.repeat_password||(g["default"].error(gettext("New passwords are different.")),!1)}},{key:"send",value:function(){return v["default"].post(this.props.user.api.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),g["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?g["default"].error(e.new_password):g["default"].error(e.password):g["default"].apiError(e)}},{key:"render",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("input",{type:"type",style:{display:"none"}}),u["default"].createElement("input",{type:"password",style:{display:"none"}}),u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),u["default"].createElement("div",{className:"panel-body"},u["default"].createElement(h["default"],{label:gettext("New password"),"for":"id_new_password"},u["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),u["default"].createElement(h["default"],{label:gettext("Repeat password"),"for":"id_repeat_password"},u["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),u["default"].createElement("hr",null),u["default"].createElement(h["default"],{label:gettext("Your current password"),"for":"id_password"},u["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),u["default"].createElement("div",{className:"panel-footer"},u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))}}]),t}(p["default"]);a["default"]=_},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],69:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change-email"),d=n(c),f=e("./change-password"),p=n(f),m=e("../../../index"),h=n(m),b=e("../../../services/page-title"),v=n(b),y=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){v["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(d["default"],{user:this.props.user}),u["default"].createElement(p["default"],{user:this.props.user}),u["default"].createElement("p",{className:"message-line"},u["default"].createElement("span",{className:"material-icon"},"warning"),u["default"].createElement("a",{href:h["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(u["default"].Component);a["default"]=y},{"../../../index":275,"../../../services/page-title":344,"./change-email":67,"./change-password":68,react:"react"}],70:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../utils/string-count"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.copy&&this.props.copy.length&&1===(0,d["default"])(this.props.copy,"<p")&&this.props.copy.indexOf("<br")===-1?"page-lead lead":"page-lead"}},{key:"render",value:function(){return this.props.copy&&this.props.copy.length?u["default"].createElement("div",{className:this.getClassName(),dangerouslySetInnerHTML:{__html:this.props.copy}}):null}}]),t}(u["default"].Component);a["default"]=f},{"../utils/string-count":363,react:"react"}],71:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-body-loading"},u["default"].createElement(d["default"],{className:"loader loader-spaced"}))}}]),t}(u["default"].Component);a["default"]=f},{"./loader":54,react:"react"}],72:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-message-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],73:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../add-participant"),d=n(c),f=e("../../services/modal"),p=n(f),m=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),c=0;c<s;c++)i[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){p["default"].show(u["default"].createElement(d["default"],{thread:n.props.thread}))},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return this.props.thread.acl.can_add_participants?u["default"].createElement("div",{className:"col-xs-12 col-sm-3"},u["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.onClick,type:"button"},u["default"].createElement("span",{className:"material-icon"},"person_add"),gettext("Add participant"))):null}}]),t}(u["default"].Component);a["default"]=m},{"../../services/modal":342,"../add-participant":1,react:"react"}],74:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function o(e,t){m["default"].patch(e.api.index,[{op:"remove",path:"participants",value:t.id}]).then(function(){b["default"].success(gettext("You have left this thread.")),window.setTimeout(function(){window.location=f["default"].get("PRIVATE_THREADS_URL")},3e3)},function(e){b["default"].apiError(e)})}function l(e,t){m["default"].patch(e.api.index,[{op:"remove",path:"participants",value:t.id},{op:"add",path:"acl",value:1}]).then(function(e){y["default"].dispatch((0,c.updateAcl)(e)),y["default"].dispatch(u.replace(e.participants));var a=gettext("%(user)s has been removed from this thread.");b["default"].success(interpolate(a,{user:t.username},!0))},function(e){b["default"].apiError(e)})}function s(e,t){m["default"].patch(e.api.index,[{op:"replace",path:"owner",value:t.id},{op:"add",path:"acl",value:1}]).then(function(e){y["default"].dispatch((0,c.updateAcl)(e)),y["default"].dispatch(u.replace(e.participants));var a=gettext("%(user)s has been made new thread owner.");b["default"].success(interpolate(a,{user:t.username},!0))},function(e){b["default"].apiError(e)})}Object.defineProperty(a,"__esModule",{value:!0}),a.leave=o,a.remove=l,a.changeOwner=s;var i=e("../../../reducers/participants"),u=r(i),c=e("../../../reducers/thread"),d=e("../../.."),f=n(d),p=e("../../../services/ajax"),m=n(p),h=e("../../../services/snackbar"),b=n(h),v=e("../../../services/store"),y=n(v)},{"../../..":275,"../../../reducers/participants":322,"../../../reducers/thread":331,"../../../services/ajax":336,"../../../services/snackbar":347,"../../../services/store":348}],75:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.isOwner;return t?l["default"].createElement("li",{className:"dropdown-header dropdown-header-owner"},l["default"].createElement("span",{className:"material-icon"},"start"),l["default"].createElement("span",{className:"icon-text"},gettext("Thread owner"))):null}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.participant,a="btn btn-default";return t.is_owner&&(a="btn btn-primary"),a+=" btn-user btn-block",l["default"].createElement("div",{className:"col-xs-12 col-sm-3 col-md-2 participant-card"},l["default"].createElement("div",{className:"dropdown"},l["default"].createElement("button",{"aria-haspopup":"true","aria-expanded":"false",className:a,"data-toggle":"dropdown",type:"button"},l["default"].createElement(f["default"],{size:"34",user:t}),l["default"].createElement("span",{className:"btn-text"},t.username)),l["default"].createElement("ul",{className:"dropdown-menu stick-to-bottom"},l["default"].createElement(r,{isOwner:t.is_owner}),l["default"].createElement("li",{className:"dropdown-header"}),l["default"].createElement("li",null,l["default"].createElement("a",{href:t.url},gettext("See profile"))),l["default"].createElement("li",{role:"separator",className:"divider"}),l["default"].createElement(i["default"],e),l["default"].createElement(c["default"],e))))},a.UserStatus=r;var o=e("react"),l=n(o),s=e("./make-owner"),i=n(s),u=e("./remove"),c=n(u),d=e("../../avatar"),f=n(d)},{"../../avatar":3,"./make-owner":77,"./remove":78,react:"react"}],76:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.participants,a=e.thread,n=e.user,r=e.userIsOwner;return o["default"].createElement("div",{className:"participants-cards"},o["default"].createElement("div",{className:"row"},t.map(function(e){return o["default"].createElement(s["default"],{key:e.id,participant:e,thread:a,user:n,userIsOwner:r})})))};var r=e("react"),o=n(r),l=e("./card"),s=n(l)},{"./card":75,react:"react"}],77:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./actions"),d=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onClick=function(){var e=!1;if(a.isUser)e=confirm(gettext("Are you sure you want to take over this thread?"));else{var t=gettext("Are you sure you want to change thread owner to %(user)s?");e=confirm(interpolate(t,{user:a.props.participant.username},!0))}e&&(0,c.changeOwner)(a.props.thread,a.props.participant)},a.isUser=e.participant.id===e.user.id,a}return l(t,e),s(t,[{key:"render",value:function(){return this.props.participant.is_owner?null:this.props.thread.acl.can_change_owner?u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick,type:"button"},gettext("Make owner"))):null}}]),t}(u["default"].Component);a["default"]=d},{"./actions":74,react:"react"}],78:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./actions"),d=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onClick=function(){var e=!1;if(a.isUser)e=confirm(gettext("Are you sure you want to leave this thread?"));else{var t=gettext("Are you sure you want to remove %(user)s from this thread?");e=confirm(interpolate(t,{user:a.props.participant.username},!0))}e&&(a.isUser?(0,c.leave)(a.props.thread,a.props.participant):(0,c.remove)(a.props.thread,a.props.participant))},a.isUser=e.participant.id===e.user.id,a}return l(t,e),s(t,[{key:"render",value:function(){var e=this.props.user.acl.can_moderate_private_threads;return this.props.userIsOwner||this.isUser||e?u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick,type:"button"},this.isUser?gettext("Leave thread"):gettext("Remove"))):null}}]),t}(u["default"].Component);a["default"]=d},{"./actions":74,react:"react"}],79:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return t[0].id===e.id}Object.defineProperty(a,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return e.participants.length?i["default"].createElement("div",{className:"panel panel-default panel-participants"},i["default"].createElement("div",{className:"panel-body"},i["default"].createElement(f["default"],l({userIsOwner:o(e.user,e.participants)},e)),i["default"].createElement("div",{className:"row"},i["default"].createElement(c["default"],{thread:e.thread}),i["default"].createElement("div",{className:"col-xs-12 col-sm-9"},i["default"].createElement("p",null,m.getParticipantsCopy(e.participants)))))):null},a.getUserIsOwner=o;var s=e("react"),i=r(s),u=e("./add-participant"),c=r(u),d=e("./cards-list"),f=r(d),p=e("./utils"),m=n(p)},{"./add-participant":73,"./cards-list":76,"./utils":80,react:"react"}],80:[function(e,t,a){"use strict";function n(e){var t=e.length,a=ngettext("This thread has %(users)s participant.","This thread has %(users)s participants.",t);return interpolate(a,{users:t},!0)}Object.defineProperty(a,"__esModule",{value:!0}),a.getParticipantsCopy=n},{}],81:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.LABELS=a.STYLES=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../services/zxcvbn"),d=n(c),f=a.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=a.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a._score=0,a._password=null,a._inputs=[],a.state={loaded:!1},a}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;d["default"].load().then(function(){e.setState({loaded:!0})})}},{key:"getScore",value:function(e,t){var a=this,n=!1;return e!==this._password&&(n=!0),t.length!==this._inputs.length?n=!0:t.map(function(e,t){e.trim()!==a._inputs[t]&&(n=!0)}),n&&(this._score=d["default"].scorePassword(e,t),this._password=e,this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){if(!this.state.loaded)return null;var e=this.getScore(this.props.password,this.props.inputs);return u["default"].createElement("div",{className:"help-block password-strength"},u["default"].createElement("div",{className:"progress"},u["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"},u["default"].createElement("span",{className:"sr-only"},p[e]))),u["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(u["default"].Component);a["default"]=m},{"../services/zxcvbn":349,react:"react"}],82:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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(){for(var e="";12!=e.length;)e=Math.random().toString(36).replace(/[^a-zA-Z0-9]+/g,"").substr(1,12);return e}Object.defineProperty(a,"__esModule",{value:!0}),a.PollChoice=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.generateRandomHash=s;var u=e("react"),c=n(u),d=function(e){function t(){var e,a,n,l;r(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.onAdd=function(){var e=n.props.choices.slice();e.push({hash:s(),label:""}),n.props.setChoices(e)},n.onChange=function(e,t){var a=n.props.choices.map(function(a){return a.hash===e&&(a.label=t),a});n.props.setChoices(a)},n.onDelete=function(e){var t=n.props.choices.filter(function(t){return t.hash!==e});n.props.setChoices(t)},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"poll-choices-control"},c["default"].createElement("ul",{className:"list-group"},this.props.choices.map(function(t){return c["default"].createElement(f,{canDelete:e.props.choices.length>2,choice:t,disabled:e.props.disabled,key:t.hash,onChange:e.onChange,onDelete:e.onDelete})})),c["default"].createElement("button",{className:"btn btn-default btn-sm",disabled:this.props.disabled,onClick:this.onAdd,type:"button"},gettext("Add choice")))}}]),t}(c["default"].Component);a["default"]=d;var f=a.PollChoice=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onChange=function(e){n.props.onChange(n.props.choice.hash,e.target.value)},n.onDelete=function(){var e=confirm(gettext("Are you sure you want to delete this choice?"));e&&n.props.onDelete(n.props.choice.hash)},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("li",{className:"list-group-item"},c["default"].createElement("button",{className:"btn",disabled:!this.props.canDelete||this.props.disabled,onClick:this.onDelete,title:gettext("Delete this choice"),type:"button"},c["default"].createElement("span",{className:"material-icon"},"close")),c["default"].createElement("input",{disabled:this.props.disabled,maxLength:"255",placeholder:gettext("choice label"),type:"text",onChange:this.onChange,value:this.props.choice.label}))}}]),t}(c["default"].Component)},{react:"react"}],83:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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.isEdit?null:d["default"].createElement("div",{className:"col-xs-12 col-sm-6"},d["default"].createElement(g["default"],{label:gettext("Make voting public"),helpText:gettext("Making voting public will allow everyone to access detailed list of votes, showing which users voted for which choices and at which times. This option can't be changed after poll's creation. Moderators may see voting details for all polls."),"for":"id_is_public"},d["default"].createElement(E["default"],{id:"id_is_public",disabled:e.disabled,iconOn:"visibility",iconOff:"visibility_off",labelOn:gettext("Votes are public"),labelOff:gettext("Votes are hidden"),onChange:e.bindInput("is_public"),value:e.value})))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.PollPublicSwitch=i;var c=e("react"),d=r(c),f=e("./choices-control"),p=r(f),m=e("../../button"),h=r(m),b=e("../../form"),v=r(b),y=e("../../form-group"),g=r(y),_=e("../../yes-no-switch"),E=r(_),w=e("../../../reducers/poll"),O=n(w),k=e("../../../services/ajax"),x=r(k),N=e("../../../services/posting"),j=r(N),P=e("../../../services/snackbar"),C=r(P),S=e("../../../services/store"),M=r(S),T=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.setChoices=function(e){var t=Object.assign({},t,{choices:null});a.setState({choices:e,errors:t})},a.onCancel=function(){var e=confirm(gettext("Are you sure you want to discard poll?"));e&&j["default"].close()};var n=e.poll||{question:"",choices:[{hash:"choice-10000",label:""},{hash:"choice-20000",label:""}],length:0,allowed_choices:1,allow_revotes:0,is_public:0};return a.state={isLoading:!1,isEdit:!!n.question,question:n.question,choices:n.choices,length:n.length,allowed_choices:n.allowed_choices,allow_revotes:n.allow_revotes,is_public:n.is_public,validators:{question:[],choices:[],length:[],allowed_choices:[]},errors:{}},a}return s(t,e),u(t,[{key:"send",value:function(){var e={question:this.state.question,choices:this.state.choices,length:this.state.length,allowed_choices:this.state.allowed_choices,allow_revotes:this.state.allow_revotes,is_public:this.state.is_public};return this.state.isEdit?x["default"].put(this.props.poll.api.index,e):x["default"].post(this.props.thread.api.poll,e)}},{key:"handleSuccess",value:function(e){M["default"].dispatch(O.replace(e)),this.state.isEdit?C["default"].success(gettext("Poll has been edited.")):C["default"].success(gettext("Poll has been posted.")),j["default"].close()}},{key:"handleError",value:function(e){400===e.status?(e.non_field_errors&&(e.allowed_choices=e.non_field_errors),this.setState({errors:Object.assign({},e)}),C["default"].error(gettext("Form contains errors."))):C["default"].apiError(e)}},{key:"render",value:function(){return d["default"].createElement("div",{className:"poll-form"},d["default"].createElement("div",{className:"container"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"panel panel-default panel-form"},d["default"].createElement("div",{className:"panel-body"},d["default"].createElement("fieldset",null,d["default"].createElement("legend",null,gettext("Question and choices")),d["default"].createElement(g["default"],{
 if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../../button"),d=n(c),f=e("../../form"),p=n(f),m=e("../../form-group"),h=n(m),b=e("../../../services/ajax"),v=n(b),y=e("../../../services/snackbar"),g=n(y),_=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.state={new_password:"",repeat_password:"",password:"",validators:{new_password:[],repeat_password:[],password:[]},isLoading:!1},a}return l(t,e),s(t,[{key:"clean",value:function(){var e=this.validate(),t=[this.state.new_password.trim().length,this.state.repeat_password.trim().length,this.state.password.trim().length];return t.indexOf(0)!==-1?(g["default"].error(gettext("Fill out all fields.")),!1):e.new_password?(g["default"].error(e.new_password[0]),!1):this.state.new_password===this.state.repeat_password||(g["default"].error(gettext("New passwords are different.")),!1)}},{key:"send",value:function(){return v["default"].post(this.props.user.api.change_password,{new_password:this.state.new_password,password:this.state.password})}},{key:"handleSuccess",value:function(e){this.setState({new_password:"",repeat_password:"",password:""}),g["default"].success(e.detail)}},{key:"handleError",value:function(e){400===e.status?e.new_password?g["default"].error(e.new_password):g["default"].error(e.password):g["default"].apiError(e)}},{key:"render",value:function(){return u["default"].createElement("form",{onSubmit:this.handleSubmit},u["default"].createElement("input",{type:"type",style:{display:"none"}}),u["default"].createElement("input",{type:"password",style:{display:"none"}}),u["default"].createElement("div",{className:"panel panel-default panel-form"},u["default"].createElement("div",{className:"panel-heading"},u["default"].createElement("h3",{className:"panel-title"},gettext("Change password"))),u["default"].createElement("div",{className:"panel-body"},u["default"].createElement(h["default"],{label:gettext("New password"),"for":"id_new_password"},u["default"].createElement("input",{type:"password",id:"id_new_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("new_password"),value:this.state.new_password})),u["default"].createElement(h["default"],{label:gettext("Repeat password"),"for":"id_repeat_password"},u["default"].createElement("input",{type:"password",id:"id_repeat_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("repeat_password"),value:this.state.repeat_password})),u["default"].createElement("hr",null),u["default"].createElement(h["default"],{label:gettext("Your current password"),"for":"id_password"},u["default"].createElement("input",{type:"password",id:"id_password",className:"form-control",disabled:this.state.isLoading,onChange:this.bindInput("password"),value:this.state.password}))),u["default"].createElement("div",{className:"panel-footer"},u["default"].createElement(d["default"],{className:"btn-primary",loading:this.state.isLoading},gettext("Change password")))))}}]),t}(p["default"]);a["default"]=_},{"../../../services/ajax":336,"../../../services/snackbar":347,"../../button":5,"../../form":52,"../../form-group":51,react:"react"}],69:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./change-email"),d=n(c),f=e("./change-password"),p=n(f),m=e("../../../index"),h=n(m),b=e("../../../services/page-title"),v=n(b),y=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"componentDidMount",value:function(){v["default"].set({title:gettext("Change email or password"),parent:gettext("Change your options")})}},{key:"render",value:function(){return u["default"].createElement("div",null,u["default"].createElement(d["default"],{user:this.props.user}),u["default"].createElement(p["default"],{user:this.props.user}),u["default"].createElement("p",{className:"message-line"},u["default"].createElement("span",{className:"material-icon"},"warning"),u["default"].createElement("a",{href:h["default"].get("FORGOTTEN_PASSWORD_URL")},gettext("Change forgotten password"))))}}]),t}(u["default"].Component);a["default"]=y},{"../../../index":275,"../../../services/page-title":344,"./change-email":67,"./change-password":68,react:"react"}],70:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../utils/string-count"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getClassName",value:function(){return this.props.copy&&this.props.copy.length&&1===(0,d["default"])(this.props.copy,"<p")&&this.props.copy.indexOf("<br")===-1?"page-lead lead":"page-lead"}},{key:"render",value:function(){return this.props.copy&&this.props.copy.length?u["default"].createElement("div",{className:this.getClassName(),dangerouslySetInnerHTML:{__html:this.props.copy}}):null}}]),t}(u["default"].Component);a["default"]=f},{"../utils/string-count":363,react:"react"}],71:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./loader"),d=n(c),f=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-body-loading"},u["default"].createElement(d["default"],{className:"loader loader-spaced"}))}}]),t}(u["default"].Component);a["default"]=f},{"./loader":54,react:"react"}],72:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=function(e){function t(){return r(this,t),o(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return l(t,e),s(t,[{key:"getHelpText",value:function(){return this.props.helpText?u["default"].createElement("p",{className:"help-block"},this.props.helpText):null}},{key:"render",value:function(){return u["default"].createElement("div",{className:"panel-body panel-message-body"},u["default"].createElement("div",{className:"message-icon"},u["default"].createElement("span",{className:"material-icon"},this.props.icon||"info_outline")),u["default"].createElement("div",{className:"message-body"},u["default"].createElement("p",{className:"lead"},this.props.message),this.getHelpText()))}}]),t}(u["default"].Component);a["default"]=c},{react:"react"}],73:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../add-participant"),d=n(c),f=e("../../services/modal"),p=n(f),m=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),c=0;c<s;c++)i[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onClick=function(){p["default"].show(u["default"].createElement(d["default"],{thread:n.props.thread}))},l=a,o(n,l)}return l(t,e),s(t,[{key:"render",value:function(){return this.props.thread.acl.can_add_participants?u["default"].createElement("div",{className:"col-xs-12 col-sm-3"},u["default"].createElement("button",{className:"btn btn-default btn-block",onClick:this.onClick,type:"button"},u["default"].createElement("span",{className:"material-icon"},"person_add"),gettext("Add participant"))):null}}]),t}(u["default"].Component);a["default"]=m},{"../../services/modal":342,"../add-participant":1,react:"react"}],74:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function o(e,t){m["default"].patch(e.api.index,[{op:"remove",path:"participants",value:t.id}]).then(function(){b["default"].success(gettext("You have left this thread.")),window.setTimeout(function(){window.location=f["default"].get("PRIVATE_THREADS_URL")},3e3)},function(e){b["default"].apiError(e)})}function l(e,t){m["default"].patch(e.api.index,[{op:"remove",path:"participants",value:t.id},{op:"add",path:"acl",value:1}]).then(function(e){y["default"].dispatch((0,c.updateAcl)(e)),y["default"].dispatch(u.replace(e.participants));var a=gettext("%(user)s has been removed from this thread.");b["default"].success(interpolate(a,{user:t.username},!0))},function(e){b["default"].apiError(e)})}function s(e,t){m["default"].patch(e.api.index,[{op:"replace",path:"owner",value:t.id},{op:"add",path:"acl",value:1}]).then(function(e){y["default"].dispatch((0,c.updateAcl)(e)),y["default"].dispatch(u.replace(e.participants));var a=gettext("%(user)s has been made new thread owner.");b["default"].success(interpolate(a,{user:t.username},!0))},function(e){b["default"].apiError(e)})}Object.defineProperty(a,"__esModule",{value:!0}),a.leave=o,a.remove=l,a.changeOwner=s;var i=e("../../../reducers/participants"),u=r(i),c=e("../../../reducers/thread"),d=e("../../.."),f=n(d),p=e("../../../services/ajax"),m=n(p),h=e("../../../services/snackbar"),b=n(h),v=e("../../../services/store"),y=n(v)},{"../../..":275,"../../../reducers/participants":322,"../../../reducers/thread":331,"../../../services/ajax":336,"../../../services/snackbar":347,"../../../services/store":348}],75:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}function r(e){var t=e.isOwner;return t?l["default"].createElement("li",{className:"dropdown-header dropdown-header-owner"},l["default"].createElement("span",{className:"material-icon"},"start"),l["default"].createElement("span",{className:"icon-text"},gettext("Thread owner"))):null}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.participant,a="btn btn-default";return t.is_owner&&(a="btn btn-primary"),a+=" btn-user btn-block",l["default"].createElement("div",{className:"col-xs-12 col-sm-3 col-md-2 participant-card"},l["default"].createElement("div",{className:"dropdown"},l["default"].createElement("button",{"aria-haspopup":"true","aria-expanded":"false",className:a,"data-toggle":"dropdown",type:"button"},l["default"].createElement(f["default"],{size:"34",user:t}),l["default"].createElement("span",{className:"btn-text"},t.username)),l["default"].createElement("ul",{className:"dropdown-menu stick-to-bottom"},l["default"].createElement(r,{isOwner:t.is_owner}),l["default"].createElement("li",{className:"dropdown-header"}),l["default"].createElement("li",null,l["default"].createElement("a",{href:t.url},gettext("See profile"))),l["default"].createElement("li",{role:"separator",className:"divider"}),l["default"].createElement(i["default"],e),l["default"].createElement(c["default"],e))))},a.UserStatus=r;var o=e("react"),l=n(o),s=e("./make-owner"),i=n(s),u=e("./remove"),c=n(u),d=e("../../avatar"),f=n(d)},{"../../avatar":3,"./make-owner":77,"./remove":78,react:"react"}],76:[function(e,t,a){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(a,"__esModule",{value:!0}),a["default"]=function(e){var t=e.participants,a=e.thread,n=e.user,r=e.userIsOwner;return o["default"].createElement("div",{className:"participants-cards"},o["default"].createElement("div",{className:"row"},t.map(function(e){return o["default"].createElement(s["default"],{key:e.id,participant:e,thread:a,user:n,userIsOwner:r})})))};var r=e("react"),o=n(r),l=e("./card"),s=n(l)},{"./card":75,react:"react"}],77:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./actions"),d=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onClick=function(){var e=!1;if(a.isUser)e=confirm(gettext("Are you sure you want to take over this thread?"));else{var t=gettext("Are you sure you want to change thread owner to %(user)s?");e=confirm(interpolate(t,{user:a.props.participant.username},!0))}e&&(0,c.changeOwner)(a.props.thread,a.props.participant)},a.isUser=e.participant.id===e.user.id,a}return l(t,e),s(t,[{key:"render",value:function(){return this.props.participant.is_owner?null:this.props.thread.acl.can_change_owner?u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick,type:"button"},gettext("Make owner"))):null}}]),t}(u["default"].Component);a["default"]=d},{"./actions":74,react:"react"}],78:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0});var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("./actions"),d=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a.onClick=function(){var e=!1;if(a.isUser)e=confirm(gettext("Are you sure you want to leave this thread?"));else{var t=gettext("Are you sure you want to remove %(user)s from this thread?");e=confirm(interpolate(t,{user:a.props.participant.username},!0))}e&&(a.isUser?(0,c.leave)(a.props.thread,a.props.participant):(0,c.remove)(a.props.thread,a.props.participant))},a.isUser=e.participant.id===e.user.id,a}return l(t,e),s(t,[{key:"render",value:function(){var e=this.props.user.acl.can_moderate_private_threads;return this.props.userIsOwner||this.isUser||e?u["default"].createElement("li",null,u["default"].createElement("button",{className:"btn btn-link",onClick:this.onClick,type:"button"},this.isUser?gettext("Leave thread"):gettext("Remove"))):null}}]),t}(u["default"].Component);a["default"]=d},{"./actions":74,react:"react"}],79:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return t[0].id===e.id}Object.defineProperty(a,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e};a["default"]=function(e){return e.participants.length?i["default"].createElement("div",{className:"panel panel-default panel-participants"},i["default"].createElement("div",{className:"panel-body"},i["default"].createElement(f["default"],l({userIsOwner:o(e.user,e.participants)},e)),i["default"].createElement("div",{className:"row"},i["default"].createElement(c["default"],{thread:e.thread}),i["default"].createElement("div",{className:"col-xs-12 col-sm-9"},i["default"].createElement("p",null,m.getParticipantsCopy(e.participants)))))):null},a.getUserIsOwner=o;var s=e("react"),i=r(s),u=e("./add-participant"),c=r(u),d=e("./cards-list"),f=r(d),p=e("./utils"),m=n(p)},{"./add-participant":73,"./cards-list":76,"./utils":80,react:"react"}],80:[function(e,t,a){"use strict";function n(e){var t=e.length,a=ngettext("This thread has %(users)s participant.","This thread has %(users)s participants.",t);return interpolate(a,{users:t},!0)}Object.defineProperty(a,"__esModule",{value:!0}),a.getParticipantsCopy=n},{}],81:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(a,"__esModule",{value:!0}),a.LABELS=a.STYLES=void 0;var s=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}(),i=e("react"),u=n(i),c=e("../services/zxcvbn"),d=n(c),f=a.STYLES=["progress-bar-danger","progress-bar-warning","progress-bar-warning","progress-bar-primary","progress-bar-success"],p=a.LABELS=[gettext("Entered password is very weak."),gettext("Entered password is weak."),gettext("Entered password is average."),gettext("Entered password is strong."),gettext("Entered password is very strong.")],m=function(e){function t(e){r(this,t);var a=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return a._score=0,a._password=null,a._inputs=[],a.state={loaded:!1},a}return l(t,e),s(t,[{key:"componentDidMount",value:function(){var e=this;d["default"].load().then(function(){e.setState({loaded:!0})})}},{key:"getScore",value:function(e,t){var a=this,n=!1;return e!==this._password&&(n=!0),t.length!==this._inputs.length?n=!0:t.map(function(e,t){e.trim()!==a._inputs[t]&&(n=!0)}),n&&(this._score=d["default"].scorePassword(e,t),this._password=e,this._inputs=t.map(function(e){return e.trim()})),this._score}},{key:"render",value:function(){if(!this.state.loaded)return null;var e=this.getScore(this.props.password,this.props.inputs);return u["default"].createElement("div",{className:"help-block password-strength"},u["default"].createElement("div",{className:"progress"},u["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"},u["default"].createElement("span",{className:"sr-only"},p[e]))),u["default"].createElement("p",{className:"text-small"},p[e]))}}]),t}(u["default"].Component);a["default"]=m},{"../services/zxcvbn":349,react:"react"}],82:[function(e,t,a){"use strict";function n(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 l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=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(){for(var e="";12!=e.length;)e=Math.random().toString(36).replace(/[^a-zA-Z0-9]+/g,"").substr(1,12);return e}Object.defineProperty(a,"__esModule",{value:!0}),a.PollChoice=void 0;var i=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.generateRandomHash=s;var u=e("react"),c=n(u),d=function(e){function t(){var e,a,n,l;r(this,t);for(var i=arguments.length,u=Array(i),c=0;c<i;c++)u[c]=arguments[c];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(u))),n.onAdd=function(){var e=n.props.choices.slice();e.push({hash:s(),label:""}),n.props.setChoices(e)},n.onChange=function(e,t){var a=n.props.choices.map(function(a){return a.hash===e&&(a.label=t),a});n.props.setChoices(a)},n.onDelete=function(e){var t=n.props.choices.filter(function(t){return t.hash!==e});n.props.setChoices(t)},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){var e=this;return c["default"].createElement("div",{className:"poll-choices-control"},c["default"].createElement("ul",{className:"list-group"},this.props.choices.map(function(t){return c["default"].createElement(f,{canDelete:e.props.choices.length>2,choice:t,disabled:e.props.disabled,key:t.hash,onChange:e.onChange,onDelete:e.onDelete})})),c["default"].createElement("button",{className:"btn btn-default btn-sm",disabled:this.props.disabled,onClick:this.onAdd,type:"button"},gettext("Add choice")))}}]),t}(c["default"].Component);a["default"]=d;var f=a.PollChoice=function(e){function t(){var e,a,n,l;r(this,t);for(var s=arguments.length,i=Array(s),u=0;u<s;u++)i[u]=arguments[u];return a=n=o(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(i))),n.onChange=function(e){n.props.onChange(n.props.choice.hash,e.target.value)},n.onDelete=function(){var e=confirm(gettext("Are you sure you want to delete this choice?"));e&&n.props.onDelete(n.props.choice.hash)},l=a,o(n,l)}return l(t,e),i(t,[{key:"render",value:function(){return c["default"].createElement("li",{className:"list-group-item"},c["default"].createElement("button",{className:"btn",disabled:!this.props.canDelete||this.props.disabled,onClick:this.onDelete,title:gettext("Delete this choice"),type:"button"},c["default"].createElement("span",{className:"material-icon"},"close")),c["default"].createElement("input",{disabled:this.props.disabled,maxLength:"255",placeholder:gettext("choice label"),type:"text",onChange:this.onChange,value:this.props.choice.label}))}}]),t}(c["default"].Component)},{react:"react"}],83:[function(e,t,a){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);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 l(e,t){if(!e)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.isEdit?null:d["default"].createElement("div",{className:"col-xs-12 col-sm-6"},d["default"].createElement(g["default"],{label:gettext("Make voting public"),helpText:gettext("Making voting public will allow everyone to access detailed list of votes, showing which users voted for which choices and at which times. This option can't be changed after poll's creation. Moderators may see voting details for all polls."),"for":"id_is_public"},d["default"].createElement(E["default"],{id:"id_is_public",disabled:e.disabled,iconOn:"visibility",iconOff:"visibility_off",labelOn:gettext("Votes are public"),labelOff:gettext("Votes are hidden"),onChange:e.bindInput("is_public"),value:e.value})))}Object.defineProperty(a,"__esModule",{value:!0});var u=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();a.PollPublicSwitch=i;var c=e("react"),d=r(c),f=e("./choices-control"),p=r(f),m=e("../../button"),h=r(m),b=e("../../form"),v=r(b),y=e("../../form-group"),g=r(y),_=e("../../yes-no-switch"),E=r(_),w=e("../../../reducers/poll"),O=n(w),k=e("../../../services/ajax"),x=r(k),N=e("../../../services/posting"),j=r(N),P=e("../../../services/snackbar"),C=r(P),S=e("../../../services/store"),M=r(S),T=function(e){function t(e){o(this,t);var a=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));a.setChoices=function(e){var t=Object.assign({},t,{choices:null});a.setState({choices:e,errors:t})},a.onCancel=function(){var e=confirm(gettext("Are you sure you want to discard poll?"));e&&j["default"].close()};var n=e.poll||{question:"",choices:[{hash:"choice-10000",label:""},{hash:"choice-20000",label:""}],length:0,allowed_choices:1,allow_revotes:0,is_public:0};return a.state={isLoading:!1,isEdit:!!n.question,question:n.question,choices:n.choices,length:n.length,allowed_choices:n.allowed_choices,allow_revotes:n.allow_revotes,is_public:n.is_public,validators:{question:[],choices:[],length:[],allowed_choices:[]},errors:{}},a}return s(t,e),u(t,[{key:"send",value:function(){var e={question:this.state.question,choices:this.state.choices,length:this.state.length,allowed_choices:this.state.allowed_choices,allow_revotes:this.state.allow_revotes,is_public:this.state.is_public};return this.state.isEdit?x["default"].put(this.props.poll.api.index,e):x["default"].post(this.props.thread.api.poll,e)}},{key:"handleSuccess",value:function(e){M["default"].dispatch(O.replace(e)),this.state.isEdit?C["default"].success(gettext("Poll has been edited.")):C["default"].success(gettext("Poll has been posted.")),j["default"].close()}},{key:"handleError",value:function(e){400===e.status?(e.non_field_errors&&(e.allowed_choices=e.non_field_errors),this.setState({errors:Object.assign({},e)}),C["default"].error(gettext("Form contains errors."))):C["default"].apiError(e)}},{key:"render",value:function(){return d["default"].createElement("div",{className:"poll-form"},d["default"].createElement("div",{className:"container"},d["default"].createElement("form",{onSubmit:this.handleSubmit},d["default"].createElement("div",{className:"panel panel-default panel-form"},d["default"].createElement("div",{className:"panel-body"},d["default"].createElement("fieldset",null,d["default"].createElement("legend",null,gettext("Question and choices")),d["default"].createElement(g["default"],{

File diff suppressed because it is too large
+ 0 - 0
misago/static/misago/js/misago.js.map


+ 18 - 1
misago/users/profilefields/default.py

@@ -38,17 +38,34 @@ class GenderField(basefields.ChoiceProfileField):
 class WebsiteField(basefields.UrlProfileField):
 class WebsiteField(basefields.UrlProfileField):
     fieldname = 'website'
     fieldname = 'website'
     label = _("Website")
     label = _("Website")
+    help_text = _(
+        'If you own website in the internet you wish to share on your profile '
+        'you may enter its address here. Remember to for it to be valid http '
+        'address starting with either "http://" or "https://".'
+    )
 
 
 
 
 class SkypeHandleField(basefields.TextProfileField):
 class SkypeHandleField(basefields.TextProfileField):
     fieldname = 'skype'
     fieldname = 'skype'
     label = _("Skype ID")
     label = _("Skype ID")
+    help_text = _(
+        "Entering your Skype ID in this field may invite other users to contact you over "
+        "the Skype instead of via private threads."
+    )
 
 
 
 
 class TwitterHandleField(basefields.TextProfileField):
 class TwitterHandleField(basefields.TextProfileField):
     fieldname = 'twitter'
     fieldname = 'twitter'
     label = _("Twitter handle")
     label = _("Twitter handle")
-    help_text = _('Without leading "@" sign.')
+
+    def get_help_text(self, user):
+        return _(
+            'If you own Twitter account, here you may enter your Twitter handle for other users '
+            'to find you. Starting your handle with "@" sign is optional. Either "@%(slug)s" or '
+            '"%(slug)s" are valid values.'
+        ) % {
+            'slug': user.slug
+        }
 
 
     def get_value_display_data(self, request, user, data):
     def get_value_display_data(self, request, user, data):
         return {
         return {

Some files were not shown because too many files changed in this diff