pleroma/priv/static/packs/features/compose-4617f6e912b5bfa71c43.js.map
Mark Felder 3a7ba5dbb1 Set max characters for the compose field to 5000 to match pleroma default
Of course you can't tell what the change is because the entire file is
written on one line, so the nearly impossible to read.

It's nice to be able to use 5000 chars from my computer and have access
to CW feature as well.
2018-03-15 14:46:28 +00:00

2 lines
426 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:///features/compose-4617f6e912b5bfa71c43.js","webpack:///./app/javascript/mastodon/containers/status_container.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/compose/containers/compose_form_container.js","webpack:///./app/javascript/mastodon/features/compose/index.js","webpack:///./app/javascript/mastodon/containers/account_container.js","webpack:///./app/javascript/mastodon/components/account.js","webpack:///./app/javascript/mastodon/features/compose/components/navigation_bar.js","webpack:///./app/javascript/mastodon/features/compose/components/search.js","webpack:///./app/javascript/mastodon/features/compose/containers/navigation_container.js","webpack:///./app/javascript/mastodon/features/compose/containers/search_container.js","webpack:///./app/javascript/mastodon/features/compose/containers/search_results_container.js","webpack:///./app/javascript/mastodon/features/compose/components/search_results.js"],"names":["webpackJsonp","261","module","__webpack_exports__","__webpack_require__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_2_react_redux__","__WEBPACK_IMPORTED_MODULE_3__components_status__","__WEBPACK_IMPORTED_MODULE_4__selectors__","__WEBPACK_IMPORTED_MODULE_5__actions_compose__","__WEBPACK_IMPORTED_MODULE_6__actions_interactions__","__WEBPACK_IMPORTED_MODULE_7__actions_accounts__","__WEBPACK_IMPORTED_MODULE_8__actions_statuses__","__WEBPACK_IMPORTED_MODULE_9__actions_reports__","__WEBPACK_IMPORTED_MODULE_10__actions_modal__","__WEBPACK_IMPORTED_MODULE_11_react_intl__","__WEBPACK_IMPORTED_MODULE_12__initial_state__","messages","Object","deleteConfirm","id","defaultMessage","deleteMessage","blockConfirm","muteConfirm","makeMapStateToProps","getStatus","state","props","status","mapDispatchToProps","dispatch","_ref","intl","onReply","router","onModalReblog","onReblog","e","get","shiftKey","this","onFavourite","onPin","onEmbed","url","onDelete","message","formatMessage","confirm","onConfirm","onMention","account","onOpenMedia","media","index","onOpenVideo","time","onBlock","values","name","onReport","onMute","onMuteConversation","286","d","ComposeForm","_class","_class2","_temp2","__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","__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__","placeholder","spoiler_placeholder","publish","publishLoud","_ImmutablePureCompone","_temp","_this","_ret","_len","arguments","length","args","Array","_key","call","apply","concat","handleChange","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","prototype","componentWillReceiveProps","nextProps","is_uploading","componentDidUpdate","prevProps","focusDate","selectionEnd","preselectDate","search","setSelectionRange","focus","is_submitting","render","_props","onPaste","showSearch","disabled","spoiler_text","join","publishText","privacy","className","isVisible","spoiler","fullHeight","style","display","onKeyDown","type","a","createElement","ref","suggestions","autoFocus","window","innerWidth","max","onClick","trim","block","propTypes","object","isRequired","string","suggestion_token","list","bool","instanceOf","Date","func","defaultProps","287","CharacterCounter","__WEBPACK_IMPORTED_MODULE_5_stringz__","_React$PureComponent","checkRemainingText","diff","PureComponent","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__","getIn","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","handleClick","handleAccountClick","button","preventDefault","context","history","push","content","__html","title","icon","href","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","role","tabIndex","data-index","selected","onMouseDown","direction","inputRef","isEmpty","291","__WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__","getAccount","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","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","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_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","active","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","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__","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_3__components_warning__","__WEBPACK_IMPORTED_MODULE_4_react_intl__","__WEBPACK_IMPORTED_MODULE_5__initial_state__","needsLockWarning","WarningWrapper","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","315","__WEBPACK_IMPORTED_MODULE_1__components_compose_form__","accountId","checked","752","defineProperty","Compose","__WEBPACK_IMPORTED_MODULE_5__containers_compose_form_container__","__WEBPACK_IMPORTED_MODULE_6__containers_navigation_container__","__WEBPACK_IMPORTED_MODULE_7_react_redux__","__WEBPACK_IMPORTED_MODULE_9_react_router_dom__","__WEBPACK_IMPORTED_MODULE_11__containers_search_container__","__WEBPACK_IMPORTED_MODULE_12__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring___default","__WEBPACK_IMPORTED_MODULE_14__containers_search_results_container__","start","home_timeline","notifications","public","community","preferences","logout","columns","multiColumn","header","to","column","data-method","x","777","__WEBPACK_IMPORTED_MODULE_5__components_account__","__WEBPACK_IMPORTED_MODULE_6__actions_accounts__","__WEBPACK_IMPORTED_MODULE_7__actions_modal__","__WEBPACK_IMPORTED_MODULE_8__initial_state__","unfollowConfirm","onFollow","778","Account","__WEBPACK_IMPORTED_MODULE_7__avatar__","__WEBPACK_IMPORTED_MODULE_8__display_name__","__WEBPACK_IMPORTED_MODULE_9__permalink__","__WEBPACK_IMPORTED_MODULE_10__icon_button__","__WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_13__initial_state__","follow","unfollow","requested","unblock","unmute","handleFollow","handleBlock","handleMute","hidden","buttons","following","blocking","muting","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","__WEBPACK_IMPORTED_MODULE_9__components_permalink__","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","onClear","handleFocus","onShow","handleBlur","hasValue","879","__WEBPACK_IMPORTED_MODULE_1__components_navigation_bar__","__WEBPACK_IMPORTED_MODULE_2__initial_state__","880","__WEBPACK_IMPORTED_MODULE_1__actions_search__","__WEBPACK_IMPORTED_MODULE_2__components_search__","881","__WEBPACK_IMPORTED_MODULE_1__components_search_results__","results","882","SearchResults","__WEBPACK_IMPORTED_MODULE_6_react_intl__","__WEBPACK_IMPORTED_MODULE_7__containers_account_container__","__WEBPACK_IMPORTED_MODULE_8__containers_status_container__","accounts","statuses","hashtags","count","statusId","hashtag"],"mappings":"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","file":"features/compose-4617f6e912b5bfa71c43.js","sourcesContent":["webpackJsonp([2],{\n\n/***/ 261:\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_status__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__selectors__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__actions_interactions__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__actions_accounts__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__actions_statuses__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__actions_reports__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__actions_modal__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__initial_state__ = __webpack_require__(18);\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 deleteConfirm: {\n 'id': 'confirmations.delete.confirm',\n 'defaultMessage': 'Delete'\n },\n deleteMessage: {\n 'id': 'confirmations.delete.message',\n 'defaultMessage': 'Are you sure you want to delete this status?'\n },\n blockConfirm: {\n 'id': 'confirmations.block.confirm',\n 'defaultMessage': 'Block'\n },\n muteConfirm: {\n 'id': 'confirmations.mute.confirm',\n 'defaultMessage': 'Mute'\n }\n});\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getStatus = Object(__WEBPACK_IMPORTED_MODULE_4__selectors__[\"e\" /* makeGetStatus */])();\n\n var mapStateToProps = function mapStateToProps(state, props) {\n return {\n status: getStatus(state, props.id)\n };\n };\n\n return mapStateToProps;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, _ref) {\n var intl = _ref.intl;\n return {\n onReply: function onReply(status, router) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_compose__[\"O\" /* replyCompose */])(status, router));\n },\n onModalReblog: function onModalReblog(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"q\" /* reblog */])(status));\n },\n onReblog: function onReblog(status, e) {\n if (status.get('reblogged')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"t\" /* unreblog */])(status));\n } else {\n if (e.shiftKey || !__WEBPACK_IMPORTED_MODULE_12__initial_state__[\"b\" /* boostModal */]) {\n this.onModalReblog(status);\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('BOOST', { status: status, onReblog: this.onModalReblog }));\n }\n }\n },\n onFavourite: function onFavourite(status) {\n if (status.get('favourited')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"r\" /* unfavourite */])(status));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"m\" /* favourite */])(status));\n }\n },\n onPin: function onPin(status) {\n if (status.get('pinned')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"s\" /* unpin */])(status));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"p\" /* pin */])(status));\n }\n },\n onEmbed: function onEmbed(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('EMBED', { url: status.get('url') }));\n },\n onDelete: function onDelete(status) {\n if (!__WEBPACK_IMPORTED_MODULE_12__initial_state__[\"d\" /* deleteModal */]) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n }\n }));\n }\n },\n onMention: function onMention(account, router) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_compose__[\"M\" /* mentionCompose */])(account, router));\n },\n onOpenMedia: function onOpenMedia(media, index) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('MEDIA', { media: media, index: index }));\n },\n onOpenVideo: function onOpenVideo(media, time) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('VIDEO', { media: media, time: time }));\n },\n onBlock: function onBlock(account) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'confirmations.block.message',\n defaultMessage: 'Are you sure you want to block {name}?',\n values: { name: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', account.get('acct')) }\n }),\n confirm: intl.formatMessage(messages.blockConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_accounts__[\"r\" /* blockAccount */])(account.get('id')));\n }\n }));\n },\n onReport: function onReport(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_reports__[\"i\" /* initReport */])(status.get('account'), status));\n },\n onMute: function onMute(account) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'confirmations.mute.message',\n defaultMessage: 'Are you sure you want to mute {name}?',\n values: { name: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', account.get('acct')) }\n }),\n confirm: intl.formatMessage(messages.muteConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_accounts__[\"B\" /* muteAccount */])(account.get('id')));\n }\n }));\n },\n onMuteConversation: function onMuteConversation(status) {\n if (status.get('muted')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"h\" /* unmuteStatus */])(status.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"g\" /* muteStatus */])(status.get('id')));\n }\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"g\" /* injectIntl */])(Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"connect\"])(makeMapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_3__components_status__[\"a\" /* default */])));\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: 5000,\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/***/ 315:\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_compose_form__ = __webpack_require__(286);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(15);\n\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n text: state.getIn(['compose', 'text']),\n suggestion_token: state.getIn(['compose', 'suggestion_token']),\n suggestions: state.getIn(['compose', 'suggestions']),\n spoiler: state.getIn(['compose', 'spoiler']),\n spoiler_text: state.getIn(['compose', 'spoiler_text']),\n privacy: state.getIn(['compose', 'privacy']),\n focusDate: state.getIn(['compose', 'focusDate']),\n preselectDate: state.getIn(['compose', 'preselectDate']),\n is_submitting: state.getIn(['compose', 'is_submitting']),\n is_uploading: state.getIn(['compose', 'is_uploading']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden'])\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onChange: function onChange(text) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"C\" /* changeCompose */])(text));\n },\n onSubmit: function onSubmit() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"R\" /* submitCompose */])());\n },\n onClearSuggestions: function onClearSuggestions() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"J\" /* clearComposeSuggestions */])());\n },\n onFetchSuggestions: function onFetchSuggestions(token) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"K\" /* fetchComposeSuggestions */])(token));\n },\n onSuggestionSelected: function onSuggestionSelected(position, token, accountId) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"Q\" /* selectComposeSuggestion */])(position, token, accountId));\n },\n onChangeSpoilerText: function onChangeSpoilerText(checked) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"E\" /* changeComposeSpoilerText */])(checked));\n },\n onPaste: function onPaste(files) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"U\" /* uploadCompose */])(files));\n },\n onPickEmoji: function onPickEmoji(position, data) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"L\" /* insertEmojiCompose */])(position, data));\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_compose_form__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 752:\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 Compose; });\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__containers_compose_form_container__ = __webpack_require__(315);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__containers_navigation_container__ = __webpack_require__(879);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_router_dom__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_search_container__ = __webpack_require__(880);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__ui_util_optional_motion__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring__ = __webpack_require__(27);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__containers_search_results_container__ = __webpack_require__(881);\n\n\n\n\n\nvar _dec, _class;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"f\" /* defineMessages */])({\n start: {\n 'id': 'getting_started.heading',\n 'defaultMessage': 'Getting started'\n },\n home_timeline: {\n 'id': 'tabs_bar.home',\n 'defaultMessage': 'Home'\n },\n notifications: {\n 'id': 'tabs_bar.notifications',\n 'defaultMessage': 'Notifications'\n },\n public: {\n 'id': 'navigation_bar.public_timeline',\n 'defaultMessage': 'Federated timeline'\n },\n community: {\n 'id': 'navigation_bar.community_timeline',\n 'defaultMessage': 'Local timeline'\n },\n preferences: {\n 'id': 'navigation_bar.preferences',\n 'defaultMessage': 'Preferences'\n },\n logout: {\n 'id': 'navigation_bar.logout',\n 'defaultMessage': 'Logout'\n }\n});\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n columns: state.getIn(['settings', 'columns']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden'])\n };\n};\n\nvar Compose = (_dec = Object(__WEBPACK_IMPORTED_MODULE_7_react_redux__[\"connect\"])(mapStateToProps), _dec(_class = Object(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"g\" /* injectIntl */])(_class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Compose, _React$PureComponent);\n\n function Compose() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Compose);\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.onFocus = function () {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_compose__[\"H\" /* changeComposing */])(true));\n }, _this.onBlur = function () {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_compose__[\"H\" /* changeComposing */])(false));\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Compose.prototype.componentDidMount = function componentDidMount() {\n this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_compose__[\"N\" /* mountCompose */])());\n };\n\n Compose.prototype.componentWillUnmount = function componentWillUnmount() {\n this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_compose__[\"T\" /* unmountCompose */])());\n };\n\n Compose.prototype.render = function render() {\n var _props = this.props,\n multiColumn = _props.multiColumn,\n showSearch = _props.showSearch,\n intl = _props.intl;\n\n\n var header = '';\n\n if (multiColumn) {\n var columns = this.props.columns;\n\n header = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('nav', {\n className: 'drawer__header'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n to: '/getting-started',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.start),\n 'aria-label': intl.formatMessage(messages.start)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-asterisk'\n })), !columns.some(function (column) {\n return column.get('id') === 'HOME';\n }) && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n to: '/timelines/home',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.home_timeline),\n 'aria-label': intl.formatMessage(messages.home_timeline)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-home'\n })), !columns.some(function (column) {\n return column.get('id') === 'NOTIFICATIONS';\n }) && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n to: '/notifications',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.notifications),\n 'aria-label': intl.formatMessage(messages.notifications)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-bell'\n })), !columns.some(function (column) {\n return column.get('id') === 'COMMUNITY';\n }) && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n to: '/timelines/public/local',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.community),\n 'aria-label': intl.formatMessage(messages.community)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-users'\n })), !columns.some(function (column) {\n return column.get('id') === 'PUBLIC';\n }) && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n to: '/timelines/public',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.public),\n 'aria-label': intl.formatMessage(messages.public)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-globe'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: '/settings/preferences',\n className: 'drawer__tab',\n title: intl.formatMessage(messages.preferences),\n 'aria-label': intl.formatMessage(messages.preferences)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-cog'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: '/auth/sign_out',\n className: 'drawer__tab',\n 'data-method': 'delete',\n title: intl.formatMessage(messages.logout),\n 'aria-label': intl.formatMessage(messages.logout)\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n role: 'img',\n className: 'fa fa-fw fa-sign-out'\n })));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'drawer'\n }, void 0, header, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__containers_search_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'drawer__pager'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'drawer__inner',\n onFocus: this.onFocus\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__containers_navigation_container__[\"a\" /* default */], {\n onClose: this.onBlur\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__containers_compose_form_container__[\"a\" /* default */], {})), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { x: -100 },\n style: { x: __WEBPACK_IMPORTED_MODULE_13_react_motion_lib_spring___default()(showSearch ? 0 : -100, { stiffness: 210, damping: 20 }) }\n }, void 0, function (_ref) {\n var x = _ref.x;\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'drawer__inner darker',\n style: { transform: 'translateX(' + x + '%)', visibility: x === -100 ? 'hidden' : 'visible' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_14__containers_search_results_container__[\"a\" /* default */], {}));\n })));\n };\n\n return Compose;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent)) || _class) || _class);\n\n\n/***/ }),\n\n/***/ 777:\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_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__selectors__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_account__ = __webpack_require__(778);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__actions_accounts__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__actions_modal__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__initial_state__ = __webpack_require__(18);\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_3_react_intl__[\"f\" /* defineMessages */])({\n unfollowConfirm: {\n 'id': 'confirmations.unfollow.confirm',\n 'defaultMessage': 'Unfollow'\n }\n});\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getAccount = Object(__WEBPACK_IMPORTED_MODULE_4__selectors__[\"c\" /* makeGetAccount */])();\n\n var mapStateToProps = function mapStateToProps(state, props) {\n return {\n account: getAccount(state, props.id)\n };\n };\n\n return mapStateToProps;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, _ref) {\n var intl = _ref.intl;\n return {\n onFollow: function onFollow(account) {\n if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) {\n if (__WEBPACK_IMPORTED_MODULE_8__initial_state__[\"g\" /* unfollowModal */]) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_3_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'confirmations.unfollow.message',\n defaultMessage: 'Are you sure you want to unfollow {name}?',\n values: { name: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', account.get('acct')) }\n }),\n confirm: intl.formatMessage(messages.unfollowConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"E\" /* unfollowAccount */])(account.get('id')));\n }\n }));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"E\" /* unfollowAccount */])(account.get('id')));\n }\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"A\" /* followAccount */])(account.get('id')));\n }\n },\n onBlock: function onBlock(account) {\n if (account.getIn(['relationship', 'blocking'])) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"D\" /* unblockAccount */])(account.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"r\" /* blockAccount */])(account.get('id')));\n }\n },\n onMute: function onMute(account) {\n if (account.getIn(['relationship', 'muting'])) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"F\" /* unmuteAccount */])(account.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_accounts__[\"B\" /* muteAccount */])(account.get('id')));\n }\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_3_react_intl__[\"g\" /* injectIntl */])(Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"connect\"])(makeMapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_5__components_account__[\"a\" /* default */])));\n\n/***/ }),\n\n/***/ 778:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Account; });\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__avatar__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__display_name__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__permalink__ = __webpack_require__(270);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__initial_state__ = __webpack_require__(18);\n\n\n\n\n\nvar _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"f\" /* defineMessages */])({\n follow: {\n 'id': 'account.follow',\n 'defaultMessage': 'Follow'\n },\n unfollow: {\n 'id': 'account.unfollow',\n 'defaultMessage': 'Unfollow'\n },\n requested: {\n 'id': 'account.requested',\n 'defaultMessage': 'Awaiting approval'\n },\n unblock: {\n 'id': 'account.unblock',\n 'defaultMessage': 'Unblock @{name}'\n },\n unmute: {\n 'id': 'account.unmute',\n 'defaultMessage': 'Unmute @{name}'\n }\n});\n\nvar Account = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Account, _ImmutablePureCompone);\n\n function Account() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Account);\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.handleFollow = function () {\n _this.props.onFollow(_this.props.account);\n }, _this.handleBlock = function () {\n _this.props.onBlock(_this.props.account);\n }, _this.handleMute = function () {\n _this.props.onMute(_this.props.account);\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Account.prototype.render = function render() {\n var _props = this.props,\n account = _props.account,\n intl = _props.intl,\n hidden = _props.hidden;\n\n\n if (!account) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {});\n }\n\n if (hidden) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, account.get('display_name'), account.get('username'));\n }\n\n var buttons = void 0;\n\n if (account.get('id') !== __WEBPACK_IMPORTED_MODULE_13__initial_state__[\"e\" /* me */] && account.get('relationship', null) !== null) {\n var following = account.getIn(['relationship', 'following']);\n var requested = account.getIn(['relationship', 'requested']);\n var blocking = account.getIn(['relationship', 'blocking']);\n var muting = account.getIn(['relationship', 'muting']);\n\n if (requested) {\n buttons = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__icon_button__[\"a\" /* default */], {\n disabled: true,\n icon: 'hourglass',\n title: intl.formatMessage(messages.requested)\n });\n } else if (blocking) {\n buttons = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__icon_button__[\"a\" /* default */], {\n active: true,\n icon: 'unlock-alt',\n title: intl.formatMessage(messages.unblock, { name: account.get('username') }),\n onClick: this.handleBlock\n });\n } else if (muting) {\n buttons = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__icon_button__[\"a\" /* default */], {\n active: true,\n icon: 'volume-up',\n title: intl.formatMessage(messages.unmute, { name: account.get('username') }),\n onClick: this.handleMute\n });\n } else {\n buttons = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__icon_button__[\"a\" /* default */], {\n icon: following ? 'user-times' : 'user-plus',\n title: intl.formatMessage(following ? messages.unfollow : messages.follow),\n onClick: this.handleFollow,\n active: following\n });\n }\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'account'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'account__wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__permalink__[\"a\" /* default */], {\n className: 'account__display-name',\n href: account.get('url'),\n to: '/accounts/' + account.get('id')\n }, account.get('id'), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'account__avatar-wrapper'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__avatar__[\"a\" /* default */], {\n account: account,\n size: 36\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__display_name__[\"a\" /* default */], {\n account: account\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'account__relationship'\n }, void 0, buttons)));\n };\n\n return Account;\n}(__WEBPACK_IMPORTED_MODULE_12_react_immutable_pure_component___default.a), _class2.propTypes = {\n account: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.map.isRequired,\n onFollow: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n onBlock: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n onMute: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n intl: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired,\n hidden: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.bool\n}, _temp2)) || _class;\n\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/***/ 879:\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_navigation_bar__ = __webpack_require__(802);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__initial_state__ = __webpack_require__(18);\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n account: state.getIn(['accounts', __WEBPACK_IMPORTED_MODULE_2__initial_state__[\"e\" /* me */]])\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_navigation_bar__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 880:\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_search__ = __webpack_require__(73);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__components_search__ = __webpack_require__(803);\n\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n value: state.getIn(['search', 'value']),\n submitted: state.getIn(['search', 'submitted'])\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onChange: function onChange(value) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_1__actions_search__[\"e\" /* changeSearch */])(value));\n },\n onClear: function onClear() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_1__actions_search__[\"f\" /* clearSearch */])());\n },\n onSubmit: function onSubmit() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_1__actions_search__[\"h\" /* submitSearch */])());\n },\n onShow: function onShow() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_1__actions_search__[\"g\" /* showSearch */])());\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_2__components_search__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 881:\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_search_results__ = __webpack_require__(882);\n\n\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n results: state.getIn(['search', 'results'])\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_search_results__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 882:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return SearchResults; });\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_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__containers_account_container__ = __webpack_require__(777);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__containers_status_container__ = __webpack_require__(261);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_router_dom__ = __webpack_require__(58);\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\n\n\n\n\nvar _class, _temp;\n\n\n\n\n\n\n\n\n\nvar SearchResults = (_temp = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(SearchResults, _ImmutablePureCompone);\n\n function SearchResults() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, SearchResults);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.apply(this, arguments));\n }\n\n SearchResults.prototype.render = function render() {\n var results = this.props.results;\n\n\n var accounts = void 0,\n statuses = void 0,\n hashtags = void 0;\n var count = 0;\n\n if (results.get('accounts') && results.get('accounts').size > 0) {\n count += results.get('accounts').size;\n accounts = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-results__section'\n }, void 0, results.get('accounts').map(function (accountId) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__containers_account_container__[\"a\" /* default */], {\n id: accountId\n }, accountId);\n }));\n }\n\n if (results.get('statuses') && results.get('statuses').size > 0) {\n count += results.get('statuses').size;\n statuses = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-results__section'\n }, void 0, results.get('statuses').map(function (statusId) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__containers_status_container__[\"a\" /* default */], {\n id: statusId\n }, statusId);\n }));\n }\n\n if (results.get('hashtags') && results.get('hashtags').size > 0) {\n count += results.get('hashtags').size;\n hashtags = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-results__section'\n }, void 0, results.get('hashtags').map(function (hashtag) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9_react_router_dom__[\"b\" /* Link */], {\n className: 'search-results__hashtag',\n to: '/timelines/tag/' + hashtag\n }, hashtag, '#', hashtag);\n }));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-results'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'search-results__header'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'search_results.total',\n defaultMessage: '{count, number} {count, plural, one {result} other {results}}',\n values: { count: count }\n })), accounts, statuses, hashtags);\n };\n\n return SearchResults;\n}(__WEBPACK_IMPORTED_MODULE_10_react_immutable_pure_component___default.a), _class.propTypes = {\n results: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.map.isRequired\n}, _temp);\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// features/compose-4617f6e912b5bfa71c43.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport Status from '../components/status';\nimport { makeGetStatus } from '../selectors';\nimport {\n replyCompose,\n mentionCompose,\n} from '../actions/compose';\nimport {\n reblog,\n favourite,\n unreblog,\n unfavourite,\n pin,\n unpin,\n} from '../actions/interactions';\nimport {\n blockAccount,\n muteAccount,\n} from '../actions/accounts';\nimport { muteStatus, unmuteStatus, deleteStatus } from '../actions/statuses';\nimport { initReport } from '../actions/reports';\nimport { openModal } from '../actions/modal';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { boostModal, deleteModal } from '../initial_state';\n\nconst messages = defineMessages({\n deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },\n deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },\n blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },\n muteConfirm: { id: 'confirmations.mute.confirm', defaultMessage: 'Mute' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = (state, props) => ({\n status: getStatus(state, props.id),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onReply (status, router) {\n dispatch(replyCompose(status, router));\n },\n\n onModalReblog (status) {\n dispatch(reblog(status));\n },\n\n onReblog (status, e) {\n if (status.get('reblogged')) {\n dispatch(unreblog(status));\n } else {\n if (e.shiftKey || !boostModal) {\n this.onModalReblog(status);\n } else {\n dispatch(openModal('BOOST', { status, onReblog: this.onModalReblog }));\n }\n }\n },\n\n onFavourite (status) {\n if (status.get('favourited')) {\n dispatch(unfavourite(status));\n } else {\n dispatch(favourite(status));\n }\n },\n\n onPin (status) {\n if (status.get('pinned')) {\n dispatch(unpin(status));\n } else {\n dispatch(pin(status));\n }\n },\n\n onEmbed (status) {\n dispatch(openModal('EMBED', { url: status.get('url') }));\n },\n\n onDelete (status) {\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id')));\n } else {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: () => dispatch(deleteStatus(status.get('id'))),\n }));\n }\n },\n\n onMention (account, router) {\n dispatch(mentionCompose(account, router));\n },\n\n onOpenMedia (media, index) {\n dispatch(openModal('MEDIA', { media, index }));\n },\n\n onOpenVideo (media, time) {\n dispatch(openModal('VIDEO', { media, time }));\n },\n\n onBlock (account) {\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.blockConfirm),\n onConfirm: () => dispatch(blockAccount(account.get('id'))),\n }));\n },\n\n onReport (status) {\n dispatch(initReport(status.get('account'), status));\n },\n\n onMute (account) {\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.muteConfirm),\n onConfirm: () => dispatch(muteAccount(account.get('id'))),\n }));\n },\n\n onMuteConversation (status) {\n if (status.get('muted')) {\n dispatch(unmuteStatus(status.get('id')));\n } else {\n dispatch(muteStatus(status.get('id')));\n }\n },\n\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status));\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/status_container.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 { connect } from 'react-redux';\nimport ComposeForm from '../components/compose_form';\nimport { uploadCompose } from '../../../actions/compose';\nimport {\n changeCompose,\n submitCompose,\n clearComposeSuggestions,\n fetchComposeSuggestions,\n selectComposeSuggestion,\n changeComposeSpoilerText,\n insertEmojiCompose,\n} from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n text: state.getIn(['compose', 'text']),\n suggestion_token: state.getIn(['compose', 'suggestion_token']),\n suggestions: state.getIn(['compose', 'suggestions']),\n spoiler: state.getIn(['compose', 'spoiler']),\n spoiler_text: state.getIn(['compose', 'spoiler_text']),\n privacy: state.getIn(['compose', 'privacy']),\n focusDate: state.getIn(['compose', 'focusDate']),\n preselectDate: state.getIn(['compose', 'preselectDate']),\n is_submitting: state.getIn(['compose', 'is_submitting']),\n is_uploading: state.getIn(['compose', 'is_uploading']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\n onChange (text) {\n dispatch(changeCompose(text));\n },\n\n onSubmit () {\n dispatch(submitCompose());\n },\n\n onClearSuggestions () {\n dispatch(clearComposeSuggestions());\n },\n\n onFetchSuggestions (token) {\n dispatch(fetchComposeSuggestions(token));\n },\n\n onSuggestionSelected (position, token, accountId) {\n dispatch(selectComposeSuggestion(position, token, accountId));\n },\n\n onChangeSpoilerText (checked) {\n dispatch(changeComposeSpoilerText(checked));\n },\n\n onPaste (files) {\n dispatch(uploadCompose(files));\n },\n\n onPickEmoji (position, data) {\n dispatch(insertEmojiCompose(position, data));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/compose_form_container.js","import React from 'react';\nimport ComposeFormContainer from './containers/compose_form_container';\nimport NavigationContainer from './containers/navigation_container';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\nimport { mountCompose, unmountCompose } from '../../actions/compose';\nimport { Link } from 'react-router-dom';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport SearchContainer from './containers/search_container';\nimport Motion from '../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport SearchResultsContainer from './containers/search_results_container';\nimport { changeComposing } from '../../actions/compose';\n\nconst messages = defineMessages({\n start: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },\n public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },\n community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },\n preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },\n});\n\nconst mapStateToProps = state => ({\n columns: state.getIn(['settings', 'columns']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class Compose extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n columns: ImmutablePropTypes.list.isRequired,\n multiColumn: PropTypes.bool,\n showSearch: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n };\n\n componentDidMount () {\n this.props.dispatch(mountCompose());\n }\n\n componentWillUnmount () {\n this.props.dispatch(unmountCompose());\n }\n\n onFocus = () => {\n this.props.dispatch(changeComposing(true));\n }\n\n onBlur = () => {\n this.props.dispatch(changeComposing(false));\n }\n\n render () {\n const { multiColumn, showSearch, intl } = this.props;\n\n let header = '';\n\n if (multiColumn) {\n const { columns } = this.props;\n header = (\n <nav className='drawer__header'>\n <Link to='/getting-started' className='drawer__tab' title={intl.formatMessage(messages.start)} aria-label={intl.formatMessage(messages.start)}><i role='img' className='fa fa-fw fa-asterisk' /></Link>\n {!columns.some(column => column.get('id') === 'HOME') && (\n <Link to='/timelines/home' className='drawer__tab' title={intl.formatMessage(messages.home_timeline)} aria-label={intl.formatMessage(messages.home_timeline)}><i role='img' className='fa fa-fw fa-home' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'NOTIFICATIONS') && (\n <Link to='/notifications' className='drawer__tab' title={intl.formatMessage(messages.notifications)} aria-label={intl.formatMessage(messages.notifications)}><i role='img' className='fa fa-fw fa-bell' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'COMMUNITY') && (\n <Link to='/timelines/public/local' className='drawer__tab' title={intl.formatMessage(messages.community)} aria-label={intl.formatMessage(messages.community)}><i role='img' className='fa fa-fw fa-users' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'PUBLIC') && (\n <Link to='/timelines/public' className='drawer__tab' title={intl.formatMessage(messages.public)} aria-label={intl.formatMessage(messages.public)}><i role='img' className='fa fa-fw fa-globe' /></Link>\n )}\n <a href='/settings/preferences' className='drawer__tab' title={intl.formatMessage(messages.preferences)} aria-label={intl.formatMessage(messages.preferences)}><i role='img' className='fa fa-fw fa-cog' /></a>\n <a href='/auth/sign_out' className='drawer__tab' data-method='delete' title={intl.formatMessage(messages.logout)} aria-label={intl.formatMessage(messages.logout)}><i role='img' className='fa fa-fw fa-sign-out' /></a>\n </nav>\n );\n }\n\n return (\n <div className='drawer'>\n {header}\n\n <SearchContainer />\n\n <div className='drawer__pager'>\n <div className='drawer__inner' onFocus={this.onFocus}>\n <NavigationContainer onClose={this.onBlur} />\n <ComposeFormContainer />\n </div>\n\n <Motion defaultStyle={{ x: -100 }} style={{ x: spring(showSearch ? 0 : -100, { stiffness: 210, damping: 20 }) }}>\n {({ x }) =>\n <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>\n <SearchResultsContainer />\n </div>\n }\n </Motion>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/index.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { makeGetAccount } from '../selectors';\nimport Account from '../components/account';\nimport {\n followAccount,\n unfollowAccount,\n blockAccount,\n unblockAccount,\n muteAccount,\n unmuteAccount,\n} from '../actions/accounts';\nimport { openModal } from '../actions/modal';\nimport { unfollowModal } from '../initial_state';\n\nconst messages = defineMessages({\n unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' },\n});\n\nconst makeMapStateToProps = () => {\n const getAccount = makeGetAccount();\n\n const mapStateToProps = (state, props) => ({\n account: getAccount(state, props.id),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onFollow (account) {\n if (account.getIn(['relationship', 'following']) || account.getIn(['relationship', 'requested'])) {\n if (unfollowModal) {\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.unfollow.message' defaultMessage='Are you sure you want to unfollow {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.unfollowConfirm),\n onConfirm: () => dispatch(unfollowAccount(account.get('id'))),\n }));\n } else {\n dispatch(unfollowAccount(account.get('id')));\n }\n } else {\n dispatch(followAccount(account.get('id')));\n }\n },\n\n onBlock (account) {\n if (account.getIn(['relationship', 'blocking'])) {\n dispatch(unblockAccount(account.get('id')));\n } else {\n dispatch(blockAccount(account.get('id')));\n }\n },\n\n onMute (account) {\n if (account.getIn(['relationship', 'muting'])) {\n dispatch(unmuteAccount(account.get('id')));\n } else {\n dispatch(muteAccount(account.get('id')));\n }\n },\n\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Account));\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/account_container.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport Avatar from './avatar';\nimport DisplayName from './display_name';\nimport Permalink from './permalink';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { me } from '../initial_state';\n\nconst messages = defineMessages({\n follow: { id: 'account.follow', defaultMessage: 'Follow' },\n unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },\n requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' },\n unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },\n unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },\n});\n\n@injectIntl\nexport default class Account extends ImmutablePureComponent {\n\n static propTypes = {\n account: ImmutablePropTypes.map.isRequired,\n onFollow: PropTypes.func.isRequired,\n onBlock: PropTypes.func.isRequired,\n onMute: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n hidden: PropTypes.bool,\n };\n\n handleFollow = () => {\n this.props.onFollow(this.props.account);\n }\n\n handleBlock = () => {\n this.props.onBlock(this.props.account);\n }\n\n handleMute = () => {\n this.props.onMute(this.props.account);\n }\n\n render () {\n const { account, intl, hidden } = this.props;\n\n if (!account) {\n return <div />;\n }\n\n if (hidden) {\n return (\n <div>\n {account.get('display_name')}\n {account.get('username')}\n </div>\n );\n }\n\n let buttons;\n\n if (account.get('id') !== me && account.get('relationship', null) !== null) {\n const following = account.getIn(['relationship', 'following']);\n const requested = account.getIn(['relationship', 'requested']);\n const blocking = account.getIn(['relationship', 'blocking']);\n const muting = account.getIn(['relationship', 'muting']);\n\n if (requested) {\n buttons = <IconButton disabled icon='hourglass' title={intl.formatMessage(messages.requested)} />;\n } else if (blocking) {\n buttons = <IconButton active icon='unlock-alt' title={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.handleBlock} />;\n } else if (muting) {\n buttons = <IconButton active icon='volume-up' title={intl.formatMessage(messages.unmute, { name: account.get('username') })} onClick={this.handleMute} />;\n } else {\n buttons = <IconButton icon={following ? 'user-times' : 'user-plus'} title={intl.formatMessage(following ? messages.unfollow : messages.follow)} onClick={this.handleFollow} active={following} />;\n }\n }\n\n return (\n <div className='account'>\n <div className='account__wrapper'>\n <Permalink key={account.get('id')} className='account__display-name' href={account.get('url')} to={`/accounts/${account.get('id')}`}>\n <div className='account__avatar-wrapper'><Avatar account={account} size={36} /></div>\n <DisplayName account={account} />\n </Permalink>\n\n <div className='account__relationship'>\n {buttons}\n </div>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/account.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","import { connect } from 'react-redux';\nimport NavigationBar from '../components/navigation_bar';\nimport { me } from '../../../initial_state';\n\nconst mapStateToProps = state => {\n return {\n account: state.getIn(['accounts', me]),\n };\n};\n\nexport default connect(mapStateToProps)(NavigationBar);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/navigation_container.js","import { connect } from 'react-redux';\nimport {\n changeSearch,\n clearSearch,\n submitSearch,\n showSearch,\n} from '../../../actions/search';\nimport Search from '../components/search';\n\nconst mapStateToProps = state => ({\n value: state.getIn(['search', 'value']),\n submitted: state.getIn(['search', 'submitted']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (value) {\n dispatch(changeSearch(value));\n },\n\n onClear () {\n dispatch(clearSearch());\n },\n\n onSubmit () {\n dispatch(submitSearch());\n },\n\n onShow () {\n dispatch(showSearch());\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Search);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/search_container.js","import { connect } from 'react-redux';\nimport SearchResults from '../components/search_results';\n\nconst mapStateToProps = state => ({\n results: state.getIn(['search', 'results']),\n});\n\nexport default connect(mapStateToProps)(SearchResults);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/search_results_container.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { FormattedMessage } from 'react-intl';\nimport AccountContainer from '../../../containers/account_container';\nimport StatusContainer from '../../../containers/status_container';\nimport { Link } from 'react-router-dom';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class SearchResults extends ImmutablePureComponent {\n\n static propTypes = {\n results: ImmutablePropTypes.map.isRequired,\n };\n\n render () {\n const { results } = this.props;\n\n let accounts, statuses, hashtags;\n let count = 0;\n\n if (results.get('accounts') && results.get('accounts').size > 0) {\n count += results.get('accounts').size;\n accounts = (\n <div className='search-results__section'>\n {results.get('accounts').map(accountId => <AccountContainer key={accountId} id={accountId} />)}\n </div>\n );\n }\n\n if (results.get('statuses') && results.get('statuses').size > 0) {\n count += results.get('statuses').size;\n statuses = (\n <div className='search-results__section'>\n {results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}\n </div>\n );\n }\n\n if (results.get('hashtags') && results.get('hashtags').size > 0) {\n count += results.get('hashtags').size;\n hashtags = (\n <div className='search-results__section'>\n {results.get('hashtags').map(hashtag =>\n <Link key={hashtag} className='search-results__hashtag' to={`/timelines/tag/${hashtag}`}>\n #{hashtag}\n </Link>\n )}\n </div>\n );\n }\n\n return (\n <div className='search-results'>\n <div className='search-results__header'>\n <FormattedMessage id='search_results.total' defaultMessage='{count, number} {count, plural, one {result} other {results}}' values={{ count }} />\n </div>\n\n {accounts}\n {statuses}\n {hashtags}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/components/search_results.js"],"sourceRoot":""}