pleroma/priv/static/packs/share.js.map
2018-03-31 18:15:28 +02:00

1 line
No EOL
476 KiB
Text
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:///share.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:///./node_modules/react-intl/lib/index.es.js","webpack:///./app/javascript/packs/share.js","webpack:///./app/javascript/mastodon/containers/compose_container.js","webpack:///./app/javascript/mastodon/features/standalone/compose/index.js"],"names":["webpackJsonp","302","module","__webpack_exports__","__webpack_require__","d","ComposeForm","_class","_class2","_temp2","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","__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__","__WEBPACK_IMPORTED_MODULE_24__initial_state__","messages","Object","placeholder","id","defaultMessage","spoiler_placeholder","publish","publishLoud","_ImmutablePureCompone","_temp","_this","_ret","this","_len","arguments","length","args","Array","_key","call","apply","concat","handleChange","e","props","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","intl","onPaste","showSearch","anyMedia","disabled","spoiler_text","join","disabledButton","trim","publishText","privacy","className","formatMessage","isVisible","spoiler","fullHeight","style","display","onKeyDown","type","a","createElement","ref","suggestions","autoFocus","window","innerWidth","max","onClick","block","propTypes","object","isRequired","string","suggestion_token","list","bool","instanceOf","Date","func","defaultProps","303","CharacterCounter","__WEBPACK_IMPORTED_MODULE_5_stringz__","_React$PureComponent","checkRemainingText","diff","PureComponent","304","__WEBPACK_IMPORTED_MODULE_0_react_redux__","__WEBPACK_IMPORTED_MODULE_1__actions_compose__","__WEBPACK_IMPORTED_MODULE_2__selectors__","__WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__","makeMapStateToProps","getStatus","state","status","getIn","mapDispatchToProps","dispatch","onCancel","305","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","__WEBPACK_IMPORTED_MODULE_12__rtl__","cancel","handleClick","handleAccountClick","button","preventDefault","context","router","history","push","content","__html","get","direction","title","icon","href","account","size","dangerouslySetInnerHTML","contextTypes","map","306","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","inputRef","aria-autocomplete","isEmpty","307","__WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__","getAccount","_ref","308","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","309","process","AutosuggestEmoji","__WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light__","__WEBPACK_IMPORTED_MODULE_5__features_emoji_emoji_unicode_mapping_light___default","assetHost","env","CDN_HOST","url","custom","imageUrl","mapping","replace","filename","src","alt","colons","310","_extends","assign","source","hasOwnProperty","_inheritsLoose","subClass","superClass","create","constructor","__proto__","_objectWithoutProperties","excluded","sourceKeys","keys","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","calculateNodeHeight","uiTextNode","uid","useCache","minRows","maxRows","hiddenTextarea","parentNode","body","appendChild","nodeStyling","calculateNodeStyling","paddingSize","borderSize","boxSizing","sizingStyle","forEach","HIDDEN_TEXTAREA_STYLE","setProperty","minHeight","Infinity","maxHeight","height","scrollHeight","singleRowHeight","rowCount","floor","node","computedStyleCache","getComputedStyle","SIZING_STYLE","reduce","obj","name","getPropertyValue","isIE","width","parseFloat","nodeInfo","__WEBPACK_IMPORTED_MODULE_0_react__","__WEBPACK_IMPORTED_MODULE_0_react___default","__WEBPACK_IMPORTED_MODULE_1_prop_types__","isBrowser","documentElement","currentStyle","min-height","max-height","visibility","overflow","z-index","top","purgeCache","seed","noop","requestAnimationFrame","cancelAnimationFrame","setTimeout","clearTimeout","onNextFrame","clearNextFrameAction","TextareaAutosize","_React$Component","_resizeLock","_onRootDOMNode","_rootDOMNode","_onChange","event","_controlled","_resizeComponent","callback","nodeHeight","_uid","useCacheForDOMMeasurements","_proto","onHeightChange","componentDidMount","_this2","_resizeListener","addEventListener","_this3","_clearNextFrame","_onNextFrameActionId","prevState","componentWillUnmount","removeEventListener","Component","311","__WEBPACK_IMPORTED_MODULE_1__components_upload_button__","__WEBPACK_IMPORTED_MODULE_2__actions_compose__","mapStateToProps","some","m","resetFileKey","onSelectFile","312","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","313","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_2__features_ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_3_react_motion_lib_spring___default","Collapsable","children","defaultStyle","opacity","_ref2","314","__WEBPACK_IMPORTED_MODULE_1__components_text_icon_button__","__WEBPACK_IMPORTED_MODULE_3_react_intl__","marked","unmarked","label","active","ariaControls","315","TextIconButton","aria-label","aria-expanded","aria-controls","316","__WEBPACK_IMPORTED_MODULE_1__components_privacy_dropdown__","__WEBPACK_IMPORTED_MODULE_3__actions_modal__","__WEBPACK_IMPORTED_MODULE_4__is_mobile__","isModalOpen","modalType","isUserTouching","onModalOpen","onModalClose","317","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","318","__WEBPACK_IMPORTED_MODULE_5_react_redux__","__WEBPACK_IMPORTED_MODULE_6_classnames__","__WEBPACK_IMPORTED_MODULE_6_classnames___default","__WEBPACK_IMPORTED_MODULE_7__components_icon_button__","__WEBPACK_IMPORTED_MODULE_8__actions_compose__","__WEBPACK_IMPORTED_MODULE_9__ui_util_optional_motion__","__WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring__","__WEBPACK_IMPORTED_MODULE_10_react_motion_lib_spring___default","__WEBPACK_IMPORTED_MODULE_11_react_intl__","visible","SensitiveButton","scale","compose-form__sensitive-button--visible","319","__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","320","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","321","__WEBPACK_IMPORTED_MODULE_1__components_upload_form__","mediaIds","322","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__","323","__WEBPACK_IMPORTED_MODULE_1__components_upload_progress__","progress","324","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","325","__WEBPACK_IMPORTED_MODULE_1__components_upload__","media","onUndo","onDescriptionChange","description","onOpenFocalPoint","326","Upload","__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","hovered","focused","dirtyDescription","handleUndoClick","handleFocalPointClick","handleInputChange","handleMouseEnter","handleMouseLeave","handleInputFocus","handleInputBlur","focusX","focusY","x","y","onMouseEnter","onMouseLeave","backgroundImage","backgroundPosition","maxLength","onFocus","327","__WEBPACK_IMPORTED_MODULE_2_react_redux__","__WEBPACK_IMPORTED_MODULE_3__components_warning__","__WEBPACK_IMPORTED_MODULE_4_react_intl__","__WEBPACK_IMPORTED_MODULE_5__initial_state__","APPROX_HASHTAG_RE","needsLockWarning","hashtagWarning","test","directMessageWarning","WarningWrapper","message","values","locked","328","Warning","329","countableText","inputText","__WEBPACK_IMPORTED_MODULE_0__url_regex__","urlPlaceholder","330","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","331","__WEBPACK_IMPORTED_MODULE_1__components_compose_form__","accountId","checked","6","addLocaleData","undefined","isArray","localeData","locale","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default","__addLocaleData","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default","hasLocaleData","localeParts","split","hasIMFAndIRFLocaleData","pop","normalizedLocale","__localeData__","escape","UNSAFE_CHARS_REGEX","ESCAPED_CHARS","filterProps","whitelist","defaults$$1","filtered","invariantIntlContext","__WEBPACK_IMPORTED_MODULE_5_invariant___default","shallowEquals","objA","objB","_typeof","keysA","keysB","bHasOwnProperty","bind","shouldIntlComponentUpdate","nextState","_ref2$context","nextContext","_context$intl","_nextContext$intl","nextIntl","intlConfigPropNames","getDisplayName","Component$$1","displayName","injectIntl","WrappedComponent","_options$intlPropName","intlPropName","_options$withRef","withRef","InjectIntl","_Component","classCallCheck","possibleConstructorReturn","getPrototypeOf","inherits","createClass","refs","wrappedInstance","defineProperty","intlShape","defineMessages","messageDescriptors","resolveLocale","locales","_resolveLocale","findPluralFunction","_findPluralRuleFunction","updateRelativeFormatThresholds","newThresholds","thresholds","second","minute","hour","day","month","getNamedFormat","formats","format","formatDate","config","date","filteredOptions","DATE_TIME_FORMAT_OPTIONS","getDateTimeFormat","String","formatTime","formatRelative","now","RELATIVE_FORMAT_OPTIONS","oldThresholds","RELATIVE_FORMAT_THRESHOLDS","getRelativeFormat","isFinite","formatNumber","NUMBER_FORMAT_OPTIONS","getNumberFormat","formatPlural","PLURAL_FORMAT_OPTIONS","getPluralFormat","messageDescriptor","defaultLocale","defaultFormats","formattedMessage","getMessageFormat","formatHTMLMessage","rawValues","escaped","selectUnits","delta","absDelta","abs","MINUTE","HOUR","DAY","getUnitDelay","units","SECOND","MAX_TIMER_DELAY","isSameDate","aTime","getTime","bTime","IntlProvider","FormattedDate","FormattedNumber","FormattedMessage","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","__WEBPACK_IMPORTED_MODULE_5_invariant__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default","defaultLocaleData","pluralRuleFunction","ord","s","v0","t0","Number","n10","n100","fields","year","relative","0","1","-1","relativeTime","future","one","other","past","Symbol","iterator","instance","Constructor","TypeError","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","setPrototypeOf","objectWithoutProperties","self","ReferenceError","toConsumableArray","arr","arr2","from","oneOf","shape","any","oneOfType","localeMatcher","narrowShortLong","numeric2digit","funcReq","intlConfigPropTypes","textComponent","intlFormatPropTypes","formatters","dateTimeFormatPropTypes","formatMatcher","timeZone","hour12","weekday","era","timeZoneName","numberFormatPropTypes","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","relativeFormatPropTypes","pluralFormatPropTypes","&",">","<","\"","'","IntlPluralFormat","useOrdinal","pluralFn","freeze","intlConfigPropNames$1","intlFormatPropNames","Intl","intlContext","initialNow","_ref$formatters","DateTimeFormat","NumberFormat","_didDisplay","propName","_config","boundFormatFns","getConfig","getBoundFormatFns","next","only","childContextTypes","Text","formattedDate","FormattedTime","formattedTime","FormattedRelative","_timer","updateInterval","time","unitDelay","unitRemainder","delay","scheduleNextUpdate","formattedRelative","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","nextPropsToCheck","_props$tagName","tagName","tokenDelimiter","tokenizedValues","elements","random","toString","generateToken","counter","nodes","part","FormattedHTMLMessage","formattedHTMLMessage","html","695","loaded","ComposeContainer","default","React","ReactDOM","mountNode","getElementById","JSON","parse","main","ready","__WEBPACK_IMPORTED_MODULE_0__mastodon_load_polyfills__","error","console","696","TimelineContainer","__WEBPACK_IMPORTED_MODULE_6__store_configureStore__","__WEBPACK_IMPORTED_MODULE_7__actions_store__","__WEBPACK_IMPORTED_MODULE_8_react_intl__","__WEBPACK_IMPORTED_MODULE_9__locales__","__WEBPACK_IMPORTED_MODULE_10__features_standalone_compose__","__WEBPACK_IMPORTED_MODULE_11__initial_state__","_getLocale","store","697","Compose","__WEBPACK_IMPORTED_MODULE_5__compose_containers_compose_form_container__","__WEBPACK_IMPORTED_MODULE_6__ui_containers_notifications_container__","__WEBPACK_IMPORTED_MODULE_7__ui_containers_loading_bar_container__","__WEBPACK_IMPORTED_MODULE_8__ui_containers_modal_container__"],"mappings":"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","file":"share.js","sourcesContent":["webpackJsonp([27],{\n\n/***/ 302:\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__(303);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_button__ = __webpack_require__(99);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(13);\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__(304);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_autosuggest_textarea__ = __webpack_require__(306);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_upload_button_container__ = __webpack_require__(311);\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__(313);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__containers_spoiler_button_container__ = __webpack_require__(314);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__containers_privacy_dropdown_container__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__containers_sensitive_button_container__ = __webpack_require__(318);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__containers_emoji_picker_dropdown_container__ = __webpack_require__(319);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__containers_upload_form_container__ = __webpack_require__(321);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__containers_warning_container__ = __webpack_require__(327);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__is_mobile__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_react_immutable_pure_component__ = __webpack_require__(12);\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__(98);\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__(329);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24__initial_state__ = __webpack_require__(11);\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\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 anyMedia = _props.anyMedia;\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 var disabledButton = disabled || this.props.is_uploading || Object(__WEBPACK_IMPORTED_MODULE_22_stringz__[\"length\"])(text) > __WEBPACK_IMPORTED_MODULE_24__initial_state__[\"c\" /* charLimit */] || text.length !== 0 && text.trim().length === 0 && !anyMedia;\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_19__containers_warning_container__[\"a\" /* default */], {}), __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_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: '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: __WEBPACK_IMPORTED_MODULE_24__initial_state__[\"c\" /* charLimit */],\n text: text\n }))), __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: '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: disabledButton,\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 anyMedia: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.bool\n}, _class2.defaultProps = {\n showSearch: false\n}, _temp2)) || _class;\n\n\n\n/***/ }),\n\n/***/ 303:\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__(98);\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/***/ 304:\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__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(66);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__ = __webpack_require__(305);\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__[\"E\" /* 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/***/ 305:\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__(13);\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__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_icon_button__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_display_name__ = __webpack_require__(55);\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__(12);\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__rtl__ = __webpack_require__(97);\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_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 var style = {\n direction: Object(__WEBPACK_IMPORTED_MODULE_12__rtl__[\"a\" /* isRtl */])(status.get('search_index')) ? 'rtl' : 'ltr'\n };\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 style: style,\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/***/ 306:\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__(32);\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__(307);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__autosuggest_emoji__ = __webpack_require__(309);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__ = __webpack_require__(13);\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__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_immutable_pure_component__ = __webpack_require__(12);\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__(310);\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 if (suggestion[0] === '#') {\n inner = suggestion;\n key = suggestion;\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 'aria-autocomplete': 'list'\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/***/ 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_autosuggest_account__ = __webpack_require__(308);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(66);\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/***/ 308:\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__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_display_name__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(13);\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__(12);\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/***/ 309:\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__(156);\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__(36)))\n\n/***/ }),\n\n/***/ 310:\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\nfunction _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar isIE = isBrowser ? !!document.documentElement.currentStyle : false;\nvar hiddenTextarea = isBrowser && document.createElement('textarea');\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};\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'font-family', 'font-weight', 'font-size', 'font-style', 'tab-size', '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'];\nvar computedStyleCache = {};\nfunction calculateNodeHeight(uiTextNode, uid, useCache, minRows, maxRows) {\n if (useCache === void 0) {\n useCache = false;\n }\n\n if (minRows === void 0) {\n minRows = null;\n }\n\n if (maxRows === void 0) {\n maxRows = null;\n }\n\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n } // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n\n\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; // 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 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 } // measure height of a textarea with a single row\n\n\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\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n\n height = Math.max(minHeight, height);\n }\n\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n\n height = Math.min(maxHeight, height);\n }\n }\n\n var rowCount = Math.floor(height / singleRowHeight);\n return {\n height: height,\n minHeight: minHeight,\n maxHeight: maxHeight,\n rowCount: rowCount\n };\n}\n\nfunction calculateNodeStyling(node, uid, useCache) {\n if (useCache === void 0) {\n useCache = false;\n }\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 var boxSizing = sizingStyle['box-sizing']; // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n\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 var borderSize = parseFloat(sizingStyle['border-bottom-width']) + parseFloat(sizingStyle['border-top-width']);\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(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\n/**\n * <TextareaAutosize />\n */\nvar noop = function noop() {}; // IE11 has a problem with eval source maps, can be reproduced with:\n// eval('\"use strict\"; var onNextFrame = window.cancelAnimationFrame; onNextFrame(4);')\n// so we bind window as context in dev modes\n\n\nvar _ref = isBrowser && window.requestAnimationFrame ? true ? [window.requestAnimationFrame, window.cancelAnimationFrame] : [window.requestAnimationFrame.bind(window), window.cancelAnimationFrame.bind(window)] : [setTimeout, clearTimeout];\nvar onNextFrame = _ref[0];\nvar clearNextFrameAction = _ref[1];\n\nvar TextareaAutosize =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TextareaAutosize, _React$Component);\n\n function TextareaAutosize(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\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\n _this.props.onChange(event);\n };\n\n _this._resizeComponent = function (callback) {\n if (callback === void 0) {\n callback = noop;\n }\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 _this.rowCount = rowCount;\n\n if (_this.state.height !== height || _this.state.minHeight !== minHeight || _this.state.maxHeight !== maxHeight) {\n _this.setState({\n height: height,\n minHeight: minHeight,\n maxHeight: maxHeight\n }, callback);\n\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 _this._uid = uid();\n _this._controlled = typeof props.value === 'string';\n return _this;\n }\n\n var _proto = TextareaAutosize.prototype;\n\n _proto.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 props.style = _extends({}, props.style, {\n height: this.state.height\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 _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._resizeComponent(); // 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\n\n this._resizeListener = function () {\n if (_this2._resizeLock) {\n return;\n }\n\n _this2._resizeLock = true;\n\n _this2._resizeComponent(function () {\n return _this2._resizeLock = false;\n });\n };\n\n window.addEventListener('resize', this._resizeListener);\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps() {\n var _this3 = this;\n\n this._clearNextFrame();\n\n this._onNextFrameActionId = onNextFrame(function () {\n return _this3._resizeComponent();\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.state.height !== prevState.height) {\n this.props.onHeightChange(this.state.height, this);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._clearNextFrame();\n\n window.removeEventListener('resize', this._resizeListener);\n purgeCache(this._uid);\n };\n\n _proto._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/***/ 311:\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__(312);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(18);\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__[\"Z\" /* 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/***/ 312:\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__(23);\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__(12);\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__(13);\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/***/ 313:\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__(28);\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/***/ 314:\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__(315);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(18);\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 marked: {\n 'id': 'compose_form.spoiler.marked',\n 'defaultMessage': 'Text is hidden behind warning'\n },\n unmarked: {\n 'id': 'compose_form.spoiler.unmarked',\n 'defaultMessage': 'Text is not hidden'\n }\n});\n\nvar mapStateToProps = function mapStateToProps(state, _ref) {\n var intl = _ref.intl;\n return {\n label: 'CW',\n title: intl.formatMessage(state.getIn(['compose', 'spoiler']) ? messages.marked : messages.unmarked),\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__[\"I\" /* 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/***/ 315:\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/***/ 316:\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__(317);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions_modal__ = __webpack_require__(26);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__is_mobile__ = __webpack_require__(35);\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__[\"J\" /* 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/***/ 317:\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__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__ = __webpack_require__(96);\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__(28);\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/***/ 318:\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__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__actions_compose__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__ui_util_optional_motion__ = __webpack_require__(28);\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 marked: {\n 'id': 'compose_form.sensitive.marked',\n 'defaultMessage': 'Media is marked as sensitive'\n },\n unmarked: {\n 'id': 'compose_form.sensitive.unmarked',\n 'defaultMessage': 'Media is not marked 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__[\"G\" /* 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(active ? messages.marked : messages.unmarked),\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/***/ 319:\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__(320);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_settings__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_reselect__ = __webpack_require__(95);\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__(100);\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/***/ 320:\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__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__ = __webpack_require__(96);\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__(71);\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__[\"f\" /* 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__(36)))\n\n/***/ }),\n\n/***/ 321:\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__(322);\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/***/ 322:\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__(13);\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__(323);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_pure_component__ = __webpack_require__(12);\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__(325);\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/***/ 323:\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__(324);\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/***/ 324:\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__(28);\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/***/ 325:\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__(326);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__actions_modal__ = __webpack_require__(26);\n\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__[\"X\" /* undoUploadCompose */])(id));\n },\n\n onDescriptionChange: function onDescriptionChange(id, description) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"L\" /* changeUploadCompose */])(id, { description: description }));\n },\n\n onOpenFocalPoint: function onOpenFocalPoint(id) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_3__actions_modal__[\"d\" /* openModal */])('FOCAL_POINT', { id: id }));\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/***/ 326:\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__(13);\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__ui_util_optional_motion__ = __webpack_require__(28);\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/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_react_immutable_pure_component__ = __webpack_require__(12);\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_intl__ = __webpack_require__(6);\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 _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 description: {\n 'id': 'upload_form.description',\n 'defaultMessage': 'Describe for the visually impaired'\n }\n});\n\nvar Upload = Object(__WEBPACK_IMPORTED_MODULE_10_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.handleFocalPointClick = function () {\n _this.props.onOpenFocalPoint(_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 || this.state.dirtyDescription !== '' && media.get('description') || '';\n var focusX = media.getIn(['meta', 'focus', 'x']);\n var focusY = media.getIn(['meta', 'focus', 'y']);\n var x = (focusX / 2 + .5) * 100;\n var y = (focusY / -2 + .5) * 100;\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_7__ui_util_optional_motion__[\"a\" /* default */], {\n defaultStyle: { scale: 0.8 },\n style: { scale: __WEBPACK_IMPORTED_MODULE_8_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') + ')', backgroundPosition: x + '% ' + y + '%' }\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_11_classnames___default()('compose-form__upload__actions', { active: active })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n className: 'icon-button',\n onClick: _this2.handleUndoClick\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-times'\n }), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'upload_form.undo',\n defaultMessage: 'Undo'\n })), media.get('type') === 'image' && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n className: 'icon-button',\n onClick: _this2.handleFocalPointClick\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-crosshairs'\n }), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'upload_form.focus',\n defaultMessage: 'Crop'\n }))), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_11_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_9_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 onOpenFocalPoint: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired\n}, _temp2)) || _class;\n\n\n\n/***/ }),\n\n/***/ 327:\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__(328);\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__(11);\n\n\n\n\n\n\n\n\nvar APPROX_HASHTAG_RE = /(?:^|[^\\/\\)\\w])#(\\w*[a-zA-Z·]\\w*)/i;\n\nvar mapStateToProps = function mapStateToProps(state) {\n return {\n needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', __WEBPACK_IMPORTED_MODULE_5__initial_state__[\"g\" /* me */], 'locked']),\n hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])),\n directMessageWarning: state.getIn(['compose', 'privacy']) === 'direct'\n };\n};\n\nvar WarningWrapper = function WarningWrapper(_ref) {\n var needsLockWarning = _ref.needsLockWarning,\n hashtagWarning = _ref.hashtagWarning,\n directMessageWarning = _ref.directMessageWarning;\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 if (hashtagWarning) {\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.hashtag_warning',\n defaultMessage: 'This toot won\\'t be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.'\n })\n });\n }\n if (directMessageWarning) {\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.direct_message_warning',\n defaultMessage: 'This toot will only be visible to all the mentioned users.'\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/***/ 328:\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__(28);\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/***/ 329:\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__(330);\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/***/ 330:\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/***/ 331:\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__(302);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(18);\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 anyMedia: state.getIn(['compose', 'media_attachments']).size > 0\n };\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch) {\n return {\n onChange: function onChange(text) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"F\" /* changeCompose */])(text));\n },\n onSubmit: function onSubmit() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"W\" /* submitCompose */])());\n },\n onClearSuggestions: function onClearSuggestions() {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"M\" /* clearComposeSuggestions */])());\n },\n onFetchSuggestions: function onFetchSuggestions(token) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"O\" /* fetchComposeSuggestions */])(token));\n },\n onSuggestionSelected: function onSuggestionSelected(position, token, accountId) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"V\" /* selectComposeSuggestion */])(position, token, accountId));\n },\n onChangeSpoilerText: function onChangeSpoilerText(checked) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"H\" /* changeComposeSpoilerText */])(checked));\n },\n onPaste: function onPaste(files) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"Z\" /* uploadCompose */])(files));\n },\n onPickEmoji: function onPickEmoji(position, data) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"Q\" /* 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/***/ 6:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return addLocaleData; });\n/* unused harmony export intlShape */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return injectIntl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return defineMessages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return IntlProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FormattedDate; });\n/* unused harmony export FormattedTime */\n/* unused harmony export FormattedRelative */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FormattedNumber; });\n/* unused harmony export FormattedPlural */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FormattedMessage; });\n/* unused harmony export FormattedHTMLMessage */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__ = __webpack_require__(80);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat__ = __webpack_require__(53);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__ = __webpack_require__(61);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\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_invariant__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache__ = __webpack_require__(81);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__);\n/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n\n\n\n\n\n\n\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__addLocaleData(localeData);\n __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__localeData__[normalizedLocale] && __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\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 createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool;\nvar number = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number;\nvar string = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string;\nvar func = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func;\nvar object = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object;\nvar oneOf = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf;\nvar shape = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape;\nvar any = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any;\nvar oneOfType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&amp;',\n '>': '&gt;',\n '<': '&lt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (false) {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && \"production\" === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (false) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (false) {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\nvar format = Object.freeze({\n formatDate: formatDate,\n formatTime: formatTime,\n formatRelative: formatRelative,\n formatNumber: formatNumber,\n formatPlural: formatPlural,\n formatMessage: formatMessage,\n formatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.DateTimeFormat),\n getNumberFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.NumberFormat),\n getMessageFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a),\n getRelativeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a),\n getPluralFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n if (false) {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"Children\"].only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\n false ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedDate);\n }\n }]);\n return FormattedDate;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedTime);\n }\n }]);\n return FormattedTime;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedRelative);\n }\n }]);\n return FormattedRelative;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedNumber);\n }\n }]);\n return FormattedNumber;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedPlural);\n }\n }]);\n return FormattedPlural;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (Object(__WEBPACK_IMPORTED_MODULE_4_react__[\"isValidElement\"])(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"createElement\"].apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\n false ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default.a);\n\n\n\n/***/ }),\n\n/***/ 695:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__mastodon_load_polyfills__ = __webpack_require__(75);\n\n\nfunction loaded() {\n var ComposeContainer = __webpack_require__(696).default;\n var React = __webpack_require__(0);\n var ReactDOM = __webpack_require__(20);\n var mountNode = document.getElementById('mastodon-compose');\n\n if (mountNode !== null) {\n var props = JSON.parse(mountNode.getAttribute('data-props'));\n ReactDOM.render(React.createElement(ComposeContainer, props), mountNode);\n }\n}\n\nfunction main() {\n var ready = __webpack_require__(89).default;\n ready(loaded);\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_0__mastodon_load_polyfills__[\"a\" /* default */])().then(main).catch(function (error) {\n console.error(error);\n});\n\n/***/ }),\n\n/***/ 696:\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 TimelineContainer; });\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__store_configureStore__ = __webpack_require__(121);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__actions_store__ = __webpack_require__(30);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__locales__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__features_standalone_compose__ = __webpack_require__(697);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__initial_state__ = __webpack_require__(11);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_9__locales__[\"getLocale\"])(),\n localeData = _getLocale.localeData,\n messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar store = Object(__WEBPACK_IMPORTED_MODULE_6__store_configureStore__[\"a\" /* default */])();\n\nif (__WEBPACK_IMPORTED_MODULE_11__initial_state__[\"d\" /* default */]) {\n store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_store__[\"b\" /* hydrateStore */])(__WEBPACK_IMPORTED_MODULE_11__initial_state__[\"d\" /* default */]));\n}\n\nvar TimelineContainer = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(TimelineContainer, _React$PureComponent);\n\n function TimelineContainer() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, TimelineContainer);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n TimelineContainer.prototype.render = function render() {\n var locale = this.props.locale;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"d\" /* IntlProvider */], {\n locale: locale,\n messages: messages\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_redux__[\"Provider\"], {\n store: store\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__features_standalone_compose__[\"a\" /* default */], {})));\n };\n\n return TimelineContainer;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 697:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", 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__compose_containers_compose_form_container__ = __webpack_require__(331);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ui_containers_notifications_container__ = __webpack_require__(242);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ui_containers_loading_bar_container__ = __webpack_require__(245);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ui_containers_modal_container__ = __webpack_require__(247);\n\n\n\n\n\n\n\n\n\n\nvar Compose = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Compose, _React$PureComponent);\n\n function Compose() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Compose);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n Compose.prototype.render = function render() {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5__compose_containers_compose_form_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__ui_containers_notifications_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__ui_containers_modal_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__ui_containers_loading_bar_container__[\"a\" /* default */], {\n className: 'loading-bar'\n }));\n };\n\n return Compose;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ })\n\n},[695]);\n\n\n// WEBPACK FOOTER //\n// share.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';\nimport { charLimit } from \"../../../initial_state\"\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 anyMedia: 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, anyMedia } = this.props;\n const disabled = this.props.is_submitting;\n const text = [this.props.spoiler_text, countableText(this.props.text)].join('');\n const disabledButton = disabled || this.props.is_uploading || length(text) > charLimit || (text.length !== 0 && text.trim().length === 0 && !anyMedia);\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 <WarningContainer />\n\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 <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 <div className='character-counter__wrapper'><CharacterCounter max={charLimit} text={text} /></div>\n </div>\n\n <div className='compose-form__publish'>\n <div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabledButton} block /></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';\nimport { isRtl } from '../../../rtl';\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 const style = {\n direction: isRtl(status.get('search_index')) ? 'rtl' : 'ltr',\n };\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' style={style} 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 if (suggestion[0] === '#') {\n inner = suggestion;\n key = suggestion;\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 aria-autocomplete='list'\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\nfunction _extends() {\n _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 return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar isIE = isBrowser ? !!document.documentElement.currentStyle : false;\nvar hiddenTextarea = isBrowser && document.createElement('textarea');\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};\nvar SIZING_STYLE = ['letter-spacing', 'line-height', 'font-family', 'font-weight', 'font-size', 'font-style', 'tab-size', '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'];\nvar computedStyleCache = {};\nfunction calculateNodeHeight(uiTextNode, uid, useCache, minRows, maxRows) {\n if (useCache === void 0) {\n useCache = false;\n }\n\n if (minRows === void 0) {\n minRows = null;\n }\n\n if (maxRows === void 0) {\n maxRows = null;\n }\n\n if (hiddenTextarea.parentNode === null) {\n document.body.appendChild(hiddenTextarea);\n } // Copy all CSS properties that have an impact on the height of the content in\n // the textbox\n\n\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; // 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 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 } // measure height of a textarea with a single row\n\n\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\n if (boxSizing === 'border-box') {\n minHeight = minHeight + paddingSize + borderSize;\n }\n\n height = Math.max(minHeight, height);\n }\n\n if (maxRows !== null) {\n maxHeight = singleRowHeight * maxRows;\n\n if (boxSizing === 'border-box') {\n maxHeight = maxHeight + paddingSize + borderSize;\n }\n\n height = Math.min(maxHeight, height);\n }\n }\n\n var rowCount = Math.floor(height / singleRowHeight);\n return {\n height: height,\n minHeight: minHeight,\n maxHeight: maxHeight,\n rowCount: rowCount\n };\n}\n\nfunction calculateNodeStyling(node, uid, useCache) {\n if (useCache === void 0) {\n useCache = false;\n }\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 var boxSizing = sizingStyle['box-sizing']; // IE (Edge has already correct behaviour) returns content width as computed width\n // so we need to add manually padding and border widths\n\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 var borderSize = parseFloat(sizingStyle['border-bottom-width']) + parseFloat(sizingStyle['border-top-width']);\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(seed) {\n if (seed === void 0) {\n seed = 0;\n }\n\n return function () {\n return ++seed;\n };\n}\n\nvar uid = autoInc();\n\n/**\n * <TextareaAutosize />\n */\nvar noop = function noop() {}; // IE11 has a problem with eval source maps, can be reproduced with:\n// eval('\"use strict\"; var onNextFrame = window.cancelAnimationFrame; onNextFrame(4);')\n// so we bind window as context in dev modes\n\n\nvar _ref = isBrowser && window.requestAnimationFrame ? process.env.NODE_ENV !== 'development' ? [window.requestAnimationFrame, window.cancelAnimationFrame] : [window.requestAnimationFrame.bind(window), window.cancelAnimationFrame.bind(window)] : [setTimeout, clearTimeout];\nvar onNextFrame = _ref[0];\nvar clearNextFrameAction = _ref[1];\n\nvar TextareaAutosize =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TextareaAutosize, _React$Component);\n\n function TextareaAutosize(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\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\n _this.props.onChange(event);\n };\n\n _this._resizeComponent = function (callback) {\n if (callback === void 0) {\n callback = noop;\n }\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 _this.rowCount = rowCount;\n\n if (_this.state.height !== height || _this.state.minHeight !== minHeight || _this.state.maxHeight !== maxHeight) {\n _this.setState({\n height: height,\n minHeight: minHeight,\n maxHeight: maxHeight\n }, callback);\n\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 _this._uid = uid();\n _this._controlled = typeof props.value === 'string';\n return _this;\n }\n\n var _proto = TextareaAutosize.prototype;\n\n _proto.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 props.style = _extends({}, props.style, {\n height: this.state.height\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 _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._resizeComponent(); // 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\n\n this._resizeListener = function () {\n if (_this2._resizeLock) {\n return;\n }\n\n _this2._resizeLock = true;\n\n _this2._resizeComponent(function () {\n return _this2._resizeLock = false;\n });\n };\n\n window.addEventListener('resize', this._resizeListener);\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps() {\n var _this3 = this;\n\n this._clearNextFrame();\n\n this._onNextFrameActionId = onNextFrame(function () {\n return _this3._resizeComponent();\n });\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (this.state.height !== prevState.height) {\n this.props.onHeightChange(this.state.height, this);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._clearNextFrame();\n\n window.removeEventListener('resize', this._resizeListener);\n purgeCache(this._uid);\n };\n\n _proto._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 marked: { id: 'compose_form.spoiler.marked', defaultMessage: 'Text is hidden behind warning' },\n unmarked: { id: 'compose_form.spoiler.unmarked', defaultMessage: 'Text is not hidden' },\n});\n\nconst mapStateToProps = (state, { intl }) => ({\n label: 'CW',\n title: intl.formatMessage(state.getIn(['compose', 'spoiler']) ? messages.marked : messages.unmarked),\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 marked: { id: 'compose_form.sensitive.marked', defaultMessage: 'Media is marked as sensitive' },\n unmarked: { id: 'compose_form.sensitive.unmarked', defaultMessage: 'Media is not marked 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(active ? messages.marked : messages.unmarked)}\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';\nimport { openModal } from '../../../actions/modal';\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 onOpenFocalPoint: id => {\n dispatch(openModal('FOCAL_POINT', { id }));\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 Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\n\nconst messages = defineMessages({\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 onOpenFocalPoint: 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 handleFocalPointClick = () => {\n this.props.onOpenFocalPoint(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 || (this.state.dirtyDescription !== '' && media.get('description')) || '';\n const focusX = media.getIn(['meta', 'focus', 'x']);\n const focusY = media.getIn(['meta', 'focus', 'y']);\n const x = ((focusX / 2) + .5) * 100;\n const y = ((focusY / -2) + .5) * 100;\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')})`, backgroundPosition: `${x}% ${y}%` }}>\n <div className={classNames('compose-form__upload__actions', { active })}>\n <button className='icon-button' onClick={this.handleUndoClick}><i className='fa fa-times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Undo' /></button>\n {media.get('type') === 'image' && <button className='icon-button' onClick={this.handleFocalPointClick}><i className='fa fa-crosshairs' /> <FormattedMessage id='upload_form.focus' defaultMessage='Crop' /></button>}\n </div>\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 APPROX_HASHTAG_RE = /(?:^|[^\\/\\)\\w])#(\\w*[a-zA-Z·]\\w*)/i;\n\nconst mapStateToProps = state => ({\n needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),\n hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])),\n directMessageWarning: state.getIn(['compose', 'privacy']) === 'direct',\n});\n\nconst WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning }) => {\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 if (hashtagWarning) {\n return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage=\"This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.\" />} />;\n }\n if (directMessageWarning) {\n return <Warning message={<FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be visible to all the mentioned users.' />} />;\n }\n\n return null;\n};\n\nWarningWrapper.propTypes = {\n needsLockWarning: PropTypes.bool,\n hashtagWarning: PropTypes.bool,\n directMessageWarning: 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 anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,\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","/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport allLocaleData from '../locale-data/index.js';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport PropTypes from 'prop-types';\nimport React, { Children, Component, createElement, isValidElement } from 'react';\nimport invariant from 'invariant';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\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 createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = PropTypes.bool;\nvar number = PropTypes.number;\nvar string = PropTypes.string;\nvar func = PropTypes.func;\nvar object = PropTypes.object;\nvar oneOf = PropTypes.oneOf;\nvar shape = PropTypes.shape;\nvar any = PropTypes.any;\nvar oneOfType = PropTypes.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&amp;',\n '>': '&gt;',\n '<': '&lt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = IntlRelativeFormat.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\n\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return React.createElement(\n Text,\n null,\n formattedDate\n );\n }\n }]);\n return FormattedDate;\n}(Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return React.createElement(\n Text,\n null,\n formattedTime\n );\n }\n }]);\n return FormattedTime;\n}(Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return React.createElement(\n Text,\n null,\n formattedRelative\n );\n }\n }]);\n return FormattedRelative;\n}(Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n updateInterval: PropTypes.number,\n initialNow: PropTypes.any,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return React.createElement(\n Text,\n null,\n formattedNumber\n );\n }\n }]);\n return FormattedNumber;\n}(Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return React.createElement(\n Text,\n null,\n formattedPlural\n );\n }\n }]);\n return FormattedPlural;\n}(Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: PropTypes.any.isRequired,\n\n other: PropTypes.node.isRequired,\n zero: PropTypes.node,\n one: PropTypes.node,\n two: PropTypes.node,\n few: PropTypes.node,\n many: PropTypes.node,\n\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return React.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(allLocaleData);\n\nexport { addLocaleData, intlShape, injectIntl, defineMessages, IntlProvider, FormattedDate, FormattedTime, FormattedRelative, FormattedNumber, FormattedPlural, FormattedMessage, FormattedHTMLMessage };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-intl/lib/index.es.js","import loadPolyfills from '../mastodon/load_polyfills';\n\nfunction loaded() {\n const ComposeContainer = require('../mastodon/containers/compose_container').default;\n const React = require('react');\n const ReactDOM = require('react-dom');\n const mountNode = document.getElementById('mastodon-compose');\n\n if (mountNode !== null) {\n const props = JSON.parse(mountNode.getAttribute('data-props'));\n ReactDOM.render(<ComposeContainer {...props} />, mountNode);\n }\n}\n\nfunction main() {\n const ready = require('../mastodon/ready').default;\n ready(loaded);\n}\n\nloadPolyfills().then(main).catch(error => {\n console.error(error);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/packs/share.js","import React from 'react';\nimport { Provider } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport configureStore from '../store/configureStore';\nimport { hydrateStore } from '../actions/store';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport Compose from '../features/standalone/compose';\nimport initialState from '../initial_state';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nconst store = configureStore();\n\nif (initialState) {\n store.dispatch(hydrateStore(initialState));\n}\n\nexport default class TimelineContainer extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n };\n\n render () {\n const { locale } = this.props;\n\n return (\n <IntlProvider locale={locale} messages={messages}>\n <Provider store={store}>\n <Compose />\n </Provider>\n </IntlProvider>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/compose_container.js","import React from 'react';\nimport ComposeFormContainer from '../../compose/containers/compose_form_container';\nimport NotificationsContainer from '../../ui/containers/notifications_container';\nimport LoadingBarContainer from '../../ui/containers/loading_bar_container';\nimport ModalContainer from '../../ui/containers/modal_container';\n\nexport default class Compose extends React.PureComponent {\n\n render () {\n return (\n <div>\n <ComposeFormContainer />\n <NotificationsContainer />\n <ModalContainer />\n <LoadingBarContainer className='loading-bar' />\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/standalone/compose/index.js"],"sourceRoot":""}