spc-pleroma/priv/static/packs/modals/onboarding_modal-399f44a19d...

1 line
393 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"sources":["webpack:///modals/onboarding_modal-399f44a19ddd0ddc4e9c.js","webpack:///./app/javascript/mastodon/features/ui/components/column_header.js","webpack:///./app/javascript/mastodon/features/compose/components/compose_form.js","webpack:///./app/javascript/mastodon/features/compose/components/character_counter.js","webpack:///./app/javascript/mastodon/features/compose/containers/reply_indicator_container.js","webpack:///./app/javascript/mastodon/features/compose/components/reply_indicator.js","webpack:///./app/javascript/mastodon/components/autosuggest_textarea.js","webpack:///./app/javascript/mastodon/features/compose/containers/autosuggest_account_container.js","webpack:///./app/javascript/mastodon/features/compose/components/autosuggest_account.js","webpack:///./app/javascript/mastodon/components/autosuggest_emoji.js","webpack:///./node_modules/react-textarea-autosize/es/index.js","webpack:///./app/javascript/mastodon/features/compose/containers/upload_button_container.js","webpack:///./app/javascript/mastodon/features/compose/components/upload_button.js","webpack:///./app/javascript/mastodon/components/collapsable.js","webpack:///./app/javascript/mastodon/features/compose/containers/spoiler_button_container.js","webpack:///./app/javascript/mastodon/features/compose/components/text_icon_button.js","webpack:///./app/javascript/mastodon/features/compose/containers/privacy_dropdown_container.js","webpack:///./app/javascript/mastodon/features/compose/components/privacy_dropdown.js","webpack:///./app/javascript/mastodon/features/compose/containers/sensitive_button_container.js","webpack:///./app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js","webpack:///./app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js","webpack:///./app/javascript/mastodon/features/compose/containers/upload_form_container.js","webpack:///./app/javascript/mastodon/features/compose/components/upload_form.js","webpack:///./app/javascript/mastodon/features/compose/containers/upload_progress_container.js","webpack:///./app/javascript/mastodon/features/compose/components/upload_progress.js","webpack:///./app/javascript/mastodon/features/compose/containers/upload_container.js","webpack:///./app/javascript/mastodon/features/compose/components/upload.js","webpack:///./app/javascript/mastodon/features/compose/containers/warning_container.js","webpack:///./app/javascript/mastodon/features/compose/components/warning.js","webpack:///./app/javascript/mastodon/features/compose/util/counter.js","webpack:///./app/javascript/mastodon/features/compose/util/url_regex.js","webpack:///./app/javascript/mastodon/features/ui/components/onboarding_modal.js","webpack:///./app/javascript/mastodon/features/compose/components/navigation_bar.js","webpack:///./app/javascript/mastodon/features/compose/components/search.js"],"names":["webpackJsonp","150","module","__webpack_exports__","__webpack_require__","d","ColumnHeader","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","_React$PureComponent","_temp","_this","_ret","this","_len","arguments","length","args","Array","_key","call","apply","concat","handleClick","props","onClick","prototype","render","_props","type","active","columnHeaderId","icon","className","role","tabIndex","id","a","PureComponent","286","ComposeForm","_class","_class2","_temp2","__WEBPACK_IMPORTED_MODULE_5__character_counter__","__WEBPACK_IMPORTED_MODULE_6__components_button__","__WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_8_prop_types__","__WEBPACK_IMPORTED_MODULE_8_prop_types___default","__WEBPACK_IMPORTED_MODULE_9__containers_reply_indicator_container__","__WEBPACK_IMPORTED_MODULE_10__components_autosuggest_textarea__","__WEBPACK_IMPORTED_MODULE_11__containers_upload_button_container__","__WEBPACK_IMPORTED_MODULE_12_react_intl__","__WEBPACK_IMPORTED_MODULE_13__components_collapsable__","__WEBPACK_IMPORTED_MODULE_14__containers_spoiler_button_container__","__WEBPACK_IMPORTED_MODULE_15__containers_privacy_dropdown_container__","__WEBPACK_IMPORTED_MODULE_16__containers_sensitive_button_container__","__WEBPACK_IMPORTED_MODULE_17__containers_emoji_picker_dropdown_container__","__WEBPACK_IMPORTED_MODULE_18__containers_upload_form_container__","__WEBPACK_IMPORTED_MODULE_19__containers_warning_container__","__WEBPACK_IMPORTED_MODULE_20__is_mobile__","__WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_22_stringz__","__WEBPACK_IMPORTED_MODULE_23__util_counter__","messages","Object","placeholder","defaultMessage","spoiler_placeholder","publish","publishLoud","_ImmutablePureCompone","handleChange","e","onChange","target","value","handleKeyDown","keyCode","ctrlKey","metaKey","handleSubmit","text","autosuggestTextarea","textarea","onSubmit","onSuggestionsClearRequested","onClearSuggestions","onSuggestionsFetchRequested","token","onFetchSuggestions","onSuggestionSelected","tokenStart","_restoreCaret","handleChangeSpoilerText","onChangeSpoilerText","setAutosuggestTextarea","c","handleEmojiPick","data","position","selectionStart","emojiChar","native","onPickEmoji","componentWillReceiveProps","nextProps","is_uploading","componentDidUpdate","prevProps","focusDate","selectionEnd","preselectDate","search","setSelectionRange","focus","is_submitting","intl","onPaste","showSearch","disabled","spoiler_text","join","publishText","privacy","formatMessage","isVisible","spoiler","fullHeight","style","display","onKeyDown","createElement","ref","suggestions","autoFocus","window","innerWidth","max","trim","block","propTypes","object","isRequired","string","suggestion_token","list","bool","instanceOf","Date","func","defaultProps","287","CharacterCounter","__WEBPACK_IMPORTED_MODULE_5_stringz__","checkRemainingText","diff","288","__WEBPACK_IMPORTED_MODULE_0_react_redux__","__WEBPACK_IMPORTED_MODULE_1__actions_compose__","__WEBPACK_IMPORTED_MODULE_2__selectors__","__WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__","makeMapStateToProps","getStatus","state","status","getIn","mapDispatchToProps","dispatch","onCancel","289","ReplyIndicator","__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_6_prop_types__","__WEBPACK_IMPORTED_MODULE_6_prop_types___default","__WEBPACK_IMPORTED_MODULE_7__components_avatar__","__WEBPACK_IMPORTED_MODULE_8__components_icon_button__","__WEBPACK_IMPORTED_MODULE_9__components_display_name__","__WEBPACK_IMPORTED_MODULE_10_react_intl__","__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default","cancel","handleAccountClick","button","preventDefault","context","router","history","push","content","__html","get","title","href","account","size","dangerouslySetInnerHTML","contextTypes","map","290","AutosuggestTextarea","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_5_react__","__WEBPACK_IMPORTED_MODULE_6__features_compose_containers_autosuggest_account_container__","__WEBPACK_IMPORTED_MODULE_7__autosuggest_emoji__","__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_9_prop_types__","__WEBPACK_IMPORTED_MODULE_9_prop_types___default","__WEBPACK_IMPORTED_MODULE_10__rtl__","__WEBPACK_IMPORTED_MODULE_12_react_textarea_autosize__","__WEBPACK_IMPORTED_MODULE_13_classnames__","__WEBPACK_IMPORTED_MODULE_13_classnames___default","textAtCursorMatchesToken","str","caretPosition","word","left","slice","right","indexOf","toLowerCase","suggestionsHidden","selectedSuggestion","lastToken","_textAtCursorMatchesT","setState","_this$props","_this$state","key","Math","min","stopPropagation","defaultPrevented","onKeyUp","document","querySelector","parentElement","onBlur","onSuggestionClick","suggestion","currentTarget","getAttribute","setTextarea","clipboardData","files","renderSuggestion","i","inner","emoji","data-index","selected","onMouseDown","direction","inputRef","isEmpty","291","__WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__","getAccount","_ref","292","AutosuggestAccount","__WEBPACK_IMPORTED_MODULE_5__components_avatar__","__WEBPACK_IMPORTED_MODULE_6__components_display_name__","__WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component___default","293","process","AutosuggestEmoji","__WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light__","__WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light___default","assetHost","env","CDN_HOST","url","custom","imageUrl","mapping","replace","filename","src","alt","colons","294","calculateNodeHeight","uiTextNode","uid","useCache","undefined","minRows","maxRows","hiddenTextarea","parentNode","body","appendChild","nodeStyling","calculateNodeStyling","paddingSize","borderSize","boxSizing","sizingStyle","keys","forEach","HIDDEN_TEXTAREA_STYLE","setProperty","minHeight","Infinity","maxHeight","height","scrollHeight","singleRowHeight","rowCount","floor","node","computedStyleCache","getComputedStyle","SIZING_STYLE","reduce","obj","name","getPropertyValue","isIE","width","parseFloat","nodeInfo","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_prop_types__","isBrowser","documentElement","currentStyle","min-height","max-height","visibility","overflow","z-index","top","purgeCache","seed","classCallCheck","instance","Constructor","TypeError","_extends","assign","source","hasOwnProperty","inherits","subClass","superClass","create","constructor","enumerable","writable","configurable","setPrototypeOf","__proto__","objectWithoutProperties","possibleConstructorReturn","self","ReferenceError","noop","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","onNextFrame","clearNextFrameAction","TextareaAutosize","_React$Component","_resizeLock","_onRootDOMNode","_rootDOMNode","_onChange","event","_controlled","_resizeComponent","callback","nodeHeight","_uid","useCacheForDOMMeasurements","onHeightChange","componentDidMount","_this2","_resizeListener","addEventListener","_this3","_clearNextFrame","_onNextFrameActionId","prevState","componentWillUnmount","removeEventListener","Component","295","__WEBPACK_IMPORTED_MODULE_1__components_upload_button__","__WEBPACK_IMPORTED_MODULE_2__actions_compose__","mapStateToProps","some","m","resetFileKey","onSelectFile","296","UploadButton","_dec","__WEBPACK_IMPORTED_MODULE_5__components_icon_button__","__WEBPACK_IMPORTED_MODULE_7_react_intl__","__WEBPACK_IMPORTED_MODULE_8_react_redux__","__WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes___default","upload","acceptContentTypes","iconStyle","lineHeight","fileElement","click","setRef","inverted","multiple","accept","toArray","number","listOf","297","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_2__features_ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring___default","Collapsable","children","defaultStyle","opacity","_ref2","298","__WEBPACK_IMPORTED_MODULE_1__components_text_icon_button__","__WEBPACK_IMPORTED_MODULE_3_react_intl__","label","ariaControls","299","TextIconButton","aria-label","aria-expanded","aria-controls","300","__WEBPACK_IMPORTED_MODULE_1__components_privacy_dropdown__","__WEBPACK_IMPORTED_MODULE_3__actions_modal__","__WEBPACK_IMPORTED_MODULE_4__is_mobile__","isModalOpen","modalType","isUserTouching","onModalOpen","onModalClose","301","PrivacyDropdown","__WEBPACK_IMPORTED_MODULE_5_react_intl__","__WEBPACK_IMPORTED_MODULE_6__components_icon_button__","__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__","__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default","__WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default","__WEBPACK_IMPORTED_MODULE_10_detect_passive_events__","__WEBPACK_IMPORTED_MODULE_10_detect_passive_events___default","__WEBPACK_IMPORTED_MODULE_11_classnames__","__WEBPACK_IMPORTED_MODULE_11_classnames___default","public_short","public_long","unlisted_short","unlisted_long","private_short","private_long","direct_short","direct_long","change_privacy","listenerOptions","hasSupport","passive","PrivacyDropdownMenu","handleDocumentClick","contains","onClose","items","scaleX","scaleY","damping","stiffness","transform","item","meta","_React$PureComponent2","_ret2","_len2","_key2","open","handleToggle","actions","options","option","handleModalActionClick","handleClose","componentWillMount","_props2","valueOption","find","expanded","show","placement","302","__WEBPACK_IMPORTED_MODULE_5_react_redux__","__WEBPACK_IMPORTED_MODULE_6_classnames__","__WEBPACK_IMPORTED_MODULE_6_classnames___default","__WEBPACK_IMPORTED_MODULE_7__components_icon_button__","__WEBPACK_IMPORTED_MODULE_8__actions_compose__","__WEBPACK_IMPORTED_MODULE_9__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring___default","__WEBPACK_IMPORTED_MODULE_11_react_intl__","visible","SensitiveButton","scale","compose-form__sensitive-button--visible","303","__WEBPACK_IMPORTED_MODULE_1__components_emoji_picker_dropdown__","__WEBPACK_IMPORTED_MODULE_2__actions_settings__","__WEBPACK_IMPORTED_MODULE_3_reselect__","__WEBPACK_IMPORTED_MODULE_4_immutable__","__WEBPACK_IMPORTED_MODULE_5__actions_emojis__","DEFAULTS","getFrequentlyUsedEmojis","emojiCounters","emojis","keySeq","sort","b","reverse","perLine","getCustomEmojis","filter","aShort","bShort","custom_emojis","skinTone","frequentlyUsedEmojis","onSkinTone","304","EmojiPickerDropdown","_class3","_class4","_temp4","_class5","__WEBPACK_IMPORTED_MODULE_6__ui_util_async_components__","__WEBPACK_IMPORTED_MODULE_8_classnames__","__WEBPACK_IMPORTED_MODULE_8_classnames___default","__WEBPACK_IMPORTED_MODULE_9_detect_passive_events__","__WEBPACK_IMPORTED_MODULE_9_detect_passive_events___default","__WEBPACK_IMPORTED_MODULE_10__emoji_emoji__","emoji_search","emoji_not_found","recent","search_results","people","nature","food","activity","travel","objects","symbols","flags","EmojiPicker","Emoji","backgroundImageFn","categoriesSort","ModifierPickerMenu","onSelect","attachListeners","removeListeners","set","sheetSize","skin","ModifierPicker","onOpen","handleSelect","modifier","EmojiPickerMenu","_React$PureComponent3","_temp3","_ret3","_len3","_key3","modifierOpen","getI18n","notfound","categories","foods","places","onPick","handleModifierOpen","handleModifierClose","handleModifierChange","loading","selecting","emojiSize","color","i18n","include","showPreview","emojiTooltip","_React$PureComponent4","_temp5","_this4","_ret4","_len4","_key4","dropdown","onShowDropdown","then","EmojiMart","Picker","catch","onHideDropdown","onToggle","setTargetRef","findTarget","_props3","_state","pulse-loading","305","__WEBPACK_IMPORTED_MODULE_1__components_upload_form__","mediaIds","306","UploadForm","__WEBPACK_IMPORTED_MODULE_6__containers_upload_progress_container__","__WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_8__containers_upload_container__","307","__WEBPACK_IMPORTED_MODULE_1__components_upload_progress__","progress","308","UploadProgress","__WEBPACK_IMPORTED_MODULE_5__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default","309","__WEBPACK_IMPORTED_MODULE_1__components_upload__","media","onUndo","onDescriptionChange","description","310","Upload","__WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_12_classnames__","__WEBPACK_IMPORTED_MODULE_12_classnames___default","undo","hovered","focused","dirtyDescription","handleUndoClick","handleInputChange","handleMouseEnter","handleMouseLeave","handleInputFocus","handleInputBlur","onMouseEnter","onMouseLeave","backgroundImage","maxLength","onFocus","311","__WEBPACK_IMPORTED_MODULE_2_react_redux__","__WEBPACK_IMPORTED_MODULE_3__components_warning__","__WEBPACK_IMPORTED_MODULE_4_react_intl__","__WEBPACK_IMPORTED_MODULE_5__initial_state__","needsLockWarning","WarningWrapper","message","values","locked","312","Warning","313","countableText","inputText","__WEBPACK_IMPORTED_MODULE_0__url_regex__","urlPlaceholder","314","urlRegex","regexen","regexSupplant","regex","global","ignoreCase","multiline","RegExp","match","newRegex","stringSupplant","spaces_group","invalid_chars_group","punct","validUrlPrecedingChars","invalidDomainChars","validDomainChars","validSubdomain","validDomainName","validGTLD","validCCTLD","validPunycode","validSpecialCCTLD","validDomain","validPortNumber","pd","validGeneralUrlPathChars","validUrlBalancedParens","validUrlPathEndingChars","validUrlPath","validUrlQueryChars","validUrlQueryEndingChars","validUrl","772","defineProperty","OnboardingModal","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default","__WEBPACK_IMPORTED_MODULE_6_react_intl__","__WEBPACK_IMPORTED_MODULE_7_react_swipeable_views__","__WEBPACK_IMPORTED_MODULE_7_react_swipeable_views___default","__WEBPACK_IMPORTED_MODULE_9__components_permalink__","__WEBPACK_IMPORTED_MODULE_10__compose_components_compose_form__","__WEBPACK_IMPORTED_MODULE_11__compose_components_search__","__WEBPACK_IMPORTED_MODULE_12__compose_components_navigation_bar__","__WEBPACK_IMPORTED_MODULE_13__column_header__","__WEBPACK_IMPORTED_MODULE_14_immutable__","__WEBPACK_IMPORTED_MODULE_15__initial_state__","home_title","notifications_title","local_title","federated_title","PageOne","acct","domain","flex","handle","PageTwo","myAccount","mentionedDomains","PageThree","_ref3","onClear","onShow","illustration","to","introductions","PageFour","_ref4","marginBottom","PageSix","_ref5","admin","adminSection","guidelines","github","rel","apps","currentIndex","handleSkip","handleDot","Number","handlePrev","_ref6","handleNext","pages","_ref7","handleSwipe","index","handleKeyUp","_ref8","hasMore","nextOrDoneBtn","onChangeIndex","page","onboarding-modal__page__wrapper--active","_","802","NavigationBar","__WEBPACK_IMPORTED_MODULE_5_prop_types__","__WEBPACK_IMPORTED_MODULE_5_prop_types___default","__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default","803","Search","__WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay__","__WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay___default","__WEBPACK_IMPORTED_MODULE_7__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring___default","SearchPopout","handleClear","submitted","handleFocus","handleBlur","hasValue"],"mappings":"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","file":"modals/onboarding_modal-399f44a19ddd0ddc4e9c.js","sourcesContent":["webpackJsonp([3],{\n\n/***/ 150:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColumnHeader; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n\n\n\n\n\n\nvar ColumnHeader = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ColumnHeader, _React$PureComponent);\n\n function ColumnHeader() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ColumnHeader);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleClick = function () {\n _this.props.onClick();\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ColumnHeader.prototype.render = function render() {\n var _props = this.props,\n type = _props.type,\n active = _props.active,\n columnHeaderId = _props.columnHeaderId;\n\n\n var icon = '';\n\n if (this.props.icon) {\n icon = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-fw fa-' + this.props.icon + ' column-header__icon'\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n role: 'heading',\n tabIndex: '0',\n className: 'column-header ' + (active ? 'active' : ''),\n onClick: this.handleClick,\n id: columnHeaderId || null\n }, void 0, icon, type);\n };\n\n return ColumnHeader;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 286:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ComposeForm; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__character_counter__ = __webpack_require__(287);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_button__ = __webpack_require__(101);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__containers_reply_indicator_container__ = __webpack_require__(288);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_autosuggest_textarea__ = __webpack_require__(290);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_upload_button_container__ = __webpack_require__(295);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__components_collapsable__ = __webpack_require__(297);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__containers_spoiler_button_container__ = __webpack_require__(298);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__containers_privacy_dropdown_container__ = __webpack_require__(300);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__containers_sensitive_button_container__ = __webpack_require__(302);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__containers_emoji_picker_dropdown_container__ = __webpack_require__(303);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__containers_upload_form_container__ = __webpack_require__(305);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__containers_warning_container__ = __webpack_require__(311);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__is_mobile__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22_stringz__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22_stringz___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_22_stringz__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23__util_counter__ = __webpack_require__(313);\n\n\n\n\n\nvar _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_12_react_intl__[\"f\" /* defineMessages */])({\n placeholder: {\n 'id': 'compose_form.placeholder',\n 'defaultMessage': 'What is on your mind?'\n },\n spoiler_placeholder: {\n 'id': 'compose_form.spoiler_placeholder',\n 'defaultMessage': 'Write your warning here'\n },\n publish: {\n 'id': 'compose_form.publish',\n 'defaultMessage': 'Toot'\n },\n publishLoud: {\n 'id': 'compose_form.publish_loud',\n 'defaultMessage': '{publish}!'\n }\n});\n\nvar ComposeForm = Object(__WEBPACK_IMPORTED_MODULE_12_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ComposeForm, _ImmutablePureCompone);\n\n function ComposeForm() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ComposeForm);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.call.apply(_ImmutablePureCompone, [this].concat(args))), _this), _this.handleChange = function (e) {\n _this.props.onChange(e.target.value);\n }, _this.handleKeyDown = function (e) {\n if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {\n _this.handleSubmit();\n }\n }, _this.handleSubmit = function () {\n if (_this.props.text !== _this.autosuggestTextarea.textarea.value) {\n // Something changed the text inside the textarea (e.g. browser extensions like Grammarly)\n // Update the state to match the current text\n _this.props.onChange(_this.autosuggestTextarea.textarea.value);\n }\n\n _this.props.onSubmit();\n }, _this.onSuggestionsClearRequested = function () {\n _this.props.onClearSuggestions();\n }, _this.onSuggestionsFetchRequested = function (token) {\n _this.props.onFetchSuggestions(token);\n }, _this.onSuggestionSelected = function (tokenStart, token, value) {\n _this._restoreCaret = null;\n _this.props.onSuggestionSelected(tokenStart, token, value);\n }, _this.handleChangeSpoilerText = function (e) {\n _this.props.onChangeSpoilerText(e.target.value);\n }, _this.setAutosuggestTextarea = function (c) {\n _this.autosuggestTextarea = c;\n }, _this.handleEmojiPick = function (data) {\n var position = _this.autosuggestTextarea.textarea.selectionStart;\n var emojiChar = data.native;\n _this._restoreCaret = position + emojiChar.length + 1;\n _this.props.onPickEmoji(position, data);\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ComposeForm.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n // If this is the update where we've finished uploading,\n // save the last caret position so we can restore it below!\n if (!nextProps.is_uploading && this.props.is_uploading) {\n this._restoreCaret = this.autosuggestTextarea.textarea.selectionStart;\n }\n };\n\n ComposeForm.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n // This statement does several things:\n // - If we're beginning a reply, and,\n // - Replying to zero or one users, places the cursor at the end of the textbox.\n // - Replying to more than one user, selects any usernames past the first;\n // this provides a convenient shortcut to drop everyone else from the conversation.\n // - If we've just finished uploading an image, and have a saved caret position,\n // restores the cursor to that position after the text changes!\n if (this.props.focusDate !== prevProps.focusDate || prevProps.is_uploading && !this.props.is_uploading && typeof this._restoreCaret === 'number') {\n var selectionEnd = void 0,\n selectionStart = void 0;\n\n if (this.props.preselectDate !== prevProps.preselectDate) {\n selectionEnd = this.props.text.length;\n selectionStart = this.props.text.search(/\\s/) + 1;\n } else if (typeof this._restoreCaret === 'number') {\n selectionStart = this._restoreCaret;\n selectionEnd = this._restoreCaret;\n } else {\n selectionEnd = this.props.text.length;\n selectionStart = selectionEnd;\n }\n\n this.autosuggestTextarea.textarea.setSelectionRange(selectionStart, selectionEnd);\n this.autosuggestTextarea.textarea.focus();\n } else if (prevProps.is_submitting && !this.props.is_submitting) {\n this.autosuggestTextarea.textarea.focus();\n }\n };\n\n ComposeForm.prototype.render = function render() {\n var _props = this.props,\n intl = _props.intl,\n onPaste = _props.onPaste,\n showSearch = _props.showSearch;\n\n var disabled = this.props.is_submitting;\n var text = [this.props.spoiler_text, Object(__WEBPACK_IMPORTED_MODULE_23__util_counter__[\"a\" /* countableText */])(this.props.text)].join('');\n\n var publishText = '';\n\n if (this.props.privacy === 'private' || this.props.privacy === 'direct') {\n publishText = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'compose-form__publish-private'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-lock'\n }), ' ', intl.formatMessage(messages.publish));\n } else {\n publishText = this.props.privacy !== 'unlisted' ? intl.formatMessage(messages.publishLoud, { publish: intl.formatMessage(messages.publish) }) : intl.formatMessage(messages.publish);\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__components_collapsable__[\"a\" /* default */], {\n isVisible: this.props.spoiler,\n fullHeight: 50\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'spoiler-input'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('label', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, intl.formatMessage(messages.spoiler_placeholder)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('input', {\n placeholder: intl.formatMessage(messages.spoiler_placeholder),\n value: this.props.spoiler_text,\n onChange: this.handleChangeSpoilerText,\n onKeyDown: this.handleKeyDown,\n type: 'text',\n className: 'spoiler-input__input',\n id: 'cw-spoiler-input'\n })))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_19__containers_warning_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__containers_reply_indicator_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__autosuggest-wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__components_autosuggest_textarea__[\"a\" /* default */], {\n ref: this.setAutosuggestTextarea,\n placeholder: intl.formatMessage(messages.placeholder),\n disabled: disabled,\n value: this.props.text,\n onChange: this.handleChange,\n suggestions: this.props.suggestions,\n onKeyDown: this.handleKeyDown,\n onSuggestionsFetchRequested: this.onSuggestionsFetchRequested,\n onSuggestionsClearRequested: this.onSuggestionsClearRequested,\n onSuggestionSelected: this.onSuggestionSelected,\n onPaste: onPaste,\n autoFocus: !showSearch && !Object(__WEBPACK_IMPORTED_MODULE_20__is_mobile__[\"b\" /* isMobile */])(window.innerWidth)\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_17__containers_emoji_picker_dropdown_container__[\"a\" /* default */], {\n onPickEmoji: this.handleEmojiPick\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__modifiers'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_18__containers_upload_form_container__[\"a\" /* default */], {})), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__buttons-wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__buttons'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__containers_upload_button_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_15__containers_privacy_dropdown_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_16__containers_sensitive_button_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_14__containers_spoiler_button_container__[\"a\" /* default */], {})), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__publish'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'character-counter__wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__character_counter__[\"a\" /* default */], {\n max: 500,\n text: text\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__publish-button-wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_button__[\"a\" /* default */], {\n text: publishText,\n onClick: this.handleSubmit,\n disabled: disabled || this.props.is_uploading || Object(__WEBPACK_IMPORTED_MODULE_22_stringz__[\"length\"])(text) > 500 || text.length !== 0 && text.trim().length === 0,\n block: true\n })))));\n };\n\n return ComposeForm;\n}(__WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component___default.a), _class2.propTypes = {\n intl: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.object.isRequired,\n text: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string.isRequired,\n suggestion_token: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string,\n suggestions: __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes___default.a.list,\n spoiler: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n privacy: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string,\n spoiler_text: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.string,\n focusDate: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.instanceOf(Date),\n preselectDate: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.instanceOf(Date),\n is_submitting: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n is_uploading: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool,\n onChange: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onSubmit: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onClearSuggestions: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onFetchSuggestions: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onSuggestionSelected: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onChangeSpoilerText: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onPaste: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n onPickEmoji: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.func.isRequired,\n showSearch: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool\n}, _class2.defaultProps = {\n showSearch: false\n}, _temp2)) || _class;\n\n\n\n/***/ }),\n\n/***/ 287:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return CharacterCounter; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_stringz__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_stringz___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_stringz__);\n\n\n\n\n\n\n\n\nvar CharacterCounter = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(CharacterCounter, _React$PureComponent);\n\n function CharacterCounter() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, CharacterCounter);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n CharacterCounter.prototype.checkRemainingText = function checkRemainingText(diff) {\n if (diff < 0) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'character-counter character-counter--over'\n }, void 0, diff);\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'character-counter'\n }, void 0, diff);\n };\n\n CharacterCounter.prototype.render = function render() {\n var diff = this.props.max - Object(__WEBPACK_IMPORTED_MODULE_5_stringz__[\"length\"])(this.props.text);\n return this.checkRemainingText(diff);\n };\n\n return CharacterCounter;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 288:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__ = __webpack_require__(289);\n\n\n\n\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getStatus = Object(__WEBPACK_IMPORTED_MODULE_2__selectors__[\"e\" /* makeGetStatus */])();\n\n var mapStateToProps = function mapStateToProps(state) {\n return {\n status: getStatus(state, state.getIn(['compose', 'in_reply_to']))\n };\n };\n\n return mapStateToProps;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onCancel: function onCancel() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_1__actions_compose__[\"B\" /* cancelReplyCompose */])());\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(makeMapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 289:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ReplyIndicator; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_avatar__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_display_name__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__);\n\n\n\n\n\nvar _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"f\" /* defineMessages */])({\n cancel: {\n 'id': 'reply_indicator.cancel',\n 'defaultMessage': 'Cancel'\n }\n});\n\nvar ReplyIndicator = Object(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ReplyIndicator, _ImmutablePureCompone);\n\n function ReplyIndicator() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ReplyIndicator);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.call.apply(_ImmutablePureCompone, [this].concat(args))), _this), _this.handleClick = function () {\n _this.props.onCancel();\n }, _this.handleAccountClick = function (e) {\n if (e.button === 0) {\n e.preventDefault();\n _this.context.router.history.push('/accounts/' + _this.props.status.getIn(['account', 'id']));\n }\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ReplyIndicator.prototype.render = function render() {\n var _props = this.props,\n status = _props.status,\n intl = _props.intl;\n\n\n if (!status) {\n return null;\n }\n\n var content = { __html: status.get('contentHtml') };\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'reply-indicator'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'reply-indicator__header'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'reply-indicator__cancel'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__components_icon_button__[\"a\" /* default */], {\n title: intl.formatMessage(messages.cancel),\n icon: 'times',\n onClick: this.handleClick\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: status.getIn(['account', 'url']),\n onClick: this.handleAccountClick,\n className: 'reply-indicator__display-name'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'reply-indicator__display-avatar'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__components_avatar__[\"a\" /* default */], {\n account: status.get('account'),\n size: 24\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_display_name__[\"a\" /* default */], {\n account: status.get('account')\n }))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'reply-indicator__content',\n dangerouslySetInnerHTML: content\n }));\n };\n\n return ReplyIndicator;\n}(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default.a), _class2.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object\n}, _class2.propTypes = {\n status: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.map,\n onCancel: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n intl: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired\n}, _temp2)) || _class;\n\n\n\n/***/ }),\n\n/***/ 290:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AutosuggestTextarea; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__features_compose_containers_autosuggest_account_container__ = __webpack_require__(291);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__autosuggest_emoji__ = __webpack_require__(293);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__rtl__ = __webpack_require__(161);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_textarea_autosize__ = __webpack_require__(294);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_classnames__);\n\n\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\n\n\n\n\n\n\nvar textAtCursorMatchesToken = function textAtCursorMatchesToken(str, caretPosition) {\n var word = void 0;\n\n var left = str.slice(0, caretPosition).search(/\\S+$/);\n var right = str.slice(caretPosition).search(/\\s/);\n\n if (right < 0) {\n word = str.slice(left);\n } else {\n word = str.slice(left, right + caretPosition);\n }\n\n if (!word || word.trim().length < 3 || ['@', ':'].indexOf(word[0]) === -1) {\n return [null, null];\n }\n\n word = word.trim().toLowerCase();\n\n if (word.length > 0) {\n return [left + 1, word];\n } else {\n return [null, null];\n }\n};\n\nvar AutosuggestTextarea = (_temp2 = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(AutosuggestTextarea, _ImmutablePureCompone);\n\n function AutosuggestTextarea() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, AutosuggestTextarea);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.call.apply(_ImmutablePureCompone, [this].concat(args))), _this), _this.state = {\n suggestionsHidden: false,\n selectedSuggestion: 0,\n lastToken: null,\n tokenStart: 0\n }, _this.onChange = function (e) {\n var _textAtCursorMatchesT = textAtCursorMatchesToken(e.target.value, e.target.selectionStart),\n tokenStart = _textAtCursorMatchesT[0],\n token = _textAtCursorMatchesT[1];\n\n if (token !== null && _this.state.lastToken !== token) {\n _this.setState({ lastToken: token, selectedSuggestion: 0, tokenStart: tokenStart });\n _this.props.onSuggestionsFetchRequested(token);\n } else if (token === null) {\n _this.setState({ lastToken: null });\n _this.props.onSuggestionsClearRequested();\n }\n\n _this.props.onChange(e);\n }, _this.onKeyDown = function (e) {\n var _this$props = _this.props,\n suggestions = _this$props.suggestions,\n disabled = _this$props.disabled;\n var _this$state = _this.state,\n selectedSuggestion = _this$state.selectedSuggestion,\n suggestionsHidden = _this$state.suggestionsHidden;\n\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n switch (e.key) {\n case 'Escape':\n if (!suggestionsHidden) {\n e.preventDefault();\n _this.setState({ suggestionsHidden: true });\n }\n\n break;\n case 'ArrowDown':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n _this.setState({ selectedSuggestion: Math.min(selectedSuggestion + 1, suggestions.size - 1) });\n }\n\n break;\n case 'ArrowUp':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n _this.setState({ selectedSuggestion: Math.max(selectedSuggestion - 1, 0) });\n }\n\n break;\n case 'Enter':\n case 'Tab':\n // Select suggestion\n if (_this.state.lastToken !== null && suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n e.stopPropagation();\n _this.props.onSuggestionSelected(_this.state.tokenStart, _this.state.lastToken, suggestions.get(selectedSuggestion));\n }\n\n break;\n }\n\n if (e.defaultPrevented || !_this.props.onKeyDown) {\n return;\n }\n\n _this.props.onKeyDown(e);\n }, _this.onKeyUp = function (e) {\n if (e.key === 'Escape' && _this.state.suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n }\n\n if (_this.props.onKeyUp) {\n _this.props.onKeyUp(e);\n }\n }, _this.onBlur = function () {\n _this.setState({ suggestionsHidden: true });\n }, _this.onSuggestionClick = function (e) {\n var suggestion = _this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n _this.props.onSuggestionSelected(_this.state.tokenStart, _this.state.lastToken, suggestion);\n _this.textarea.focus();\n }, _this.setTextarea = function (c) {\n _this.textarea = c;\n }, _this.onPaste = function (e) {\n if (e.clipboardData && e.clipboardData.files.length === 1) {\n _this.props.onPaste(e.clipboardData.files);\n e.preventDefault();\n }\n }, _this.renderSuggestion = function (suggestion, i) {\n var selectedSuggestion = _this.state.selectedSuggestion;\n\n var inner = void 0,\n key = void 0;\n\n if ((typeof suggestion === 'undefined' ? 'undefined' : __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_typeof___default()(suggestion)) === 'object') {\n inner = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__autosuggest_emoji__[\"a\" /* default */], {\n emoji: suggestion\n });\n key = suggestion.id;\n } else {\n inner = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__features_compose_containers_autosuggest_account_container__[\"a\" /* default */], {\n id: suggestion\n });\n key = suggestion;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n role: 'button',\n tabIndex: '0',\n 'data-index': i,\n className: __WEBPACK_IMPORTED_MODULE_13_classnames___default()('autosuggest-textarea__suggestions__item', { selected: i === selectedSuggestion }),\n onMouseDown: _this.onSuggestionClick\n }, key, inner);\n }, _temp), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n AutosuggestTextarea.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden) {\n this.setState({ suggestionsHidden: false });\n }\n };\n\n AutosuggestTextarea.prototype.render = function render() {\n var _props = this.props,\n value = _props.value,\n suggestions = _props.suggestions,\n disabled = _props.disabled,\n placeholder = _props.placeholder,\n autoFocus = _props.autoFocus;\n var suggestionsHidden = this.state.suggestionsHidden;\n\n var style = { direction: 'ltr' };\n\n if (Object(__WEBPACK_IMPORTED_MODULE_10__rtl__[\"a\" /* isRtl */])(value)) {\n style.direction = 'rtl';\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'autosuggest-textarea'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('label', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, placeholder), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12_react_textarea_autosize__[\"a\" /* default */], {\n inputRef: this.setTextarea,\n className: 'autosuggest-textarea__textarea',\n disabled: disabled,\n placeholder: placeholder,\n autoFocus: autoFocus,\n value: value,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n onKeyUp: this.onKeyUp,\n onBlur: this.onBlur,\n onPaste: this.onPaste,\n style: style\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'autosuggest-textarea__suggestions ' + (suggestionsHidden || suggestions.isEmpty() ? '' : 'autosuggest-textarea__suggestions--visible')\n }, void 0, suggestions.map(this.renderSuggestion)));\n };\n\n return AutosuggestTextarea;\n}(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default.a), _class.propTypes = {\n value: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.string,\n suggestions: __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default.a.list,\n disabled: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.bool,\n placeholder: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.string,\n onSuggestionSelected: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func.isRequired,\n onSuggestionsClearRequested: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func.isRequired,\n onSuggestionsFetchRequested: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func.isRequired,\n onChange: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func.isRequired,\n onKeyUp: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func,\n onKeyDown: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func,\n onPaste: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.func.isRequired,\n autoFocus: __WEBPACK_IMPORTED_MODULE_9_prop_types___default.a.bool\n}, _class.defaultProps = {\n autoFocus: true\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 291:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__ = __webpack_require__(292);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(69);\n\n\n\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getAccount = Object(__WEBPACK_IMPORTED_MODULE_2__selectors__[\"c\" /* makeGetAccount */])();\n\n var mapStateToProps = function mapStateToProps(state, _ref) {\n var id = _ref.id;\n return {\n account: getAccount(state, id)\n };\n };\n\n return mapStateToProps;\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(makeMapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 292:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AutosuggestAccount; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_avatar__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_display_name__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component__);\n\n\n\n\n\nvar _class, _temp;\n\n\n\n\n\n\n\nvar AutosuggestAccount = (_temp = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(AutosuggestAccount, _ImmutablePureCompone);\n\n function AutosuggestAccount() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, AutosuggestAccount);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.apply(this, arguments));\n }\n\n AutosuggestAccount.prototype.render = function render() {\n var account = this.props.account;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'autosuggest-account'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'autosuggest-account-icon'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__components_avatar__[\"a\" /* default */], {\n account: account,\n size: 18\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_display_name__[\"a\" /* default */], {\n account: account\n }));\n };\n\n return AutosuggestAccount;\n}(__WEBPACK_IMPORTED_MODULE_8_react_immutable_pure_component___default.a), _class.propTypes = {\n account: __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes___default.a.map.isRequired\n}, _temp);\n\n\n/***/ }),\n\n/***/ 293:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AutosuggestEmoji; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light__ = __webpack_require__(160);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light__);\n\n\n\n\n\n\n\n\nvar assetHost = process.env.CDN_HOST || '';\n\nvar AutosuggestEmoji = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(AutosuggestEmoji, _React$PureComponent);\n\n function AutosuggestEmoji() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, AutosuggestEmoji);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n AutosuggestEmoji.prototype.render = function render() {\n var emoji = this.props.emoji;\n\n var url = void 0;\n\n if (emoji.custom) {\n url = emoji.imageUrl;\n } else {\n var mapping = __WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light___default.a[emoji.native] || __WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light___default.a[emoji.native.replace(/\\uFE0F$/, '')];\n\n if (!mapping) {\n return null;\n }\n\n url = assetHost + '/emoji/' + mapping.filename + '.svg';\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'autosuggest-emoji'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n className: 'emojione',\n src: url,\n alt: emoji.native || emoji.colons\n }), emoji.colons);\n };\n\n return AutosuggestEmoji;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(34)))\n\n/***/ }),\n\n/***/ 294:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_prop_types__);\n\n\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar isIE = isBrowser ? !!document.documentElement.currentStyle : false;\nvar hiddenTextarea = isBrowser && document.createElement('textarea');\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0'\n};\n\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'font-family', 'font-weight', 'font-size', 'font-style', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', 'box-sizing'];\n\nvar computedStyleCache = {};\n\nfunction calculateNodeHeight(uiTextNode, uid) {\n var useCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var minRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var maxRows = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var nodeStyling = calculateNodeStyling(uiTextNode, uid, useCache);\n\n if (nodeStyling === null) {\n return null;\n }\n\n var paddingSize = nodeStyling.paddingSize,\n borderSize = nodeStyling.borderSize,\n boxSizing = nodeStyling.boxSizing,\n sizingStyle = nodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n\n Object.keys(sizingStyle).forEach(function (key) {\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach(function (key) {\n hiddenTextarea.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || 'x';\n\n var minHeight = -Infinity;\n var maxHeight = Infinity;\n var height = hiddenTextarea.scrollHeight;\n\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height = height + borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height = height - paddingSize;\n }\n\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null || maxRows !== null) {\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n var rowCount = Math.floor(height / singleRowHeight);\n\n return { height: height, minHeight: minHeight, maxHeight: maxHeight, rowCount: rowCount };\n}\n\nfunction calculateNodeStyling(node, uid) {\n var useCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (useCache && computedStyleCache[uid]) {\n return computedStyleCache[uid];\n }\n\n var style = window.getComputedStyle(node);\n\n if (style === null) {\n return null;\n }\n\n var sizingStyle = SIZING_STYLE.reduce(function (obj, name) {\n obj[name] = style.getPropertyValue(name);\n return obj;\n }, {});\n\n var boxSizing = sizingStyle['box-sizing'];\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(style['border-right-width']) + parseFloat(style['border-left-width']) + parseFloat(style['padding-right']) + parseFloat(style['padding-left']) + 'px';\n }\n\n var paddingSize = parseFloat(sizingStyle['padding-bottom']) + parseFloat(sizingStyle['padding-top']);\n\n var borderSize = parseFloat(sizingStyle['border-bottom-width']) + parseFloat(sizingStyle['border-top-width']);\n\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n\n if (useCache) {\n computedStyleCache[uid] = nodeInfo;\n }\n\n return nodeInfo;\n}\n\nvar purgeCache = function purgeCache(uid) {\n return delete computedStyleCache[uid];\n};\n\nfunction autoInc() {\n var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/**\n * <TextareaAutosize />\n */\n\nvar noop = function noop() {};\n\nvar _ref = isBrowser && window.requestAnimationFrame ? [window.requestAnimationFrame, window.cancelAnimationFrame] : [setTimeout, clearTimeout];\nvar onNextFrame = _ref[0];\nvar clearNextFrameAction = _ref[1];\n\nvar TextareaAutosize = function (_React$Component) {\n inherits(TextareaAutosize, _React$Component);\n\n function TextareaAutosize(props) {\n classCallCheck(this, TextareaAutosize);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this._resizeLock = false;\n\n _this._onRootDOMNode = function (node) {\n _this._rootDOMNode = node;\n\n if (_this.props.inputRef) {\n _this.props.inputRef(node);\n }\n };\n\n _this._onChange = function (event) {\n if (!_this._controlled) {\n _this._resizeComponent();\n }\n _this.props.onChange(event);\n };\n\n _this._resizeComponent = function () {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (typeof _this._rootDOMNode === 'undefined') {\n callback();\n return;\n }\n\n var nodeHeight = calculateNodeHeight(_this._rootDOMNode, _this._uid, _this.props.useCacheForDOMMeasurements, _this.props.minRows, _this.props.maxRows);\n\n if (nodeHeight === null) {\n callback();\n return;\n }\n\n var height = nodeHeight.height,\n minHeight = nodeHeight.minHeight,\n maxHeight = nodeHeight.maxHeight,\n rowCount = nodeHeight.rowCount;\n\n _this.rowCount = rowCount;\n\n if (_this.state.height !== height || _this.state.minHeight !== minHeight || _this.state.maxHeight !== maxHeight) {\n _this.setState({ height: height, minHeight: minHeight, maxHeight: maxHeight }, callback);\n return;\n }\n\n callback();\n };\n\n _this.state = {\n height: props.style && props.style.height || 0,\n minHeight: -Infinity,\n maxHeight: Infinity\n };\n\n _this._uid = uid();\n _this._controlled = typeof props.value === 'string';\n return _this;\n }\n\n TextareaAutosize.prototype.render = function render() {\n var _props = this.props,\n _minRows = _props.minRows,\n _maxRows = _props.maxRows,\n _onHeightChange = _props.onHeightChange,\n _useCacheForDOMMeasurements = _props.useCacheForDOMMeasurements,\n _inputRef = _props.inputRef,\n props = objectWithoutProperties(_props, ['minRows', 'maxRows', 'onHeightChange', 'useCacheForDOMMeasurements', 'inputRef']);\n\n props.style = _extends({}, props.style, {\n height: this.state.height\n });\n\n var maxHeight = Math.max(props.style.maxHeight || Infinity, this.state.maxHeight);\n\n if (maxHeight < this.state.height) {\n props.style.overflow = 'hidden';\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement('textarea', _extends({}, props, {\n onChange: this._onChange,\n ref: this._onRootDOMNode\n }));\n };\n\n TextareaAutosize.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._resizeComponent();\n // Working around Firefox bug which runs resize listeners even when other JS is running at the same moment\n // causing competing rerenders (due to setState in the listener) in React.\n // More can be found here - facebook/react#6324\n this._resizeListener = function () {\n if (_this2._resizeLock) {\n return;\n }\n _this2._resizeLock = true;\n _this2._resizeComponent(function () {\n return _this2._resizeLock = false;\n });\n };\n window.addEventListener('resize', this._resizeListener);\n };\n\n TextareaAutosize.prototype.componentWillReceiveProps = function componentWillReceiveProps() {\n var _this3 = this;\n\n this._clearNextFrame();\n this._onNextFrameActionId = onNextFrame(function () {\n return _this3._resizeComponent();\n });\n };\n\n TextareaAutosize.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.state.height !== prevState.height) {\n this.props.onHeightChange(this.state.height, this);\n }\n };\n\n TextareaAutosize.prototype.componentWillUnmount = function componentWillUnmount() {\n this._clearNextFrame();\n window.removeEventListener('resize', this._resizeListener);\n purgeCache(this._uid);\n };\n\n TextareaAutosize.prototype._clearNextFrame = function _clearNextFrame() {\n clearNextFrameAction(this._onNextFrameActionId);\n };\n\n return TextareaAutosize;\n}(__WEBPACK_IMPORTED_MODULE_0_react___default.a.Component);\n\nTextareaAutosize.defaultProps = {\n onChange: noop,\n onHeightChange: noop,\n useCacheForDOMMeasurements: false\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (TextareaAutosize);\n\n/***/ }),\n\n/***/ 295:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_upload_button__ = __webpack_require__(296);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(15);\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n disabled: state.getIn(['compose', 'is_uploading']) || state.getIn(['compose', 'media_attachments']).size > 3 || state.getIn(['compose', 'media_attachments']).some(function (m) {\n return m.get('type') === 'video';\n }),\n resetFileKey: state.getIn(['compose', 'resetFileKey'])\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onSelectFile: function onSelectFile(files) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"U\" /* uploadCompose */])(files));\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_1__components_upload_button__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 296:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return UploadButton; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes__);\n\n\n\n\n\nvar _dec, _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"f\" /* defineMessages */])({\n upload: {\n 'id': 'upload_button.label',\n 'defaultMessage': 'Add media'\n }\n});\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var mapStateToProps = function mapStateToProps(state) {\n return {\n acceptContentTypes: state.getIn(['media_attachments', 'accept_content_types'])\n };\n };\n\n return mapStateToProps;\n};\n\nvar iconStyle = {\n height: null,\n lineHeight: '27px'\n};\n\nvar UploadButton = (_dec = Object(__WEBPACK_IMPORTED_MODULE_8_react_redux__[\"connect\"])(makeMapStateToProps), _dec(_class = Object(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(UploadButton, _ImmutablePureCompone);\n\n function UploadButton() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, UploadButton);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.call.apply(_ImmutablePureCompone, [this].concat(args))), _this), _this.handleChange = function (e) {\n if (e.target.files.length > 0) {\n _this.props.onSelectFile(e.target.files);\n }\n }, _this.handleClick = function () {\n _this.fileElement.click();\n }, _this.setRef = function (c) {\n _this.fileElement = c;\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n UploadButton.prototype.render = function render() {\n var _props = this.props,\n intl = _props.intl,\n resetFileKey = _props.resetFileKey,\n disabled = _props.disabled,\n acceptContentTypes = _props.acceptContentTypes;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__upload-button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__components_icon_button__[\"a\" /* default */], {\n icon: 'camera',\n title: intl.formatMessage(messages.upload),\n disabled: disabled,\n onClick: this.handleClick,\n className: 'compose-form__upload-button-icon',\n size: 18,\n inverted: true,\n style: iconStyle\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('label', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, intl.formatMessage(messages.upload)), __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement('input', {\n key: resetFileKey,\n ref: this.setRef,\n type: 'file',\n multiple: false,\n accept: acceptContentTypes.toArray().join(','),\n onChange: this.handleChange,\n disabled: disabled,\n style: { display: 'none' }\n })));\n };\n\n return UploadButton;\n}(__WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component___default.a), _class2.propTypes = {\n disabled: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool,\n onSelectFile: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n style: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object,\n resetFileKey: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.number,\n acceptContentTypes: __WEBPACK_IMPORTED_MODULE_10_react_immutable_proptypes___default.a.listOf(__WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.string).isRequired,\n intl: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired\n}, _temp2)) || _class) || _class);\n\n\n/***/ }),\n\n/***/ 297:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__features_ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring__);\n\n\n\n\n\n\nvar Collapsable = function Collapsable(_ref) {\n var fullHeight = _ref.fullHeight,\n isVisible = _ref.isVisible,\n children = _ref.children;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_2__features_ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { opacity: !isVisible ? 0 : 100, height: isVisible ? fullHeight : 0 },\n style: { opacity: __WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring___default()(!isVisible ? 0 : 100), height: __WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring___default()(!isVisible ? 0 : fullHeight) }\n }, void 0, function (_ref2) {\n var opacity = _ref2.opacity,\n height = _ref2.height;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n style: { height: height + 'px', overflow: 'hidden', opacity: opacity / 100, display: Math.floor(opacity) === 0 ? 'none' : 'block' }\n }, void 0, children);\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Collapsable);\n\n/***/ }),\n\n/***/ 298:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_text_icon_button__ = __webpack_require__(299);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_intl__ = __webpack_require__(6);\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_3_react_intl__[\"f\" /* defineMessages */])({\n title: {\n 'id': 'compose_form.spoiler',\n 'defaultMessage': 'Hide text behind warning'\n }\n});\n\nvar mapStateToProps = function mapStateToProps(state, _ref) {\n var intl = _ref.intl;\n return {\n label: 'CW',\n title: intl.formatMessage(messages.title),\n active: state.getIn(['compose', 'spoiler']),\n ariaControls: 'cw-spoiler-input'\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onClick: function onClick() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"F\" /* changeComposeSpoilerness */])());\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_3_react_intl__[\"g\" /* injectIntl */])(Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_1__components_text_icon_button__[\"a\" /* default */])));\n\n/***/ }),\n\n/***/ 299:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return TextIconButton; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n\n\n\n\n\n\nvar TextIconButton = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(TextIconButton, _React$PureComponent);\n\n function TextIconButton() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, TextIconButton);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleClick = function (e) {\n e.preventDefault();\n _this.props.onClick();\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n TextIconButton.prototype.render = function render() {\n var _props = this.props,\n label = _props.label,\n title = _props.title,\n active = _props.active,\n ariaControls = _props.ariaControls;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n title: title,\n 'aria-label': title,\n className: 'text-icon-button ' + (active ? 'active' : ''),\n 'aria-expanded': active,\n onClick: this.handleClick,\n 'aria-controls': ariaControls\n }, void 0, label);\n };\n\n return TextIconButton;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 300:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_privacy_dropdown__ = __webpack_require__(301);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions_modal__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__is_mobile__ = __webpack_require__(33);\n\n\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n isModalOpen: state.get('modal').modalType === 'ACTIONS',\n value: state.getIn(['compose', 'privacy'])\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onChange: function onChange(value) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"G\" /* changeComposeVisibility */])(value));\n },\n\n\n isUserTouching: __WEBPACK_IMPORTED_MODULE_4__is_mobile__[\"c\" /* isUserTouching */],\n onModalOpen: function onModalOpen(props) {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_3__actions_modal__[\"d\" /* openModal */])('ACTIONS', props));\n },\n onModalClose: function onModalClose() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_3__actions_modal__[\"c\" /* closeModal */])());\n }\n\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_1__components_privacy_dropdown__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 301:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return PrivacyDropdown; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_detect_passive_events__ = __webpack_require__(46);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_detect_passive_events___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_detect_passive_events__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_classnames__);\n\n\n\n\n\nvar _class2;\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"f\" /* defineMessages */])({\n public_short: {\n 'id': 'privacy.public.short',\n 'defaultMessage': 'Public'\n },\n public_long: {\n 'id': 'privacy.public.long',\n 'defaultMessage': 'Post to public timelines'\n },\n unlisted_short: {\n 'id': 'privacy.unlisted.short',\n 'defaultMessage': 'Unlisted'\n },\n unlisted_long: {\n 'id': 'privacy.unlisted.long',\n 'defaultMessage': 'Do not show in public timelines'\n },\n private_short: {\n 'id': 'privacy.private.short',\n 'defaultMessage': 'Followers-only'\n },\n private_long: {\n 'id': 'privacy.private.long',\n 'defaultMessage': 'Post to followers only'\n },\n direct_short: {\n 'id': 'privacy.direct.short',\n 'defaultMessage': 'Direct'\n },\n direct_long: {\n 'id': 'privacy.direct.long',\n 'defaultMessage': 'Post to mentioned users only'\n },\n change_privacy: {\n 'id': 'privacy.change',\n 'defaultMessage': 'Adjust status privacy'\n }\n});\n\nvar listenerOptions = __WEBPACK_IMPORTED_MODULE_10_detect_passive_events___default.a.hasSupport ? { passive: true } : false;\n\nvar PrivacyDropdownMenu = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(PrivacyDropdownMenu, _React$PureComponent);\n\n function PrivacyDropdownMenu() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, PrivacyDropdownMenu);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleDocumentClick = function (e) {\n if (_this.node && !_this.node.contains(e.target)) {\n _this.props.onClose();\n }\n }, _this.handleClick = function (e) {\n if (e.key === 'Escape') {\n _this.props.onClose();\n } else if (!e.key || e.key === 'Enter') {\n var value = e.currentTarget.getAttribute('data-index');\n\n e.preventDefault();\n\n _this.props.onClose();\n _this.props.onChange(value);\n }\n }, _this.setRef = function (c) {\n _this.node = c;\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n PrivacyDropdownMenu.prototype.componentDidMount = function componentDidMount() {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n PrivacyDropdownMenu.prototype.componentWillUnmount = function componentWillUnmount() {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n PrivacyDropdownMenu.prototype.render = function render() {\n var _this2 = this;\n\n var _props = this.props,\n style = _props.style,\n items = _props.items,\n value = _props.value;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { opacity: 0, scaleX: 0.85, scaleY: 0.75 },\n style: { opacity: __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleX: __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleY: __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }) }\n }, void 0, function (_ref) {\n var opacity = _ref.opacity,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY;\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: 'privacy-dropdown__dropdown', style: Object.assign({}, style, { opacity: opacity, transform: 'scale(' + scaleX + ', ' + scaleY + ')' }), ref: _this2.setRef },\n items.map(function (item) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n role: 'button',\n tabIndex: '0',\n 'data-index': item.value,\n onKeyDown: _this2.handleClick,\n onClick: _this2.handleClick,\n className: __WEBPACK_IMPORTED_MODULE_11_classnames___default()('privacy-dropdown__option', { active: item.value === value })\n }, item.value, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'privacy-dropdown__option__icon'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-fw fa-' + item.icon\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'privacy-dropdown__option__content'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, item.text), item.meta));\n })\n );\n });\n };\n\n return PrivacyDropdownMenu;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\nvar PrivacyDropdown = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"g\" /* injectIntl */])(_class2 = function (_React$PureComponent2) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(PrivacyDropdown, _React$PureComponent2);\n\n function PrivacyDropdown() {\n var _temp2, _this3, _ret2;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, PrivacyDropdown);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this3 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this3), _this3.state = {\n open: false\n }, _this3.handleToggle = function () {\n if (_this3.props.isUserTouching()) {\n if (_this3.state.open) {\n _this3.props.onModalClose();\n } else {\n _this3.props.onModalOpen({\n actions: _this3.options.map(function (option) {\n return Object.assign({}, option, { active: option.value === _this3.props.value });\n }),\n onClick: _this3.handleModalActionClick\n });\n }\n } else {\n _this3.setState({ open: !_this3.state.open });\n }\n }, _this3.handleModalActionClick = function (e) {\n e.preventDefault();\n\n var value = _this3.options[e.currentTarget.getAttribute('data-index')].value;\n\n _this3.props.onModalClose();\n _this3.props.onChange(value);\n }, _this3.handleKeyDown = function (e) {\n switch (e.key) {\n case 'Enter':\n _this3.handleToggle();\n break;\n case 'Escape':\n _this3.handleClose();\n break;\n }\n }, _this3.handleClose = function () {\n _this3.setState({ open: false });\n }, _this3.handleChange = function (value) {\n _this3.props.onChange(value);\n }, _temp2), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this3, _ret2);\n }\n\n PrivacyDropdown.prototype.componentWillMount = function componentWillMount() {\n var formatMessage = this.props.intl.formatMessage;\n\n\n this.options = [{ icon: 'globe', value: 'public', text: formatMessage(messages.public_short), meta: formatMessage(messages.public_long) }, { icon: 'unlock-alt', value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long) }, { icon: 'lock', value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) }, { icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) }];\n };\n\n PrivacyDropdown.prototype.render = function render() {\n var _props2 = this.props,\n value = _props2.value,\n intl = _props2.intl;\n var open = this.state.open;\n\n\n var valueOption = this.options.find(function (item) {\n return item.value === value;\n });\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_11_classnames___default()('privacy-dropdown', { active: open }),\n onKeyDown: this.handleKeyDown\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_11_classnames___default()('privacy-dropdown__value', { active: this.options.indexOf(valueOption) === 0 })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_icon_button__[\"a\" /* default */], {\n className: 'privacy-dropdown__value-icon',\n icon: valueOption.icon,\n title: intl.formatMessage(messages.change_privacy),\n size: 18,\n expanded: open,\n active: open,\n inverted: true,\n onClick: this.handleToggle,\n style: { height: null, lineHeight: '27px' }\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default.a, {\n show: open,\n placement: 'bottom',\n target: this\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(PrivacyDropdownMenu, {\n items: this.options,\n value: value,\n onClose: this.handleClose,\n onChange: this.handleChange\n })));\n };\n\n return PrivacyDropdown;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent)) || _class2;\n\n\n\n/***/ }),\n\n/***/ 302:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_intl__ = __webpack_require__(6);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"f\" /* defineMessages */])({\n title: {\n 'id': 'compose_form.sensitive',\n 'defaultMessage': 'Mark media as sensitive'\n }\n});\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n visible: state.getIn(['compose', 'media_attachments']).size > 0,\n active: state.getIn(['compose', 'sensitive']),\n disabled: state.getIn(['compose', 'spoiler'])\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onClick: function onClick() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_compose__[\"D\" /* changeComposeSensitivity */])());\n }\n };\n};\n\nvar SensitiveButton = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(SensitiveButton, _React$PureComponent);\n\n function SensitiveButton() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, SensitiveButton);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n SensitiveButton.prototype.render = function render() {\n var _props = this.props,\n visible = _props.visible,\n active = _props.active,\n disabled = _props.disabled,\n onClick = _props.onClick,\n intl = _props.intl;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { scale: 0.87 },\n style: { scale: __WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring___default()(visible ? 1 : 0.87, { stiffness: 200, damping: 3 }) }\n }, void 0, function (_ref) {\n var scale = _ref.scale;\n\n var icon = active ? 'eye-slash' : 'eye';\n var className = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('compose-form__sensitive-button', {\n 'compose-form__sensitive-button--visible': visible\n });\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: className,\n style: { transform: 'scale(' + scale + ')' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__components_icon_button__[\"a\" /* default */], {\n className: 'compose-form__sensitive-button__icon',\n title: intl.formatMessage(messages.title),\n icon: icon,\n onClick: onClick,\n size: 18,\n active: active,\n disabled: disabled,\n style: { lineHeight: null, height: null },\n inverted: true\n }));\n });\n };\n\n return SensitiveButton;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_5_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"g\" /* injectIntl */])(SensitiveButton)));\n\n/***/ }),\n\n/***/ 303:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_emoji_picker_dropdown__ = __webpack_require__(304);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_settings__ = __webpack_require__(59);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_reselect__ = __webpack_require__(96);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_reselect___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_reselect__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions_emojis__ = __webpack_require__(102);\n\n\n\n\n\n\n\nvar perLine = 8;\nvar lines = 2;\n\nvar DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'yum', 'disappointed', 'thinking_face', 'weary', 'sob', 'sunglasses', 'heart', 'ok_hand'];\n\nvar getFrequentlyUsedEmojis = Object(__WEBPACK_IMPORTED_MODULE_3_reselect__[\"createSelector\"])([function (state) {\n return state.getIn(['settings', 'frequentlyUsedEmojis'], Object(__WEBPACK_IMPORTED_MODULE_4_immutable__[\"Map\"])());\n}], function (emojiCounters) {\n var emojis = emojiCounters.keySeq().sort(function (a, b) {\n return emojiCounters.get(a) - emojiCounters.get(b);\n }).reverse().slice(0, perLine * lines).toArray();\n\n if (emojis.length < DEFAULTS.length) {\n emojis = emojis.concat(DEFAULTS.slice(0, DEFAULTS.length - emojis.length));\n }\n\n return emojis;\n});\n\nvar getCustomEmojis = Object(__WEBPACK_IMPORTED_MODULE_3_reselect__[\"createSelector\"])([function (state) {\n return state.get('custom_emojis');\n}], function (emojis) {\n return emojis.filter(function (e) {\n return e.get('visible_in_picker');\n }).sort(function (a, b) {\n var aShort = a.get('shortcode').toLowerCase();\n var bShort = b.get('shortcode').toLowerCase();\n\n if (aShort < bShort) {\n return -1;\n } else if (aShort > bShort) {\n return 1;\n } else {\n return 0;\n }\n });\n});\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n custom_emojis: getCustomEmojis(state),\n skinTone: state.getIn(['settings', 'skinTone']),\n frequentlyUsedEmojis: getFrequentlyUsedEmojis(state)\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, _ref) {\n var _onPickEmoji = _ref.onPickEmoji;\n return {\n onSkinTone: function onSkinTone(skinTone) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_settings__[\"c\" /* changeSetting */])(['skinTone'], skinTone));\n },\n\n onPickEmoji: function onPickEmoji(emoji) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_emojis__[\"b\" /* useEmoji */])(emoji));\n\n if (_onPickEmoji) {\n _onPickEmoji(emoji);\n }\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_1__components_emoji_picker_dropdown__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 304:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return EmojiPickerDropdown; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ui_util_async_components__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_detect_passive_events__ = __webpack_require__(46);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_detect_passive_events___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_detect_passive_events__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__emoji_emoji__ = __webpack_require__(60);\n\n\n\n\n\nvar _class3, _class4, _temp4, _class5;\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"f\" /* defineMessages */])({\n emoji: {\n 'id': 'emoji_button.label',\n 'defaultMessage': 'Insert emoji'\n },\n emoji_search: {\n 'id': 'emoji_button.search',\n 'defaultMessage': 'Search...'\n },\n emoji_not_found: {\n 'id': 'emoji_button.not_found',\n 'defaultMessage': 'No emojos!! (\\u256F\\xB0\\u25A1\\xB0\\uFF09\\u256F\\uFE35 \\u253B\\u2501\\u253B'\n },\n custom: {\n 'id': 'emoji_button.custom',\n 'defaultMessage': 'Custom'\n },\n recent: {\n 'id': 'emoji_button.recent',\n 'defaultMessage': 'Frequently used'\n },\n search_results: {\n 'id': 'emoji_button.search_results',\n 'defaultMessage': 'Search results'\n },\n people: {\n 'id': 'emoji_button.people',\n 'defaultMessage': 'People'\n },\n nature: {\n 'id': 'emoji_button.nature',\n 'defaultMessage': 'Nature'\n },\n food: {\n 'id': 'emoji_button.food',\n 'defaultMessage': 'Food & Drink'\n },\n activity: {\n 'id': 'emoji_button.activity',\n 'defaultMessage': 'Activity'\n },\n travel: {\n 'id': 'emoji_button.travel',\n 'defaultMessage': 'Travel & Places'\n },\n objects: {\n 'id': 'emoji_button.objects',\n 'defaultMessage': 'Objects'\n },\n symbols: {\n 'id': 'emoji_button.symbols',\n 'defaultMessage': 'Symbols'\n },\n flags: {\n 'id': 'emoji_button.flags',\n 'defaultMessage': 'Flags'\n }\n});\n\nvar assetHost = process.env.CDN_HOST || '';\nvar EmojiPicker = void 0,\n Emoji = void 0; // load asynchronously\n\nvar backgroundImageFn = function backgroundImageFn() {\n return assetHost + '/emoji/sheet.png';\n};\nvar listenerOptions = __WEBPACK_IMPORTED_MODULE_9_detect_passive_events___default.a.hasSupport ? { passive: true } : false;\n\nvar categoriesSort = ['recent', 'custom', 'people', 'nature', 'foods', 'activity', 'places', 'objects', 'symbols', 'flags'];\n\nvar ModifierPickerMenu = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ModifierPickerMenu, _React$PureComponent);\n\n function ModifierPickerMenu() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ModifierPickerMenu);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleClick = function (e) {\n _this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1);\n }, _this.handleDocumentClick = function (e) {\n if (_this.node && !_this.node.contains(e.target)) {\n _this.props.onClose();\n }\n }, _this.setRef = function (c) {\n _this.node = c;\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ModifierPickerMenu.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.active) {\n this.attachListeners();\n } else {\n this.removeListeners();\n }\n };\n\n ModifierPickerMenu.prototype.componentWillUnmount = function componentWillUnmount() {\n this.removeListeners();\n };\n\n ModifierPickerMenu.prototype.attachListeners = function attachListeners() {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n ModifierPickerMenu.prototype.removeListeners = function removeListeners() {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n ModifierPickerMenu.prototype.render = function render() {\n var active = this.props.active;\n\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: 'emoji-picker-dropdown__modifiers__menu', style: { display: active ? 'block' : 'none' }, ref: this.setRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 1\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 1,\n backgroundImageFn: backgroundImageFn\n })),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 2\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 2,\n backgroundImageFn: backgroundImageFn\n })),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 3\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 3,\n backgroundImageFn: backgroundImageFn\n })),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 4\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 4,\n backgroundImageFn: backgroundImageFn\n })),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 5\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 5,\n backgroundImageFn: backgroundImageFn\n })),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n 'data-index': 6\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: 6,\n backgroundImageFn: backgroundImageFn\n }))\n );\n };\n\n return ModifierPickerMenu;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\nvar ModifierPicker = function (_React$PureComponent2) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ModifierPicker, _React$PureComponent2);\n\n function ModifierPicker() {\n var _temp2, _this2, _ret2;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ModifierPicker);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this2), _this2.handleClick = function () {\n if (_this2.props.active) {\n _this2.props.onClose();\n } else {\n _this2.props.onOpen();\n }\n }, _this2.handleSelect = function (modifier) {\n _this2.props.onChange(modifier);\n _this2.props.onClose();\n }, _temp2), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this2, _ret2);\n }\n\n ModifierPicker.prototype.render = function render() {\n var _props = this.props,\n active = _props.active,\n modifier = _props.modifier;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'emoji-picker-dropdown__modifiers'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Emoji, {\n emoji: 'fist',\n set: 'twitter',\n size: 22,\n sheetSize: 32,\n skin: modifier,\n onClick: this.handleClick,\n backgroundImageFn: backgroundImageFn\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(ModifierPickerMenu, {\n active: active,\n onSelect: this.handleSelect,\n onClose: this.props.onClose\n }));\n };\n\n return ModifierPicker;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\nvar EmojiPickerMenu = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"g\" /* injectIntl */])(_class3 = (_temp4 = _class4 = function (_React$PureComponent3) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(EmojiPickerMenu, _React$PureComponent3);\n\n function EmojiPickerMenu() {\n var _temp3, _this3, _ret3;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, EmojiPickerMenu);\n\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _ret3 = (_temp3 = (_this3 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent3.call.apply(_React$PureComponent3, [this].concat(args))), _this3), _this3.state = {\n modifierOpen: false\n }, _this3.handleDocumentClick = function (e) {\n if (_this3.node && !_this3.node.contains(e.target)) {\n _this3.props.onClose();\n }\n }, _this3.setRef = function (c) {\n _this3.node = c;\n }, _this3.getI18n = function () {\n var intl = _this3.props.intl;\n\n\n return {\n search: intl.formatMessage(messages.emoji_search),\n notfound: intl.formatMessage(messages.emoji_not_found),\n categories: {\n search: intl.formatMessage(messages.search_results),\n recent: intl.formatMessage(messages.recent),\n people: intl.formatMessage(messages.people),\n nature: intl.formatMessage(messages.nature),\n foods: intl.formatMessage(messages.food),\n activity: intl.formatMessage(messages.activity),\n places: intl.formatMessage(messages.travel),\n objects: intl.formatMessage(messages.objects),\n symbols: intl.formatMessage(messages.symbols),\n flags: intl.formatMessage(messages.flags),\n custom: intl.formatMessage(messages.custom)\n }\n };\n }, _this3.handleClick = function (emoji) {\n if (!emoji.native) {\n emoji.native = emoji.colons;\n }\n\n _this3.props.onClose();\n _this3.props.onPick(emoji);\n }, _this3.handleModifierOpen = function () {\n _this3.setState({ modifierOpen: true });\n }, _this3.handleModifierClose = function () {\n _this3.setState({ modifierOpen: false });\n }, _this3.handleModifierChange = function (modifier) {\n _this3.props.onSkinTone(modifier);\n }, _temp3), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this3, _ret3);\n }\n\n EmojiPickerMenu.prototype.componentDidMount = function componentDidMount() {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n EmojiPickerMenu.prototype.componentWillUnmount = function componentWillUnmount() {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n };\n\n EmojiPickerMenu.prototype.render = function render() {\n var _props2 = this.props,\n loading = _props2.loading,\n style = _props2.style,\n intl = _props2.intl,\n custom_emojis = _props2.custom_emojis,\n skinTone = _props2.skinTone,\n frequentlyUsedEmojis = _props2.frequentlyUsedEmojis;\n\n\n if (loading) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n style: { width: 299 }\n });\n }\n\n var title = intl.formatMessage(messages.emoji);\n var modifierOpen = this.state.modifierOpen;\n\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: __WEBPACK_IMPORTED_MODULE_8_classnames___default()('emoji-picker-dropdown__menu', { selecting: modifierOpen }), style: style, ref: this.setRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(EmojiPicker, {\n perLine: 8,\n emojiSize: 22,\n sheetSize: 32,\n custom: Object(__WEBPACK_IMPORTED_MODULE_10__emoji_emoji__[\"buildCustomEmojis\"])(custom_emojis),\n color: '',\n emoji: '',\n set: 'twitter',\n title: title,\n i18n: this.getI18n(),\n onClick: this.handleClick,\n include: categoriesSort,\n recent: frequentlyUsedEmojis,\n skin: skinTone,\n showPreview: false,\n backgroundImageFn: backgroundImageFn,\n emojiTooltip: true\n }),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(ModifierPicker, {\n active: modifierOpen,\n modifier: skinTone,\n onOpen: this.handleModifierOpen,\n onClose: this.handleModifierClose,\n onChange: this.handleModifierChange\n })\n );\n };\n\n return EmojiPickerMenu;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class4.defaultProps = {\n style: {},\n loading: true,\n placement: 'bottom',\n frequentlyUsedEmojis: []\n}, _temp4)) || _class3;\n\nvar EmojiPickerDropdown = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"g\" /* injectIntl */])(_class5 = function (_React$PureComponent4) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(EmojiPickerDropdown, _React$PureComponent4);\n\n function EmojiPickerDropdown() {\n var _temp5, _this4, _ret4;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, EmojiPickerDropdown);\n\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _ret4 = (_temp5 = (_this4 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent4.call.apply(_React$PureComponent4, [this].concat(args))), _this4), _this4.state = {\n active: false,\n loading: false\n }, _this4.setRef = function (c) {\n _this4.dropdown = c;\n }, _this4.onShowDropdown = function () {\n _this4.setState({ active: true });\n\n if (!EmojiPicker) {\n _this4.setState({ loading: true });\n\n Object(__WEBPACK_IMPORTED_MODULE_6__ui_util_async_components__[\"g\" /* EmojiPicker */])().then(function (EmojiMart) {\n EmojiPicker = EmojiMart.Picker;\n Emoji = EmojiMart.Emoji;\n\n _this4.setState({ loading: false });\n }).catch(function () {\n _this4.setState({ loading: false });\n });\n }\n }, _this4.onHideDropdown = function () {\n _this4.setState({ active: false });\n }, _this4.onToggle = function (e) {\n if (!_this4.state.loading && (!e.key || e.key === 'Enter')) {\n if (_this4.state.active) {\n _this4.onHideDropdown();\n } else {\n _this4.onShowDropdown();\n }\n }\n }, _this4.handleKeyDown = function (e) {\n if (e.key === 'Escape') {\n _this4.onHideDropdown();\n }\n }, _this4.setTargetRef = function (c) {\n _this4.target = c;\n }, _this4.findTarget = function () {\n return _this4.target;\n }, _temp5), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this4, _ret4);\n }\n\n EmojiPickerDropdown.prototype.render = function render() {\n var _props3 = this.props,\n intl = _props3.intl,\n onPickEmoji = _props3.onPickEmoji,\n onSkinTone = _props3.onSkinTone,\n skinTone = _props3.skinTone,\n frequentlyUsedEmojis = _props3.frequentlyUsedEmojis;\n\n var title = intl.formatMessage(messages.emoji);\n var _state = this.state,\n active = _state.active,\n loading = _state.loading;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'emoji-picker-dropdown',\n onKeyDown: this.handleKeyDown\n }, void 0, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { ref: this.setTargetRef, className: 'emoji-button', title: title, 'aria-label': title, 'aria-expanded': active, role: 'button', onClick: this.onToggle, onKeyDown: this.onToggle, tabIndex: 0 },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n className: __WEBPACK_IMPORTED_MODULE_8_classnames___default()('emojione', { 'pulse-loading': active && loading }),\n alt: '\\uD83D\\uDE42',\n src: assetHost + '/emoji/1f602.svg'\n })\n ), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default.a, {\n show: active,\n placement: 'bottom',\n target: this.findTarget\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(EmojiPickerMenu, {\n custom_emojis: this.props.custom_emojis,\n loading: loading,\n onClose: this.onHideDropdown,\n onPick: onPickEmoji,\n onSkinTone: onSkinTone,\n skinTone: skinTone,\n frequentlyUsedEmojis: frequentlyUsedEmojis\n })));\n };\n\n return EmojiPickerDropdown;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent)) || _class5;\n\n\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(34)))\n\n/***/ }),\n\n/***/ 305:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_upload_form__ = __webpack_require__(306);\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n mediaIds: state.getIn(['compose', 'media_attachments']).map(function (item) {\n return item.get('id');\n })\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_upload_form__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 306:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return UploadForm; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__containers_upload_progress_container__ = __webpack_require__(307);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__containers_upload_container__ = __webpack_require__(309);\n\n\n\n\n\nvar _class, _temp;\n\n\n\n\n\n\n\nvar UploadForm = (_temp = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(UploadForm, _ImmutablePureCompone);\n\n function UploadForm() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, UploadForm);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.apply(this, arguments));\n }\n\n UploadForm.prototype.render = function render() {\n var mediaIds = this.props.mediaIds;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__upload-wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__containers_upload_progress_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__uploads-wrapper'\n }, void 0, mediaIds.map(function (id) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__containers_upload_container__[\"a\" /* default */], {\n id: id\n }, id);\n })));\n };\n\n return UploadForm;\n}(__WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component___default.a), _class.propTypes = {\n mediaIds: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.list.isRequired\n}, _temp);\n\n\n/***/ }),\n\n/***/ 307:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_upload_progress__ = __webpack_require__(308);\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n active: state.getIn(['compose', 'is_uploading']),\n progress: state.getIn(['compose', 'progress'])\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_upload_progress__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 308:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return UploadProgress; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_intl__ = __webpack_require__(6);\n\n\n\n\n\n\n\n\n\n\nvar UploadProgress = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(UploadProgress, _React$PureComponent);\n\n function UploadProgress() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, UploadProgress);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n UploadProgress.prototype.render = function render() {\n var _props = this.props,\n active = _props.active,\n progress = _props.progress;\n\n\n if (!active) {\n return null;\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'upload-progress'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'upload-progress__icon'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-upload'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'upload-progress__message'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'upload_progress.label',\n defaultMessage: 'Uploading...'\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'upload-progress__backdrop'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { width: 0 },\n style: { width: __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default()(progress) }\n }, void 0, function (_ref) {\n var width = _ref.width;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'upload-progress__tracker',\n style: { width: width + '%' }\n });\n }))));\n };\n\n return UploadProgress;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 309:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_upload__ = __webpack_require__(310);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(15);\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state, _ref) {\n var id = _ref.id;\n return {\n media: state.getIn(['compose', 'media_attachments']).find(function (item) {\n return item.get('id') === id;\n })\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n\n onUndo: function onUndo(id) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"S\" /* undoUploadCompose */])(id));\n },\n\n onDescriptionChange: function onDescriptionChange(id, description) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"I\" /* changeUploadCompose */])(id, description));\n }\n\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_1__components_upload__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 310:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Upload; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_classnames__);\n\n\n\n\n\nvar _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"f\" /* defineMessages */])({\n undo: {\n 'id': 'upload_form.undo',\n 'defaultMessage': 'Undo'\n },\n description: {\n 'id': 'upload_form.description',\n 'defaultMessage': 'Describe for the visually impaired'\n }\n});\n\nvar Upload = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Upload, _ImmutablePureCompone);\n\n function Upload() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Upload);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.call.apply(_ImmutablePureCompone, [this].concat(args))), _this), _this.state = {\n hovered: false,\n focused: false,\n dirtyDescription: null\n }, _this.handleUndoClick = function () {\n _this.props.onUndo(_this.props.media.get('id'));\n }, _this.handleInputChange = function (e) {\n _this.setState({ dirtyDescription: e.target.value });\n }, _this.handleMouseEnter = function () {\n _this.setState({ hovered: true });\n }, _this.handleMouseLeave = function () {\n _this.setState({ hovered: false });\n }, _this.handleInputFocus = function () {\n _this.setState({ focused: true });\n }, _this.handleInputBlur = function () {\n var dirtyDescription = _this.state.dirtyDescription;\n\n\n _this.setState({ focused: false, dirtyDescription: null });\n\n if (dirtyDescription !== null) {\n _this.props.onDescriptionChange(_this.props.media.get('id'), dirtyDescription);\n }\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Upload.prototype.render = function render() {\n var _this2 = this;\n\n var _props = this.props,\n intl = _props.intl,\n media = _props.media;\n\n var active = this.state.hovered || this.state.focused;\n var description = this.state.dirtyDescription || media.get('description') || '';\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__upload',\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { scale: 0.8 },\n style: { scale: __WEBPACK_IMPORTED_MODULE_9_react_motion_lib_spring___default()(1, { stiffness: 180, damping: 12 }) }\n }, void 0, function (_ref) {\n var scale = _ref.scale;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__upload-thumbnail',\n style: { transform: 'scale(' + scale + ')', backgroundImage: 'url(' + media.get('preview_url') + ')' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__components_icon_button__[\"a\" /* default */], {\n icon: 'times',\n title: intl.formatMessage(messages.undo),\n size: 36,\n onClick: _this2.handleUndoClick\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_12_classnames___default()('compose-form__upload-description', { active: active })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('label', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, intl.formatMessage(messages.description)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('input', {\n placeholder: intl.formatMessage(messages.description),\n type: 'text',\n value: description,\n maxLength: 420,\n onFocus: _this2.handleInputFocus,\n onChange: _this2.handleInputChange,\n onBlur: _this2.handleInputBlur\n }))));\n }));\n };\n\n return Upload;\n}(__WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component___default.a), _class2.propTypes = {\n media: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.map.isRequired,\n intl: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired,\n onUndo: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n onDescriptionChange: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired\n}, _temp2)) || _class;\n\n\n\n/***/ }),\n\n/***/ 311:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_warning__ = __webpack_require__(312);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__initial_state__ = __webpack_require__(18);\n\n\n\n\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', __WEBPACK_IMPORTED_MODULE_5__initial_state__[\"e\" /* me */], 'locked'])\n };\n};\n\nvar WarningWrapper = function WarningWrapper(_ref) {\n var needsLockWarning = _ref.needsLockWarning;\n\n if (needsLockWarning) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_3__components_warning__[\"a\" /* default */], {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_4_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'compose_form.lock_disclaimer',\n defaultMessage: 'Your account is not {locked}. Anyone can follow you to view your follower-only posts.',\n values: { locked: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: '/settings/profile'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_4_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'compose_form.lock_disclaimer.lock',\n defaultMessage: 'locked'\n })) }\n })\n });\n }\n\n return null;\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"connect\"])(mapStateToProps)(WarningWrapper));\n\n/***/ }),\n\n/***/ 312:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Warning; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring__);\n\n\n\n\n\n\n\n\n\nvar Warning = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Warning, _React$PureComponent);\n\n function Warning() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Warning);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n Warning.prototype.render = function render() {\n var message = this.props.message;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { opacity: 0, scaleX: 0.85, scaleY: 0.75 },\n style: { opacity: __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleX: __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleY: __WEBPACK_IMPORTED_MODULE_6_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }) }\n }, void 0, function (_ref) {\n var opacity = _ref.opacity,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'compose-form__warning',\n style: { opacity: opacity, transform: 'scale(' + scaleX + ', ' + scaleY + ')' }\n }, void 0, message);\n });\n };\n\n return Warning;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 313:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = countableText;\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__url_regex__ = __webpack_require__(314);\n\n\nvar urlPlaceholder = 'xxxxxxxxxxxxxxxxxxxxxxx';\n\nfunction countableText(inputText) {\n return inputText.replace(__WEBPACK_IMPORTED_MODULE_0__url_regex__[\"a\" /* urlRegex */], urlPlaceholder).replace(/(^|[^\\/\\w])@(([a-z0-9_]+)@[a-z0-9\\.\\-]+[a-z0-9]+)/ig, '$1@$3');\n};\n\n/***/ }),\n\n/***/ 314:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return urlRegex; });\nvar regexen = {};\n\nvar regexSupplant = function regexSupplant(regex, flags) {\n flags = flags || '';\n if (typeof regex !== 'string') {\n if (regex.global && flags.indexOf('g') < 0) {\n flags += 'g';\n }\n if (regex.ignoreCase && flags.indexOf('i') < 0) {\n flags += 'i';\n }\n if (regex.multiline && flags.indexOf('m') < 0) {\n flags += 'm';\n }\n\n regex = regex.source;\n }\n return new RegExp(regex.replace(/#\\{(\\w+)\\}/g, function (match, name) {\n var newRegex = regexen[name] || '';\n if (typeof newRegex !== 'string') {\n newRegex = newRegex.source;\n }\n return newRegex;\n }), flags);\n};\n\nvar stringSupplant = function stringSupplant(str, values) {\n return str.replace(/#\\{(\\w+)\\}/g, function (match, name) {\n return values[name] || '';\n });\n};\n\nvar urlRegex = function () {\n regexen.spaces_group = /\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000/;\n regexen.invalid_chars_group = /\\uFFFE\\uFEFF\\uFFFF\\u202A-\\u202E/;\n regexen.punct = /\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$/;\n regexen.validUrlPrecedingChars = regexSupplant(/(?:[^A-Za-z0-9@$##{invalid_chars_group}]|^)/);\n regexen.invalidDomainChars = stringSupplant('#{punct}#{spaces_group}#{invalid_chars_group}', regexen);\n regexen.validDomainChars = regexSupplant(/[^#{invalidDomainChars}]/);\n regexen.validSubdomain = regexSupplant(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\\.)/);\n regexen.validDomainName = regexSupplant(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\\.)/);\n regexen.validGTLD = regexSupplant(RegExp('(?:(?:' + '삼성|닷컴|닷넷|香格里拉|餐厅|食品|飞利浦|電訊盈科|集团|通販|购物|谷歌|诺基亚|联通|网络|网站|网店|网址|组织机构|移动|珠宝|点看|游戏|淡马锡|机构|書籍|时尚|新闻|政府|' + '政务|手表|手机|我爱你|慈善|微博|广东|工行|家電|娱乐|天主教|大拿|大众汽车|在线|嘉里大酒店|嘉里|商标|商店|商城|公益|公司|八卦|健康|信息|佛山|企业|中文网|中信|世界|' + 'ポイント|ファッション|セール|ストア|コム|グーグル|クラウド|みんな|คอม|संगठन|नेट|कॉम|همراه|موقع|موبايلي|كوم|كاثوليك|عرب|شبكة|' + 'بيتك|بازار|العليان|ارامكو|اتصالات|ابوظبي|קום|сайт|рус|орг|онлайн|москва|ком|католик|дети|' + 'zuerich|zone|zippo|zip|zero|zara|zappos|yun|youtube|you|yokohama|yoga|yodobashi|yandex|yamaxun|' + 'yahoo|yachts|xyz|xxx|xperia|xin|xihuan|xfinity|xerox|xbox|wtf|wtc|wow|world|works|work|woodside|' + 'wolterskluwer|wme|winners|wine|windows|win|williamhill|wiki|wien|whoswho|weir|weibo|wedding|wed|' + 'website|weber|webcam|weatherchannel|weather|watches|watch|warman|wanggou|wang|walter|walmart|' + 'wales|vuelos|voyage|voto|voting|vote|volvo|volkswagen|vodka|vlaanderen|vivo|viva|vistaprint|' + 'vista|vision|visa|virgin|vip|vin|villas|viking|vig|video|viajes|vet|versicherung|' + 'vermögensberatung|vermögensberater|verisign|ventures|vegas|vanguard|vana|vacations|ups|uol|uno|' + 'university|unicom|uconnect|ubs|ubank|tvs|tushu|tunes|tui|tube|trv|trust|travelersinsurance|' + 'travelers|travelchannel|travel|training|trading|trade|toys|toyota|town|tours|total|toshiba|' + 'toray|top|tools|tokyo|today|tmall|tkmaxx|tjx|tjmaxx|tirol|tires|tips|tiffany|tienda|tickets|' + 'tiaa|theatre|theater|thd|teva|tennis|temasek|telefonica|telecity|tel|technology|tech|team|tdk|' + 'tci|taxi|tax|tattoo|tatar|tatamotors|target|taobao|talk|taipei|tab|systems|symantec|sydney|' + 'swiss|swiftcover|swatch|suzuki|surgery|surf|support|supply|supplies|sucks|style|study|studio|' + 'stream|store|storage|stockholm|stcgroup|stc|statoil|statefarm|statebank|starhub|star|staples|' + 'stada|srt|srl|spreadbetting|spot|spiegel|space|soy|sony|song|solutions|solar|sohu|software|' + 'softbank|social|soccer|sncf|smile|smart|sling|skype|sky|skin|ski|site|singles|sina|silk|shriram|' + 'showtime|show|shouji|shopping|shop|shoes|shiksha|shia|shell|shaw|sharp|shangrila|sfr|sexy|sex|' + 'sew|seven|ses|services|sener|select|seek|security|secure|seat|search|scot|scor|scjohnson|' + 'science|schwarz|schule|school|scholarships|schmidt|schaeffler|scb|sca|sbs|sbi|saxo|save|sas|' + 'sarl|sapo|sap|sanofi|sandvikcoromant|sandvik|samsung|samsclub|salon|sale|sakura|safety|safe|' + 'saarland|ryukyu|rwe|run|ruhr|rugby|rsvp|room|rogers|rodeo|rocks|rocher|rmit|rip|rio|ril|' + 'rightathome|ricoh|richardli|rich|rexroth|reviews|review|restaurant|rest|republican|report|' + 'repair|rentals|rent|ren|reliance|reit|reisen|reise|rehab|redumbrella|redstone|red|recipes|' + 'realty|realtor|realestate|read|raid|radio|racing|qvc|quest|quebec|qpon|pwc|pub|prudential|pru|' + 'protection|property|properties|promo|progressive|prof|productions|prod|pro|prime|press|praxi|' + 'pramerica|post|porn|politie|poker|pohl|pnc|plus|plumbing|playstation|play|place|pizza|pioneer|' + 'pink|ping|pin|pid|pictures|pictet|pics|piaget|physio|photos|photography|photo|phone|philips|phd|' + 'pharmacy|pfizer|pet|pccw|pay|passagens|party|parts|partners|pars|paris|panerai|panasonic|' + 'pamperedchef|page|ovh|ott|otsuka|osaka|origins|orientexpress|organic|org|orange|oracle|open|ooo|' + 'onyourside|online|onl|ong|one|omega|ollo|oldnavy|olayangroup|olayan|okinawa|office|off|observer|' + 'obi|nyc|ntt|nrw|nra|nowtv|nowruz|now|norton|northwesternmutual|nokia|nissay|nissan|ninja|nikon|' + 'nike|nico|nhk|ngo|nfl|nexus|nextdirect|next|news|newholland|new|neustar|network|netflix|netbank|' + 'net|nec|nba|navy|natura|nationwide|name|nagoya|nadex|nab|mutuelle|mutual|museum|mtr|mtpc|mtn|' + 'msd|movistar|movie|mov|motorcycles|moto|moscow|mortgage|mormon|mopar|montblanc|monster|money|' + 'monash|mom|moi|moe|moda|mobily|mobile|mobi|mma|mls|mlb|mitsubishi|mit|mint|mini|mil|microsoft|' + 'miami|metlife|merckmsd|meo|menu|men|memorial|meme|melbourne|meet|media|med|mckinsey|mcdonalds|' + 'mcd|mba|mattel|maserati|marshalls|marriott|markets|marketing|market|map|mango|management|man|' + 'makeup|maison|maif|madrid|macys|luxury|luxe|lupin|lundbeck|ltda|ltd|lplfinancial|lpl|love|lotto|' + 'lotte|london|lol|loft|locus|locker|loans|loan|lixil|living|live|lipsy|link|linde|lincoln|limo|' + 'limited|lilly|like|lighting|lifestyle|lifeinsurance|life|lidl|liaison|lgbt|lexus|lego|legal|' + 'lefrak|leclerc|lease|lds|lawyer|law|latrobe|latino|lat|lasalle|lanxess|landrover|land|lancome|' + 'lancia|lancaster|lamer|lamborghini|ladbrokes|lacaixa|kyoto|kuokgroup|kred|krd|kpn|kpmg|kosher|' + 'komatsu|koeln|kiwi|kitchen|kindle|kinder|kim|kia|kfh|kerryproperties|kerrylogistics|kerryhotels|' + 'kddi|kaufen|juniper|juegos|jprs|jpmorgan|joy|jot|joburg|jobs|jnj|jmp|jll|jlc|jio|jewelry|jetzt|' + 'jeep|jcp|jcb|java|jaguar|iwc|iveco|itv|itau|istanbul|ist|ismaili|iselect|irish|ipiranga|' + 'investments|intuit|international|intel|int|insure|insurance|institute|ink|ing|info|infiniti|' + 'industries|immobilien|immo|imdb|imamat|ikano|iinet|ifm|ieee|icu|ice|icbc|ibm|hyundai|hyatt|' + 'hughes|htc|hsbc|how|house|hotmail|hotels|hoteles|hot|hosting|host|hospital|horse|honeywell|' + 'honda|homesense|homes|homegoods|homedepot|holiday|holdings|hockey|hkt|hiv|hitachi|hisamitsu|' + 'hiphop|hgtv|hermes|here|helsinki|help|healthcare|health|hdfcbank|hdfc|hbo|haus|hangout|hamburg|' + 'hair|guru|guitars|guide|guge|gucci|guardian|group|grocery|gripe|green|gratis|graphics|grainger|' + 'gov|got|gop|google|goog|goodyear|goodhands|goo|golf|goldpoint|gold|godaddy|gmx|gmo|gmbh|gmail|' + 'globo|global|gle|glass|glade|giving|gives|gifts|gift|ggee|george|genting|gent|gea|gdn|gbiz|' + 'garden|gap|games|game|gallup|gallo|gallery|gal|fyi|futbol|furniture|fund|fun|fujixerox|fujitsu|' + 'ftr|frontier|frontdoor|frogans|frl|fresenius|free|fox|foundation|forum|forsale|forex|ford|' + 'football|foodnetwork|food|foo|fly|flsmidth|flowers|florist|flir|flights|flickr|fitness|fit|' + 'fishing|fish|firmdale|firestone|fire|financial|finance|final|film|fido|fidelity|fiat|ferrero|' + 'ferrari|feedback|fedex|fast|fashion|farmers|farm|fans|fan|family|faith|fairwinds|fail|fage|' + 'extraspace|express|exposed|expert|exchange|everbank|events|eus|eurovision|etisalat|esurance|' + 'estate|esq|erni|ericsson|equipment|epson|epost|enterprises|engineering|engineer|energy|emerck|' + 'email|education|edu|edeka|eco|eat|earth|dvr|dvag|durban|dupont|duns|dunlop|duck|dubai|dtv|drive|' + 'download|dot|doosan|domains|doha|dog|dodge|doctor|docs|dnp|diy|dish|discover|discount|directory|' + 'direct|digital|diet|diamonds|dhl|dev|design|desi|dentist|dental|democrat|delta|deloitte|dell|' + 'delivery|degree|deals|dealer|deal|dds|dclk|day|datsun|dating|date|data|dance|dad|dabur|cyou|' + 'cymru|cuisinella|csc|cruises|cruise|crs|crown|cricket|creditunion|creditcard|credit|courses|' + 'coupons|coupon|country|corsica|coop|cool|cookingchannel|cooking|contractors|contact|consulting|' + 'construction|condos|comsec|computer|compare|company|community|commbank|comcast|com|cologne|' + 'college|coffee|codes|coach|clubmed|club|cloud|clothing|clinique|clinic|click|cleaning|claims|' + 'cityeats|city|citic|citi|citadel|cisco|circle|cipriani|church|chrysler|chrome|christmas|chloe|' + 'chintai|cheap|chat|chase|channel|chanel|cfd|cfa|cern|ceo|center|ceb|cbs|cbre|cbn|cba|catholic|' + 'catering|cat|casino|cash|caseih|case|casa|cartier|cars|careers|career|care|cards|caravan|car|' + 'capitalone|capital|capetown|canon|cancerresearch|camp|camera|cam|calvinklein|call|cal|cafe|cab|' + 'bzh|buzz|buy|business|builders|build|bugatti|budapest|brussels|brother|broker|broadway|' + 'bridgestone|bradesco|box|boutique|bot|boston|bostik|bosch|boots|booking|book|boo|bond|bom|bofa|' + 'boehringer|boats|bnpparibas|bnl|bmw|bms|blue|bloomberg|blog|blockbuster|blanco|blackfriday|' + 'black|biz|bio|bingo|bing|bike|bid|bible|bharti|bet|bestbuy|best|berlin|bentley|beer|beauty|' + 'beats|bcn|bcg|bbva|bbt|bbc|bayern|bauhaus|basketball|baseball|bargains|barefoot|barclays|' + 'barclaycard|barcelona|bar|bank|band|bananarepublic|banamex|baidu|baby|azure|axa|aws|avianca|' + 'autos|auto|author|auspost|audio|audible|audi|auction|attorney|athleta|associates|asia|asda|arte|' + 'art|arpa|army|archi|aramco|arab|aquarelle|apple|app|apartments|aol|anz|anquan|android|analytics|' + 'amsterdam|amica|amfam|amex|americanfamily|americanexpress|alstom|alsace|ally|allstate|allfinanz|' + 'alipay|alibaba|alfaromeo|akdn|airtel|airforce|airbus|aigo|aig|agency|agakhan|africa|afl|' + 'afamilycompany|aetna|aero|aeg|adult|ads|adac|actor|active|aco|accountants|accountant|accenture|' + 'academy|abudhabi|abogado|able|abc|abbvie|abbott|abb|abarth|aarp|aaa|onion' + ')(?=[^0-9a-zA-Z@]|$))'));\n regexen.validCCTLD = regexSupplant(RegExp('(?:(?:' + '한국|香港|澳門|新加坡|台灣|台湾|中國|中国|გე|ไทย|ලංකා|ഭാരതം|ಭಾರತ|భారత్|சிங்கப்பூர்|இலங்கை|இந்தியா|ଭାରତ|ભારત|ਭਾਰਤ|' + 'ভাৰত|ভারত|বাংলা|भारोत|भारतम्|भारत|ڀارت|پاکستان|مليسيا|مصر|قطر|فلسطين|عمان|عراق|سورية|سودان|تونس|' + 'بھارت|بارت|ایران|امارات|المغرب|السعودية|الجزائر|الاردن|հայ|қаз|укр|срб|рф|мон|мкд|ею|бел|бг|ελ|' + 'zw|zm|za|yt|ye|ws|wf|vu|vn|vi|vg|ve|vc|va|uz|uy|us|um|uk|ug|ua|tz|tw|tv|tt|tr|tp|to|tn|tm|tl|tk|' + 'tj|th|tg|tf|td|tc|sz|sy|sx|sv|su|st|ss|sr|so|sn|sm|sl|sk|sj|si|sh|sg|se|sd|sc|sb|sa|rw|ru|rs|ro|' + 're|qa|py|pw|pt|ps|pr|pn|pm|pl|pk|ph|pg|pf|pe|pa|om|nz|nu|nr|np|no|nl|ni|ng|nf|ne|nc|na|mz|my|mx|' + 'mw|mv|mu|mt|ms|mr|mq|mp|mo|mn|mm|ml|mk|mh|mg|mf|me|md|mc|ma|ly|lv|lu|lt|ls|lr|lk|li|lc|lb|la|kz|' + 'ky|kw|kr|kp|kn|km|ki|kh|kg|ke|jp|jo|jm|je|it|is|ir|iq|io|in|im|il|ie|id|hu|ht|hr|hn|hm|hk|gy|gw|' + 'gu|gt|gs|gr|gq|gp|gn|gm|gl|gi|gh|gg|gf|ge|gd|gb|ga|fr|fo|fm|fk|fj|fi|eu|et|es|er|eh|eg|ee|ec|dz|' + 'do|dm|dk|dj|de|cz|cy|cx|cw|cv|cu|cr|co|cn|cm|cl|ck|ci|ch|cg|cf|cd|cc|ca|bz|by|bw|bv|bt|bs|br|bq|' + 'bo|bn|bm|bl|bj|bi|bh|bg|bf|be|bd|bb|ba|az|ax|aw|au|at|as|ar|aq|ao|an|am|al|ai|ag|af|ae|ad|ac' + ')(?=[^0-9a-zA-Z@]|$))'));\n regexen.validPunycode = /(?:xn--[0-9a-z]+)/;\n regexen.validSpecialCCTLD = /(?:(?:co|tv)(?=[^0-9a-zA-Z@]|$))/;\n regexen.validDomain = regexSupplant(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/);\n regexen.validPortNumber = /[0-9]+/;\n regexen.pd = /\\u002d\\u058a\\u05be\\u1400\\u1806\\u2010-\\u2015\\u2e17\\u2e1a\\u2e3a\\u2e40\\u301c\\u3030\\u30a0\\ufe31\\ufe58\\ufe63\\uff0d/;\n regexen.validGeneralUrlPathChars = regexSupplant(/[^#{spaces_group}\\(\\)\\?]/i);\n // Allow URL paths to contain up to two nested levels of balanced parens\n // 1. Used in Wikipedia URLs like /Primer_(film)\n // 2. Used in IIS sessions like /S(dfd346)/\n // 3. Used in Rdio URLs like /track/We_Up_(Album_Version_(Edited))/\n regexen.validUrlBalancedParens = regexSupplant('\\\\(' + '(?:' + '#{validGeneralUrlPathChars}+' + '|' +\n // allow one nested level of balanced parentheses\n '(?:' + '#{validGeneralUrlPathChars}*' + '\\\\(' + '#{validGeneralUrlPathChars}+' + '\\\\)' + '#{validGeneralUrlPathChars}*' + ')' + ')' + '\\\\)', 'i');\n // Valid end-of-path chracters (so /foo. does not gobble the period).\n // 1. Allow =&# for empty URL parameters and other URL-join artifacts\n regexen.validUrlPathEndingChars = regexSupplant(/[^#{spaces_group}\\(\\)\\?!\\*';:=\\,\\.\\$%\\[\\]#{pd}~&\\|@]|(?:#{validUrlBalancedParens})/i);\n // Allow @ in a url, but only in the middle. Catch things like http://example.com/@user/\n regexen.validUrlPath = regexSupplant('(?:' + '(?:' + '#{validGeneralUrlPathChars}*' + '(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*' + '#{validUrlPathEndingChars}' + ')|(?:@#{validGeneralUrlPathChars}+\\/)' + ')', 'i');\n regexen.validUrlQueryChars = /[a-z0-9!?\\*'@\\(\\);:&=\\+\\$\\/%#\\[\\]\\-_\\.,~|]/i;\n regexen.validUrlQueryEndingChars = /[a-z0-9_&=#\\/]/i;\n regexen.validUrl = regexSupplant('(' + // $1 URL\n '(https?:\\\\/\\\\/)' + // $2 Protocol\n '(#{validDomain})' + // $3 Domain(s)\n '(?::(#{validPortNumber}))?' + // $4 Port number (optional)\n '(\\\\/#{validUrlPath}*)?' + // $5 URL Path\n '(\\\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?' + // $6 Query String\n ')', 'gi');\n return regexen.validUrl;\n}();\n\n/***/ }),\n\n/***/ 772:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return OnboardingModal; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_swipeable_views__ = __webpack_require__(165);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_swipeable_views___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_swipeable_views__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_permalink__ = __webpack_require__(270);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__compose_components_compose_form__ = __webpack_require__(286);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__compose_components_search__ = __webpack_require__(803);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__compose_components_navigation_bar__ = __webpack_require__(802);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__column_header__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_14_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__initial_state__ = __webpack_require__(18);\n\n\n\n\n\nvar _dec, _class;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar noop = function noop() {};\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"f\" /* defineMessages */])({\n home_title: {\n 'id': 'column.home',\n 'defaultMessage': 'Home'\n },\n notifications_title: {\n 'id': 'column.notifications',\n 'defaultMessage': 'Notifications'\n },\n local_title: {\n 'id': 'column.community',\n 'defaultMessage': 'Local timeline'\n },\n federated_title: {\n 'id': 'column.public',\n 'defaultMessage': 'Federated timeline'\n }\n});\n\nvar PageOne = function PageOne(_ref) {\n var acct = _ref.acct,\n domain = _ref.domain;\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page onboarding-modal__page-one'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n style: { flex: '0 0 auto' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page-one__elephant-friend'\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('h1', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_one.welcome',\n defaultMessage: 'Welcome to Mastodon!'\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_one.federation',\n defaultMessage: 'Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.'\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_one.handle',\n defaultMessage: 'You are on {domain}, so your full handle is {handle}',\n values: { domain: domain, handle: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', acct, '@', domain) }\n }))));\n};\n\nvar PageTwo = function PageTwo(_ref2) {\n var myAccount = _ref2.myAccount;\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page onboarding-modal__page-two'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'pseudo-drawer'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__compose_components_navigation_bar__[\"a\" /* default */], {\n account: myAccount\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__compose_components_compose_form__[\"a\" /* default */], {\n text: 'Awoo! #introductions',\n suggestions: Object(__WEBPACK_IMPORTED_MODULE_14_immutable__[\"List\"])(),\n mentionedDomains: [],\n spoiler: false,\n onChange: noop,\n onSubmit: noop,\n onPaste: noop,\n onPickEmoji: noop,\n onChangeSpoilerText: noop,\n onClearSuggestions: noop,\n onFetchSuggestions: noop,\n onSuggestionSelected: noop,\n showSearch: true\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_two.compose',\n defaultMessage: 'Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.'\n })));\n};\n\nvar PageThree = function PageThree(_ref3) {\n var myAccount = _ref3.myAccount;\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page onboarding-modal__page-three'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__compose_components_search__[\"a\" /* default */], {\n value: '',\n onChange: noop,\n onSubmit: noop,\n onClear: noop,\n onShow: noop\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'pseudo-drawer'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__compose_components_navigation_bar__[\"a\" /* default */], {\n account: myAccount\n }))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_three.search',\n defaultMessage: 'Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.',\n values: { illustration: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_permalink__[\"a\" /* default */], {\n to: '/timelines/tag/illustration',\n href: '/tags/illustration'\n }, void 0, '#illustration'), introductions: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_permalink__[\"a\" /* default */], {\n to: '/timelines/tag/introductions',\n href: '/tags/introductions'\n }, void 0, '#introductions') }\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_three.profile',\n defaultMessage: 'Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.'\n })));\n};\n\nvar PageFour = function PageFour(_ref4) {\n var domain = _ref4.domain,\n intl = _ref4.intl;\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page onboarding-modal__page-four'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page-four__columns'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'row'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__column_header__[\"a\" /* default */], {\n icon: 'home',\n type: intl.formatMessage(messages.home_title)\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_four.home',\n defaultMessage: 'The home timeline shows posts from people you follow.'\n }))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__column_header__[\"a\" /* default */], {\n icon: 'bell',\n type: intl.formatMessage(messages.notifications_title)\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_four.notifications',\n defaultMessage: 'The notifications column shows when someone interacts with you.'\n })))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'row'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive',\n style: { marginBottom: 0 }\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__column_header__[\"a\" /* default */], {\n icon: 'users',\n type: intl.formatMessage(messages.local_title)\n }))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'figure non-interactive',\n style: { marginBottom: 0 }\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__column_header__[\"a\" /* default */], {\n icon: 'globe',\n type: intl.formatMessage(messages.federated_title)\n })))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_five.public_timelines',\n defaultMessage: 'The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.',\n values: { domain: domain }\n }))));\n};\n\nvar PageSix = function PageSix(_ref5) {\n var admin = _ref5.admin,\n domain = _ref5.domain;\n\n var adminSection = '';\n\n if (admin) {\n adminSection = __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.admin',\n defaultMessage: 'Your instance\\'s admin is {admin}.',\n values: { admin: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_permalink__[\"a\" /* default */], {\n href: admin.get('url'),\n to: '/accounts/' + admin.get('id')\n }, void 0, '@', admin.get('acct')) }\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('br', {}), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.read_guidelines',\n defaultMessage: 'Please read {domain}\\'s {guidelines}!',\n values: { domain: domain, guidelines: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('a', {\n href: '/about/more',\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.guidelines',\n defaultMessage: 'community guidelines'\n })) }\n }));\n }\n\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__page onboarding-modal__page-six'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('h1', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.almost_done',\n defaultMessage: 'Almost done...'\n })), adminSection, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.github',\n defaultMessage: 'Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.',\n values: { github: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('a', {\n href: 'https://github.com/tootsuite/mastodon',\n target: '_blank',\n rel: 'noopener'\n }, void 0, 'GitHub') }\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.apps_available',\n defaultMessage: 'There are {apps} available for iOS, Android and other platforms.',\n values: { apps: __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('a', {\n href: 'https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md',\n target: '_blank',\n rel: 'noopener'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.various_app',\n defaultMessage: 'mobile apps'\n })) }\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('p', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('em', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.page_six.appetoot',\n defaultMessage: 'Bon Appetoot!'\n }))));\n};\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n myAccount: state.getIn(['accounts', __WEBPACK_IMPORTED_MODULE_15__initial_state__[\"e\" /* me */]]),\n admin: state.getIn(['accounts', state.getIn(['meta', 'admin'])]),\n domain: state.getIn(['meta', 'domain'])\n };\n};\n\nvar OnboardingModal = (_dec = Object(__WEBPACK_IMPORTED_MODULE_5_react_redux__[\"connect\"])(mapStateToProps), _dec(_class = Object(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"g\" /* injectIntl */])(_class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits___default()(OnboardingModal, _React$PureComponent);\n\n function OnboardingModal() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_classCallCheck___default()(this, OnboardingModal);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.state = {\n currentIndex: 0\n }, _this.handleSkip = function (e) {\n e.preventDefault();\n _this.props.onClose();\n }, _this.handleDot = function (e) {\n var i = Number(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n _this.setState({ currentIndex: i });\n }, _this.handlePrev = function () {\n _this.setState(function (_ref6) {\n var currentIndex = _ref6.currentIndex;\n return {\n currentIndex: Math.max(0, currentIndex - 1)\n };\n });\n }, _this.handleNext = function () {\n var _this2 = _this,\n pages = _this2.pages;\n\n _this.setState(function (_ref7) {\n var currentIndex = _ref7.currentIndex;\n return {\n currentIndex: Math.min(currentIndex + 1, pages.length - 1)\n };\n });\n }, _this.handleSwipe = function (index) {\n _this.setState({ currentIndex: index });\n }, _this.handleKeyUp = function (_ref8) {\n var key = _ref8.key;\n\n switch (key) {\n case 'ArrowLeft':\n _this.handlePrev();\n break;\n case 'ArrowRight':\n _this.handleNext();\n break;\n }\n }, _this.handleClose = function () {\n _this.props.onClose();\n }, _temp), __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n OnboardingModal.prototype.componentWillMount = function componentWillMount() {\n var _props = this.props,\n myAccount = _props.myAccount,\n admin = _props.admin,\n domain = _props.domain,\n intl = _props.intl;\n\n this.pages = [__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(PageOne, {\n acct: myAccount.get('acct'),\n domain: domain\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(PageTwo, {\n myAccount: myAccount\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(PageThree, {\n myAccount: myAccount\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(PageFour, {\n domain: domain,\n intl: intl\n }), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(PageSix, {\n admin: admin,\n domain: domain\n })];\n };\n\n OnboardingModal.prototype.componentDidMount = function componentDidMount() {\n window.addEventListener('keyup', this.handleKeyUp);\n };\n\n OnboardingModal.prototype.componentWillUnmount = function componentWillUnmount() {\n window.addEventListener('keyup', this.handleKeyUp);\n };\n\n OnboardingModal.prototype.render = function render() {\n var _this3 = this;\n\n var pages = this.pages;\n var currentIndex = this.state.currentIndex;\n\n var hasMore = currentIndex < pages.length - 1;\n\n var nextOrDoneBtn = hasMore ? __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleNext,\n className: 'onboarding-modal__nav onboarding-modal__next'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.next',\n defaultMessage: 'Next'\n })) : __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClose,\n className: 'onboarding-modal__nav onboarding-modal__done'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.done',\n defaultMessage: 'Done'\n }));\n\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'modal-root__modal onboarding-modal'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7_react_swipeable_views___default.a, {\n index: currentIndex,\n onChangeIndex: this.handleSwipe,\n className: 'onboarding-modal__pager'\n }, void 0, pages.map(function (page, i) {\n var className = __WEBPACK_IMPORTED_MODULE_8_classnames___default()('onboarding-modal__page__wrapper', {\n 'onboarding-modal__page__wrapper--active': i === currentIndex\n });\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: className\n }, i, page);\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__paginator'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleSkip,\n className: 'onboarding-modal__nav onboarding-modal__skip'\n }, void 0, __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'onboarding.skip',\n defaultMessage: 'Skip'\n }))), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n className: 'onboarding-modal__dots'\n }, void 0, pages.map(function (_, i) {\n var className = __WEBPACK_IMPORTED_MODULE_8_classnames___default()('onboarding-modal__dot', {\n active: i === currentIndex\n });\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {\n role: 'button',\n tabIndex: '0',\n 'data-index': i,\n onClick: _this3.handleDot,\n className: className\n }, 'dot-' + i);\n })), __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_jsx___default()('div', {}, void 0, nextOrDoneBtn)));\n };\n\n return OnboardingModal;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent)) || _class) || _class);\n\n\n/***/ }),\n\n/***/ 802:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return NavigationBar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_avatar__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_permalink__ = __webpack_require__(270);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__);\n\n\n\n\n\nvar _class, _temp;\n\n\n\n\n\n\n\n\n\n\nvar NavigationBar = (_temp = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(NavigationBar, _ImmutablePureCompone);\n\n function NavigationBar() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, NavigationBar);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.apply(this, arguments));\n }\n\n NavigationBar.prototype.render = function render() {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'navigation-bar'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_permalink__[\"a\" /* default */], {\n href: this.props.account.get('url'),\n to: '/accounts/' + this.props.account.get('id')\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, this.props.account.get('acct')), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__components_avatar__[\"a\" /* default */], {\n account: this.props.account,\n size: 40\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'navigation-bar__profile'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_permalink__[\"a\" /* default */], {\n href: this.props.account.get('url'),\n to: '/accounts/' + this.props.account.get('id')\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {\n className: 'navigation-bar__profile-account'\n }, void 0, '@', this.props.account.get('acct'))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: '/settings/profile',\n className: 'navigation-bar__profile-edit'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'navigation_bar.edit_profile',\n defaultMessage: 'Edit profile'\n }))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__components_icon_button__[\"a\" /* default */], {\n title: '',\n icon: 'close',\n onClick: this.props.onClose\n }));\n };\n\n return NavigationBar;\n}(__WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component___default.a), _class.propTypes = {\n account: __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default.a.map.isRequired,\n onClose: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func.isRequired\n}, _temp);\n\n\n/***/ }),\n\n/***/ 803:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Search; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay__ = __webpack_require__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring__);\n\n\n\n\n\nvar _class;\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"f\" /* defineMessages */])({\n placeholder: {\n 'id': 'search.placeholder',\n 'defaultMessage': 'Search'\n }\n});\n\nvar SearchPopout = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(SearchPopout, _React$PureComponent);\n\n function SearchPopout() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, SearchPopout);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n SearchPopout.prototype.render = function render() {\n var style = this.props.style;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n style: Object.assign({}, style, { position: 'absolute', width: 285 })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { opacity: 0, scaleX: 0.85, scaleY: 0.75 },\n style: { opacity: __WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleX: __WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }), scaleY: __WEBPACK_IMPORTED_MODULE_8_react_motion_lib_spring___default()(1, { damping: 35, stiffness: 400 }) }\n }, void 0, function (_ref) {\n var opacity = _ref.opacity,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-popout',\n style: { opacity: opacity, transform: 'scale(' + scaleX + ', ' + scaleY + ')' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('h4', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.search_format',\n defaultMessage: 'Advanced search format'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('ul', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('li', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('em', {}, void 0, '#example'), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.tips.hashtag',\n defaultMessage: 'hashtag'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('li', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('em', {}, void 0, '@username@domain'), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.tips.user',\n defaultMessage: 'user'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('li', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('em', {}, void 0, 'URL'), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.tips.user',\n defaultMessage: 'user'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('li', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('em', {}, void 0, 'URL'), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.tips.status',\n defaultMessage: 'status'\n }))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_popout.tips.text',\n defaultMessage: 'Simple text returns matching display names, usernames and hashtags'\n }));\n }));\n };\n\n return SearchPopout;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\nvar Search = Object(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"g\" /* injectIntl */])(_class = function (_React$PureComponent2) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Search, _React$PureComponent2);\n\n function Search() {\n var _temp, _this2, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Search);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this2 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this2), _this2.state = {\n expanded: false\n }, _this2.handleChange = function (e) {\n _this2.props.onChange(e.target.value);\n }, _this2.handleClear = function (e) {\n e.preventDefault();\n\n if (_this2.props.value.length > 0 || _this2.props.submitted) {\n _this2.props.onClear();\n }\n }, _this2.handleKeyDown = function (e) {\n if (e.key === 'Enter') {\n e.preventDefault();\n _this2.props.onSubmit();\n } else if (e.key === 'Escape') {\n document.querySelector('.ui').parentElement.focus();\n }\n }, _this2.handleFocus = function () {\n _this2.setState({ expanded: true });\n _this2.props.onShow();\n }, _this2.handleBlur = function () {\n _this2.setState({ expanded: false });\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this2, _ret);\n }\n\n Search.prototype.noop = function noop() {};\n\n Search.prototype.render = function render() {\n var _props = this.props,\n intl = _props.intl,\n value = _props.value,\n submitted = _props.submitted;\n var expanded = this.state.expanded;\n\n var hasValue = value.length > 0 || submitted;\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('label', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n style: { display: 'none' }\n }, void 0, intl.formatMessage(messages.placeholder)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('input', {\n className: 'search__input',\n type: 'text',\n placeholder: intl.formatMessage(messages.placeholder),\n value: value,\n onChange: this.handleChange,\n onKeyUp: this.handleKeyDown,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n role: 'button',\n tabIndex: '0',\n className: 'search__icon',\n onClick: this.handleClear\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-search ' + (hasValue ? '' : 'active')\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n 'aria-label': intl.formatMessage(messages.placeholder),\n className: 'fa fa-times-circle ' + (hasValue ? 'active' : '')\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_overlays_lib_Overlay___default.a, {\n show: expanded && !hasValue,\n placement: 'bottom',\n target: this\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(SearchPopout, {})));\n };\n\n return Search;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent)) || _class;\n\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// modals/onboarding_modal-399f44a19ddd0ddc4e9c.js","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class ColumnHeader extends React.PureComponent {\n\n static propTypes = {\n icon: PropTypes.string,\n type: PropTypes.string,\n active: PropTypes.bool,\n onClick: PropTypes.func,\n columnHeaderId: PropTypes.string,\n };\n\n handleClick = () => {\n this.props.onClick();\n }\n\n render () {\n const { type, active, columnHeaderId } = this.props;\n\n let icon = '';\n\n if (this.props.icon) {\n icon = <i className={`fa fa-fw fa-${this.props.icon} column-header__icon`} />;\n }\n\n return (\n <div role='heading' tabIndex='0' className={`column-header ${active ? 'active' : ''}`} onClick={this.handleClick} id={columnHeaderId || null}>\n {icon}\n {type}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/ui/components/column_header.js","import React from 'react';\nimport CharacterCounter from './character_counter';\nimport Button from '../../../components/button';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport ReplyIndicatorContainer from '../containers/reply_indicator_container';\nimport AutosuggestTextarea from '../../../components/autosuggest_textarea';\nimport UploadButtonContainer from '../containers/upload_button_container';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport Collapsable from '../../../components/collapsable';\nimport SpoilerButtonContainer from '../containers/spoiler_button_container';\nimport PrivacyDropdownContainer from '../containers/privacy_dropdown_container';\nimport SensitiveButtonContainer from '../containers/sensitive_button_container';\nimport EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';\nimport UploadFormContainer from '../containers/upload_form_container';\nimport WarningContainer from '../containers/warning_container';\nimport { isMobile } from '../../../is_mobile';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { length } from 'stringz';\nimport { countableText } from '../util/counter';\n\nconst messages = defineMessages({\n placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' },\n spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },\n publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },\n publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' },\n});\n\n@injectIntl\nexport default class ComposeForm extends ImmutablePureComponent {\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n text: PropTypes.string.isRequired,\n suggestion_token: PropTypes.string,\n suggestions: ImmutablePropTypes.list,\n spoiler: PropTypes.bool,\n privacy: PropTypes.string,\n spoiler_text: PropTypes.string,\n focusDate: PropTypes.instanceOf(Date),\n preselectDate: PropTypes.instanceOf(Date),\n is_submitting: PropTypes.bool,\n is_uploading: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onClearSuggestions: PropTypes.func.isRequired,\n onFetchSuggestions: PropTypes.func.isRequired,\n onSuggestionSelected: PropTypes.func.isRequired,\n onChangeSpoilerText: PropTypes.func.isRequired,\n onPaste: PropTypes.func.isRequired,\n onPickEmoji: PropTypes.func.isRequired,\n showSearch: PropTypes.bool,\n };\n\n static defaultProps = {\n showSearch: false,\n };\n\n handleChange = (e) => {\n this.props.onChange(e.target.value);\n }\n\n handleKeyDown = (e) => {\n if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {\n this.handleSubmit();\n }\n }\n\n handleSubmit = () => {\n if (this.props.text !== this.autosuggestTextarea.textarea.value) {\n // Something changed the text inside the textarea (e.g. browser extensions like Grammarly)\n // Update the state to match the current text\n this.props.onChange(this.autosuggestTextarea.textarea.value);\n }\n\n this.props.onSubmit();\n }\n\n onSuggestionsClearRequested = () => {\n this.props.onClearSuggestions();\n }\n\n onSuggestionsFetchRequested = (token) => {\n this.props.onFetchSuggestions(token);\n }\n\n onSuggestionSelected = (tokenStart, token, value) => {\n this._restoreCaret = null;\n this.props.onSuggestionSelected(tokenStart, token, value);\n }\n\n handleChangeSpoilerText = (e) => {\n this.props.onChangeSpoilerText(e.target.value);\n }\n\n componentWillReceiveProps (nextProps) {\n // If this is the update where we've finished uploading,\n // save the last caret position so we can restore it below!\n if (!nextProps.is_uploading && this.props.is_uploading) {\n this._restoreCaret = this.autosuggestTextarea.textarea.selectionStart;\n }\n }\n\n componentDidUpdate (prevProps) {\n // This statement does several things:\n // - If we're beginning a reply, and,\n // - Replying to zero or one users, places the cursor at the end of the textbox.\n // - Replying to more than one user, selects any usernames past the first;\n // this provides a convenient shortcut to drop everyone else from the conversation.\n // - If we've just finished uploading an image, and have a saved caret position,\n // restores the cursor to that position after the text changes!\n if (this.props.focusDate !== prevProps.focusDate || (prevProps.is_uploading && !this.props.is_uploading && typeof this._restoreCaret === 'number')) {\n let selectionEnd, selectionStart;\n\n if (this.props.preselectDate !== prevProps.preselectDate) {\n selectionEnd = this.props.text.length;\n selectionStart = this.props.text.search(/\\s/) + 1;\n } else if (typeof this._restoreCaret === 'number') {\n selectionStart = this._restoreCaret;\n selectionEnd = this._restoreCaret;\n } else {\n selectionEnd = this.props.text.length;\n selectionStart = selectionEnd;\n }\n\n this.autosuggestTextarea.textarea.setSelectionRange(selectionStart, selectionEnd);\n this.autosuggestTextarea.textarea.focus();\n } else if(prevProps.is_submitting && !this.props.is_submitting) {\n this.autosuggestTextarea.textarea.focus();\n }\n }\n\n setAutosuggestTextarea = (c) => {\n this.autosuggestTextarea = c;\n }\n\n handleEmojiPick = (data) => {\n const position = this.autosuggestTextarea.textarea.selectionStart;\n const emojiChar = data.native;\n this._restoreCaret = position + emojiChar.length + 1;\n this.props.onPickEmoji(position, data);\n }\n\n render () {\n const { intl, onPaste, showSearch } = this.props;\n const disabled = this.props.is_submitting;\n const text = [this.props.spoiler_text, countableText(this.props.text)].join('');\n\n let publishText = '';\n\n if (this.props.privacy === 'private' || this.props.privacy === 'direct') {\n publishText = <span className='compose-form__publish-private'><i className='fa fa-lock' /> {intl.formatMessage(messages.publish)}</span>;\n } else {\n publishText = this.props.privacy !== 'unlisted' ? intl.formatMessage(messages.publishLoud, { publish: intl.formatMessage(messages.publish) }) : intl.formatMessage(messages.publish);\n }\n\n return (\n <div className='compose-form'>\n <Collapsable isVisible={this.props.spoiler} fullHeight={50}>\n <div className='spoiler-input'>\n <label>\n <span style={{ display: 'none' }}>{intl.formatMessage(messages.spoiler_placeholder)}</span>\n <input placeholder={intl.formatMessage(messages.spoiler_placeholder)} value={this.props.spoiler_text} onChange={this.handleChangeSpoilerText} onKeyDown={this.handleKeyDown} type='text' className='spoiler-input__input' id='cw-spoiler-input' />\n </label>\n </div>\n </Collapsable>\n\n <WarningContainer />\n\n <ReplyIndicatorContainer />\n\n <div className='compose-form__autosuggest-wrapper'>\n <AutosuggestTextarea\n ref={this.setAutosuggestTextarea}\n placeholder={intl.formatMessage(messages.placeholder)}\n disabled={disabled}\n value={this.props.text}\n onChange={this.handleChange}\n suggestions={this.props.suggestions}\n onKeyDown={this.handleKeyDown}\n onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n onSuggestionSelected={this.onSuggestionSelected}\n onPaste={onPaste}\n autoFocus={!showSearch && !isMobile(window.innerWidth)}\n />\n\n <EmojiPickerDropdown onPickEmoji={this.handleEmojiPick} />\n </div>\n\n <div className='compose-form__modifiers'>\n <UploadFormContainer />\n </div>\n\n <div className='compose-form__buttons-wrapper'>\n <div className='compose-form__buttons'>\n <UploadButtonContainer />\n <PrivacyDropdownContainer />\n <SensitiveButtonContainer />\n <SpoilerButtonContainer />\n </div>\n\n <div className='compose-form__publish'>\n <div className='character-counter__wrapper'><CharacterCounter max={500} text={text} /></div>\n <div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabled || this.props.is_uploading || length(text) > 500 || (text.length !== 0 && text.trim().length === 0)} block /></div>\n </div>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/compose_form.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { length } from 'stringz';\n\nexport default class CharacterCounter extends React.PureComponent {\n\n static propTypes = {\n text: PropTypes.string.isRequired,\n max: PropTypes.number.isRequired,\n };\n\n checkRemainingText (diff) {\n if (diff < 0) {\n return <span className='character-counter character-counter--over'>{diff}</span>;\n }\n\n return <span className='character-counter'>{diff}</span>;\n }\n\n render () {\n const diff = this.props.max - length(this.props.text);\n return this.checkRemainingText(diff);\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/character_counter.js","import { connect } from 'react-redux';\nimport { cancelReplyCompose } from '../../../actions/compose';\nimport { makeGetStatus } from '../../../selectors';\nimport ReplyIndicator from '../components/reply_indicator';\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = state => ({\n status: getStatus(state, state.getIn(['compose', 'in_reply_to'])),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = dispatch => ({\n\n onCancel () {\n dispatch(cancelReplyCompose());\n },\n\n});\n\nexport default connect(makeMapStateToProps, mapDispatchToProps)(ReplyIndicator);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/reply_indicator_container.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport Avatar from '../../../components/avatar';\nimport IconButton from '../../../components/icon_button';\nimport DisplayName from '../../../components/display_name';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nconst messages = defineMessages({\n cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },\n});\n\n@injectIntl\nexport default class ReplyIndicator extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n status: ImmutablePropTypes.map,\n onCancel: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleClick = () => {\n this.props.onCancel();\n }\n\n handleAccountClick = (e) => {\n if (e.button === 0) {\n e.preventDefault();\n this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);\n }\n }\n\n render () {\n const { status, intl } = this.props;\n\n if (!status) {\n return null;\n }\n\n const content = { __html: status.get('contentHtml') };\n\n return (\n <div className='reply-indicator'>\n <div className='reply-indicator__header'>\n <div className='reply-indicator__cancel'><IconButton title={intl.formatMessage(messages.cancel)} icon='times' onClick={this.handleClick} /></div>\n\n <a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='reply-indicator__display-name'>\n <div className='reply-indicator__display-avatar'><Avatar account={status.get('account')} size={24} /></div>\n <DisplayName account={status.get('account')} />\n </a>\n </div>\n\n <div className='reply-indicator__content' dangerouslySetInnerHTML={content} />\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/reply_indicator.js","import React from 'react';\nimport AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';\nimport AutosuggestEmoji from './autosuggest_emoji';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { isRtl } from '../rtl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Textarea from 'react-textarea-autosize';\nimport classNames from 'classnames';\n\nconst textAtCursorMatchesToken = (str, caretPosition) => {\n let word;\n\n let left = str.slice(0, caretPosition).search(/\\S+$/);\n let right = str.slice(caretPosition).search(/\\s/);\n\n if (right < 0) {\n word = str.slice(left);\n } else {\n word = str.slice(left, right + caretPosition);\n }\n\n if (!word || word.trim().length < 3 || ['@', ':'].indexOf(word[0]) === -1) {\n return [null, null];\n }\n\n word = word.trim().toLowerCase();\n\n if (word.length > 0) {\n return [left + 1, word];\n } else {\n return [null, null];\n }\n};\n\nexport default class AutosuggestTextarea extends ImmutablePureComponent {\n\n static propTypes = {\n value: PropTypes.string,\n suggestions: ImmutablePropTypes.list,\n disabled: PropTypes.bool,\n placeholder: PropTypes.string,\n onSuggestionSelected: PropTypes.func.isRequired,\n onSuggestionsClearRequested: PropTypes.func.isRequired,\n onSuggestionsFetchRequested: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n onPaste: PropTypes.func.isRequired,\n autoFocus: PropTypes.bool,\n };\n\n static defaultProps = {\n autoFocus: true,\n };\n\n state = {\n suggestionsHidden: false,\n selectedSuggestion: 0,\n lastToken: null,\n tokenStart: 0,\n };\n\n onChange = (e) => {\n const [ tokenStart, token ] = textAtCursorMatchesToken(e.target.value, e.target.selectionStart);\n\n if (token !== null && this.state.lastToken !== token) {\n this.setState({ lastToken: token, selectedSuggestion: 0, tokenStart });\n this.props.onSuggestionsFetchRequested(token);\n } else if (token === null) {\n this.setState({ lastToken: null });\n this.props.onSuggestionsClearRequested();\n }\n\n this.props.onChange(e);\n }\n\n onKeyDown = (e) => {\n const { suggestions, disabled } = this.props;\n const { selectedSuggestion, suggestionsHidden } = this.state;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n switch(e.key) {\n case 'Escape':\n if (!suggestionsHidden) {\n e.preventDefault();\n this.setState({ suggestionsHidden: true });\n }\n\n break;\n case 'ArrowDown':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.min(selectedSuggestion + 1, suggestions.size - 1) });\n }\n\n break;\n case 'ArrowUp':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.max(selectedSuggestion - 1, 0) });\n }\n\n break;\n case 'Enter':\n case 'Tab':\n // Select suggestion\n if (this.state.lastToken !== null && suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestions.get(selectedSuggestion));\n }\n\n break;\n }\n\n if (e.defaultPrevented || !this.props.onKeyDown) {\n return;\n }\n\n this.props.onKeyDown(e);\n }\n\n onKeyUp = e => {\n if (e.key === 'Escape' && this.state.suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n }\n\n if (this.props.onKeyUp) {\n this.props.onKeyUp(e);\n }\n }\n\n onBlur = () => {\n this.setState({ suggestionsHidden: true });\n }\n\n onSuggestionClick = (e) => {\n const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion);\n this.textarea.focus();\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden) {\n this.setState({ suggestionsHidden: false });\n }\n }\n\n setTextarea = (c) => {\n this.textarea = c;\n }\n\n onPaste = (e) => {\n if (e.clipboardData && e.clipboardData.files.length === 1) {\n this.props.onPaste(e.clipboardData.files);\n e.preventDefault();\n }\n }\n\n renderSuggestion = (suggestion, i) => {\n const { selectedSuggestion } = this.state;\n let inner, key;\n\n if (typeof suggestion === 'object') {\n inner = <AutosuggestEmoji emoji={suggestion} />;\n key = suggestion.id;\n } else {\n inner = <AutosuggestAccountContainer id={suggestion} />;\n key = suggestion;\n }\n\n return (\n <div role='button' tabIndex='0' key={key} data-index={i} className={classNames('autosuggest-textarea__suggestions__item', { selected: i === selectedSuggestion })} onMouseDown={this.onSuggestionClick}>\n {inner}\n </div>\n );\n }\n\n render () {\n const { value, suggestions, disabled, placeholder, autoFocus } = this.props;\n const { suggestionsHidden } = this.state;\n const style = { direction: 'ltr' };\n\n if (isRtl(value)) {\n style.direction = 'rtl';\n }\n\n return (\n <div className='autosuggest-textarea'>\n <label>\n <span style={{ display: 'none' }}>{placeholder}</span>\n\n <Textarea\n inputRef={this.setTextarea}\n className='autosuggest-textarea__textarea'\n disabled={disabled}\n placeholder={placeholder}\n autoFocus={autoFocus}\n value={value}\n onChange={this.onChange}\n onKeyDown={this.onKeyDown}\n onKeyUp={this.onKeyUp}\n onBlur={this.onBlur}\n onPaste={this.onPaste}\n style={style}\n />\n </label>\n\n <div className={`autosuggest-textarea__suggestions ${suggestionsHidden || suggestions.isEmpty() ? '' : 'autosuggest-textarea__suggestions--visible'}`}>\n {suggestions.map(this.renderSuggestion)}\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/autosuggest_textarea.js","import { connect } from 'react-redux';\nimport AutosuggestAccount from '../components/autosuggest_account';\nimport { makeGetAccount } from '../../../selectors';\n\nconst makeMapStateToProps = () => {\n const getAccount = makeGetAccount();\n\n const mapStateToProps = (state, { id }) => ({\n account: getAccount(state, id),\n });\n\n return mapStateToProps;\n};\n\nexport default connect(makeMapStateToProps)(AutosuggestAccount);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/autosuggest_account_container.js","import React from 'react';\nimport Avatar from '../../../components/avatar';\nimport DisplayName from '../../../components/display_name';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class AutosuggestAccount extends ImmutablePureComponent {\n\n static propTypes = {\n account: ImmutablePropTypes.map.isRequired,\n };\n\n render () {\n const { account } = this.props;\n\n return (\n <div className='autosuggest-account'>\n <div className='autosuggest-account-icon'><Avatar account={account} size={18} /></div>\n <DisplayName account={account} />\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/autosuggest_account.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';\n\nconst assetHost = process.env.CDN_HOST || '';\n\nexport default class AutosuggestEmoji extends React.PureComponent {\n\n static propTypes = {\n emoji: PropTypes.object.isRequired,\n };\n\n render () {\n const { emoji } = this.props;\n let url;\n\n if (emoji.custom) {\n url = emoji.imageUrl;\n } else {\n const mapping = unicodeMapping[emoji.native] || unicodeMapping[emoji.native.replace(/\\uFE0F$/, '')];\n\n if (!mapping) {\n return null;\n }\n\n url = `${assetHost}/emoji/${mapping.filename}.svg`;\n }\n\n return (\n <div className='autosuggest-emoji'>\n <img\n className='emojione'\n src={url}\n alt={emoji.native || emoji.colons}\n />\n\n {emoji.colons}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/autosuggest_emoji.js","import React from 'react';\nimport PropTypes from 'prop-types';\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar isIE = isBrowser ? !!document.documentElement.currentStyle : false;\nvar hiddenTextarea = isBrowser && document.createElement('textarea');\n\nvar HIDDEN_TEXTAREA_STYLE = {\n 'min-height': '0',\n 'max-height': 'none',\n height: '0',\n visibility: 'hidden',\n overflow: 'hidden',\n position: 'absolute',\n 'z-index': '-1000',\n top: '0',\n right: '0'\n};\n\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'font-family', 'font-weight', 'font-size', 'font-style', 'text-rendering', 'text-transform', 'width', 'text-indent', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width', 'box-sizing'];\n\nvar computedStyleCache = {};\n\nfunction calculateNodeHeight(uiTextNode, uid) {\n var useCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var minRows = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var maxRows = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;\n\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n }\n\n // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n var nodeStyling = calculateNodeStyling(uiTextNode, uid, useCache);\n\n if (nodeStyling === null) {\n return null;\n }\n\n var paddingSize = nodeStyling.paddingSize,\n borderSize = nodeStyling.borderSize,\n boxSizing = nodeStyling.boxSizing,\n sizingStyle = nodeStyling.sizingStyle;\n\n // Need to have the overflow attribute to hide the scrollbar otherwise\n // text-lines will not calculated properly as the shadow will technically be\n // narrower for content\n\n Object.keys(sizingStyle).forEach(function (key) {\n hiddenTextarea.style[key] = sizingStyle[key];\n });\n Object.keys(HIDDEN_TEXTAREA_STYLE).forEach(function (key) {\n hiddenTextarea.style.setProperty(key, HIDDEN_TEXTAREA_STYLE[key], 'important');\n });\n hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || 'x';\n\n var minHeight = -Infinity;\n var maxHeight = Infinity;\n var height = hiddenTextarea.scrollHeight;\n\n if (boxSizing === 'border-box') {\n // border-box: add border, since height = content + padding + border\n height = height + borderSize;\n } else if (boxSizing === 'content-box') {\n // remove padding, since height = content\n height = height - paddingSize;\n }\n\n // measure height of a textarea with a single row\n hiddenTextarea.value = 'x';\n var singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\n\n if (minRows !== null || maxRows !== null) {\n if (minRows !== null) {\n minHeight = singleRowHeight * minRows;\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n height = Math.max(minHeight, height);\n }\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n height = Math.min(maxHeight, height);\n }\n }\n\n var rowCount = Math.floor(height / singleRowHeight);\n\n return { height: height, minHeight: minHeight, maxHeight: maxHeight, rowCount: rowCount };\n}\n\nfunction calculateNodeStyling(node, uid) {\n var useCache = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (useCache && computedStyleCache[uid]) {\n return computedStyleCache[uid];\n }\n\n var style = window.getComputedStyle(node);\n\n if (style === null) {\n return null;\n }\n\n var sizingStyle = SIZING_STYLE.reduce(function (obj, name) {\n obj[name] = style.getPropertyValue(name);\n return obj;\n }, {});\n\n var boxSizing = sizingStyle['box-sizing'];\n\n // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n if (isIE && boxSizing === 'border-box') {\n sizingStyle.width = parseFloat(sizingStyle.width) + parseFloat(style['border-right-width']) + parseFloat(style['border-left-width']) + parseFloat(style['padding-right']) + parseFloat(style['padding-left']) + 'px';\n }\n\n var paddingSize = parseFloat(sizingStyle['padding-bottom']) + parseFloat(sizingStyle['padding-top']);\n\n var borderSize = parseFloat(sizingStyle['border-bottom-width']) + parseFloat(sizingStyle['border-top-width']);\n\n var nodeInfo = {\n sizingStyle: sizingStyle,\n paddingSize: paddingSize,\n borderSize: borderSize,\n boxSizing: boxSizing\n };\n\n if (useCache) {\n computedStyleCache[uid] = nodeInfo;\n }\n\n return nodeInfo;\n}\n\nvar purgeCache = function purgeCache(uid) {\n return delete computedStyleCache[uid];\n};\n\nfunction autoInc() {\n var seed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n\n\n\n\n\n\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n/**\n * <TextareaAutosize />\n */\n\nvar noop = function noop() {};\n\nvar _ref = isBrowser && window.requestAnimationFrame ? [window.requestAnimationFrame, window.cancelAnimationFrame] : [setTimeout, clearTimeout];\nvar onNextFrame = _ref[0];\nvar clearNextFrameAction = _ref[1];\n\nvar TextareaAutosize = function (_React$Component) {\n inherits(TextareaAutosize, _React$Component);\n\n function TextareaAutosize(props) {\n classCallCheck(this, TextareaAutosize);\n\n var _this = possibleConstructorReturn(this, _React$Component.call(this, props));\n\n _this._resizeLock = false;\n\n _this._onRootDOMNode = function (node) {\n _this._rootDOMNode = node;\n\n if (_this.props.inputRef) {\n _this.props.inputRef(node);\n }\n };\n\n _this._onChange = function (event) {\n if (!_this._controlled) {\n _this._resizeComponent();\n }\n _this.props.onChange(event);\n };\n\n _this._resizeComponent = function () {\n var callback = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (typeof _this._rootDOMNode === 'undefined') {\n callback();\n return;\n }\n\n var nodeHeight = calculateNodeHeight(_this._rootDOMNode, _this._uid, _this.props.useCacheForDOMMeasurements, _this.props.minRows, _this.props.maxRows);\n\n if (nodeHeight === null) {\n callback();\n return;\n }\n\n var height = nodeHeight.height,\n minHeight = nodeHeight.minHeight,\n maxHeight = nodeHeight.maxHeight,\n rowCount = nodeHeight.rowCount;\n\n\n _this.rowCount = rowCount;\n\n if (_this.state.height !== height || _this.state.minHeight !== minHeight || _this.state.maxHeight !== maxHeight) {\n _this.setState({ height: height, minHeight: minHeight, maxHeight: maxHeight }, callback);\n return;\n }\n\n callback();\n };\n\n _this.state = {\n height: props.style && props.style.height || 0,\n minHeight: -Infinity,\n maxHeight: Infinity\n };\n\n _this._uid = uid();\n _this._controlled = typeof props.value === 'string';\n return _this;\n }\n\n TextareaAutosize.prototype.render = function render() {\n var _props = this.props,\n _minRows = _props.minRows,\n _maxRows = _props.maxRows,\n _onHeightChange = _props.onHeightChange,\n _useCacheForDOMMeasurements = _props.useCacheForDOMMeasurements,\n _inputRef = _props.inputRef,\n props = objectWithoutProperties(_props, ['minRows', 'maxRows', 'onHeightChange', 'useCacheForDOMMeasurements', 'inputRef']);\n\n\n props.style = _extends({}, props.style, {\n height: this.state.height\n });\n\n var maxHeight = Math.max(props.style.maxHeight || Infinity, this.state.maxHeight);\n\n if (maxHeight < this.state.height) {\n props.style.overflow = 'hidden';\n }\n\n return React.createElement('textarea', _extends({}, props, {\n onChange: this._onChange,\n ref: this._onRootDOMNode\n }));\n };\n\n TextareaAutosize.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._resizeComponent();\n // Working around Firefox bug which runs resize listeners even when other JS is running at the same moment\n // causing competing rerenders (due to setState in the listener) in React.\n // More can be found here - facebook/react#6324\n this._resizeListener = function () {\n if (_this2._resizeLock) {\n return;\n }\n _this2._resizeLock = true;\n _this2._resizeComponent(function () {\n return _this2._resizeLock = false;\n });\n };\n window.addEventListener('resize', this._resizeListener);\n };\n\n TextareaAutosize.prototype.componentWillReceiveProps = function componentWillReceiveProps() {\n var _this3 = this;\n\n this._clearNextFrame();\n this._onNextFrameActionId = onNextFrame(function () {\n return _this3._resizeComponent();\n });\n };\n\n TextareaAutosize.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.state.height !== prevState.height) {\n this.props.onHeightChange(this.state.height, this);\n }\n };\n\n TextareaAutosize.prototype.componentWillUnmount = function componentWillUnmount() {\n this._clearNextFrame();\n window.removeEventListener('resize', this._resizeListener);\n purgeCache(this._uid);\n };\n\n TextareaAutosize.prototype._clearNextFrame = function _clearNextFrame() {\n clearNextFrameAction(this._onNextFrameActionId);\n };\n\n return TextareaAutosize;\n}(React.Component);\n\nTextareaAutosize.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n onHeightChange: PropTypes.func,\n useCacheForDOMMeasurements: PropTypes.bool,\n minRows: PropTypes.number,\n maxRows: PropTypes.number,\n inputRef: PropTypes.func\n};\nTextareaAutosize.defaultProps = {\n onChange: noop,\n onHeightChange: noop,\n useCacheForDOMMeasurements: false\n};\n\nexport default TextareaAutosize;\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-textarea-autosize/es/index.js","import { connect } from 'react-redux';\nimport UploadButton from '../components/upload_button';\nimport { uploadCompose } from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n disabled: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size > 3 || state.getIn(['compose', 'media_attachments']).some(m => m.get('type') === 'video')),\n resetFileKey: state.getIn(['compose', 'resetFileKey']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onSelectFile (files) {\n dispatch(uploadCompose(files));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UploadButton);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/upload_button_container.js","import React from 'react';\nimport IconButton from '../../../components/icon_button';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { connect } from 'react-redux';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nconst messages = defineMessages({\n upload: { id: 'upload_button.label', defaultMessage: 'Add media' },\n});\n\nconst makeMapStateToProps = () => {\n const mapStateToProps = state => ({\n acceptContentTypes: state.getIn(['media_attachments', 'accept_content_types']),\n });\n\n return mapStateToProps;\n};\n\nconst iconStyle = {\n height: null,\n lineHeight: '27px',\n};\n\n@connect(makeMapStateToProps)\n@injectIntl\nexport default class UploadButton extends ImmutablePureComponent {\n\n static propTypes = {\n disabled: PropTypes.bool,\n onSelectFile: PropTypes.func.isRequired,\n style: PropTypes.object,\n resetFileKey: PropTypes.number,\n acceptContentTypes: ImmutablePropTypes.listOf(PropTypes.string).isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleChange = (e) => {\n if (e.target.files.length > 0) {\n this.props.onSelectFile(e.target.files);\n }\n }\n\n handleClick = () => {\n this.fileElement.click();\n }\n\n setRef = (c) => {\n this.fileElement = c;\n }\n\n render () {\n\n const { intl, resetFileKey, disabled, acceptContentTypes } = this.props;\n\n return (\n <div className='compose-form__upload-button'>\n <IconButton icon='camera' title={intl.formatMessage(messages.upload)} disabled={disabled} onClick={this.handleClick} className='compose-form__upload-button-icon' size={18} inverted style={iconStyle} />\n <label>\n <span style={{ display: 'none' }}>{intl.formatMessage(messages.upload)}</span>\n <input\n key={resetFileKey}\n ref={this.setRef}\n type='file'\n multiple={false}\n accept={acceptContentTypes.toArray().join(',')}\n onChange={this.handleChange}\n disabled={disabled}\n style={{ display: 'none' }}\n />\n </label>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/upload_button.js","import React from 'react';\nimport Motion from '../features/ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport PropTypes from 'prop-types';\n\nconst Collapsable = ({ fullHeight, isVisible, children }) => (\n <Motion defaultStyle={{ opacity: !isVisible ? 0 : 100, height: isVisible ? fullHeight : 0 }} style={{ opacity: spring(!isVisible ? 0 : 100), height: spring(!isVisible ? 0 : fullHeight) }}>\n {({ opacity, height }) =>\n <div style={{ height: `${height}px`, overflow: 'hidden', opacity: opacity / 100, display: Math.floor(opacity) === 0 ? 'none' : 'block' }}>\n {children}\n </div>\n }\n </Motion>\n);\n\nCollapsable.propTypes = {\n fullHeight: PropTypes.number.isRequired,\n isVisible: PropTypes.bool.isRequired,\n children: PropTypes.node.isRequired,\n};\n\nexport default Collapsable;\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/collapsable.js","import { connect } from 'react-redux';\nimport TextIconButton from '../components/text_icon_button';\nimport { changeComposeSpoilerness } from '../../../actions/compose';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n title: { id: 'compose_form.spoiler', defaultMessage: 'Hide text behind warning' },\n});\n\nconst mapStateToProps = (state, { intl }) => ({\n label: 'CW',\n title: intl.formatMessage(messages.title),\n active: state.getIn(['compose', 'spoiler']),\n ariaControls: 'cw-spoiler-input',\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onClick () {\n dispatch(changeComposeSpoilerness());\n },\n\n});\n\nexport default injectIntl(connect(mapStateToProps, mapDispatchToProps)(TextIconButton));\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/spoiler_button_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class TextIconButton extends React.PureComponent {\n\n static propTypes = {\n label: PropTypes.string.isRequired,\n title: PropTypes.string,\n active: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n ariaControls: PropTypes.string,\n };\n\n handleClick = (e) => {\n e.preventDefault();\n this.props.onClick();\n }\n\n render () {\n const { label, title, active, ariaControls } = this.props;\n\n return (\n <button title={title} aria-label={title} className={`text-icon-button ${active ? 'active' : ''}`} aria-expanded={active} onClick={this.handleClick} aria-controls={ariaControls}>\n {label}\n </button>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/text_icon_button.js","import { connect } from 'react-redux';\nimport PrivacyDropdown from '../components/privacy_dropdown';\nimport { changeComposeVisibility } from '../../../actions/compose';\nimport { openModal, closeModal } from '../../../actions/modal';\nimport { isUserTouching } from '../../../is_mobile';\n\nconst mapStateToProps = state => ({\n isModalOpen: state.get('modal').modalType === 'ACTIONS',\n value: state.getIn(['compose', 'privacy']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (value) {\n dispatch(changeComposeVisibility(value));\n },\n\n isUserTouching,\n onModalOpen: props => dispatch(openModal('ACTIONS', props)),\n onModalClose: () => dispatch(closeModal()),\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PrivacyDropdown);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/privacy_dropdown_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport IconButton from '../../../components/icon_button';\nimport Overlay from 'react-overlays/lib/Overlay';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport detectPassiveEvents from 'detect-passive-events';\nimport classNames from 'classnames';\n\nconst messages = defineMessages({\n public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },\n public_long: { id: 'privacy.public.long', defaultMessage: 'Post to public timelines' },\n unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },\n unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Do not show in public timelines' },\n private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },\n private_long: { id: 'privacy.private.long', defaultMessage: 'Post to followers only' },\n direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },\n direct_long: { id: 'privacy.direct.long', defaultMessage: 'Post to mentioned users only' },\n change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },\n});\n\nconst listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;\n\nclass PrivacyDropdownMenu extends React.PureComponent {\n\n static propTypes = {\n style: PropTypes.object,\n items: PropTypes.array.isRequired,\n value: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n handleClick = e => {\n if (e.key === 'Escape') {\n this.props.onClose();\n } else if (!e.key || e.key === 'Enter') {\n const value = e.currentTarget.getAttribute('data-index');\n\n e.preventDefault();\n\n this.props.onClose();\n this.props.onChange(value);\n }\n }\n\n componentDidMount () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n componentWillUnmount () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n render () {\n const { style, items, value } = this.props;\n\n return (\n <Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>\n {({ opacity, scaleX, scaleY }) => (\n <div className='privacy-dropdown__dropdown' style={{ ...style, opacity: opacity, transform: `scale(${scaleX}, ${scaleY})` }} ref={this.setRef}>\n {items.map(item =>\n <div role='button' tabIndex='0' key={item.value} data-index={item.value} onKeyDown={this.handleClick} onClick={this.handleClick} className={classNames('privacy-dropdown__option', { active: item.value === value })}>\n <div className='privacy-dropdown__option__icon'>\n <i className={`fa fa-fw fa-${item.icon}`} />\n </div>\n\n <div className='privacy-dropdown__option__content'>\n <strong>{item.text}</strong>\n {item.meta}\n </div>\n </div>\n )}\n </div>\n )}\n </Motion>\n );\n }\n\n}\n\n@injectIntl\nexport default class PrivacyDropdown extends React.PureComponent {\n\n static propTypes = {\n isUserTouching: PropTypes.func,\n isModalOpen: PropTypes.bool.isRequired,\n onModalOpen: PropTypes.func,\n onModalClose: PropTypes.func,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n state = {\n open: false,\n };\n\n handleToggle = () => {\n if (this.props.isUserTouching()) {\n if (this.state.open) {\n this.props.onModalClose();\n } else {\n this.props.onModalOpen({\n actions: this.options.map(option => ({ ...option, active: option.value === this.props.value })),\n onClick: this.handleModalActionClick,\n });\n }\n } else {\n this.setState({ open: !this.state.open });\n }\n }\n\n handleModalActionClick = (e) => {\n e.preventDefault();\n\n const { value } = this.options[e.currentTarget.getAttribute('data-index')];\n\n this.props.onModalClose();\n this.props.onChange(value);\n }\n\n handleKeyDown = e => {\n switch(e.key) {\n case 'Enter':\n this.handleToggle();\n break;\n case 'Escape':\n this.handleClose();\n break;\n }\n }\n\n handleClose = () => {\n this.setState({ open: false });\n }\n\n handleChange = value => {\n this.props.onChange(value);\n }\n\n componentWillMount () {\n const { intl: { formatMessage } } = this.props;\n\n this.options = [\n { icon: 'globe', value: 'public', text: formatMessage(messages.public_short), meta: formatMessage(messages.public_long) },\n { icon: 'unlock-alt', value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long) },\n { icon: 'lock', value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) },\n { icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },\n ];\n }\n\n render () {\n const { value, intl } = this.props;\n const { open } = this.state;\n\n const valueOption = this.options.find(item => item.value === value);\n\n return (\n <div className={classNames('privacy-dropdown', { active: open })} onKeyDown={this.handleKeyDown}>\n <div className={classNames('privacy-dropdown__value', { active: this.options.indexOf(valueOption) === 0 })}>\n <IconButton\n className='privacy-dropdown__value-icon'\n icon={valueOption.icon}\n title={intl.formatMessage(messages.change_privacy)}\n size={18}\n expanded={open}\n active={open}\n inverted\n onClick={this.handleToggle}\n style={{ height: null, lineHeight: '27px' }}\n />\n </div>\n\n <Overlay show={open} placement='bottom' target={this}>\n <PrivacyDropdownMenu\n items={this.options}\n value={value}\n onClose={this.handleClose}\n onChange={this.handleChange}\n />\n </Overlay>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/privacy_dropdown.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport IconButton from '../../../components/icon_button';\nimport { changeComposeSensitivity } from '../../../actions/compose';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n title: { id: 'compose_form.sensitive', defaultMessage: 'Mark media as sensitive' },\n});\n\nconst mapStateToProps = state => ({\n visible: state.getIn(['compose', 'media_attachments']).size > 0,\n active: state.getIn(['compose', 'sensitive']),\n disabled: state.getIn(['compose', 'spoiler']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onClick () {\n dispatch(changeComposeSensitivity());\n },\n\n});\n\nclass SensitiveButton extends React.PureComponent {\n\n static propTypes = {\n visible: PropTypes.bool,\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const { visible, active, disabled, onClick, intl } = this.props;\n\n return (\n <Motion defaultStyle={{ scale: 0.87 }} style={{ scale: spring(visible ? 1 : 0.87, { stiffness: 200, damping: 3 }) }}>\n {({ scale }) => {\n const icon = active ? 'eye-slash' : 'eye';\n const className = classNames('compose-form__sensitive-button', {\n 'compose-form__sensitive-button--visible': visible,\n });\n return (\n <div className={className} style={{ transform: `scale(${scale})` }}>\n <IconButton\n className='compose-form__sensitive-button__icon'\n title={intl.formatMessage(messages.title)}\n icon={icon}\n onClick={onClick}\n size={18}\n active={active}\n disabled={disabled}\n style={{ lineHeight: null, height: null }}\n inverted\n />\n </div>\n );\n }}\n </Motion>\n );\n }\n\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(injectIntl(SensitiveButton));\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/sensitive_button_container.js","import { connect } from 'react-redux';\nimport EmojiPickerDropdown from '../components/emoji_picker_dropdown';\nimport { changeSetting } from '../../../actions/settings';\nimport { createSelector } from 'reselect';\nimport { Map as ImmutableMap } from 'immutable';\nimport { useEmoji } from '../../../actions/emojis';\n\nconst perLine = 8;\nconst lines = 2;\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'yum',\n 'disappointed',\n 'thinking_face',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n 'ok_hand',\n];\n\nconst getFrequentlyUsedEmojis = createSelector([\n state => state.getIn(['settings', 'frequentlyUsedEmojis'], ImmutableMap()),\n], emojiCounters => {\n let emojis = emojiCounters\n .keySeq()\n .sort((a, b) => emojiCounters.get(a) - emojiCounters.get(b))\n .reverse()\n .slice(0, perLine * lines)\n .toArray();\n\n if (emojis.length < DEFAULTS.length) {\n emojis = emojis.concat(DEFAULTS.slice(0, DEFAULTS.length - emojis.length));\n }\n\n return emojis;\n});\n\nconst getCustomEmojis = createSelector([\n state => state.get('custom_emojis'),\n], emojis => emojis.filter(e => e.get('visible_in_picker')).sort((a, b) => {\n const aShort = a.get('shortcode').toLowerCase();\n const bShort = b.get('shortcode').toLowerCase();\n\n if (aShort < bShort) {\n return -1;\n } else if (aShort > bShort ) {\n return 1;\n } else {\n return 0;\n }\n}));\n\nconst mapStateToProps = state => ({\n custom_emojis: getCustomEmojis(state),\n skinTone: state.getIn(['settings', 'skinTone']),\n frequentlyUsedEmojis: getFrequentlyUsedEmojis(state),\n});\n\nconst mapDispatchToProps = (dispatch, { onPickEmoji }) => ({\n onSkinTone: skinTone => {\n dispatch(changeSetting(['skinTone'], skinTone));\n },\n\n onPickEmoji: emoji => {\n dispatch(useEmoji(emoji));\n\n if (onPickEmoji) {\n onPickEmoji(emoji);\n }\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EmojiPickerDropdown);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';\nimport Overlay from 'react-overlays/lib/Overlay';\nimport classNames from 'classnames';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport detectPassiveEvents from 'detect-passive-events';\nimport { buildCustomEmojis } from '../../emoji/emoji';\n\nconst messages = defineMessages({\n emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },\n emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' },\n emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojos!! (╯°□°)╯︵ ┻━┻' },\n custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },\n recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },\n search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' },\n people: { id: 'emoji_button.people', defaultMessage: 'People' },\n nature: { id: 'emoji_button.nature', defaultMessage: 'Nature' },\n food: { id: 'emoji_button.food', defaultMessage: 'Food & Drink' },\n activity: { id: 'emoji_button.activity', defaultMessage: 'Activity' },\n travel: { id: 'emoji_button.travel', defaultMessage: 'Travel & Places' },\n objects: { id: 'emoji_button.objects', defaultMessage: 'Objects' },\n symbols: { id: 'emoji_button.symbols', defaultMessage: 'Symbols' },\n flags: { id: 'emoji_button.flags', defaultMessage: 'Flags' },\n});\n\nconst assetHost = process.env.CDN_HOST || '';\nlet EmojiPicker, Emoji; // load asynchronously\n\nconst backgroundImageFn = () => `${assetHost}/emoji/sheet.png`;\nconst listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;\n\nconst categoriesSort = [\n 'recent',\n 'custom',\n 'people',\n 'nature',\n 'foods',\n 'activity',\n 'places',\n 'objects',\n 'symbols',\n 'flags',\n];\n\nclass ModifierPickerMenu extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n };\n\n handleClick = e => {\n this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1);\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.active) {\n this.attachListeners();\n } else {\n this.removeListeners();\n }\n }\n\n componentWillUnmount () {\n this.removeListeners();\n }\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n attachListeners () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n removeListeners () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n render () {\n const { active } = this.props;\n\n return (\n <div className='emoji-picker-dropdown__modifiers__menu' style={{ display: active ? 'block' : 'none' }} ref={this.setRef}>\n <button onClick={this.handleClick} data-index={1}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={1} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={2}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={2} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={3}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={3} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={4}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={4} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={5}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={5} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={6}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={6} backgroundImageFn={backgroundImageFn} /></button>\n </div>\n );\n }\n\n}\n\nclass ModifierPicker extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n modifier: PropTypes.number,\n onChange: PropTypes.func,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n };\n\n handleClick = () => {\n if (this.props.active) {\n this.props.onClose();\n } else {\n this.props.onOpen();\n }\n }\n\n handleSelect = modifier => {\n this.props.onChange(modifier);\n this.props.onClose();\n }\n\n render () {\n const { active, modifier } = this.props;\n\n return (\n <div className='emoji-picker-dropdown__modifiers'>\n <Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={modifier} onClick={this.handleClick} backgroundImageFn={backgroundImageFn} />\n <ModifierPickerMenu active={active} onSelect={this.handleSelect} onClose={this.props.onClose} />\n </div>\n );\n }\n\n}\n\n@injectIntl\nclass EmojiPickerMenu extends React.PureComponent {\n\n static propTypes = {\n custom_emojis: ImmutablePropTypes.list,\n frequentlyUsedEmojis: PropTypes.arrayOf(PropTypes.string),\n loading: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onPick: PropTypes.func.isRequired,\n style: PropTypes.object,\n placement: PropTypes.string,\n arrowOffsetLeft: PropTypes.string,\n arrowOffsetTop: PropTypes.string,\n intl: PropTypes.object.isRequired,\n skinTone: PropTypes.number.isRequired,\n onSkinTone: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n style: {},\n loading: true,\n placement: 'bottom',\n frequentlyUsedEmojis: [],\n };\n\n state = {\n modifierOpen: false,\n };\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n componentDidMount () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n componentWillUnmount () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n getI18n = () => {\n const { intl } = this.props;\n\n return {\n search: intl.formatMessage(messages.emoji_search),\n notfound: intl.formatMessage(messages.emoji_not_found),\n categories: {\n search: intl.formatMessage(messages.search_results),\n recent: intl.formatMessage(messages.recent),\n people: intl.formatMessage(messages.people),\n nature: intl.formatMessage(messages.nature),\n foods: intl.formatMessage(messages.food),\n activity: intl.formatMessage(messages.activity),\n places: intl.formatMessage(messages.travel),\n objects: intl.formatMessage(messages.objects),\n symbols: intl.formatMessage(messages.symbols),\n flags: intl.formatMessage(messages.flags),\n custom: intl.formatMessage(messages.custom),\n },\n };\n }\n\n handleClick = emoji => {\n if (!emoji.native) {\n emoji.native = emoji.colons;\n }\n\n this.props.onClose();\n this.props.onPick(emoji);\n }\n\n handleModifierOpen = () => {\n this.setState({ modifierOpen: true });\n }\n\n handleModifierClose = () => {\n this.setState({ modifierOpen: false });\n }\n\n handleModifierChange = modifier => {\n this.props.onSkinTone(modifier);\n }\n\n render () {\n const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props;\n\n if (loading) {\n return <div style={{ width: 299 }} />;\n }\n\n const title = intl.formatMessage(messages.emoji);\n const { modifierOpen } = this.state;\n\n return (\n <div className={classNames('emoji-picker-dropdown__menu', { selecting: modifierOpen })} style={style} ref={this.setRef}>\n <EmojiPicker\n perLine={8}\n emojiSize={22}\n sheetSize={32}\n custom={buildCustomEmojis(custom_emojis)}\n color=''\n emoji=''\n set='twitter'\n title={title}\n i18n={this.getI18n()}\n onClick={this.handleClick}\n include={categoriesSort}\n recent={frequentlyUsedEmojis}\n skin={skinTone}\n showPreview={false}\n backgroundImageFn={backgroundImageFn}\n emojiTooltip\n />\n\n <ModifierPicker\n active={modifierOpen}\n modifier={skinTone}\n onOpen={this.handleModifierOpen}\n onClose={this.handleModifierClose}\n onChange={this.handleModifierChange}\n />\n </div>\n );\n }\n\n}\n\n@injectIntl\nexport default class EmojiPickerDropdown extends React.PureComponent {\n\n static propTypes = {\n custom_emojis: ImmutablePropTypes.list,\n frequentlyUsedEmojis: PropTypes.arrayOf(PropTypes.string),\n intl: PropTypes.object.isRequired,\n onPickEmoji: PropTypes.func.isRequired,\n onSkinTone: PropTypes.func.isRequired,\n skinTone: PropTypes.number.isRequired,\n };\n\n state = {\n active: false,\n loading: false,\n };\n\n setRef = (c) => {\n this.dropdown = c;\n }\n\n onShowDropdown = () => {\n this.setState({ active: true });\n\n if (!EmojiPicker) {\n this.setState({ loading: true });\n\n EmojiPickerAsync().then(EmojiMart => {\n EmojiPicker = EmojiMart.Picker;\n Emoji = EmojiMart.Emoji;\n\n this.setState({ loading: false });\n }).catch(() => {\n this.setState({ loading: false });\n });\n }\n }\n\n onHideDropdown = () => {\n this.setState({ active: false });\n }\n\n onToggle = (e) => {\n if (!this.state.loading && (!e.key || e.key === 'Enter')) {\n if (this.state.active) {\n this.onHideDropdown();\n } else {\n this.onShowDropdown();\n }\n }\n }\n\n handleKeyDown = e => {\n if (e.key === 'Escape') {\n this.onHideDropdown();\n }\n }\n\n setTargetRef = c => {\n this.target = c;\n }\n\n findTarget = () => {\n return this.target;\n }\n\n render () {\n const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis } = this.props;\n const title = intl.formatMessage(messages.emoji);\n const { active, loading } = this.state;\n\n return (\n <div className='emoji-picker-dropdown' onKeyDown={this.handleKeyDown}>\n <div ref={this.setTargetRef} className='emoji-button' title={title} aria-label={title} aria-expanded={active} role='button' onClick={this.onToggle} onKeyDown={this.onToggle} tabIndex={0}>\n <img\n className={classNames('emojione', { 'pulse-loading': active && loading })}\n alt='🙂'\n src={`${assetHost}/emoji/1f602.svg`}\n />\n </div>\n\n <Overlay show={active} placement='bottom' target={this.findTarget}>\n <EmojiPickerMenu\n custom_emojis={this.props.custom_emojis}\n loading={loading}\n onClose={this.onHideDropdown}\n onPick={onPickEmoji}\n onSkinTone={onSkinTone}\n skinTone={skinTone}\n frequentlyUsedEmojis={frequentlyUsedEmojis}\n />\n </Overlay>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js","import { connect } from 'react-redux';\nimport UploadForm from '../components/upload_form';\n\nconst mapStateToProps = state => ({\n mediaIds: state.getIn(['compose', 'media_attachments']).map(item => item.get('id')),\n});\n\nexport default connect(mapStateToProps)(UploadForm);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/upload_form_container.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport UploadProgressContainer from '../containers/upload_progress_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport UploadContainer from '../containers/upload_container';\n\nexport default class UploadForm extends ImmutablePureComponent {\n\n static propTypes = {\n mediaIds: ImmutablePropTypes.list.isRequired,\n };\n\n render () {\n const { mediaIds } = this.props;\n\n return (\n <div className='compose-form__upload-wrapper'>\n <UploadProgressContainer />\n\n <div className='compose-form__uploads-wrapper'>\n {mediaIds.map(id => (\n <UploadContainer id={id} key={id} />\n ))}\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/upload_form.js","import { connect } from 'react-redux';\nimport UploadProgress from '../components/upload_progress';\n\nconst mapStateToProps = state => ({\n active: state.getIn(['compose', 'is_uploading']),\n progress: state.getIn(['compose', 'progress']),\n});\n\nexport default connect(mapStateToProps)(UploadProgress);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/upload_progress_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class UploadProgress extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n progress: PropTypes.number,\n };\n\n render () {\n const { active, progress } = this.props;\n\n if (!active) {\n return null;\n }\n\n return (\n <div className='upload-progress'>\n <div className='upload-progress__icon'>\n <i className='fa fa-upload' />\n </div>\n\n <div className='upload-progress__message'>\n <FormattedMessage id='upload_progress.label' defaultMessage='Uploading...' />\n\n <div className='upload-progress__backdrop'>\n <Motion defaultStyle={{ width: 0 }} style={{ width: spring(progress) }}>\n {({ width }) =>\n <div className='upload-progress__tracker' style={{ width: `${width}%` }} />\n }\n </Motion>\n </div>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/upload_progress.js","import { connect } from 'react-redux';\nimport Upload from '../components/upload';\nimport { undoUploadCompose, changeUploadCompose } from '../../../actions/compose';\n\nconst mapStateToProps = (state, { id }) => ({\n media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onUndo: id => {\n dispatch(undoUploadCompose(id));\n },\n\n onDescriptionChange: (id, description) => {\n dispatch(changeUploadCompose(id, description));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Upload);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/upload_container.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport IconButton from '../../../components/icon_button';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport classNames from 'classnames';\n\nconst messages = defineMessages({\n undo: { id: 'upload_form.undo', defaultMessage: 'Undo' },\n description: { id: 'upload_form.description', defaultMessage: 'Describe for the visually impaired' },\n});\n\n@injectIntl\nexport default class Upload extends ImmutablePureComponent {\n\n static propTypes = {\n media: ImmutablePropTypes.map.isRequired,\n intl: PropTypes.object.isRequired,\n onUndo: PropTypes.func.isRequired,\n onDescriptionChange: PropTypes.func.isRequired,\n };\n\n state = {\n hovered: false,\n focused: false,\n dirtyDescription: null,\n };\n\n handleUndoClick = () => {\n this.props.onUndo(this.props.media.get('id'));\n }\n\n handleInputChange = e => {\n this.setState({ dirtyDescription: e.target.value });\n }\n\n handleMouseEnter = () => {\n this.setState({ hovered: true });\n }\n\n handleMouseLeave = () => {\n this.setState({ hovered: false });\n }\n\n handleInputFocus = () => {\n this.setState({ focused: true });\n }\n\n handleInputBlur = () => {\n const { dirtyDescription } = this.state;\n\n this.setState({ focused: false, dirtyDescription: null });\n\n if (dirtyDescription !== null) {\n this.props.onDescriptionChange(this.props.media.get('id'), dirtyDescription);\n }\n }\n\n render () {\n const { intl, media } = this.props;\n const active = this.state.hovered || this.state.focused;\n const description = this.state.dirtyDescription || media.get('description') || '';\n\n return (\n <div className='compose-form__upload' onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave}>\n <Motion defaultStyle={{ scale: 0.8 }} style={{ scale: spring(1, { stiffness: 180, damping: 12 }) }}>\n {({ scale }) => (\n <div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})` }}>\n <IconButton icon='times' title={intl.formatMessage(messages.undo)} size={36} onClick={this.handleUndoClick} />\n\n <div className={classNames('compose-form__upload-description', { active })}>\n <label>\n <span style={{ display: 'none' }}>{intl.formatMessage(messages.description)}</span>\n\n <input\n placeholder={intl.formatMessage(messages.description)}\n type='text'\n value={description}\n maxLength={420}\n onFocus={this.handleInputFocus}\n onChange={this.handleInputChange}\n onBlur={this.handleInputBlur}\n />\n </label>\n </div>\n </div>\n )}\n </Motion>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/upload.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport Warning from '../components/warning';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { me } from '../../../initial_state';\n\nconst mapStateToProps = state => ({\n needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),\n});\n\nconst WarningWrapper = ({ needsLockWarning }) => {\n if (needsLockWarning) {\n return <Warning message={<FormattedMessage id='compose_form.lock_disclaimer' defaultMessage='Your account is not {locked}. Anyone can follow you to view your follower-only posts.' values={{ locked: <a href='/settings/profile'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;\n }\n\n return null;\n};\n\nWarningWrapper.propTypes = {\n needsLockWarning: PropTypes.bool,\n};\n\nexport default connect(mapStateToProps)(WarningWrapper);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/warning_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\n\nexport default class Warning extends React.PureComponent {\n\n static propTypes = {\n message: PropTypes.node.isRequired,\n };\n\n render () {\n const { message } = this.props;\n\n return (\n <Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>\n {({ opacity, scaleX, scaleY }) => (\n <div className='compose-form__warning' style={{ opacity: opacity, transform: `scale(${scaleX}, ${scaleY})` }}>\n {message}\n </div>\n )}\n </Motion>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/warning.js","import { urlRegex } from './url_regex';\n\nconst urlPlaceholder = 'xxxxxxxxxxxxxxxxxxxxxxx';\n\nexport function countableText(inputText) {\n return inputText\n .replace(urlRegex, urlPlaceholder)\n .replace(/(^|[^\\/\\w])@(([a-z0-9_]+)@[a-z0-9\\.\\-]+[a-z0-9]+)/ig, '$1@$3');\n};\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/util/counter.js","const regexen = {};\n\nconst regexSupplant = function(regex, flags) {\n flags = flags || '';\n if (typeof regex !== 'string') {\n if (regex.global && flags.indexOf('g') < 0) {\n flags += 'g';\n }\n if (regex.ignoreCase && flags.indexOf('i') < 0) {\n flags += 'i';\n }\n if (regex.multiline && flags.indexOf('m') < 0) {\n flags += 'm';\n }\n\n regex = regex.source;\n }\n return new RegExp(regex.replace(/#\\{(\\w+)\\}/g, function(match, name) {\n var newRegex = regexen[name] || '';\n if (typeof newRegex !== 'string') {\n newRegex = newRegex.source;\n }\n return newRegex;\n }), flags);\n};\n\nconst stringSupplant = function(str, values) {\n return str.replace(/#\\{(\\w+)\\}/g, function(match, name) {\n return values[name] || '';\n });\n};\n\nexport const urlRegex = (function() {\n regexen.spaces_group = /\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000/;\n regexen.invalid_chars_group = /\\uFFFE\\uFEFF\\uFFFF\\u202A-\\u202E/;\n regexen.punct = /\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$/;\n regexen.validUrlPrecedingChars = regexSupplant(/(?:[^A-Za-z0-9@$##{invalid_chars_group}]|^)/);\n regexen.invalidDomainChars = stringSupplant('#{punct}#{spaces_group}#{invalid_chars_group}', regexen);\n regexen.validDomainChars = regexSupplant(/[^#{invalidDomainChars}]/);\n regexen.validSubdomain = regexSupplant(/(?:(?:#{validDomainChars}(?:[_-]|#{validDomainChars})*)?#{validDomainChars}\\.)/);\n regexen.validDomainName = regexSupplant(/(?:(?:#{validDomainChars}(?:-|#{validDomainChars})*)?#{validDomainChars}\\.)/);\n regexen.validGTLD = regexSupplant(RegExp(\n '(?:(?:' +\n '삼성|닷컴|닷넷|香格里拉|餐厅|食品|飞利浦|電訊盈科|集团|通販|购物|谷歌|诺基亚|联通|网络|网站|网店|网址|组织机构|移动|珠宝|点看|游戏|淡马锡|机构|書籍|时尚|新闻|政府|' +\n '政务|手表|手机|我爱你|慈善|微博|广东|工行|家電|娱乐|天主教|大拿|大众汽车|在线|嘉里大酒店|嘉里|商标|商店|商城|公益|公司|八卦|健康|信息|佛山|企业|中文网|中信|世界|' +\n 'ポイント|ファッション|セール|ストア|コム|グーグル|クラウド|みんな|คอม|संगठन|नेट|कॉम|همراه|موقع|موبايلي|كوم|كاثوليك|عرب|شبكة|' +\n 'بيتك|بازار|العليان|ارامكو|اتصالات|ابوظبي|קום|сайт|рус|орг|онлайн|москва|ком|католик|дети|' +\n 'zuerich|zone|zippo|zip|zero|zara|zappos|yun|youtube|you|yokohama|yoga|yodobashi|yandex|yamaxun|' +\n 'yahoo|yachts|xyz|xxx|xperia|xin|xihuan|xfinity|xerox|xbox|wtf|wtc|wow|world|works|work|woodside|' +\n 'wolterskluwer|wme|winners|wine|windows|win|williamhill|wiki|wien|whoswho|weir|weibo|wedding|wed|' +\n 'website|weber|webcam|weatherchannel|weather|watches|watch|warman|wanggou|wang|walter|walmart|' +\n 'wales|vuelos|voyage|voto|voting|vote|volvo|volkswagen|vodka|vlaanderen|vivo|viva|vistaprint|' +\n 'vista|vision|visa|virgin|vip|vin|villas|viking|vig|video|viajes|vet|versicherung|' +\n 'vermögensberatung|vermögensberater|verisign|ventures|vegas|vanguard|vana|vacations|ups|uol|uno|' +\n 'university|unicom|uconnect|ubs|ubank|tvs|tushu|tunes|tui|tube|trv|trust|travelersinsurance|' +\n 'travelers|travelchannel|travel|training|trading|trade|toys|toyota|town|tours|total|toshiba|' +\n 'toray|top|tools|tokyo|today|tmall|tkmaxx|tjx|tjmaxx|tirol|tires|tips|tiffany|tienda|tickets|' +\n 'tiaa|theatre|theater|thd|teva|tennis|temasek|telefonica|telecity|tel|technology|tech|team|tdk|' +\n 'tci|taxi|tax|tattoo|tatar|tatamotors|target|taobao|talk|taipei|tab|systems|symantec|sydney|' +\n 'swiss|swiftcover|swatch|suzuki|surgery|surf|support|supply|supplies|sucks|style|study|studio|' +\n 'stream|store|storage|stockholm|stcgroup|stc|statoil|statefarm|statebank|starhub|star|staples|' +\n 'stada|srt|srl|spreadbetting|spot|spiegel|space|soy|sony|song|solutions|solar|sohu|software|' +\n 'softbank|social|soccer|sncf|smile|smart|sling|skype|sky|skin|ski|site|singles|sina|silk|shriram|' +\n 'showtime|show|shouji|shopping|shop|shoes|shiksha|shia|shell|shaw|sharp|shangrila|sfr|sexy|sex|' +\n 'sew|seven|ses|services|sener|select|seek|security|secure|seat|search|scot|scor|scjohnson|' +\n 'science|schwarz|schule|school|scholarships|schmidt|schaeffler|scb|sca|sbs|sbi|saxo|save|sas|' +\n 'sarl|sapo|sap|sanofi|sandvikcoromant|sandvik|samsung|samsclub|salon|sale|sakura|safety|safe|' +\n 'saarland|ryukyu|rwe|run|ruhr|rugby|rsvp|room|rogers|rodeo|rocks|rocher|rmit|rip|rio|ril|' +\n 'rightathome|ricoh|richardli|rich|rexroth|reviews|review|restaurant|rest|republican|report|' +\n 'repair|rentals|rent|ren|reliance|reit|reisen|reise|rehab|redumbrella|redstone|red|recipes|' +\n 'realty|realtor|realestate|read|raid|radio|racing|qvc|quest|quebec|qpon|pwc|pub|prudential|pru|' +\n 'protection|property|properties|promo|progressive|prof|productions|prod|pro|prime|press|praxi|' +\n 'pramerica|post|porn|politie|poker|pohl|pnc|plus|plumbing|playstation|play|place|pizza|pioneer|' +\n 'pink|ping|pin|pid|pictures|pictet|pics|piaget|physio|photos|photography|photo|phone|philips|phd|' +\n 'pharmacy|pfizer|pet|pccw|pay|passagens|party|parts|partners|pars|paris|panerai|panasonic|' +\n 'pamperedchef|page|ovh|ott|otsuka|osaka|origins|orientexpress|organic|org|orange|oracle|open|ooo|' +\n 'onyourside|online|onl|ong|one|omega|ollo|oldnavy|olayangroup|olayan|okinawa|office|off|observer|' +\n 'obi|nyc|ntt|nrw|nra|nowtv|nowruz|now|norton|northwesternmutual|nokia|nissay|nissan|ninja|nikon|' +\n 'nike|nico|nhk|ngo|nfl|nexus|nextdirect|next|news|newholland|new|neustar|network|netflix|netbank|' +\n 'net|nec|nba|navy|natura|nationwide|name|nagoya|nadex|nab|mutuelle|mutual|museum|mtr|mtpc|mtn|' +\n 'msd|movistar|movie|mov|motorcycles|moto|moscow|mortgage|mormon|mopar|montblanc|monster|money|' +\n 'monash|mom|moi|moe|moda|mobily|mobile|mobi|mma|mls|mlb|mitsubishi|mit|mint|mini|mil|microsoft|' +\n 'miami|metlife|merckmsd|meo|menu|men|memorial|meme|melbourne|meet|media|med|mckinsey|mcdonalds|' +\n 'mcd|mba|mattel|maserati|marshalls|marriott|markets|marketing|market|map|mango|management|man|' +\n 'makeup|maison|maif|madrid|macys|luxury|luxe|lupin|lundbeck|ltda|ltd|lplfinancial|lpl|love|lotto|' +\n 'lotte|london|lol|loft|locus|locker|loans|loan|lixil|living|live|lipsy|link|linde|lincoln|limo|' +\n 'limited|lilly|like|lighting|lifestyle|lifeinsurance|life|lidl|liaison|lgbt|lexus|lego|legal|' +\n 'lefrak|leclerc|lease|lds|lawyer|law|latrobe|latino|lat|lasalle|lanxess|landrover|land|lancome|' +\n 'lancia|lancaster|lamer|lamborghini|ladbrokes|lacaixa|kyoto|kuokgroup|kred|krd|kpn|kpmg|kosher|' +\n 'komatsu|koeln|kiwi|kitchen|kindle|kinder|kim|kia|kfh|kerryproperties|kerrylogistics|kerryhotels|' +\n 'kddi|kaufen|juniper|juegos|jprs|jpmorgan|joy|jot|joburg|jobs|jnj|jmp|jll|jlc|jio|jewelry|jetzt|' +\n 'jeep|jcp|jcb|java|jaguar|iwc|iveco|itv|itau|istanbul|ist|ismaili|iselect|irish|ipiranga|' +\n 'investments|intuit|international|intel|int|insure|insurance|institute|ink|ing|info|infiniti|' +\n 'industries|immobilien|immo|imdb|imamat|ikano|iinet|ifm|ieee|icu|ice|icbc|ibm|hyundai|hyatt|' +\n 'hughes|htc|hsbc|how|house|hotmail|hotels|hoteles|hot|hosting|host|hospital|horse|honeywell|' +\n 'honda|homesense|homes|homegoods|homedepot|holiday|holdings|hockey|hkt|hiv|hitachi|hisamitsu|' +\n 'hiphop|hgtv|hermes|here|helsinki|help|healthcare|health|hdfcbank|hdfc|hbo|haus|hangout|hamburg|' +\n 'hair|guru|guitars|guide|guge|gucci|guardian|group|grocery|gripe|green|gratis|graphics|grainger|' +\n 'gov|got|gop|google|goog|goodyear|goodhands|goo|golf|goldpoint|gold|godaddy|gmx|gmo|gmbh|gmail|' +\n 'globo|global|gle|glass|glade|giving|gives|gifts|gift|ggee|george|genting|gent|gea|gdn|gbiz|' +\n 'garden|gap|games|game|gallup|gallo|gallery|gal|fyi|futbol|furniture|fund|fun|fujixerox|fujitsu|' +\n 'ftr|frontier|frontdoor|frogans|frl|fresenius|free|fox|foundation|forum|forsale|forex|ford|' +\n 'football|foodnetwork|food|foo|fly|flsmidth|flowers|florist|flir|flights|flickr|fitness|fit|' +\n 'fishing|fish|firmdale|firestone|fire|financial|finance|final|film|fido|fidelity|fiat|ferrero|' +\n 'ferrari|feedback|fedex|fast|fashion|farmers|farm|fans|fan|family|faith|fairwinds|fail|fage|' +\n 'extraspace|express|exposed|expert|exchange|everbank|events|eus|eurovision|etisalat|esurance|' +\n 'estate|esq|erni|ericsson|equipment|epson|epost|enterprises|engineering|engineer|energy|emerck|' +\n 'email|education|edu|edeka|eco|eat|earth|dvr|dvag|durban|dupont|duns|dunlop|duck|dubai|dtv|drive|' +\n 'download|dot|doosan|domains|doha|dog|dodge|doctor|docs|dnp|diy|dish|discover|discount|directory|' +\n 'direct|digital|diet|diamonds|dhl|dev|design|desi|dentist|dental|democrat|delta|deloitte|dell|' +\n 'delivery|degree|deals|dealer|deal|dds|dclk|day|datsun|dating|date|data|dance|dad|dabur|cyou|' +\n 'cymru|cuisinella|csc|cruises|cruise|crs|crown|cricket|creditunion|creditcard|credit|courses|' +\n 'coupons|coupon|country|corsica|coop|cool|cookingchannel|cooking|contractors|contact|consulting|' +\n 'construction|condos|comsec|computer|compare|company|community|commbank|comcast|com|cologne|' +\n 'college|coffee|codes|coach|clubmed|club|cloud|clothing|clinique|clinic|click|cleaning|claims|' +\n 'cityeats|city|citic|citi|citadel|cisco|circle|cipriani|church|chrysler|chrome|christmas|chloe|' +\n 'chintai|cheap|chat|chase|channel|chanel|cfd|cfa|cern|ceo|center|ceb|cbs|cbre|cbn|cba|catholic|' +\n 'catering|cat|casino|cash|caseih|case|casa|cartier|cars|careers|career|care|cards|caravan|car|' +\n 'capitalone|capital|capetown|canon|cancerresearch|camp|camera|cam|calvinklein|call|cal|cafe|cab|' +\n 'bzh|buzz|buy|business|builders|build|bugatti|budapest|brussels|brother|broker|broadway|' +\n 'bridgestone|bradesco|box|boutique|bot|boston|bostik|bosch|boots|booking|book|boo|bond|bom|bofa|' +\n 'boehringer|boats|bnpparibas|bnl|bmw|bms|blue|bloomberg|blog|blockbuster|blanco|blackfriday|' +\n 'black|biz|bio|bingo|bing|bike|bid|bible|bharti|bet|bestbuy|best|berlin|bentley|beer|beauty|' +\n 'beats|bcn|bcg|bbva|bbt|bbc|bayern|bauhaus|basketball|baseball|bargains|barefoot|barclays|' +\n 'barclaycard|barcelona|bar|bank|band|bananarepublic|banamex|baidu|baby|azure|axa|aws|avianca|' +\n 'autos|auto|author|auspost|audio|audible|audi|auction|attorney|athleta|associates|asia|asda|arte|' +\n 'art|arpa|army|archi|aramco|arab|aquarelle|apple|app|apartments|aol|anz|anquan|android|analytics|' +\n 'amsterdam|amica|amfam|amex|americanfamily|americanexpress|alstom|alsace|ally|allstate|allfinanz|' +\n 'alipay|alibaba|alfaromeo|akdn|airtel|airforce|airbus|aigo|aig|agency|agakhan|africa|afl|' +\n 'afamilycompany|aetna|aero|aeg|adult|ads|adac|actor|active|aco|accountants|accountant|accenture|' +\n 'academy|abudhabi|abogado|able|abc|abbvie|abbott|abb|abarth|aarp|aaa|onion' +\n ')(?=[^0-9a-zA-Z@]|$))'));\n regexen.validCCTLD = regexSupplant(RegExp(\n '(?:(?:' +\n '한국|香港|澳門|新加坡|台灣|台湾|中國|中国|გე|ไทย|ලංකා|ഭാരതം|ಭಾರತ|భారత్|சிங்கப்பூர்|இலங்கை|இந்தியா|ଭାରତ|ભારત|ਭਾਰਤ|' +\n 'ভাৰত|ভারত|বাংলা|भारोत|भारतम्|भारत|ڀارت|پاکستان|مليسيا|مصر|قطر|فلسطين|عمان|عراق|سورية|سودان|تونس|' +\n 'بھارت|بارت|ایران|امارات|المغرب|السعودية|الجزائر|الاردن|հայ|қаз|укр|срб|рф|мон|мкд|ею|бел|бг|ελ|' +\n 'zw|zm|za|yt|ye|ws|wf|vu|vn|vi|vg|ve|vc|va|uz|uy|us|um|uk|ug|ua|tz|tw|tv|tt|tr|tp|to|tn|tm|tl|tk|' +\n 'tj|th|tg|tf|td|tc|sz|sy|sx|sv|su|st|ss|sr|so|sn|sm|sl|sk|sj|si|sh|sg|se|sd|sc|sb|sa|rw|ru|rs|ro|' +\n 're|qa|py|pw|pt|ps|pr|pn|pm|pl|pk|ph|pg|pf|pe|pa|om|nz|nu|nr|np|no|nl|ni|ng|nf|ne|nc|na|mz|my|mx|' +\n 'mw|mv|mu|mt|ms|mr|mq|mp|mo|mn|mm|ml|mk|mh|mg|mf|me|md|mc|ma|ly|lv|lu|lt|ls|lr|lk|li|lc|lb|la|kz|' +\n 'ky|kw|kr|kp|kn|km|ki|kh|kg|ke|jp|jo|jm|je|it|is|ir|iq|io|in|im|il|ie|id|hu|ht|hr|hn|hm|hk|gy|gw|' +\n 'gu|gt|gs|gr|gq|gp|gn|gm|gl|gi|gh|gg|gf|ge|gd|gb|ga|fr|fo|fm|fk|fj|fi|eu|et|es|er|eh|eg|ee|ec|dz|' +\n 'do|dm|dk|dj|de|cz|cy|cx|cw|cv|cu|cr|co|cn|cm|cl|ck|ci|ch|cg|cf|cd|cc|ca|bz|by|bw|bv|bt|bs|br|bq|' +\n 'bo|bn|bm|bl|bj|bi|bh|bg|bf|be|bd|bb|ba|az|ax|aw|au|at|as|ar|aq|ao|an|am|al|ai|ag|af|ae|ad|ac' +\n ')(?=[^0-9a-zA-Z@]|$))'));\n regexen.validPunycode = /(?:xn--[0-9a-z]+)/;\n regexen.validSpecialCCTLD = /(?:(?:co|tv)(?=[^0-9a-zA-Z@]|$))/;\n regexen.validDomain = regexSupplant(/(?:#{validSubdomain}*#{validDomainName}(?:#{validGTLD}|#{validCCTLD}|#{validPunycode}))/);\n regexen.validPortNumber = /[0-9]+/;\n regexen.pd = /\\u002d\\u058a\\u05be\\u1400\\u1806\\u2010-\\u2015\\u2e17\\u2e1a\\u2e3a\\u2e40\\u301c\\u3030\\u30a0\\ufe31\\ufe58\\ufe63\\uff0d/;\n regexen.validGeneralUrlPathChars = regexSupplant(/[^#{spaces_group}\\(\\)\\?]/i);\n // Allow URL paths to contain up to two nested levels of balanced parens\n // 1. Used in Wikipedia URLs like /Primer_(film)\n // 2. Used in IIS sessions like /S(dfd346)/\n // 3. Used in Rdio URLs like /track/We_Up_(Album_Version_(Edited))/\n regexen.validUrlBalancedParens = regexSupplant(\n '\\\\(' +\n '(?:' +\n '#{validGeneralUrlPathChars}+' +\n '|' +\n // allow one nested level of balanced parentheses\n '(?:' +\n '#{validGeneralUrlPathChars}*' +\n '\\\\(' +\n '#{validGeneralUrlPathChars}+' +\n '\\\\)' +\n '#{validGeneralUrlPathChars}*' +\n ')' +\n ')' +\n '\\\\)'\n , 'i');\n // Valid end-of-path chracters (so /foo. does not gobble the period).\n // 1. Allow =&# for empty URL parameters and other URL-join artifacts\n regexen.validUrlPathEndingChars = regexSupplant(/[^#{spaces_group}\\(\\)\\?!\\*';:=\\,\\.\\$%\\[\\]#{pd}~&\\|@]|(?:#{validUrlBalancedParens})/i);\n // Allow @ in a url, but only in the middle. Catch things like http://example.com/@user/\n regexen.validUrlPath = regexSupplant('(?:' +\n '(?:' +\n '#{validGeneralUrlPathChars}*' +\n '(?:#{validUrlBalancedParens}#{validGeneralUrlPathChars}*)*' +\n '#{validUrlPathEndingChars}'+\n ')|(?:@#{validGeneralUrlPathChars}+\\/)'+\n ')', 'i');\n regexen.validUrlQueryChars = /[a-z0-9!?\\*'@\\(\\);:&=\\+\\$\\/%#\\[\\]\\-_\\.,~|]/i;\n regexen.validUrlQueryEndingChars = /[a-z0-9_&=#\\/]/i;\n regexen.validUrl = regexSupplant(\n '(' + // $1 URL\n '(https?:\\\\/\\\\/)' + // $2 Protocol\n '(#{validDomain})' + // $3 Domain(s)\n '(?::(#{validPortNumber}))?' + // $4 Port number (optional)\n '(\\\\/#{validUrlPath}*)?' + // $5 URL Path\n '(\\\\?#{validUrlQueryChars}*#{validUrlQueryEndingChars})?' + // $6 Query String\n ')'\n , 'gi');\n return regexen.validUrl;\n}());\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/util/url_regex.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ReactSwipeableViews from 'react-swipeable-views';\nimport classNames from 'classnames';\nimport Permalink from '../../../components/permalink';\nimport ComposeForm from '../../compose/components/compose_form';\nimport Search from '../../compose/components/search';\nimport NavigationBar from '../../compose/components/navigation_bar';\nimport ColumnHeader from './column_header';\nimport { List as ImmutableList } from 'immutable';\nimport { me } from '../../../initial_state';\n\nconst noop = () => { };\n\nconst messages = defineMessages({\n home_title: { id: 'column.home', defaultMessage: 'Home' },\n notifications_title: { id: 'column.notifications', defaultMessage: 'Notifications' },\n local_title: { id: 'column.community', defaultMessage: 'Local timeline' },\n federated_title: { id: 'column.public', defaultMessage: 'Federated timeline' },\n});\n\nconst PageOne = ({ acct, domain }) => (\n <div className='onboarding-modal__page onboarding-modal__page-one'>\n <div style={{ flex: '0 0 auto' }}>\n <div className='onboarding-modal__page-one__elephant-friend' />\n </div>\n\n <div>\n <h1><FormattedMessage id='onboarding.page_one.welcome' defaultMessage='Welcome to Mastodon!' /></h1>\n <p><FormattedMessage id='onboarding.page_one.federation' defaultMessage='Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.' /></p>\n <p><FormattedMessage id='onboarding.page_one.handle' defaultMessage='You are on {domain}, so your full handle is {handle}' values={{ domain, handle: <strong>@{acct}@{domain}</strong> }} /></p>\n </div>\n </div>\n);\n\nPageOne.propTypes = {\n acct: PropTypes.string.isRequired,\n domain: PropTypes.string.isRequired,\n};\n\nconst PageTwo = ({ myAccount }) => (\n <div className='onboarding-modal__page onboarding-modal__page-two'>\n <div className='figure non-interactive'>\n <div className='pseudo-drawer'>\n <NavigationBar account={myAccount} />\n </div>\n <ComposeForm\n text='Awoo! #introductions'\n suggestions={ImmutableList()}\n mentionedDomains={[]}\n spoiler={false}\n onChange={noop}\n onSubmit={noop}\n onPaste={noop}\n onPickEmoji={noop}\n onChangeSpoilerText={noop}\n onClearSuggestions={noop}\n onFetchSuggestions={noop}\n onSuggestionSelected={noop}\n showSearch\n />\n </div>\n\n <p><FormattedMessage id='onboarding.page_two.compose' defaultMessage='Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.' /></p>\n </div>\n);\n\nPageTwo.propTypes = {\n myAccount: ImmutablePropTypes.map.isRequired,\n};\n\nconst PageThree = ({ myAccount }) => (\n <div className='onboarding-modal__page onboarding-modal__page-three'>\n <div className='figure non-interactive'>\n <Search\n value=''\n onChange={noop}\n onSubmit={noop}\n onClear={noop}\n onShow={noop}\n />\n\n <div className='pseudo-drawer'>\n <NavigationBar account={myAccount} />\n </div>\n </div>\n\n <p><FormattedMessage id='onboarding.page_three.search' defaultMessage='Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.' values={{ illustration: <Permalink to='/timelines/tag/illustration' href='/tags/illustration'>#illustration</Permalink>, introductions: <Permalink to='/timelines/tag/introductions' href='/tags/introductions'>#introductions</Permalink> }} /></p>\n <p><FormattedMessage id='onboarding.page_three.profile' defaultMessage='Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.' /></p>\n </div>\n);\n\nPageThree.propTypes = {\n myAccount: ImmutablePropTypes.map.isRequired,\n};\n\nconst PageFour = ({ domain, intl }) => (\n <div className='onboarding-modal__page onboarding-modal__page-four'>\n <div className='onboarding-modal__page-four__columns'>\n <div className='row'>\n <div>\n <div className='figure non-interactive'><ColumnHeader icon='home' type={intl.formatMessage(messages.home_title)} /></div>\n <p><FormattedMessage id='onboarding.page_four.home' defaultMessage='The home timeline shows posts from people you follow.' /></p>\n </div>\n\n <div>\n <div className='figure non-interactive'><ColumnHeader icon='bell' type={intl.formatMessage(messages.notifications_title)} /></div>\n <p><FormattedMessage id='onboarding.page_four.notifications' defaultMessage='The notifications column shows when someone interacts with you.' /></p>\n </div>\n </div>\n\n <div className='row'>\n <div>\n <div className='figure non-interactive' style={{ marginBottom: 0 }}><ColumnHeader icon='users' type={intl.formatMessage(messages.local_title)} /></div>\n </div>\n\n <div>\n <div className='figure non-interactive' style={{ marginBottom: 0 }}><ColumnHeader icon='globe' type={intl.formatMessage(messages.federated_title)} /></div>\n </div>\n </div>\n\n <p><FormattedMessage id='onboarding.page_five.public_timelines' defaultMessage='The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.' values={{ domain }} /></p>\n </div>\n </div>\n);\n\nPageFour.propTypes = {\n domain: PropTypes.string.isRequired,\n intl: PropTypes.object.isRequired,\n};\n\nconst PageSix = ({ admin, domain }) => {\n let adminSection = '';\n\n if (admin) {\n adminSection = (\n <p>\n <FormattedMessage id='onboarding.page_six.admin' defaultMessage=\"Your instance's admin is {admin}.\" values={{ admin: <Permalink href={admin.get('url')} to={`/accounts/${admin.get('id')}`}>@{admin.get('acct')}</Permalink> }} />\n <br />\n <FormattedMessage id='onboarding.page_six.read_guidelines' defaultMessage=\"Please read {domain}'s {guidelines}!\" values={{ domain, guidelines: <a href='/about/more' target='_blank'><FormattedMessage id='onboarding.page_six.guidelines' defaultMessage='community guidelines' /></a> }} />\n </p>\n );\n }\n\n return (\n <div className='onboarding-modal__page onboarding-modal__page-six'>\n <h1><FormattedMessage id='onboarding.page_six.almost_done' defaultMessage='Almost done...' /></h1>\n {adminSection}\n <p><FormattedMessage id='onboarding.page_six.github' defaultMessage='Mastodon is free open-source software. You can report bugs, request features, or contribute to the code on {github}.' values={{ github: <a href='https://github.com/tootsuite/mastodon' target='_blank' rel='noopener'>GitHub</a> }} /></p>\n <p><FormattedMessage id='onboarding.page_six.apps_available' defaultMessage='There are {apps} available for iOS, Android and other platforms.' values={{ apps: <a href='https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md' target='_blank' rel='noopener'><FormattedMessage id='onboarding.page_six.various_app' defaultMessage='mobile apps' /></a> }} /></p>\n <p><em><FormattedMessage id='onboarding.page_six.appetoot' defaultMessage='Bon Appetoot!' /></em></p>\n </div>\n );\n};\n\nPageSix.propTypes = {\n admin: ImmutablePropTypes.map,\n domain: PropTypes.string.isRequired,\n};\n\nconst mapStateToProps = state => ({\n myAccount: state.getIn(['accounts', me]),\n admin: state.getIn(['accounts', state.getIn(['meta', 'admin'])]),\n domain: state.getIn(['meta', 'domain']),\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class OnboardingModal extends React.PureComponent {\n\n static propTypes = {\n onClose: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n myAccount: ImmutablePropTypes.map.isRequired,\n domain: PropTypes.string.isRequired,\n admin: ImmutablePropTypes.map,\n };\n\n state = {\n currentIndex: 0,\n };\n\n componentWillMount() {\n const { myAccount, admin, domain, intl } = this.props;\n this.pages = [\n <PageOne acct={myAccount.get('acct')} domain={domain} />,\n <PageTwo myAccount={myAccount} />,\n <PageThree myAccount={myAccount} />,\n <PageFour domain={domain} intl={intl} />,\n <PageSix admin={admin} domain={domain} />,\n ];\n };\n\n componentDidMount() {\n window.addEventListener('keyup', this.handleKeyUp);\n }\n\n componentWillUnmount() {\n window.addEventListener('keyup', this.handleKeyUp);\n }\n\n handleSkip = (e) => {\n e.preventDefault();\n this.props.onClose();\n }\n\n handleDot = (e) => {\n const i = Number(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n this.setState({ currentIndex: i });\n }\n\n handlePrev = () => {\n this.setState(({ currentIndex }) => ({\n currentIndex: Math.max(0, currentIndex - 1),\n }));\n }\n\n handleNext = () => {\n const { pages } = this;\n this.setState(({ currentIndex }) => ({\n currentIndex: Math.min(currentIndex + 1, pages.length - 1),\n }));\n }\n\n handleSwipe = (index) => {\n this.setState({ currentIndex: index });\n }\n\n handleKeyUp = ({ key }) => {\n switch (key) {\n case 'ArrowLeft':\n this.handlePrev();\n break;\n case 'ArrowRight':\n this.handleNext();\n break;\n }\n }\n\n handleClose = () => {\n this.props.onClose();\n }\n\n render () {\n const { pages } = this;\n const { currentIndex } = this.state;\n const hasMore = currentIndex < pages.length - 1;\n\n const nextOrDoneBtn = hasMore ? (\n <button\n onClick={this.handleNext}\n className='onboarding-modal__nav onboarding-modal__next'\n >\n <FormattedMessage id='onboarding.next' defaultMessage='Next' />\n </button>\n ) : (\n <button\n onClick={this.handleClose}\n className='onboarding-modal__nav onboarding-modal__done'\n >\n <FormattedMessage id='onboarding.done' defaultMessage='Done' />\n </button>\n );\n\n return (\n <div className='modal-root__modal onboarding-modal'>\n <ReactSwipeableViews index={currentIndex} onChangeIndex={this.handleSwipe} className='onboarding-modal__pager'>\n {pages.map((page, i) => {\n const className = classNames('onboarding-modal__page__wrapper', {\n 'onboarding-modal__page__wrapper--active': i === currentIndex,\n });\n return (\n <div key={i} className={className}>{page}</div>\n );\n })}\n </ReactSwipeableViews>\n\n <div className='onboarding-modal__paginator'>\n <div>\n <button\n onClick={this.handleSkip}\n className='onboarding-modal__nav onboarding-modal__skip'\n >\n <FormattedMessage id='onboarding.skip' defaultMessage='Skip' />\n </button>\n </div>\n\n <div className='onboarding-modal__dots'>\n {pages.map((_, i) => {\n const className = classNames('onboarding-modal__dot', {\n active: i === currentIndex,\n });\n return (\n <div\n key={`dot-${i}`}\n role='button'\n tabIndex='0'\n data-index={i}\n onClick={this.handleDot}\n className={className}\n />\n );\n })}\n </div>\n\n <div>\n {nextOrDoneBtn}\n </div>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/ui/components/onboarding_modal.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Avatar from '../../../components/avatar';\nimport IconButton from '../../../components/icon_button';\nimport Permalink from '../../../components/permalink';\nimport { FormattedMessage } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class NavigationBar extends ImmutablePureComponent {\n\n static propTypes = {\n account: ImmutablePropTypes.map.isRequired,\n onClose: PropTypes.func.isRequired,\n };\n\n render () {\n return (\n <div className='navigation-bar'>\n <Permalink href={this.props.account.get('url')} to={`/accounts/${this.props.account.get('id')}`}>\n <span style={{ display: 'none' }}>{this.props.account.get('acct')}</span>\n <Avatar account={this.props.account} size={40} />\n </Permalink>\n\n <div className='navigation-bar__profile'>\n <Permalink href={this.props.account.get('url')} to={`/accounts/${this.props.account.get('id')}`}>\n <strong className='navigation-bar__profile-account'>@{this.props.account.get('acct')}</strong>\n </Permalink>\n\n <a href='/settings/profile' className='navigation-bar__profile-edit'><FormattedMessage id='navigation_bar.edit_profile' defaultMessage='Edit profile' /></a>\n </div>\n\n <IconButton title='' icon='close' onClick={this.props.onClose} />\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/navigation_bar.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport Overlay from 'react-overlays/lib/Overlay';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\n\nconst messages = defineMessages({\n placeholder: { id: 'search.placeholder', defaultMessage: 'Search' },\n});\n\nclass SearchPopout extends React.PureComponent {\n\n static propTypes = {\n style: PropTypes.object,\n };\n\n render () {\n const { style } = this.props;\n\n return (\n <div style={{ ...style, position: 'absolute', width: 285 }}>\n <Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>\n {({ opacity, scaleX, scaleY }) => (\n <div className='search-popout' style={{ opacity: opacity, transform: `scale(${scaleX}, ${scaleY})` }}>\n <h4><FormattedMessage id='search_popout.search_format' defaultMessage='Advanced search format' /></h4>\n\n <ul>\n <li><em>#example</em> <FormattedMessage id='search_popout.tips.hashtag' defaultMessage='hashtag' /></li>\n <li><em>@username@domain</em> <FormattedMessage id='search_popout.tips.user' defaultMessage='user' /></li>\n <li><em>URL</em> <FormattedMessage id='search_popout.tips.user' defaultMessage='user' /></li>\n <li><em>URL</em> <FormattedMessage id='search_popout.tips.status' defaultMessage='status' /></li>\n </ul>\n\n <FormattedMessage id='search_popout.tips.text' defaultMessage='Simple text returns matching display names, usernames and hashtags' />\n </div>\n )}\n </Motion>\n </div>\n );\n }\n\n}\n\n@injectIntl\nexport default class Search extends React.PureComponent {\n\n static propTypes = {\n value: PropTypes.string.isRequired,\n submitted: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onShow: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n state = {\n expanded: false,\n };\n\n handleChange = (e) => {\n this.props.onChange(e.target.value);\n }\n\n handleClear = (e) => {\n e.preventDefault();\n\n if (this.props.value.length > 0 || this.props.submitted) {\n this.props.onClear();\n }\n }\n\n handleKeyDown = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.props.onSubmit();\n } else if (e.key === 'Escape') {\n document.querySelector('.ui').parentElement.focus();\n }\n }\n\n noop () {\n\n }\n\n handleFocus = () => {\n this.setState({ expanded: true });\n this.props.onShow();\n }\n\n handleBlur = () => {\n this.setState({ expanded: false });\n }\n\n render () {\n const { intl, value, submitted } = this.props;\n const { expanded } = this.state;\n const hasValue = value.length > 0 || submitted;\n\n return (\n <div className='search'>\n <label>\n <span style={{ display: 'none' }}>{intl.formatMessage(messages.placeholder)}</span>\n <input\n className='search__input'\n type='text'\n placeholder={intl.formatMessage(messages.placeholder)}\n value={value}\n onChange={this.handleChange}\n onKeyUp={this.handleKeyDown}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n </label>\n\n <div role='button' tabIndex='0' className='search__icon' onClick={this.handleClear}>\n <i className={`fa fa-search ${hasValue ? '' : 'active'}`} />\n <i aria-label={intl.formatMessage(messages.placeholder)} className={`fa fa-times-circle ${hasValue ? 'active' : ''}`} />\n </div>\n\n <Overlay show={expanded && !hasValue} placement='bottom' target={this}>\n <SearchPopout />\n </Overlay>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/search.js"],"sourceRoot":""}