{"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/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/containers/compose_form_container.js","webpack:///./app/javascript/packs/share.js","webpack:///./app/javascript/mastodon/containers/compose_container.js","webpack:///./app/javascript/mastodon/features/standalone/compose/index.js","webpack:///./node_modules/react-intl/lib/index.es.js"],"names":["webpackJsonp","293","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__containers_spoiler_button_container__","__WEBPACK_IMPORTED_MODULE_14__containers_privacy_dropdown_container__","__WEBPACK_IMPORTED_MODULE_15__containers_sensitive_button_container__","__WEBPACK_IMPORTED_MODULE_16__containers_emoji_picker_dropdown_container__","__WEBPACK_IMPORTED_MODULE_17__containers_upload_form_container__","__WEBPACK_IMPORTED_MODULE_18__containers_warning_container__","__WEBPACK_IMPORTED_MODULE_19__is_mobile__","__WEBPACK_IMPORTED_MODULE_20_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_20_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_21_stringz__","__WEBPACK_IMPORTED_MODULE_22__initial_state__","allowedAroundShortCode","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","_this$props","is_submitting","is_uploading","anyMedia","fulltext","spoiler_text","join","trim","onSubmit","onSuggestionsClearRequested","onClearSuggestions","onSuggestionsFetchRequested","token","onFetchSuggestions","onSuggestionSelected","tokenStart","handleChangeSpoilerText","onChangeSpoilerText","setAutosuggestTextarea","c","setSpoilerText","spoilerText","handleEmojiPick","data","position","selectionStart","needsSpace","custom","includes","onPickEmoji","prototype","componentDidUpdate","prevProps","focusDate","selectionEnd","preselectDate","search","caretPosition","setSelectionRange","focus","spoiler","render","_props","intl","onPaste","showSearch","disabled","disabledButton","publishText","privacy","className","formatMessage","style","display","a","createElement","onKeyDown","type","ref","suggestions","autoFocus","window","innerWidth","max","onClick","block","propTypes","object","isRequired","string","suggestion_token","list","bool","instanceOf","Date","number","func","defaultProps","294","CharacterCounter","__WEBPACK_IMPORTED_MODULE_5_stringz__","_React$PureComponent","checkRemainingText","diff","PureComponent","295","__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","296","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","inverted","href","account","size","dangerouslySetInnerHTML","contextTypes","map","297","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","word","left","slice","right","indexOf","toLowerCase","suggestionsHidden","selectedSuggestion","lastToken","_textAtCursorMatchesT","setState","_this$state","which","isComposing","key","document","querySelector","parentElement","Math","min","stopPropagation","defaultPrevented","onBlur","onSuggestionClick","suggestion","currentTarget","getAttribute","setTextarea","clipboardData","files","renderSuggestion","i","inner","emoji","role","tabIndex","data-index","selected","onMouseDown","componentWillReceiveProps","nextProps","onKeyUp","inputRef","aria-autocomplete","isEmpty","298","__WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__","getAccount","_ref","299","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","300","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","imageUrl","mapping","native","replace","filename","src","alt","colons","301","_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","302","__WEBPACK_IMPORTED_MODULE_1__components_upload_button__","__WEBPACK_IMPORTED_MODULE_2__actions_compose__","mapStateToProps","some","m","resetFileKey","onSelectFile","303","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","multiple","accept","toArray","listOf","304","__WEBPACK_IMPORTED_MODULE_1__components_text_icon_button__","__WEBPACK_IMPORTED_MODULE_3_react_intl__","marked","unmarked","label","active","ariaControls","305","TextIconButton","aria-label","aria-expanded","aria-controls","306","__WEBPACK_IMPORTED_MODULE_1__components_privacy_dropdown__","__WEBPACK_IMPORTED_MODULE_3__actions_modal__","__WEBPACK_IMPORTED_MODULE_4__is_mobile__","isModalOpen","modalType","isUserTouching","onModalOpen","onModalClose","307","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","mounted","handleDocumentClick","contains","onClose","items","index","findIndex","item","element","childNodes","firstChild","lastChild","setFocusRef","focusedItem","defaultStyle","opacity","scaleX","scaleY","damping","stiffness","transform","aria-selected","meta","_React$PureComponent2","_ret2","_len2","_key2","open","placement","handleToggle","_ref2","actions","options","option","handleModalActionClick","_target$getBoundingCl","getBoundingClientRect","innerHeight","handleClose","componentWillMount","_props2","_state","valueOption","find","expanded","show","308","__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","309","__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","uniqueDefaults","filter","getCustomEmojis","aShort","bShort","custom_emojis","skinTone","frequentlyUsedEmojis","onSkinTone","310","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","pulse-loading","311","__WEBPACK_IMPORTED_MODULE_1__components_upload_form__","mediaIds","312","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__","313","__WEBPACK_IMPORTED_MODULE_1__components_upload_progress__","progress","314","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","315","__WEBPACK_IMPORTED_MODULE_1__components_upload__","media","onUndo","onDescriptionChange","description","onOpenFocalPoint","316","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","317","__WEBPACK_IMPORTED_MODULE_1_react__","__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","318","Warning","319","__WEBPACK_IMPORTED_MODULE_1__components_compose_form__","accountId","checked","683","loaded","ComposeContainer","default","React","ReactDOM","mountNode","getElementById","JSON","parse","main","ready","defineProperty","__WEBPACK_IMPORTED_MODULE_0__mastodon_load_polyfills__","error","console","684","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","localeData","store","locale","685","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__","7","addLocaleData","undefined","isArray","__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","match","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","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","children","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"],"mappings":"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","file":"share.js","sourcesContent":["webpackJsonp([35],{\n\n/***/ 293:\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__(294);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_button__ = __webpack_require__(100);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(14);\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__(295);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_autosuggest_textarea__ = __webpack_require__(297);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__containers_upload_button_container__ = __webpack_require__(302);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_intl__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__containers_spoiler_button_container__ = __webpack_require__(304);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__containers_privacy_dropdown_container__ = __webpack_require__(306);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__containers_sensitive_button_container__ = __webpack_require__(308);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__containers_emoji_picker_dropdown_container__ = __webpack_require__(309);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__containers_upload_form_container__ = __webpack_require__(311);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18__containers_warning_container__ = __webpack_require__(317);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__is_mobile__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_react_immutable_pure_component__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_20_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_stringz__ = __webpack_require__(99);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21_stringz___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_21_stringz__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22__initial_state__ = __webpack_require__(13);\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\nvar allowedAroundShortCode = '><\\x85 \\xA0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\t\\n\\x0B\\f\\r';\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 // Submit disabled:\n var _this$props = _this.props,\n is_submitting = _this$props.is_submitting,\n is_uploading = _this$props.is_uploading,\n anyMedia = _this$props.anyMedia;\n\n var fulltext = [_this.props.spoiler_text, _this.props.text].join('');\n\n if (is_submitting || is_uploading || Object(__WEBPACK_IMPORTED_MODULE_21_stringz__[\"length\"])(fulltext) > __WEBPACK_IMPORTED_MODULE_22__initial_state__[\"h\" /* maxChars */] || fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia) {\n return;\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.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.setSpoilerText = function (c) {\n _this.spoilerText = c;\n }, _this.handleEmojiPick = function (data) {\n var text = _this.props.text;\n\n var position = _this.autosuggestTextarea.textarea.selectionStart;\n var needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]);\n\n _this.props.onPickEmoji(position, data, needsSpace);\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\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 (this.props.focusDate !== prevProps.focusDate) {\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.props.caretPosition === 'number') {\n selectionStart = this.props.caretPosition;\n selectionEnd = this.props.caretPosition;\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 } else if (this.props.spoiler !== prevProps.spoiler) {\n if (this.props.spoiler) {\n this.spoilerText.focus();\n } else {\n this.autosuggestTextarea.textarea.focus();\n }\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, this.props.text].join('');\n var disabledButton = disabled || this.props.is_uploading || Object(__WEBPACK_IMPORTED_MODULE_21_stringz__[\"length\"])(text) > __WEBPACK_IMPORTED_MODULE_22__initial_state__[\"h\" /* maxChars */] || 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_18__containers_warning_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__containers_reply_indicator_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'spoiler-input ' + (this.props.spoiler ? 'spoiler-input--visible' : '')\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_4_react___default.a.createElement('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', ref: this.setSpoilerText }))), __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_19__is_mobile__[\"b\" /* isMobile */])(window.innerWidth)\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_16__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_17__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_14__containers_privacy_dropdown_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_15__containers_sensitive_button_container__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__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_22__initial_state__[\"h\" /* maxChars */],\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_20_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 caretPosition: __WEBPACK_IMPORTED_MODULE_8_prop_types___default.a.number,\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/***/ 294:\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__(99);\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/***/ 295:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__actions_compose__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(67);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_reply_indicator__ = __webpack_require__(296);\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/***/ 296:\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__(14);\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__(54);\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__(53);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_react_intl__ = __webpack_require__(7);\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__(98);\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 inverted: true\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/***/ 297:\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__(29);\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__(298);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__autosuggest_emoji__ = __webpack_require__(300);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__ = __webpack_require__(14);\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__(98);\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__(301);\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 if (e.which === 229 || e.isComposing) {\n // Ignore key events during text composition\n // e.key may be a name of the physical key even in this case (e.x. Safari / Chrome on Mac)\n return;\n }\n\n switch (e.key) {\n case 'Escape':\n if (suggestions.size === 0 || suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n } else {\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.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 onKeyUp = _props.onKeyUp,\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: 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/***/ 298:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_autosuggest_account__ = __webpack_require__(299);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__selectors__ = __webpack_require__(67);\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/***/ 299:\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__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_display_name__ = __webpack_require__(53);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_immutable_proptypes__ = __webpack_require__(14);\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/***/ 300:\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__(161);\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__(35)))\n\n/***/ }),\n\n/***/ 301:\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/***/ 302:\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__(303);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(17);\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/***/ 303:\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__(7);\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__(14);\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/***/ 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__components_text_icon_button__ = __webpack_require__(305);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(17);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_react_intl__ = __webpack_require__(7);\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/***/ 305:\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/***/ 306:\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__(307);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(17);\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__(43);\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/***/ 307:\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__(7);\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__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ui_util_optional_motion__ = __webpack_require__(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__(45);\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.state = {\n mounted: false\n }, _this.handleDocumentClick = function (e) {\n if (_this.node && !_this.node.contains(e.target)) {\n _this.props.onClose();\n }\n }, _this.handleKeyDown = function (e) {\n var items = _this.props.items;\n\n var value = e.currentTarget.getAttribute('data-index');\n var index = items.findIndex(function (item) {\n return item.value === value;\n });\n var element = void 0;\n\n switch (e.key) {\n case 'Escape':\n _this.props.onClose();\n break;\n case 'Enter':\n _this.handleClick(e);\n break;\n case 'ArrowDown':\n element = _this.node.childNodes[index + 1];\n if (element) {\n element.focus();\n _this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'ArrowUp':\n element = _this.node.childNodes[index - 1];\n if (element) {\n element.focus();\n _this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'Home':\n element = _this.node.firstChild;\n if (element) {\n element.focus();\n _this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'End':\n element = _this.node.lastChild;\n if (element) {\n element.focus();\n _this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n }\n }, _this.handleClick = function (e) {\n var value = e.currentTarget.getAttribute('data-index');\n\n e.preventDefault();\n\n _this.props.onClose();\n _this.props.onChange(value);\n }, _this.setRef = function (c) {\n _this.node = c;\n }, _this.setFocusRef = function (c) {\n _this.focusedItem = 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 if (this.focusedItem) this.focusedItem.focus();\n this.setState({ mounted: true });\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 mounted = this.state.mounted;\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 (\n // It should not be transformed when mounting because the resulting\n // size will be used to determine the coordinate of the menu by\n // react-overlays\n __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: 'privacy-dropdown__dropdown', style: Object.assign({}, style, { opacity: opacity, transform: mounted ? 'scale(' + scaleX + ', ' + scaleY + ')' : null }), role: 'listbox', ref: _this2.setRef },\n items.map(function (item) {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { role: 'option', tabIndex: '0', key: item.value, 'data-index': item.value, onKeyDown: _this2.handleKeyDown, onClick: _this2.handleClick, className: __WEBPACK_IMPORTED_MODULE_11_classnames___default()('privacy-dropdown__option', { active: item.value === value }), 'aria-selected': item.value === value, ref: item.value === value ? _this2.setFocusRef : null },\n __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 })),\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 };\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 placement: null\n }, _this3.handleToggle = function (_ref2) {\n var target = _ref2.target;\n\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 var _target$getBoundingCl = target.getBoundingClientRect(),\n top = _target$getBoundingCl.top;\n\n _this3.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\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 '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 _state = this.state,\n open = _state.open,\n placement = _state.placement;\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: placement,\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/***/ 308:\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__(17);\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__(7);\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/***/ 309:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_emoji_picker_dropdown__ = __webpack_require__(310);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_settings__ = __webpack_require__(56);\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__(102);\n\n\n\n\n\n\n\nvar perLine = 8;\nvar lines = 2;\n\nvar DEFAULTS = ['+1', 'grinning', 'kissing_heart', 'heart_eyes', 'laughing', 'stuck_out_tongue_winking_eye', 'sweat_smile', 'joy', 'yum', 'disappointed', 'thinking_face', 'weary', 'sob', 'sunglasses', 'heart', 'ok_hand'];\n\nvar getFrequentlyUsedEmojis = Object(__WEBPACK_IMPORTED_MODULE_3_reselect__[\"createSelector\"])([function (state) {\n return state.getIn(['settings', 'frequentlyUsedEmojis'], Object(__WEBPACK_IMPORTED_MODULE_4_immutable__[\"Map\"])());\n}], function (emojiCounters) {\n var emojis = emojiCounters.keySeq().sort(function (a, b) {\n return emojiCounters.get(a) - emojiCounters.get(b);\n }).reverse().slice(0, perLine * lines).toArray();\n\n if (emojis.length < DEFAULTS.length) {\n var uniqueDefaults = DEFAULTS.filter(function (emoji) {\n return !emojis.includes(emoji);\n });\n emojis = emojis.concat(uniqueDefaults.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/***/ 310:\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__(7);\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__(97);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_overlays_lib_Overlay__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_detect_passive_events__ = __webpack_require__(45);\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__(73);\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_10.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 placement: null\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 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 (_ref) {\n var target = _ref.target;\n\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__[\"i\" /* 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\n var _target$getBoundingCl = target.getBoundingClientRect(),\n top = _target$getBoundingCl.top;\n\n _this4.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\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(e);\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 placement = _state.placement;\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: placement,\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__(35)))\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_form__ = __webpack_require__(312);\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/***/ 312:\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__(14);\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__(313);\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__(315);\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/***/ 313:\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__(314);\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/***/ 314:\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__(7);\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/***/ 315:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__components_upload__ = __webpack_require__(316);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(17);\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/***/ 316:\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__(14);\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__(7);\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: 'Delete'\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/***/ 317:\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__(318);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react_intl__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__initial_state__ = __webpack_require__(13);\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__[\"i\" /* 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: '/user-settings'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_4_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'compose_form.lock_disclaimer.lock',\n defaultMessage: 'locked'\n })) }\n })\n });\n }\n\n 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\n if (directMessageWarning) {\n var message = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {}, void 0, __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 sent to all the mentioned users.'\n }), ' ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: '/terms',\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_4_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'compose_form.direct_message_warning_learn_more',\n defaultMessage: 'Learn more'\n })));\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_3__components_warning__[\"a\" /* default */], {\n message: message\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/***/ 318:\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/***/ 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_compose_form__ = __webpack_require__(293);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__actions_compose__ = __webpack_require__(17);\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 caretPosition: state.getIn(['compose', 'caretPosition']),\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, needsSpace) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_2__actions_compose__[\"Q\" /* insertEmojiCompose */])(position, data, needsSpace));\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/***/ 683:\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__(77);\n\n\nfunction loaded() {\n var ComposeContainer = __webpack_require__(684).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/***/ 684:\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__(126);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__actions_store__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__locales__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__features_standalone_compose__ = __webpack_require__(685);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__initial_state__ = __webpack_require__(13);\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__[\"c\" /* default */]) {\n store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_store__[\"b\" /* hydrateStore */])(__WEBPACK_IMPORTED_MODULE_11__initial_state__[\"c\" /* 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/***/ 685:\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__(319);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__ui_containers_notifications_container__ = __webpack_require__(247);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__ui_containers_loading_bar_container__ = __webpack_require__(250);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__ui_containers_modal_container__ = __webpack_require__(150);\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/***/ 7:\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__(107);\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__(59);\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__(76);\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__(18);\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__(108);\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 '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\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},[683]);\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 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 { maxChars } from '../../../initial_state';\n\nconst allowedAroundShortCode = '><\\u0085\\u0020\\u00a0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\u0009\\u000a\\u000b\\u000c\\u000d';\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 caretPosition: PropTypes.number,\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 // Submit disabled:\n const { is_submitting, is_uploading, anyMedia } = this.props;\n const fulltext = [this.props.spoiler_text, this.props.text].join('');\n\n if (is_submitting || is_uploading || length(fulltext) > maxChars || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) {\n return;\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.props.onSuggestionSelected(tokenStart, token, value);\n }\n\n handleChangeSpoilerText = (e) => {\n this.props.onChangeSpoilerText(e.target.value);\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 (this.props.focusDate !== prevProps.focusDate) {\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.props.caretPosition === 'number') {\n selectionStart = this.props.caretPosition;\n selectionEnd = this.props.caretPosition;\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 } else if (this.props.spoiler !== prevProps.spoiler) {\n if (this.props.spoiler) {\n this.spoilerText.focus();\n } else {\n this.autosuggestTextarea.textarea.focus();\n }\n }\n }\n\n setAutosuggestTextarea = (c) => {\n this.autosuggestTextarea = c;\n }\n\n setSpoilerText = (c) => {\n this.spoilerText = c;\n }\n\n handleEmojiPick = (data) => {\n const { text } = this.props;\n const position = this.autosuggestTextarea.textarea.selectionStart;\n const needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]);\n\n this.props.onPickEmoji(position, data, needsSpace);\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, this.props.text].join('');\n const disabledButton = disabled || this.props.is_uploading || length(text) > maxChars || (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 <ReplyIndicatorContainer />\n\n <div className={`spoiler-input ${this.props.spoiler ? 'spoiler-input--visible' : ''}`}>\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' ref={this.setSpoilerText} />\n </label>\n </div>\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={maxChars} 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} inverted /></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 if (e.which === 229 || e.isComposing) {\n // Ignore key events during text composition\n // e.key may be a name of the physical key even in this case (e.x. Safari / Chrome on Mac)\n return;\n }\n\n switch(e.key) {\n case 'Escape':\n if (suggestions.size === 0 || suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n } else {\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 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, onKeyUp, 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={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 { 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 state = {\n mounted: false,\n };\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n handleKeyDown = e => {\n const { items } = this.props;\n const value = e.currentTarget.getAttribute('data-index');\n const index = items.findIndex(item => {\n return (item.value === value);\n });\n let element;\n\n switch(e.key) {\n case 'Escape':\n this.props.onClose();\n break;\n case 'Enter':\n this.handleClick(e);\n break;\n case 'ArrowDown':\n element = this.node.childNodes[index + 1];\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'ArrowUp':\n element = this.node.childNodes[index - 1];\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'Home':\n element = this.node.firstChild;\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'End':\n element = this.node.lastChild;\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n }\n }\n\n handleClick = e => {\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 componentDidMount () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n if (this.focusedItem) this.focusedItem.focus();\n this.setState({ mounted: true });\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 setFocusRef = c => {\n this.focusedItem = c;\n }\n\n render () {\n const { mounted } = this.state;\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 // It should not be transformed when mounting because the resulting\n // size will be used to determine the coordinate of the menu by\n // react-overlays\n <div className='privacy-dropdown__dropdown' style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} role='listbox' ref={this.setRef}>\n {items.map(item => (\n <div role='option' tabIndex='0' key={item.value} data-index={item.value} onKeyDown={this.handleKeyDown} onClick={this.handleClick} className={classNames('privacy-dropdown__option', { active: item.value === value })} aria-selected={item.value === value} ref={item.value === value ? this.setFocusRef : null}>\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 placement: null,\n };\n\n handleToggle = ({ target }) => {\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 const { top } = target.getBoundingClientRect();\n this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\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 '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, placement } = 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={placement} 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 let uniqueDefaults = DEFAULTS.filter(emoji => !emojis.includes(emoji));\n emojis = emojis.concat(uniqueDefaults.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_10.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 frequentlyUsedEmojis: [],\n };\n\n state = {\n modifierOpen: false,\n placement: null,\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 = ({ target }) => {\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 const { top } = target.getBoundingClientRect();\n this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\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(e);\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, placement } = 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={placement} 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='Delete' /></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='/user-settings'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;\n }\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\n if (directMessageWarning) {\n const message = (\n <span>\n <FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be sent to all the mentioned users.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>\n </span>\n );\n\n return <Warning message={message} />;\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 { 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 caretPosition: state.getIn(['compose', 'caretPosition']),\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, needsSpace) {\n dispatch(insertEmojiCompose(position, data, needsSpace));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/compose/containers/compose_form_container.js","import 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","/*\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 '&': '&',\n '>': '>',\n '<': '<',\n '\"': '"',\n \"'\": '''\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"],"sourceRoot":""}