forked from mirrors/akkoma
1 line
No EOL
203 KiB
Text
1 line
No EOL
203 KiB
Text
{"version":3,"sources":["webpack:///features/status-1f1807fdb4d1fd6daf40.js","webpack:///./app/javascript/mastodon/features/ui/components/column_header.js","webpack:///./app/javascript/mastodon/components/media_gallery.js","webpack:///./app/javascript/mastodon/features/ui/components/column.js","webpack:///./app/javascript/mastodon/containers/status_container.js","webpack:///./app/javascript/mastodon/features/status/components/card.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./app/javascript/mastodon/features/status/index.js","webpack:///./app/javascript/mastodon/components/column_back_button.js","webpack:///./app/javascript/mastodon/components/missing_indicator.js","webpack:///./app/javascript/mastodon/features/status/components/detailed_status.js","webpack:///./app/javascript/mastodon/components/attachment_list.js","webpack:///./app/javascript/mastodon/features/status/containers/card_container.js","webpack:///./app/javascript/mastodon/features/status/components/action_bar.js"],"names":["webpackJsonp","150","module","__webpack_exports__","__webpack_require__","d","ColumnHeader","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","_React$PureComponent","_temp","_this","_ret","this","_len","arguments","length","args","Array","_key","call","apply","concat","handleClick","props","onClick","prototype","render","_props","type","active","columnHeaderId","icon","className","role","tabIndex","id","a","PureComponent","159","Object","defineProperty","value","MediaGallery","_class","_temp2","_class2","_class3","_temp4","__WEBPACK_IMPORTED_MODULE_5_prop_types__","__WEBPACK_IMPORTED_MODULE_5_prop_types___default","__WEBPACK_IMPORTED_MODULE_6_immutable__","__WEBPACK_IMPORTED_MODULE_7__icon_button__","__WEBPACK_IMPORTED_MODULE_8_react_intl__","__WEBPACK_IMPORTED_MODULE_9__is_mobile__","__WEBPACK_IMPORTED_MODULE_10_classnames__","__WEBPACK_IMPORTED_MODULE_10_classnames___default","__WEBPACK_IMPORTED_MODULE_11__initial_state__","messages","toggle_visible","defaultMessage","Item","handleMouseEnter","e","hoverToPlay","target","play","handleMouseLeave","pause","currentTime","_this$props","index","context","router","button","preventDefault","stopPropagation","attachment","get","size","standalone","width","height","top","left","bottom","right","thumbnail","previewUrl","previewWidth","getIn","originalUrl","originalWidth","hasSize","srcSet","sizes","href","src","alt","title","autoPlay","autoplay","aria-label","onMouseEnter","onMouseLeave","loop","muted","style","contextTypes","object","defaultProps","_React$PureComponent2","_temp3","_this2","_ret2","_len2","_key2","state","visible","sensitive","handleOpen","setState","onOpenMedia","media","handleRef","node","isStandaloneEligible","offsetWidth","componentWillReceiveProps","nextProps","_props2","_this3","_props3","intl","_state","children","take","map","i","warning","createElement","ref","spoiler-button--visible","formatMessage","overlay","259","Column","__WEBPACK_IMPORTED_MODULE_4_lodash_debounce__","__WEBPACK_IMPORTED_MODULE_4_lodash_debounce___default","__WEBPACK_IMPORTED_MODULE_5_react__","__WEBPACK_IMPORTED_MODULE_5_react___default","__WEBPACK_IMPORTED_MODULE_6__column_header__","__WEBPACK_IMPORTED_MODULE_7__scroll__","__WEBPACK_IMPORTED_MODULE_8__is_mobile__","handleHeaderClick","scrollable","querySelector","_interruptScrollAnimation","handleScroll","setRef","c","scrollTop","heading","hideHeadingOnMobile","showHeading","window","innerWidth","replace","header","aria-labelledby","onScroll","261","__WEBPACK_IMPORTED_MODULE_1_react__","__WEBPACK_IMPORTED_MODULE_2_react_redux__","__WEBPACK_IMPORTED_MODULE_3__components_status__","__WEBPACK_IMPORTED_MODULE_4__selectors__","__WEBPACK_IMPORTED_MODULE_5__actions_compose__","__WEBPACK_IMPORTED_MODULE_6__actions_interactions__","__WEBPACK_IMPORTED_MODULE_7__actions_accounts__","__WEBPACK_IMPORTED_MODULE_8__actions_statuses__","__WEBPACK_IMPORTED_MODULE_9__actions_reports__","__WEBPACK_IMPORTED_MODULE_10__actions_modal__","__WEBPACK_IMPORTED_MODULE_11_react_intl__","__WEBPACK_IMPORTED_MODULE_12__initial_state__","deleteConfirm","deleteMessage","blockConfirm","muteConfirm","makeMapStateToProps","getStatus","status","mapDispatchToProps","dispatch","_ref","onReply","onModalReblog","onReblog","shiftKey","onFavourite","onPin","onEmbed","url","onDelete","message","confirm","onConfirm","onMention","account","onOpenVideo","time","onBlock","values","name","onReport","onMute","onMuteConversation","316","Card","__WEBPACK_IMPORTED_MODULE_5_punycode__","__WEBPACK_IMPORTED_MODULE_5_punycode___default","__WEBPACK_IMPORTED_MODULE_6_classnames__","__WEBPACK_IMPORTED_MODULE_6_classnames___default","decodeIDNA","domain","split","part","indexOf","decode","slice","join","getHostname","parser","document","hostname","renderLink","card","maxDescription","image","provider","horizontal","rel","substring","renderPhoto","renderVideo","content","__html","ratio","dangerouslySetInnerHTML","317","exports","global","__WEBPACK_AMD_DEFINE_RESULT__","root","error","RangeError","errors","array","fn","result","mapDomain","string","parts","regexSeparators","ucs2decode","extra","output","counter","charCodeAt","push","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","k","floor","damp","baseMinusTMin","tMax","skew","input","out","basic","j","oldi","w","t","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","splice","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","test","toLowerCase","toASCII","regexNonASCII","freeGlobal","nodeType","punycode","overflow","not-basic","invalid-input","Math","String","fromCharCode","version","ucs2","undefined","758","Status","_dec","__WEBPACK_IMPORTED_MODULE_5_react_redux__","__WEBPACK_IMPORTED_MODULE_6_prop_types__","__WEBPACK_IMPORTED_MODULE_6_prop_types___default","__WEBPACK_IMPORTED_MODULE_7_classnames__","__WEBPACK_IMPORTED_MODULE_7_classnames___default","__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_9__actions_statuses__","__WEBPACK_IMPORTED_MODULE_10__components_missing_indicator__","__WEBPACK_IMPORTED_MODULE_11__components_detailed_status__","__WEBPACK_IMPORTED_MODULE_12__components_action_bar__","__WEBPACK_IMPORTED_MODULE_13__ui_components_column__","__WEBPACK_IMPORTED_MODULE_14__actions_interactions__","__WEBPACK_IMPORTED_MODULE_15__actions_compose__","__WEBPACK_IMPORTED_MODULE_16__actions_reports__","__WEBPACK_IMPORTED_MODULE_17__selectors__","__WEBPACK_IMPORTED_MODULE_18_react_router_scroll_4__","__WEBPACK_IMPORTED_MODULE_19__components_column_back_button__","__WEBPACK_IMPORTED_MODULE_20__containers_status_container__","__WEBPACK_IMPORTED_MODULE_21__actions_modal__","__WEBPACK_IMPORTED_MODULE_22_react_intl__","__WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_24_react_hotkeys__","__WEBPACK_IMPORTED_MODULE_25__initial_state__","__WEBPACK_IMPORTED_MODULE_26__features_ui_util_fullscreen__","params","statusId","ancestorsIds","descendantsIds","_ImmutablePureCompone","fullscreen","handleFavouriteClick","handlePin","handleReplyClick","history","handleModalReblog","handleReblogClick","handleDeleteClick","handleMentionClick","handleOpenMedia","handleOpenVideo","handleReport","handleEmbed","handleHotkeyMoveUp","handleMoveUp","handleHotkeyMoveDown","handleMoveDown","handleHotkeyReply","handleHotkeyFavourite","handleHotkeyBoost","handleHotkeyMention","handleHotkeyOpenProfile","_this$props2","_selectChild","_this$props3","onFullScreenChange","componentWillMount","componentDidMount","_scrolledIntoView","element","querySelectorAll","focus","renderChildren","list","onMoveUp","onMoveDown","componentDidUpdate","scrollIntoView","componentWillUnmount","ancestors","descendants","handlers","moveUp","moveDown","reply","favourite","boost","mention","openProfile","scrollKey","propTypes","isRequired","func","779","ColumnBackButton","__WEBPACK_IMPORTED_MODULE_5_react_intl__","goBack","780","__WEBPACK_IMPORTED_MODULE_2_react_intl__","MissingIndicator","892","DetailedStatus","__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_7__components_avatar__","__WEBPACK_IMPORTED_MODULE_8__components_display_name__","__WEBPACK_IMPORTED_MODULE_9__components_status_content__","__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__","__WEBPACK_IMPORTED_MODULE_11__components_attachment_list__","__WEBPACK_IMPORTED_MODULE_12_react_router_dom__","__WEBPACK_IMPORTED_MODULE_13_react_intl__","__WEBPACK_IMPORTED_MODULE_14__containers_card_container__","__WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component___default","__WEBPACK_IMPORTED_MODULE_16__video__","handleAccountClick","startTime","applicationLink","reblogLink","reblogIcon","some","item","video","preview","to","Date","hour12","year","month","day","hour","minute","893","AttachmentList","__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__","__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default","__WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component__","__WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component___default","filename","pop","894","__WEBPACK_IMPORTED_MODULE_0_react_redux__","__WEBPACK_IMPORTED_MODULE_1__components_card__","mapStateToProps","895","ActionBar","__WEBPACK_IMPORTED_MODULE_6__components_icon_button__","__WEBPACK_IMPORTED_MODULE_7__containers_dropdown_menu_container__","__WEBPACK_IMPORTED_MODULE_9__initial_state__","delete","reblog","cannot_reblog","report","share","pin","unpin","embed","handlePinClick","handleShare","navigator","text","publicStatus","includes","menu","action","shareButton","reblog_disabled","disabled","animate","activeStyle","color","items","direction","ariaLabel"],"mappings":"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","file":"features/status-1f1807fdb4d1fd6daf40.js","sourcesContent":["webpackJsonp([13,26],{\n\n/***/ 150:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColumnHeader; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n\n\n\n\n\n\nvar ColumnHeader = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ColumnHeader, _React$PureComponent);\n\n function ColumnHeader() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ColumnHeader);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleClick = function () {\n _this.props.onClick();\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ColumnHeader.prototype.render = function render() {\n var _props = this.props,\n type = _props.type,\n active = _props.active,\n columnHeaderId = _props.columnHeaderId;\n\n\n var icon = '';\n\n if (this.props.icon) {\n icon = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-fw fa-' + this.props.icon + ' column-header__icon'\n });\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n role: 'heading',\n tabIndex: '0',\n className: 'column-header ' + (active ? 'active' : ''),\n onClick: this.handleClick,\n id: columnHeaderId || null\n }, void 0, icon, type);\n };\n\n return ColumnHeader;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 159:\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 MediaGallery; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__is_mobile__ = __webpack_require__(33);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_10_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__initial_state__ = __webpack_require__(18);\n\n\n\n\n\nvar _class, _temp2, _class2, _class3, _temp4;\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"f\" /* defineMessages */])({\n toggle_visible: {\n 'id': 'media_gallery.toggle_visible',\n 'defaultMessage': 'Toggle visibility'\n }\n});\n\nvar Item = (_temp2 = _class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Item, _React$PureComponent);\n\n function Item() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Item);\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.handleMouseEnter = function (e) {\n if (_this.hoverToPlay()) {\n e.target.play();\n }\n }, _this.handleMouseLeave = function (e) {\n if (_this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }, _this.handleClick = function (e) {\n var _this$props = _this.props,\n index = _this$props.index,\n onClick = _this$props.onClick;\n\n\n if (_this.context.router && e.button === 0) {\n e.preventDefault();\n onClick(index);\n }\n\n e.stopPropagation();\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Item.prototype.hoverToPlay = function hoverToPlay() {\n var attachment = this.props.attachment;\n\n return !__WEBPACK_IMPORTED_MODULE_11__initial_state__[\"a\" /* autoPlayGif */] && attachment.get('type') === 'gifv';\n };\n\n Item.prototype.render = function render() {\n var _props = this.props,\n attachment = _props.attachment,\n index = _props.index,\n size = _props.size,\n standalone = _props.standalone;\n\n\n var width = 50;\n var height = 100;\n var top = 'auto';\n var left = 'auto';\n var bottom = 'auto';\n var right = 'auto';\n\n if (size === 1) {\n width = 100;\n }\n\n if (size === 4 || size === 3 && index > 0) {\n height = 50;\n }\n\n if (size === 2) {\n if (index === 0) {\n right = '2px';\n } else {\n left = '2px';\n }\n } else if (size === 3) {\n if (index === 0) {\n right = '2px';\n } else if (index > 0) {\n left = '2px';\n }\n\n if (index === 1) {\n bottom = '2px';\n } else if (index > 1) {\n top = '2px';\n }\n } else if (size === 4) {\n if (index === 0 || index === 2) {\n right = '2px';\n }\n\n if (index === 1 || index === 3) {\n left = '2px';\n }\n\n if (index < 2) {\n bottom = '2px';\n } else {\n top = '2px';\n }\n }\n\n var thumbnail = '';\n\n if (attachment.get('type') === 'image') {\n var previewUrl = attachment.get('preview_url');\n var previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n var originalUrl = attachment.get('url');\n var originalWidth = attachment.getIn(['meta', 'original', 'width']);\n\n var hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n var srcSet = hasSize ? originalUrl + ' ' + originalWidth + 'w, ' + previewUrl + ' ' + previewWidth + 'w' : null;\n var sizes = hasSize ? '(min-width: 1025px) ' + 320 * (width / 100) + 'px, ' + width + 'vw' : null;\n\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'media-gallery__item-thumbnail',\n href: attachment.get('remote_url') || originalUrl,\n onClick: this.handleClick,\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n src: previewUrl,\n srcSet: srcSet,\n sizes: sizes,\n alt: attachment.get('description'),\n title: attachment.get('description')\n }));\n } else if (attachment.get('type') === 'gifv') {\n var autoPlay = !Object(__WEBPACK_IMPORTED_MODULE_9__is_mobile__[\"a\" /* isIOS */])() && __WEBPACK_IMPORTED_MODULE_11__initial_state__[\"a\" /* autoPlayGif */];\n\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_10_classnames___default()('media-gallery__gifv', { autoplay: autoPlay })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('video', {\n className: 'media-gallery__item-gifv-thumbnail',\n 'aria-label': attachment.get('description'),\n role: 'application',\n src: attachment.get('url'),\n onClick: this.handleClick,\n onMouseEnter: this.handleMouseEnter,\n onMouseLeave: this.handleMouseLeave,\n autoPlay: autoPlay,\n loop: true,\n muted: true\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-gallery__gifv__label'\n }, void 0, 'GIF'));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_10_classnames___default()('media-gallery__item', { standalone: standalone }),\n style: { left: left, top: top, right: right, bottom: bottom, width: width + '%', height: height + '%' }\n }, attachment.get('id'), thumbnail);\n };\n\n return Item;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object\n}, _class.defaultProps = {\n standalone: false,\n index: 0,\n size: 1\n}, _temp2);\n\nvar MediaGallery = Object(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"g\" /* injectIntl */])(_class2 = (_temp4 = _class3 = function (_React$PureComponent2) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(MediaGallery, _React$PureComponent2);\n\n function MediaGallery() {\n var _temp3, _this2, _ret2;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, MediaGallery);\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 = (_temp3 = (_this2 = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent2.call.apply(_React$PureComponent2, [this].concat(args))), _this2), _this2.state = {\n visible: !_this2.props.sensitive\n }, _this2.handleOpen = function () {\n _this2.setState({ visible: !_this2.state.visible });\n }, _this2.handleClick = function (index) {\n _this2.props.onOpenMedia(_this2.props.media, index);\n }, _this2.handleRef = function (node) {\n if (node && _this2.isStandaloneEligible()) {\n // offsetWidth triggers a layout, so only calculate when we need to\n _this2.setState({\n width: node.offsetWidth\n });\n }\n }, _temp3), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this2, _ret2);\n }\n\n MediaGallery.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!Object(__WEBPACK_IMPORTED_MODULE_6_immutable__[\"is\"])(nextProps.media, this.props.media)) {\n this.setState({ visible: !nextProps.sensitive });\n }\n };\n\n MediaGallery.prototype.isStandaloneEligible = function isStandaloneEligible() {\n var _props2 = this.props,\n media = _props2.media,\n standalone = _props2.standalone;\n\n return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n };\n\n MediaGallery.prototype.render = function render() {\n var _this3 = this;\n\n var _props3 = this.props,\n media = _props3.media,\n intl = _props3.intl,\n sensitive = _props3.sensitive,\n height = _props3.height;\n var _state = this.state,\n width = _state.width,\n visible = _state.visible;\n\n\n var children = void 0;\n\n var style = {};\n\n if (this.isStandaloneEligible()) {\n if (!visible && width) {\n // only need to forcibly set the height in \"sensitive\" mode\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n } else {\n // layout automatically, using image's natural aspect ratio\n style.height = '';\n }\n } else {\n // crop the image\n style.height = height;\n }\n\n if (!visible) {\n var warning = void 0;\n\n if (sensitive) {\n warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.sensitive_warning',\n defaultMessage: 'Sensitive content'\n });\n } else {\n warning = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.media_hidden',\n defaultMessage: 'Media hidden'\n });\n }\n\n children = __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'button',\n { className: 'media-spoiler', onClick: this.handleOpen, style: style, ref: this.handleRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-spoiler__warning'\n }, void 0, warning),\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'media-spoiler__trigger'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'status.sensitive_toggle',\n defaultMessage: 'Click to view'\n }))\n );\n } else {\n var size = media.take(4).size;\n\n if (this.isStandaloneEligible()) {\n children = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n standalone: true,\n onClick: this.handleClick,\n attachment: media.get(0)\n });\n } else {\n children = media.take(4).map(function (attachment, i) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(Item, {\n onClick: _this3.handleClick,\n attachment: attachment,\n index: i,\n size: size\n }, attachment.get('id'));\n });\n }\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'media-gallery',\n style: style\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_10_classnames___default()('spoiler-button', { 'spoiler-button--visible': visible })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__icon_button__[\"a\" /* default */], {\n title: intl.formatMessage(messages.toggle_visible),\n icon: visible ? 'eye' : 'eye-slash',\n overlay: true,\n onClick: this.handleOpen\n })), children);\n };\n\n return MediaGallery;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class3.defaultProps = {\n standalone: false\n}, _temp4)) || _class2;\n\n\n\n/***/ }),\n\n/***/ 259:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Column; });\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_lodash_debounce__ = __webpack_require__(42);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_debounce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_debounce__);\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__column_header__ = __webpack_require__(150);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__scroll__ = __webpack_require__(91);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__is_mobile__ = __webpack_require__(33);\n\n\n\n\n\n\n\n\n\n\n\nvar Column = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Column, _React$PureComponent);\n\n function Column() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Column);\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.handleHeaderClick = function () {\n var scrollable = _this.node.querySelector('.scrollable');\n\n if (!scrollable) {\n return;\n }\n\n _this._interruptScrollAnimation = Object(__WEBPACK_IMPORTED_MODULE_7__scroll__[\"b\" /* scrollTop */])(scrollable);\n }, _this.handleScroll = __WEBPACK_IMPORTED_MODULE_4_lodash_debounce___default()(function () {\n if (typeof _this._interruptScrollAnimation !== 'undefined') {\n _this._interruptScrollAnimation();\n }\n }, 200), _this.setRef = function (c) {\n _this.node = c;\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Column.prototype.scrollTop = function scrollTop() {\n var scrollable = this.node.querySelector('.scrollable');\n\n if (!scrollable) {\n return;\n }\n\n this._interruptScrollAnimation = Object(__WEBPACK_IMPORTED_MODULE_7__scroll__[\"b\" /* scrollTop */])(scrollable);\n };\n\n Column.prototype.render = function render() {\n var _props = this.props,\n heading = _props.heading,\n icon = _props.icon,\n children = _props.children,\n active = _props.active,\n hideHeadingOnMobile = _props.hideHeadingOnMobile;\n\n\n var showHeading = heading && (!hideHeadingOnMobile || hideHeadingOnMobile && !Object(__WEBPACK_IMPORTED_MODULE_8__is_mobile__[\"b\" /* isMobile */])(window.innerWidth));\n\n var columnHeaderId = showHeading && heading.replace(/ /g, '-');\n var header = showHeading && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__column_header__[\"a\" /* default */], {\n icon: icon,\n active: active,\n type: heading,\n onClick: this.handleHeaderClick,\n columnHeaderId: columnHeaderId\n });\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(\n 'div',\n {\n ref: this.setRef,\n role: 'region',\n 'aria-labelledby': columnHeaderId,\n className: 'column',\n onScroll: this.handleScroll\n },\n header,\n children\n );\n };\n\n return Column;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 261:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_react_redux__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__components_status__ = __webpack_require__(153);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__selectors__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__actions_interactions__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__actions_accounts__ = __webpack_require__(22);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__actions_statuses__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__actions_reports__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__actions_modal__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__initial_state__ = __webpack_require__(18);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"f\" /* defineMessages */])({\n deleteConfirm: {\n 'id': 'confirmations.delete.confirm',\n 'defaultMessage': 'Delete'\n },\n deleteMessage: {\n 'id': 'confirmations.delete.message',\n 'defaultMessage': 'Are you sure you want to delete this status?'\n },\n blockConfirm: {\n 'id': 'confirmations.block.confirm',\n 'defaultMessage': 'Block'\n },\n muteConfirm: {\n 'id': 'confirmations.mute.confirm',\n 'defaultMessage': 'Mute'\n }\n});\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getStatus = Object(__WEBPACK_IMPORTED_MODULE_4__selectors__[\"e\" /* makeGetStatus */])();\n\n var mapStateToProps = function mapStateToProps(state, props) {\n return {\n status: getStatus(state, props.id)\n };\n };\n\n return mapStateToProps;\n};\n\nvar mapDispatchToProps = function mapDispatchToProps(dispatch, _ref) {\n var intl = _ref.intl;\n return {\n onReply: function onReply(status, router) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_compose__[\"O\" /* replyCompose */])(status, router));\n },\n onModalReblog: function onModalReblog(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"q\" /* reblog */])(status));\n },\n onReblog: function onReblog(status, e) {\n if (status.get('reblogged')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"t\" /* unreblog */])(status));\n } else {\n if (e.shiftKey || !__WEBPACK_IMPORTED_MODULE_12__initial_state__[\"b\" /* boostModal */]) {\n this.onModalReblog(status);\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('BOOST', { status: status, onReblog: this.onModalReblog }));\n }\n }\n },\n onFavourite: function onFavourite(status) {\n if (status.get('favourited')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"r\" /* unfavourite */])(status));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"m\" /* favourite */])(status));\n }\n },\n onPin: function onPin(status) {\n if (status.get('pinned')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"s\" /* unpin */])(status));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_6__actions_interactions__[\"p\" /* pin */])(status));\n }\n },\n onEmbed: function onEmbed(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('EMBED', { url: status.get('url') }));\n },\n onDelete: function onDelete(status) {\n if (!__WEBPACK_IMPORTED_MODULE_12__initial_state__[\"d\" /* deleteModal */]) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n }\n }));\n }\n },\n onMention: function onMention(account, router) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_compose__[\"M\" /* mentionCompose */])(account, router));\n },\n onOpenMedia: function onOpenMedia(media, index) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('MEDIA', { media: media, index: index }));\n },\n onOpenVideo: function onOpenVideo(media, time) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('VIDEO', { media: media, time: time }));\n },\n onBlock: function onBlock(account) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'confirmations.block.message',\n defaultMessage: 'Are you sure you want to block {name}?',\n values: { name: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', account.get('acct')) }\n }),\n confirm: intl.formatMessage(messages.blockConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_accounts__[\"r\" /* blockAccount */])(account.get('id')));\n }\n }));\n },\n onReport: function onReport(status) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_reports__[\"i\" /* initReport */])(status.get('account'), status));\n },\n onMute: function onMute(account) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'confirmations.mute.message',\n defaultMessage: 'Are you sure you want to mute {name}?',\n values: { name: __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, '@', account.get('acct')) }\n }),\n confirm: intl.formatMessage(messages.muteConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_7__actions_accounts__[\"B\" /* muteAccount */])(account.get('id')));\n }\n }));\n },\n onMuteConversation: function onMuteConversation(status) {\n if (status.get('muted')) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"h\" /* unmuteStatus */])(status.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_8__actions_statuses__[\"g\" /* muteStatus */])(status.get('id')));\n }\n }\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_11_react_intl__[\"g\" /* injectIntl */])(Object(__WEBPACK_IMPORTED_MODULE_2_react_redux__[\"connect\"])(makeMapStateToProps, mapDispatchToProps)(__WEBPACK_IMPORTED_MODULE_3__components_status__[\"a\" /* default */])));\n\n/***/ }),\n\n/***/ 316:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Card; });\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_punycode__ = __webpack_require__(317);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_punycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_punycode__);\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\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\n\nvar IDNA_PREFIX = 'xn--';\n\nvar decodeIDNA = function decodeIDNA(domain) {\n return domain.split('.').map(function (part) {\n return part.indexOf(IDNA_PREFIX) === 0 ? __WEBPACK_IMPORTED_MODULE_5_punycode___default.a.decode(part.slice(IDNA_PREFIX.length)) : part;\n }).join('.');\n};\n\nvar getHostname = function getHostname(url) {\n var parser = document.createElement('a');\n parser.href = url;\n return parser.hostname;\n};\n\nvar Card = (_temp2 = _class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Card, _React$PureComponent);\n\n function Card() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Card);\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 width: 0\n }, _this.setRef = function (c) {\n if (c) {\n _this.setState({ width: c.offsetWidth });\n }\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Card.prototype.renderLink = function renderLink() {\n var _props = this.props,\n card = _props.card,\n maxDescription = _props.maxDescription;\n\n\n var image = '';\n var provider = card.get('provider_name');\n\n if (card.get('image')) {\n image = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__image'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n src: card.get('image'),\n alt: card.get('title'),\n className: 'status-card__image-image',\n width: card.get('width'),\n height: card.get('height')\n }));\n }\n\n if (provider.length < 1) {\n provider = decodeIDNA(getHostname(card.get('url')));\n }\n\n var className = __WEBPACK_IMPORTED_MODULE_6_classnames___default()('status-card', {\n 'horizontal': card.get('width') > card.get('height')\n });\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: card.get('url'),\n className: className,\n target: '_blank',\n rel: 'noopener'\n }, void 0, image, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__content'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {\n className: 'status-card__title',\n title: card.get('title')\n }, void 0, card.get('title')), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('p', {\n className: 'status-card__description'\n }, void 0, (card.get('description') || '').substring(0, maxDescription)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'status-card__host'\n }, void 0, provider)));\n };\n\n Card.prototype.renderPhoto = function renderPhoto() {\n var card = this.props.card;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: card.get('url'),\n className: 'status-card-photo',\n target: '_blank',\n rel: 'noopener'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('img', {\n src: card.get('url'),\n alt: card.get('title'),\n width: card.get('width'),\n height: card.get('height')\n }));\n };\n\n Card.prototype.renderVideo = function renderVideo() {\n var card = this.props.card;\n\n var content = { __html: card.get('html') };\n var width = this.state.width;\n\n var ratio = card.get('width') / card.get('height');\n var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement('div', {\n ref: this.setRef,\n className: 'status-card-video',\n dangerouslySetInnerHTML: content,\n style: { height: height }\n });\n };\n\n Card.prototype.render = function render() {\n var card = this.props.card;\n\n\n if (card === null) {\n return null;\n }\n\n switch (card.get('type')) {\n case 'link':\n return this.renderLink();\n case 'photo':\n return this.renderPhoto();\n case 'video':\n return this.renderVideo();\n case 'rich':\n default:\n return null;\n }\n };\n\n return Card;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.defaultProps = {\n maxDescription: 50\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 317:\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function (root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module && !module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\tvar punycode,\n\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647,\n\t // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\t tMin = 1,\n\t tMax = 26,\n\t skew = 38,\n\t damp = 700,\n\t initialBias = 72,\n\t initialN = 128,\n\t // 0x80\n\tdelimiter = '-',\n\t // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\t regexNonASCII = /[^\\x20-\\x7E]/,\n\t // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n\t // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\t floor = Math.floor,\n\t stringFromCharCode = String.fromCharCode,\n\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) {\n\t\t\t\t\t// low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function (value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (; /* no initialization */delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\n\t\t/** Cached calculation results */\n\t\tbaseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength;) /* no final expression */{\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base;; /* no condition */k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\n\t\t/** `inputLength` will hold the number of code points in `input`. */\n\t\tinputLength,\n\n\t\t/** Cached calculation results */\n\t\thandledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base;; /* no condition */k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n\t\t});\n\t}\n\n\t/**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function (string) {\n\t\t\treturn regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n\t\t'version': '1.4.1',\n\t\t/**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\treturn punycode;\n\t\t}.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n})(this);\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(71)(module), __webpack_require__(44)))\n\n/***/ }),\n\n/***/ 758:\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 Status; });\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_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_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__actions_statuses__ = __webpack_require__(57);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_missing_indicator__ = __webpack_require__(780);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_detailed_status__ = __webpack_require__(892);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__components_action_bar__ = __webpack_require__(895);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__ui_components_column__ = __webpack_require__(259);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__actions_interactions__ = __webpack_require__(43);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15__actions_compose__ = __webpack_require__(15);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__actions_reports__ = __webpack_require__(151);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_17__selectors__ = __webpack_require__(69);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_18_react_router_scroll_4__ = __webpack_require__(152);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_19__components_column_back_button__ = __webpack_require__(779);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_20__containers_status_container__ = __webpack_require__(261);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_21__actions_modal__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_22_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24_react_hotkeys__ = __webpack_require__(162);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_24_react_hotkeys___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_24_react_hotkeys__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_25__initial_state__ = __webpack_require__(18);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_26__features_ui_util_fullscreen__ = __webpack_require__(154);\n\n\n\n\n\nvar _dec, _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_22_react_intl__[\"f\" /* defineMessages */])({\n deleteConfirm: {\n 'id': 'confirmations.delete.confirm',\n 'defaultMessage': 'Delete'\n },\n deleteMessage: {\n 'id': 'confirmations.delete.message',\n 'defaultMessage': 'Are you sure you want to delete this status?'\n }\n});\n\nvar makeMapStateToProps = function makeMapStateToProps() {\n var getStatus = Object(__WEBPACK_IMPORTED_MODULE_17__selectors__[\"e\" /* makeGetStatus */])();\n\n var mapStateToProps = function mapStateToProps(state, props) {\n return {\n status: getStatus(state, props.params.statusId),\n ancestorsIds: state.getIn(['contexts', 'ancestors', props.params.statusId]),\n descendantsIds: state.getIn(['contexts', 'descendants', props.params.statusId])\n };\n };\n\n return mapStateToProps;\n};\n\nvar Status = (_dec = Object(__WEBPACK_IMPORTED_MODULE_5_react_redux__[\"connect\"])(makeMapStateToProps), Object(__WEBPACK_IMPORTED_MODULE_22_react_intl__[\"g\" /* injectIntl */])(_class = _dec(_class = (_temp2 = _class2 = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(Status, _ImmutablePureCompone);\n\n function Status() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, Status);\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 fullscreen: false\n }, _this.handleFavouriteClick = function (status) {\n if (status.get('favourited')) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"r\" /* unfavourite */])(status));\n } else {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"m\" /* favourite */])(status));\n }\n }, _this.handlePin = function (status) {\n if (status.get('pinned')) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"s\" /* unpin */])(status));\n } else {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"p\" /* pin */])(status));\n }\n }, _this.handleReplyClick = function (status) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_15__actions_compose__[\"O\" /* replyCompose */])(status, _this.context.router.history));\n }, _this.handleModalReblog = function (status) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"q\" /* reblog */])(status));\n }, _this.handleReblogClick = function (status, e) {\n if (status.get('reblogged')) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_14__actions_interactions__[\"t\" /* unreblog */])(status));\n } else {\n if (e.shiftKey || !__WEBPACK_IMPORTED_MODULE_25__initial_state__[\"b\" /* boostModal */]) {\n _this.handleModalReblog(status);\n } else {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_21__actions_modal__[\"d\" /* openModal */])('BOOST', { status: status, onReblog: _this.handleModalReblog }));\n }\n }\n }, _this.handleDeleteClick = function (status) {\n var _this$props = _this.props,\n dispatch = _this$props.dispatch,\n intl = _this$props.intl;\n\n\n if (!__WEBPACK_IMPORTED_MODULE_25__initial_state__[\"d\" /* deleteModal */]) {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n } else {\n dispatch(Object(__WEBPACK_IMPORTED_MODULE_21__actions_modal__[\"d\" /* openModal */])('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: function onConfirm() {\n return dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_statuses__[\"e\" /* deleteStatus */])(status.get('id')));\n }\n }));\n }\n }, _this.handleMentionClick = function (account, router) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_15__actions_compose__[\"M\" /* mentionCompose */])(account, router));\n }, _this.handleOpenMedia = function (media, index) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_21__actions_modal__[\"d\" /* openModal */])('MEDIA', { media: media, index: index }));\n }, _this.handleOpenVideo = function (media, time) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_21__actions_modal__[\"d\" /* openModal */])('VIDEO', { media: media, time: time }));\n }, _this.handleReport = function (status) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_16__actions_reports__[\"i\" /* initReport */])(status.get('account'), status));\n }, _this.handleEmbed = function (status) {\n _this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_21__actions_modal__[\"d\" /* openModal */])('EMBED', { url: status.get('url') }));\n }, _this.handleHotkeyMoveUp = function () {\n _this.handleMoveUp(_this.props.status.get('id'));\n }, _this.handleHotkeyMoveDown = function () {\n _this.handleMoveDown(_this.props.status.get('id'));\n }, _this.handleHotkeyReply = function (e) {\n e.preventDefault();\n _this.handleReplyClick(_this.props.status);\n }, _this.handleHotkeyFavourite = function () {\n _this.handleFavouriteClick(_this.props.status);\n }, _this.handleHotkeyBoost = function () {\n _this.handleReblogClick(_this.props.status);\n }, _this.handleHotkeyMention = function (e) {\n e.preventDefault();\n _this.handleMentionClick(_this.props.status);\n }, _this.handleHotkeyOpenProfile = function () {\n _this.context.router.history.push('/accounts/' + _this.props.status.getIn(['account', 'id']));\n }, _this.handleMoveUp = function (id) {\n var _this$props2 = _this.props,\n status = _this$props2.status,\n ancestorsIds = _this$props2.ancestorsIds,\n descendantsIds = _this$props2.descendantsIds;\n\n\n if (id === status.get('id')) {\n _this._selectChild(ancestorsIds.size - 1);\n } else {\n var index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n _this._selectChild(ancestorsIds.size + index);\n } else {\n _this._selectChild(index - 1);\n }\n }\n }, _this.handleMoveDown = function (id) {\n var _this$props3 = _this.props,\n status = _this$props3.status,\n ancestorsIds = _this$props3.ancestorsIds,\n descendantsIds = _this$props3.descendantsIds;\n\n\n if (id === status.get('id')) {\n _this._selectChild(ancestorsIds.size + 1);\n } else {\n var index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n _this._selectChild(ancestorsIds.size + index + 2);\n } else {\n _this._selectChild(index + 1);\n }\n }\n }, _this.setRef = function (c) {\n _this.node = c;\n }, _this.onFullScreenChange = function () {\n _this.setState({ fullscreen: Object(__WEBPACK_IMPORTED_MODULE_26__features_ui_util_fullscreen__[\"d\" /* isFullscreen */])() });\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n Status.prototype.componentWillMount = function componentWillMount() {\n this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_statuses__[\"f\" /* fetchStatus */])(this.props.params.statusId));\n };\n\n Status.prototype.componentDidMount = function componentDidMount() {\n Object(__WEBPACK_IMPORTED_MODULE_26__features_ui_util_fullscreen__[\"a\" /* attachFullscreenListener */])(this.onFullScreenChange);\n };\n\n Status.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {\n this._scrolledIntoView = false;\n this.props.dispatch(Object(__WEBPACK_IMPORTED_MODULE_9__actions_statuses__[\"f\" /* fetchStatus */])(nextProps.params.statusId));\n }\n };\n\n Status.prototype._selectChild = function _selectChild(index) {\n var element = this.node.querySelectorAll('.focusable')[index];\n\n if (element) {\n element.focus();\n }\n };\n\n Status.prototype.renderChildren = function renderChildren(list) {\n var _this2 = this;\n\n return list.map(function (id) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_20__containers_status_container__[\"a\" /* default */], {\n id: id,\n onMoveUp: _this2.handleMoveUp,\n onMoveDown: _this2.handleMoveDown\n }, id);\n });\n };\n\n Status.prototype.componentDidUpdate = function componentDidUpdate() {\n if (this._scrolledIntoView) {\n return;\n }\n\n var _props = this.props,\n status = _props.status,\n ancestorsIds = _props.ancestorsIds;\n\n\n if (status && ancestorsIds && ancestorsIds.size > 0) {\n var element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];\n\n element.scrollIntoView(true);\n this._scrolledIntoView = true;\n }\n };\n\n Status.prototype.componentWillUnmount = function componentWillUnmount() {\n Object(__WEBPACK_IMPORTED_MODULE_26__features_ui_util_fullscreen__[\"b\" /* detachFullscreenListener */])(this.onFullScreenChange);\n };\n\n Status.prototype.render = function render() {\n var ancestors = void 0,\n descendants = void 0;\n var _props2 = this.props,\n status = _props2.status,\n ancestorsIds = _props2.ancestorsIds,\n descendantsIds = _props2.descendantsIds;\n var fullscreen = this.state.fullscreen;\n\n\n if (status === null) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__ui_components_column__[\"a\" /* default */], {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_19__components_column_back_button__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__components_missing_indicator__[\"a\" /* default */], {}));\n }\n\n if (ancestorsIds && ancestorsIds.size > 0) {\n ancestors = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, this.renderChildren(ancestorsIds));\n }\n\n if (descendantsIds && descendantsIds.size > 0) {\n descendants = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, this.renderChildren(descendantsIds));\n }\n\n var handlers = {\n moveUp: this.handleHotkeyMoveUp,\n moveDown: this.handleHotkeyMoveDown,\n reply: this.handleHotkeyReply,\n favourite: this.handleHotkeyFavourite,\n boost: this.handleHotkeyBoost,\n mention: this.handleHotkeyMention,\n openProfile: this.handleHotkeyOpenProfile\n };\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13__ui_components_column__[\"a\" /* default */], {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_19__components_column_back_button__[\"a\" /* default */], {}), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_18_react_router_scroll_4__[\"a\" /* ScrollContainer */], {\n scrollKey: 'thread'\n }, void 0, __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: __WEBPACK_IMPORTED_MODULE_7_classnames___default()('scrollable', 'detailed-status__wrapper', { fullscreen: fullscreen }), ref: this.setRef },\n ancestors,\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_24_react_hotkeys__[\"HotKeys\"], {\n handlers: handlers\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'focusable',\n tabIndex: '0'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__components_detailed_status__[\"a\" /* default */], {\n status: status,\n onOpenVideo: this.handleOpenVideo,\n onOpenMedia: this.handleOpenMedia\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__components_action_bar__[\"a\" /* default */], {\n status: status,\n onReply: this.handleReplyClick,\n onFavourite: this.handleFavouriteClick,\n onReblog: this.handleReblogClick,\n onDelete: this.handleDeleteClick,\n onMention: this.handleMentionClick,\n onReport: this.handleReport,\n onPin: this.handlePin,\n onEmbed: this.handleEmbed\n }))),\n descendants\n )));\n };\n\n return Status;\n}(__WEBPACK_IMPORTED_MODULE_23_react_immutable_pure_component___default.a), _class2.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object\n}, _class2.propTypes = {\n params: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired,\n dispatch: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.func.isRequired,\n status: __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default.a.map,\n ancestorsIds: __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default.a.list,\n descendantsIds: __WEBPACK_IMPORTED_MODULE_8_react_immutable_proptypes___default.a.list,\n intl: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object.isRequired\n}, _temp2)) || _class) || _class);\n\n\n/***/ }),\n\n/***/ 779:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ColumnBackButton; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_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\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\nvar ColumnBackButton = (_temp2 = _class = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ColumnBackButton, _React$PureComponent);\n\n function ColumnBackButton() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ColumnBackButton);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.handleClick = function () {\n if (window.history && window.history.length === 1) {\n _this.context.router.history.push('/');\n } else {\n _this.context.router.history.goBack();\n }\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ColumnBackButton.prototype.render = function render() {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleClick,\n className: 'column-back-button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-fw fa-chevron-left column-back-button__icon'\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_5_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'column_back_button.label',\n defaultMessage: 'Back'\n }));\n };\n\n return ColumnBackButton;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_6_prop_types___default.a.object\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 780:\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_intl__ = __webpack_require__(6);\n\n\n\n\nvar MissingIndicator = function MissingIndicator() {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'missing-indicator'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_2_react_intl__[\"b\" /* FormattedMessage */], {\n id: 'missing_indicator.label',\n defaultMessage: 'Not found'\n })));\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (MissingIndicator);\n\n/***/ }),\n\n/***/ 892:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return DetailedStatus; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_avatar__ = __webpack_require__(55);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_display_name__ = __webpack_require__(56);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_status_content__ = __webpack_require__(107);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_media_gallery__ = __webpack_require__(159);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_attachment_list__ = __webpack_require__(893);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12_react_router_dom__ = __webpack_require__(58);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__containers_card_container__ = __webpack_require__(894);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_16__video__ = __webpack_require__(108);\n\n\n\n\n\nvar _class, _temp2;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar DetailedStatus = (_temp2 = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(DetailedStatus, _ImmutablePureCompone);\n\n function DetailedStatus() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, DetailedStatus);\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.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\n e.stopPropagation();\n }, _this.handleOpenVideo = function (startTime) {\n _this.props.onOpenVideo(_this.props.status.getIn(['media_attachments', 0]), startTime);\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n DetailedStatus.prototype.render = function render() {\n var status = this.props.status.get('reblog') ? this.props.status.get('reblog') : this.props.status;\n\n var media = '';\n var applicationLink = '';\n var reblogLink = '';\n var reblogIcon = 'retweet';\n\n if (status.get('media_attachments').size > 0) {\n if (status.get('media_attachments').some(function (item) {\n return item.get('type') === 'unknown';\n })) {\n media = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__components_attachment_list__[\"a\" /* default */], {\n media: status.get('media_attachments')\n });\n } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {\n var video = status.getIn(['media_attachments', 0]);\n\n media = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_16__video__[\"default\"], {\n preview: video.get('preview_url'),\n src: video.get('url'),\n width: 300,\n height: 150,\n onOpenVideo: this.handleOpenVideo,\n sensitive: status.get('sensitive')\n });\n } else {\n media = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__[\"default\"], {\n standalone: true,\n sensitive: status.get('sensitive'),\n media: status.get('media_attachments'),\n height: 300,\n onOpenMedia: this.props.onOpenMedia\n });\n }\n } else if (status.get('spoiler_text').length === 0) {\n media = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_14__containers_card_container__[\"a\" /* default */], {\n statusId: status.get('id')\n });\n }\n\n if (status.get('application')) {\n applicationLink = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {}, void 0, ' \\xB7 ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'detailed-status__application',\n href: status.getIn(['application', 'website']),\n target: '_blank',\n rel: 'noopener'\n }, void 0, status.getIn(['application', 'name'])));\n }\n\n if (status.get('visibility') === 'direct') {\n reblogIcon = 'envelope';\n } else if (status.get('visibility') === 'private') {\n reblogIcon = 'lock';\n }\n\n if (status.get('visibility') === 'private') {\n reblogLink = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-' + reblogIcon\n });\n } else {\n reblogLink = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12_react_router_dom__[\"b\" /* Link */], {\n to: '/statuses/' + status.get('id') + '/reblogs',\n className: 'detailed-status__link'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-' + reblogIcon\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'detailed-status__reblogs'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13_react_intl__[\"c\" /* FormattedNumber */], {\n value: status.get('reblogs_count')\n })));\n }\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: status.getIn(['account', 'url']),\n onClick: this.handleAccountClick,\n className: 'detailed-status__display-name'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__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: 48\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8__components_display_name__[\"a\" /* default */], {\n account: status.get('account')\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_9__components_status_content__[\"a\" /* default */], {\n status: status\n }), media, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__meta'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'detailed-status__datetime',\n href: status.get('url'),\n target: '_blank',\n rel: 'noopener'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13_react_intl__[\"a\" /* FormattedDate */], {\n value: new Date(status.get('created_at')),\n hour12: false,\n year: 'numeric',\n month: 'short',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit'\n })), applicationLink, ' \\xB7 ', reblogLink, ' \\xB7 ', __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12_react_router_dom__[\"b\" /* Link */], {\n to: '/statuses/' + status.get('id') + '/favourites',\n className: 'detailed-status__link'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-star'\n }), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'detailed-status__favorites'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_13_react_intl__[\"c\" /* FormattedNumber */], {\n value: status.get('favourites_count')\n })))));\n };\n\n return DetailedStatus;\n}(__WEBPACK_IMPORTED_MODULE_15_react_immutable_pure_component___default.a), _class.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object\n}, _class.propTypes = {\n status: __WEBPACK_IMPORTED_MODULE_6_react_immutable_proptypes___default.a.map.isRequired,\n onOpenMedia: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func.isRequired,\n onOpenVideo: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.func.isRequired\n}, _temp2);\n\n\n/***/ }),\n\n/***/ 893:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return AttachmentList; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component__ = __webpack_require__(11);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component__);\n\n\n\n\n\nvar _class, _temp;\n\n\n\n\n\nvar filename = function filename(url) {\n return url.split('/').pop().split('#')[0].split('?')[0];\n};\n\nvar AttachmentList = (_temp = _class = function (_ImmutablePureCompone) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(AttachmentList, _ImmutablePureCompone);\n\n function AttachmentList() {\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, AttachmentList);\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(this, _ImmutablePureCompone.apply(this, arguments));\n }\n\n AttachmentList.prototype.render = function render() {\n var media = this.props.media;\n\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'attachment-list'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'attachment-list__icon'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-link'\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('ul', {\n className: 'attachment-list__list'\n }, void 0, media.map(function (attachment) {\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('li', {}, attachment.get('id'), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: attachment.get('remote_url'),\n target: '_blank',\n rel: 'noopener'\n }, void 0, filename(attachment.get('remote_url'))));\n })));\n };\n\n return AttachmentList;\n}(__WEBPACK_IMPORTED_MODULE_6_react_immutable_pure_component___default.a), _class.propTypes = {\n media: __WEBPACK_IMPORTED_MODULE_5_react_immutable_proptypes___default.a.list.isRequired\n}, _temp);\n\n\n/***/ }),\n\n/***/ 894:\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_card__ = __webpack_require__(316);\n\n\n\nvar mapStateToProps = function mapStateToProps(state, _ref) {\n var statusId = _ref.statusId;\n return {\n card: state.getIn(['cards', statusId], null)\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = (Object(__WEBPACK_IMPORTED_MODULE_0_react_redux__[\"connect\"])(mapStateToProps)(__WEBPACK_IMPORTED_MODULE_1__components_card__[\"a\" /* default */]));\n\n/***/ }),\n\n/***/ 895:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return ActionBar; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_icon_button__ = __webpack_require__(19);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__containers_dropdown_menu_container__ = __webpack_require__(284);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__initial_state__ = __webpack_require__(18);\n\n\n\n\n\nvar _class, _class2, _temp2;\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"f\" /* defineMessages */])({\n delete: {\n 'id': 'status.delete',\n 'defaultMessage': 'Delete'\n },\n mention: {\n 'id': 'status.mention',\n 'defaultMessage': 'Mention @{name}'\n },\n reply: {\n 'id': 'status.reply',\n 'defaultMessage': 'Reply'\n },\n reblog: {\n 'id': 'status.reblog',\n 'defaultMessage': 'Boost'\n },\n cannot_reblog: {\n 'id': 'status.cannot_reblog',\n 'defaultMessage': 'This post cannot be boosted'\n },\n favourite: {\n 'id': 'status.favourite',\n 'defaultMessage': 'Favourite'\n },\n report: {\n 'id': 'status.report',\n 'defaultMessage': 'Report @{name}'\n },\n share: {\n 'id': 'status.share',\n 'defaultMessage': 'Share'\n },\n pin: {\n 'id': 'status.pin',\n 'defaultMessage': 'Pin on profile'\n },\n unpin: {\n 'id': 'status.unpin',\n 'defaultMessage': 'Unpin from profile'\n },\n embed: {\n 'id': 'status.embed',\n 'defaultMessage': 'Embed'\n }\n});\n\nvar ActionBar = Object(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"g\" /* injectIntl */])(_class = (_temp2 = _class2 = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default()(ActionBar, _React$PureComponent);\n\n function ActionBar() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default()(this, ActionBar);\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.handleReplyClick = function () {\n _this.props.onReply(_this.props.status);\n }, _this.handleReblogClick = function (e) {\n _this.props.onReblog(_this.props.status, e);\n }, _this.handleFavouriteClick = function () {\n _this.props.onFavourite(_this.props.status);\n }, _this.handleDeleteClick = function () {\n _this.props.onDelete(_this.props.status);\n }, _this.handleMentionClick = function () {\n _this.props.onMention(_this.props.status.get('account'), _this.context.router.history);\n }, _this.handleReport = function () {\n _this.props.onReport(_this.props.status);\n }, _this.handlePinClick = function () {\n _this.props.onPin(_this.props.status);\n }, _this.handleShare = function () {\n navigator.share({\n text: _this.props.status.get('search_index'),\n url: _this.props.status.get('url')\n });\n }, _this.handleEmbed = function () {\n _this.props.onEmbed(_this.props.status);\n }, _temp), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n ActionBar.prototype.render = function render() {\n var _props = this.props,\n status = _props.status,\n intl = _props.intl;\n\n\n var publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));\n\n var menu = [];\n\n if (publicStatus) {\n menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });\n }\n\n if (__WEBPACK_IMPORTED_MODULE_9__initial_state__[\"e\" /* me */] === status.getIn(['account', 'id'])) {\n if (publicStatus) {\n menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });\n }\n\n menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick });\n } else {\n menu.push({ text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), action: this.handleMentionClick });\n menu.push(null);\n menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport });\n }\n\n var shareButton = 'share' in navigator && status.get('visibility') === 'public' && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_icon_button__[\"a\" /* default */], {\n title: intl.formatMessage(messages.share),\n icon: 'share-alt',\n onClick: this.handleShare\n }));\n\n var reblogIcon = 'retweet';\n if (status.get('visibility') === 'direct') reblogIcon = 'envelope';else if (status.get('visibility') === 'private') reblogIcon = 'lock';\n\n var reblog_disabled = status.get('visibility') === 'direct' || status.get('visibility') === 'private';\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__action-bar'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_icon_button__[\"a\" /* default */], {\n title: intl.formatMessage(messages.reply),\n icon: status.get('in_reply_to_id', null) === null ? 'reply' : 'reply-all',\n onClick: this.handleReplyClick\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_icon_button__[\"a\" /* default */], {\n disabled: reblog_disabled,\n active: status.get('reblogged'),\n title: reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog),\n icon: reblogIcon,\n onClick: this.handleReblogClick\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__button'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__components_icon_button__[\"a\" /* default */], {\n animate: true,\n active: status.get('favourited'),\n title: intl.formatMessage(messages.favourite),\n icon: 'star',\n onClick: this.handleFavouriteClick,\n activeStyle: { color: '#ca8f04' }\n })), shareButton, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'detailed-status__action-bar-dropdown'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_7__containers_dropdown_menu_container__[\"a\" /* default */], {\n size: 18,\n icon: 'ellipsis-h',\n items: menu,\n direction: 'left',\n ariaLabel: 'More'\n })));\n };\n\n return ActionBar;\n}(__WEBPACK_IMPORTED_MODULE_4_react___default.a.PureComponent), _class2.contextTypes = {\n router: __WEBPACK_IMPORTED_MODULE_5_prop_types___default.a.object\n}, _temp2)) || _class;\n\n\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// features/status-1f1807fdb4d1fd6daf40.js","import React from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class ColumnHeader extends React.PureComponent {\n\n static propTypes = {\n icon: PropTypes.string,\n type: PropTypes.string,\n active: PropTypes.bool,\n onClick: PropTypes.func,\n columnHeaderId: PropTypes.string,\n };\n\n handleClick = () => {\n this.props.onClick();\n }\n\n render () {\n const { type, active, columnHeaderId } = this.props;\n\n let icon = '';\n\n if (this.props.icon) {\n icon = <i className={`fa fa-fw fa-${this.props.icon} column-header__icon`} />;\n }\n\n return (\n <div role='heading' tabIndex='0' className={`column-header ${active ? 'active' : ''}`} onClick={this.handleClick} id={columnHeaderId || null}>\n {icon}\n {type}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/ui/components/column_header.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { is } from 'immutable';\nimport IconButton from './icon_button';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { isIOS } from '../is_mobile';\nimport classNames from 'classnames';\nimport { autoPlayGif } from '../initial_state';\n\nconst messages = defineMessages({\n toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },\n});\n\nclass Item extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n attachment: ImmutablePropTypes.map.isRequired,\n standalone: PropTypes.bool,\n index: PropTypes.number.isRequired,\n size: PropTypes.number.isRequired,\n onClick: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n standalone: false,\n index: 0,\n size: 1,\n };\n\n handleMouseEnter = (e) => {\n if (this.hoverToPlay()) {\n e.target.play();\n }\n }\n\n handleMouseLeave = (e) => {\n if (this.hoverToPlay()) {\n e.target.pause();\n e.target.currentTime = 0;\n }\n }\n\n hoverToPlay () {\n const { attachment } = this.props;\n return !autoPlayGif && attachment.get('type') === 'gifv';\n }\n\n handleClick = (e) => {\n const { index, onClick } = this.props;\n\n if (this.context.router && e.button === 0) {\n e.preventDefault();\n onClick(index);\n }\n\n e.stopPropagation();\n }\n\n render () {\n const { attachment, index, size, standalone } = this.props;\n\n let width = 50;\n let height = 100;\n let top = 'auto';\n let left = 'auto';\n let bottom = 'auto';\n let right = 'auto';\n\n if (size === 1) {\n width = 100;\n }\n\n if (size === 4 || (size === 3 && index > 0)) {\n height = 50;\n }\n\n if (size === 2) {\n if (index === 0) {\n right = '2px';\n } else {\n left = '2px';\n }\n } else if (size === 3) {\n if (index === 0) {\n right = '2px';\n } else if (index > 0) {\n left = '2px';\n }\n\n if (index === 1) {\n bottom = '2px';\n } else if (index > 1) {\n top = '2px';\n }\n } else if (size === 4) {\n if (index === 0 || index === 2) {\n right = '2px';\n }\n\n if (index === 1 || index === 3) {\n left = '2px';\n }\n\n if (index < 2) {\n bottom = '2px';\n } else {\n top = '2px';\n }\n }\n\n let thumbnail = '';\n\n if (attachment.get('type') === 'image') {\n const previewUrl = attachment.get('preview_url');\n const previewWidth = attachment.getIn(['meta', 'small', 'width']);\n\n const originalUrl = attachment.get('url');\n const originalWidth = attachment.getIn(['meta', 'original', 'width']);\n\n const hasSize = typeof originalWidth === 'number' && typeof previewWidth === 'number';\n\n const srcSet = hasSize ? `${originalUrl} ${originalWidth}w, ${previewUrl} ${previewWidth}w` : null;\n const sizes = hasSize ? `(min-width: 1025px) ${320 * (width / 100)}px, ${width}vw` : null;\n\n thumbnail = (\n <a\n className='media-gallery__item-thumbnail'\n href={attachment.get('remote_url') || originalUrl}\n onClick={this.handleClick}\n target='_blank'\n >\n <img src={previewUrl} srcSet={srcSet} sizes={sizes} alt={attachment.get('description')} title={attachment.get('description')} />\n </a>\n );\n } else if (attachment.get('type') === 'gifv') {\n const autoPlay = !isIOS() && autoPlayGif;\n\n thumbnail = (\n <div className={classNames('media-gallery__gifv', { autoplay: autoPlay })}>\n <video\n className='media-gallery__item-gifv-thumbnail'\n aria-label={attachment.get('description')}\n role='application'\n src={attachment.get('url')}\n onClick={this.handleClick}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n autoPlay={autoPlay}\n loop\n muted\n />\n\n <span className='media-gallery__gifv__label'>GIF</span>\n </div>\n );\n }\n\n return (\n <div className={classNames('media-gallery__item', { standalone })} key={attachment.get('id')} style={{ left: left, top: top, right: right, bottom: bottom, width: `${width}%`, height: `${height}%` }}>\n {thumbnail}\n </div>\n );\n }\n\n}\n\n@injectIntl\nexport default class MediaGallery extends React.PureComponent {\n\n static propTypes = {\n sensitive: PropTypes.bool,\n standalone: PropTypes.bool,\n media: ImmutablePropTypes.list.isRequired,\n size: PropTypes.object,\n height: PropTypes.number.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n standalone: false,\n };\n\n state = {\n visible: !this.props.sensitive,\n };\n\n componentWillReceiveProps (nextProps) {\n if (!is(nextProps.media, this.props.media)) {\n this.setState({ visible: !nextProps.sensitive });\n }\n }\n\n handleOpen = () => {\n this.setState({ visible: !this.state.visible });\n }\n\n handleClick = (index) => {\n this.props.onOpenMedia(this.props.media, index);\n }\n\n handleRef = (node) => {\n if (node && this.isStandaloneEligible()) {\n // offsetWidth triggers a layout, so only calculate when we need to\n this.setState({\n width: node.offsetWidth,\n });\n }\n }\n\n isStandaloneEligible() {\n const { media, standalone } = this.props;\n return standalone && media.size === 1 && media.getIn([0, 'meta', 'small', 'aspect']);\n }\n\n render () {\n const { media, intl, sensitive, height } = this.props;\n const { width, visible } = this.state;\n\n let children;\n\n const style = {};\n\n if (this.isStandaloneEligible()) {\n if (!visible && width) {\n // only need to forcibly set the height in \"sensitive\" mode\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n } else {\n // layout automatically, using image's natural aspect ratio\n style.height = '';\n }\n } else {\n // crop the image\n style.height = height;\n }\n\n if (!visible) {\n let warning;\n\n if (sensitive) {\n warning = <FormattedMessage id='status.sensitive_warning' defaultMessage='Sensitive content' />;\n } else {\n warning = <FormattedMessage id='status.media_hidden' defaultMessage='Media hidden' />;\n }\n\n children = (\n <button className='media-spoiler' onClick={this.handleOpen} style={style} ref={this.handleRef}>\n <span className='media-spoiler__warning'>{warning}</span>\n <span className='media-spoiler__trigger'><FormattedMessage id='status.sensitive_toggle' defaultMessage='Click to view' /></span>\n </button>\n );\n } else {\n const size = media.take(4).size;\n\n if (this.isStandaloneEligible()) {\n children = <Item standalone onClick={this.handleClick} attachment={media.get(0)} />;\n } else {\n children = media.take(4).map((attachment, i) => <Item key={attachment.get('id')} onClick={this.handleClick} attachment={attachment} index={i} size={size} />);\n }\n }\n\n return (\n <div className='media-gallery' style={style}>\n <div className={classNames('spoiler-button', { 'spoiler-button--visible': visible })}>\n <IconButton title={intl.formatMessage(messages.toggle_visible)} icon={visible ? 'eye' : 'eye-slash'} overlay onClick={this.handleOpen} />\n </div>\n\n {children}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/media_gallery.js","import React from 'react';\nimport ColumnHeader from './column_header';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash';\nimport { scrollTop } from '../../../scroll';\nimport { isMobile } from '../../../is_mobile';\n\nexport default class Column extends React.PureComponent {\n\n static propTypes = {\n heading: PropTypes.string,\n icon: PropTypes.string,\n children: PropTypes.node,\n active: PropTypes.bool,\n hideHeadingOnMobile: PropTypes.bool,\n };\n\n handleHeaderClick = () => {\n const scrollable = this.node.querySelector('.scrollable');\n\n if (!scrollable) {\n return;\n }\n\n this._interruptScrollAnimation = scrollTop(scrollable);\n }\n\n scrollTop () {\n const scrollable = this.node.querySelector('.scrollable');\n\n if (!scrollable) {\n return;\n }\n\n this._interruptScrollAnimation = scrollTop(scrollable);\n }\n\n\n handleScroll = debounce(() => {\n if (typeof this._interruptScrollAnimation !== 'undefined') {\n this._interruptScrollAnimation();\n }\n }, 200)\n\n setRef = (c) => {\n this.node = c;\n }\n\n render () {\n const { heading, icon, children, active, hideHeadingOnMobile } = this.props;\n\n const showHeading = heading && (!hideHeadingOnMobile || (hideHeadingOnMobile && !isMobile(window.innerWidth)));\n\n const columnHeaderId = showHeading && heading.replace(/ /g, '-');\n const header = showHeading && (\n <ColumnHeader icon={icon} active={active} type={heading} onClick={this.handleHeaderClick} columnHeaderId={columnHeaderId} />\n );\n return (\n <div\n ref={this.setRef}\n role='region'\n aria-labelledby={columnHeaderId}\n className='column'\n onScroll={this.handleScroll}\n >\n {header}\n {children}\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/ui/components/column.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport Status from '../components/status';\nimport { makeGetStatus } from '../selectors';\nimport {\n replyCompose,\n mentionCompose,\n} from '../actions/compose';\nimport {\n reblog,\n favourite,\n unreblog,\n unfavourite,\n pin,\n unpin,\n} from '../actions/interactions';\nimport {\n blockAccount,\n muteAccount,\n} from '../actions/accounts';\nimport { muteStatus, unmuteStatus, deleteStatus } from '../actions/statuses';\nimport { initReport } from '../actions/reports';\nimport { openModal } from '../actions/modal';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport { boostModal, deleteModal } from '../initial_state';\n\nconst messages = defineMessages({\n deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },\n deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },\n blockConfirm: { id: 'confirmations.block.confirm', defaultMessage: 'Block' },\n muteConfirm: { id: 'confirmations.mute.confirm', defaultMessage: 'Mute' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = (state, props) => ({\n status: getStatus(state, props.id),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onReply (status, router) {\n dispatch(replyCompose(status, router));\n },\n\n onModalReblog (status) {\n dispatch(reblog(status));\n },\n\n onReblog (status, e) {\n if (status.get('reblogged')) {\n dispatch(unreblog(status));\n } else {\n if (e.shiftKey || !boostModal) {\n this.onModalReblog(status);\n } else {\n dispatch(openModal('BOOST', { status, onReblog: this.onModalReblog }));\n }\n }\n },\n\n onFavourite (status) {\n if (status.get('favourited')) {\n dispatch(unfavourite(status));\n } else {\n dispatch(favourite(status));\n }\n },\n\n onPin (status) {\n if (status.get('pinned')) {\n dispatch(unpin(status));\n } else {\n dispatch(pin(status));\n }\n },\n\n onEmbed (status) {\n dispatch(openModal('EMBED', { url: status.get('url') }));\n },\n\n onDelete (status) {\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id')));\n } else {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: () => dispatch(deleteStatus(status.get('id'))),\n }));\n }\n },\n\n onMention (account, router) {\n dispatch(mentionCompose(account, router));\n },\n\n onOpenMedia (media, index) {\n dispatch(openModal('MEDIA', { media, index }));\n },\n\n onOpenVideo (media, time) {\n dispatch(openModal('VIDEO', { media, time }));\n },\n\n onBlock (account) {\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.blockConfirm),\n onConfirm: () => dispatch(blockAccount(account.get('id'))),\n }));\n },\n\n onReport (status) {\n dispatch(initReport(status.get('account'), status));\n },\n\n onMute (account) {\n dispatch(openModal('CONFIRM', {\n message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,\n confirm: intl.formatMessage(messages.muteConfirm),\n onConfirm: () => dispatch(muteAccount(account.get('id'))),\n }));\n },\n\n onMuteConversation (status) {\n if (status.get('muted')) {\n dispatch(unmuteStatus(status.get('id')));\n } else {\n dispatch(muteStatus(status.get('id')));\n }\n },\n\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status));\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/status_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport punycode from 'punycode';\nimport classnames from 'classnames';\n\nconst IDNA_PREFIX = 'xn--';\n\nconst decodeIDNA = domain => {\n return domain\n .split('.')\n .map(part => part.indexOf(IDNA_PREFIX) === 0 ? punycode.decode(part.slice(IDNA_PREFIX.length)) : part)\n .join('.');\n};\n\nconst getHostname = url => {\n const parser = document.createElement('a');\n parser.href = url;\n return parser.hostname;\n};\n\nexport default class Card extends React.PureComponent {\n\n static propTypes = {\n card: ImmutablePropTypes.map,\n maxDescription: PropTypes.number,\n };\n\n static defaultProps = {\n maxDescription: 50,\n };\n\n state = {\n width: 0,\n };\n\n renderLink () {\n const { card, maxDescription } = this.props;\n\n let image = '';\n let provider = card.get('provider_name');\n\n if (card.get('image')) {\n image = (\n <div className='status-card__image'>\n <img src={card.get('image')} alt={card.get('title')} className='status-card__image-image' width={card.get('width')} height={card.get('height')} />\n </div>\n );\n }\n\n if (provider.length < 1) {\n provider = decodeIDNA(getHostname(card.get('url')));\n }\n\n const className = classnames('status-card', {\n 'horizontal': card.get('width') > card.get('height'),\n });\n\n return (\n <a href={card.get('url')} className={className} target='_blank' rel='noopener'>\n {image}\n\n <div className='status-card__content'>\n <strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>\n <p className='status-card__description'>{(card.get('description') || '').substring(0, maxDescription)}</p>\n <span className='status-card__host'>{provider}</span>\n </div>\n </a>\n );\n }\n\n renderPhoto () {\n const { card } = this.props;\n\n return (\n <a href={card.get('url')} className='status-card-photo' target='_blank' rel='noopener'>\n <img src={card.get('url')} alt={card.get('title')} width={card.get('width')} height={card.get('height')} />\n </a>\n );\n }\n\n setRef = c => {\n if (c) {\n this.setState({ width: c.offsetWidth });\n }\n }\n\n renderVideo () {\n const { card } = this.props;\n const content = { __html: card.get('html') };\n const { width } = this.state;\n const ratio = card.get('width') / card.get('height');\n const height = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n return (\n <div\n ref={this.setRef}\n className='status-card-video'\n dangerouslySetInnerHTML={content}\n style={{ height }}\n />\n );\n }\n\n render () {\n const { card } = this.props;\n\n if (card === null) {\n return null;\n }\n\n switch(card.get('type')) {\n case 'link':\n return this.renderLink();\n case 'photo':\n return this.renderPhoto();\n case 'video':\n return this.renderVideo();\n case 'rich':\n default:\n return null;\n }\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/components/card.js","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/node-libs-browser/node_modules/punycode/punycode.js","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { fetchStatus } from '../../actions/statuses';\nimport MissingIndicator from '../../components/missing_indicator';\nimport DetailedStatus from './components/detailed_status';\nimport ActionBar from './components/action_bar';\nimport Column from '../ui/components/column';\nimport {\n favourite,\n unfavourite,\n reblog,\n unreblog,\n pin,\n unpin,\n} from '../../actions/interactions';\nimport {\n replyCompose,\n mentionCompose,\n} from '../../actions/compose';\nimport { deleteStatus } from '../../actions/statuses';\nimport { initReport } from '../../actions/reports';\nimport { makeGetStatus } from '../../selectors';\nimport { ScrollContainer } from 'react-router-scroll-4';\nimport ColumnBackButton from '../../components/column_back_button';\nimport StatusContainer from '../../containers/status_container';\nimport { openModal } from '../../actions/modal';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { HotKeys } from 'react-hotkeys';\nimport { boostModal, deleteModal } from '../../initial_state';\nimport { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../../features/ui/util/fullscreen';\n\nconst messages = defineMessages({\n deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },\n deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = (state, props) => ({\n status: getStatus(state, props.params.statusId),\n ancestorsIds: state.getIn(['contexts', 'ancestors', props.params.statusId]),\n descendantsIds: state.getIn(['contexts', 'descendants', props.params.statusId]),\n });\n\n return mapStateToProps;\n};\n\n@injectIntl\n@connect(makeMapStateToProps)\nexport default class Status extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n params: PropTypes.object.isRequired,\n dispatch: PropTypes.func.isRequired,\n status: ImmutablePropTypes.map,\n ancestorsIds: ImmutablePropTypes.list,\n descendantsIds: ImmutablePropTypes.list,\n intl: PropTypes.object.isRequired,\n };\n\n state = {\n fullscreen: false,\n };\n\n componentWillMount () {\n this.props.dispatch(fetchStatus(this.props.params.statusId));\n }\n\n componentDidMount () {\n attachFullscreenListener(this.onFullScreenChange);\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.params.statusId !== this.props.params.statusId && nextProps.params.statusId) {\n this._scrolledIntoView = false;\n this.props.dispatch(fetchStatus(nextProps.params.statusId));\n }\n }\n\n handleFavouriteClick = (status) => {\n if (status.get('favourited')) {\n this.props.dispatch(unfavourite(status));\n } else {\n this.props.dispatch(favourite(status));\n }\n }\n\n handlePin = (status) => {\n if (status.get('pinned')) {\n this.props.dispatch(unpin(status));\n } else {\n this.props.dispatch(pin(status));\n }\n }\n\n handleReplyClick = (status) => {\n this.props.dispatch(replyCompose(status, this.context.router.history));\n }\n\n handleModalReblog = (status) => {\n this.props.dispatch(reblog(status));\n }\n\n handleReblogClick = (status, e) => {\n if (status.get('reblogged')) {\n this.props.dispatch(unreblog(status));\n } else {\n if (e.shiftKey || !boostModal) {\n this.handleModalReblog(status);\n } else {\n this.props.dispatch(openModal('BOOST', { status, onReblog: this.handleModalReblog }));\n }\n }\n }\n\n handleDeleteClick = (status) => {\n const { dispatch, intl } = this.props;\n\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id')));\n } else {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.deleteMessage),\n confirm: intl.formatMessage(messages.deleteConfirm),\n onConfirm: () => dispatch(deleteStatus(status.get('id'))),\n }));\n }\n }\n\n handleMentionClick = (account, router) => {\n this.props.dispatch(mentionCompose(account, router));\n }\n\n handleOpenMedia = (media, index) => {\n this.props.dispatch(openModal('MEDIA', { media, index }));\n }\n\n handleOpenVideo = (media, time) => {\n this.props.dispatch(openModal('VIDEO', { media, time }));\n }\n\n handleReport = (status) => {\n this.props.dispatch(initReport(status.get('account'), status));\n }\n\n handleEmbed = (status) => {\n this.props.dispatch(openModal('EMBED', { url: status.get('url') }));\n }\n\n handleHotkeyMoveUp = () => {\n this.handleMoveUp(this.props.status.get('id'));\n }\n\n handleHotkeyMoveDown = () => {\n this.handleMoveDown(this.props.status.get('id'));\n }\n\n handleHotkeyReply = e => {\n e.preventDefault();\n this.handleReplyClick(this.props.status);\n }\n\n handleHotkeyFavourite = () => {\n this.handleFavouriteClick(this.props.status);\n }\n\n handleHotkeyBoost = () => {\n this.handleReblogClick(this.props.status);\n }\n\n handleHotkeyMention = e => {\n e.preventDefault();\n this.handleMentionClick(this.props.status);\n }\n\n handleHotkeyOpenProfile = () => {\n this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);\n }\n\n handleMoveUp = id => {\n const { status, ancestorsIds, descendantsIds } = this.props;\n\n if (id === status.get('id')) {\n this._selectChild(ancestorsIds.size - 1);\n } else {\n let index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n this._selectChild(ancestorsIds.size + index);\n } else {\n this._selectChild(index - 1);\n }\n }\n }\n\n handleMoveDown = id => {\n const { status, ancestorsIds, descendantsIds } = this.props;\n\n if (id === status.get('id')) {\n this._selectChild(ancestorsIds.size + 1);\n } else {\n let index = ancestorsIds.indexOf(id);\n\n if (index === -1) {\n index = descendantsIds.indexOf(id);\n this._selectChild(ancestorsIds.size + index + 2);\n } else {\n this._selectChild(index + 1);\n }\n }\n }\n\n _selectChild (index) {\n const element = this.node.querySelectorAll('.focusable')[index];\n\n if (element) {\n element.focus();\n }\n }\n\n renderChildren (list) {\n return list.map(id => (\n <StatusContainer\n key={id}\n id={id}\n onMoveUp={this.handleMoveUp}\n onMoveDown={this.handleMoveDown}\n />\n ));\n }\n\n setRef = c => {\n this.node = c;\n }\n\n componentDidUpdate () {\n if (this._scrolledIntoView) {\n return;\n }\n\n const { status, ancestorsIds } = this.props;\n\n if (status && ancestorsIds && ancestorsIds.size > 0) {\n const element = this.node.querySelectorAll('.focusable')[ancestorsIds.size - 1];\n\n element.scrollIntoView(true);\n this._scrolledIntoView = true;\n }\n }\n\n componentWillUnmount () {\n detachFullscreenListener(this.onFullScreenChange);\n }\n\n onFullScreenChange = () => {\n this.setState({ fullscreen: isFullscreen() });\n }\n\n render () {\n let ancestors, descendants;\n const { status, ancestorsIds, descendantsIds } = this.props;\n const { fullscreen } = this.state;\n\n if (status === null) {\n return (\n <Column>\n <ColumnBackButton />\n <MissingIndicator />\n </Column>\n );\n }\n\n if (ancestorsIds && ancestorsIds.size > 0) {\n ancestors = <div>{this.renderChildren(ancestorsIds)}</div>;\n }\n\n if (descendantsIds && descendantsIds.size > 0) {\n descendants = <div>{this.renderChildren(descendantsIds)}</div>;\n }\n\n const handlers = {\n moveUp: this.handleHotkeyMoveUp,\n moveDown: this.handleHotkeyMoveDown,\n reply: this.handleHotkeyReply,\n favourite: this.handleHotkeyFavourite,\n boost: this.handleHotkeyBoost,\n mention: this.handleHotkeyMention,\n openProfile: this.handleHotkeyOpenProfile,\n };\n\n return (\n <Column>\n <ColumnBackButton />\n\n <ScrollContainer scrollKey='thread'>\n <div className={classNames('scrollable', 'detailed-status__wrapper', { fullscreen })} ref={this.setRef}>\n {ancestors}\n\n <HotKeys handlers={handlers}>\n <div className='focusable' tabIndex='0'>\n <DetailedStatus\n status={status}\n onOpenVideo={this.handleOpenVideo}\n onOpenMedia={this.handleOpenMedia}\n />\n\n <ActionBar\n status={status}\n onReply={this.handleReplyClick}\n onFavourite={this.handleFavouriteClick}\n onReblog={this.handleReblogClick}\n onDelete={this.handleDeleteClick}\n onMention={this.handleMentionClick}\n onReport={this.handleReport}\n onPin={this.handlePin}\n onEmbed={this.handleEmbed}\n />\n </div>\n </HotKeys>\n\n {descendants}\n </div>\n </ScrollContainer>\n </Column>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/index.js","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nexport default class ColumnBackButton extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n handleClick = () => {\n if (window.history && window.history.length === 1) {\n this.context.router.history.push('/');\n } else {\n this.context.router.history.goBack();\n }\n }\n\n render () {\n return (\n <button onClick={this.handleClick} className='column-back-button'>\n <i className='fa fa-fw fa-chevron-left column-back-button__icon' />\n <FormattedMessage id='column_back_button.label' defaultMessage='Back' />\n </button>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/column_back_button.js","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nconst MissingIndicator = () => (\n <div className='missing-indicator'>\n <div>\n <FormattedMessage id='missing_indicator.label' defaultMessage='Not found' />\n </div>\n </div>\n);\n\nexport default MissingIndicator;\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/missing_indicator.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Avatar from '../../../components/avatar';\nimport DisplayName from '../../../components/display_name';\nimport StatusContent from '../../../components/status_content';\nimport MediaGallery from '../../../components/media_gallery';\nimport AttachmentList from '../../../components/attachment_list';\nimport { Link } from 'react-router-dom';\nimport { FormattedDate, FormattedNumber } from 'react-intl';\nimport CardContainer from '../containers/card_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Video from '../../video';\n\nexport default class DetailedStatus extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n status: ImmutablePropTypes.map.isRequired,\n onOpenMedia: PropTypes.func.isRequired,\n onOpenVideo: PropTypes.func.isRequired,\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 e.stopPropagation();\n }\n\n handleOpenVideo = startTime => {\n this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), startTime);\n }\n\n render () {\n const status = this.props.status.get('reblog') ? this.props.status.get('reblog') : this.props.status;\n\n let media = '';\n let applicationLink = '';\n let reblogLink = '';\n let reblogIcon = 'retweet';\n\n if (status.get('media_attachments').size > 0) {\n if (status.get('media_attachments').some(item => item.get('type') === 'unknown')) {\n media = <AttachmentList media={status.get('media_attachments')} />;\n } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {\n const video = status.getIn(['media_attachments', 0]);\n\n media = (\n <Video\n preview={video.get('preview_url')}\n src={video.get('url')}\n width={300}\n height={150}\n onOpenVideo={this.handleOpenVideo}\n sensitive={status.get('sensitive')}\n />\n );\n } else {\n media = (\n <MediaGallery\n standalone\n sensitive={status.get('sensitive')}\n media={status.get('media_attachments')}\n height={300}\n onOpenMedia={this.props.onOpenMedia}\n />\n );\n }\n } else if (status.get('spoiler_text').length === 0) {\n media = <CardContainer statusId={status.get('id')} />;\n }\n\n if (status.get('application')) {\n applicationLink = <span> · <a className='detailed-status__application' href={status.getIn(['application', 'website'])} target='_blank' rel='noopener'>{status.getIn(['application', 'name'])}</a></span>;\n }\n\n if (status.get('visibility') === 'direct') {\n reblogIcon = 'envelope';\n } else if (status.get('visibility') === 'private') {\n reblogIcon = 'lock';\n }\n\n if (status.get('visibility') === 'private') {\n reblogLink = <i className={`fa fa-${reblogIcon}`} />;\n } else {\n reblogLink = (<Link to={`/statuses/${status.get('id')}/reblogs`} className='detailed-status__link'>\n <i className={`fa fa-${reblogIcon}`} />\n <span className='detailed-status__reblogs'>\n <FormattedNumber value={status.get('reblogs_count')} />\n </span>\n </Link>);\n }\n\n return (\n <div className='detailed-status'>\n <a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='detailed-status__display-name'>\n <div className='detailed-status__display-avatar'><Avatar account={status.get('account')} size={48} /></div>\n <DisplayName account={status.get('account')} />\n </a>\n\n <StatusContent status={status} />\n\n {media}\n\n <div className='detailed-status__meta'>\n <a className='detailed-status__datetime' href={status.get('url')} target='_blank' rel='noopener'>\n <FormattedDate value={new Date(status.get('created_at'))} hour12={false} year='numeric' month='short' day='2-digit' hour='2-digit' minute='2-digit' />\n </a>{applicationLink} · {reblogLink} · <Link to={`/statuses/${status.get('id')}/favourites`} className='detailed-status__link'>\n <i className='fa fa-star' />\n <span className='detailed-status__favorites'>\n <FormattedNumber value={status.get('favourites_count')} />\n </span>\n </Link>\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/components/detailed_status.js","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nconst filename = url => url.split('/').pop().split('#')[0].split('?')[0];\n\nexport default class AttachmentList extends ImmutablePureComponent {\n\n static propTypes = {\n media: ImmutablePropTypes.list.isRequired,\n };\n\n render () {\n const { media } = this.props;\n\n return (\n <div className='attachment-list'>\n <div className='attachment-list__icon'>\n <i className='fa fa-link' />\n </div>\n\n <ul className='attachment-list__list'>\n {media.map(attachment =>\n <li key={attachment.get('id')}>\n <a href={attachment.get('remote_url')} target='_blank' rel='noopener'>{filename(attachment.get('remote_url'))}</a>\n </li>\n )}\n </ul>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/components/attachment_list.js","import { connect } from 'react-redux';\nimport Card from '../components/card';\n\nconst mapStateToProps = (state, { statusId }) => ({\n card: state.getIn(['cards', statusId], null),\n});\n\nexport default connect(mapStateToProps)(Card);\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/containers/card_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '../../../components/icon_button';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport DropdownMenuContainer from '../../../containers/dropdown_menu_container';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { me } from '../../../initial_state';\n\nconst messages = defineMessages({\n delete: { id: 'status.delete', defaultMessage: 'Delete' },\n mention: { id: 'status.mention', defaultMessage: 'Mention @{name}' },\n reply: { id: 'status.reply', defaultMessage: 'Reply' },\n reblog: { id: 'status.reblog', defaultMessage: 'Boost' },\n cannot_reblog: { id: 'status.cannot_reblog', defaultMessage: 'This post cannot be boosted' },\n favourite: { id: 'status.favourite', defaultMessage: 'Favourite' },\n report: { id: 'status.report', defaultMessage: 'Report @{name}' },\n share: { id: 'status.share', defaultMessage: 'Share' },\n pin: { id: 'status.pin', defaultMessage: 'Pin on profile' },\n unpin: { id: 'status.unpin', defaultMessage: 'Unpin from profile' },\n embed: { id: 'status.embed', defaultMessage: 'Embed' },\n});\n\n@injectIntl\nexport default class ActionBar extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n status: ImmutablePropTypes.map.isRequired,\n onReply: PropTypes.func.isRequired,\n onReblog: PropTypes.func.isRequired,\n onFavourite: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n onMention: PropTypes.func.isRequired,\n onReport: PropTypes.func,\n onPin: PropTypes.func,\n onEmbed: PropTypes.func,\n intl: PropTypes.object.isRequired,\n };\n\n handleReplyClick = () => {\n this.props.onReply(this.props.status);\n }\n\n handleReblogClick = (e) => {\n this.props.onReblog(this.props.status, e);\n }\n\n handleFavouriteClick = () => {\n this.props.onFavourite(this.props.status);\n }\n\n handleDeleteClick = () => {\n this.props.onDelete(this.props.status);\n }\n\n handleMentionClick = () => {\n this.props.onMention(this.props.status.get('account'), this.context.router.history);\n }\n\n handleReport = () => {\n this.props.onReport(this.props.status);\n }\n\n handlePinClick = () => {\n this.props.onPin(this.props.status);\n }\n\n handleShare = () => {\n navigator.share({\n text: this.props.status.get('search_index'),\n url: this.props.status.get('url'),\n });\n }\n\n handleEmbed = () => {\n this.props.onEmbed(this.props.status);\n }\n\n render () {\n const { status, intl } = this.props;\n\n const publicStatus = ['public', 'unlisted'].includes(status.get('visibility'));\n\n let menu = [];\n\n if (publicStatus) {\n menu.push({ text: intl.formatMessage(messages.embed), action: this.handleEmbed });\n }\n\n if (me === status.getIn(['account', 'id'])) {\n if (publicStatus) {\n menu.push({ text: intl.formatMessage(status.get('pinned') ? messages.unpin : messages.pin), action: this.handlePinClick });\n }\n\n menu.push({ text: intl.formatMessage(messages.delete), action: this.handleDeleteClick });\n } else {\n menu.push({ text: intl.formatMessage(messages.mention, { name: status.getIn(['account', 'username']) }), action: this.handleMentionClick });\n menu.push(null);\n menu.push({ text: intl.formatMessage(messages.report, { name: status.getIn(['account', 'username']) }), action: this.handleReport });\n }\n\n const shareButton = ('share' in navigator) && status.get('visibility') === 'public' && (\n <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.share)} icon='share-alt' onClick={this.handleShare} /></div>\n );\n\n let reblogIcon = 'retweet';\n if (status.get('visibility') === 'direct') reblogIcon = 'envelope';\n else if (status.get('visibility') === 'private') reblogIcon = 'lock';\n\n let reblog_disabled = (status.get('visibility') === 'direct' || status.get('visibility') === 'private');\n\n return (\n <div className='detailed-status__action-bar'>\n <div className='detailed-status__button'><IconButton title={intl.formatMessage(messages.reply)} icon={status.get('in_reply_to_id', null) === null ? 'reply' : 'reply-all'} onClick={this.handleReplyClick} /></div>\n <div className='detailed-status__button'><IconButton disabled={reblog_disabled} active={status.get('reblogged')} title={reblog_disabled ? intl.formatMessage(messages.cannot_reblog) : intl.formatMessage(messages.reblog)} icon={reblogIcon} onClick={this.handleReblogClick} /></div>\n <div className='detailed-status__button'><IconButton animate active={status.get('favourited')} title={intl.formatMessage(messages.favourite)} icon='star' onClick={this.handleFavouriteClick} activeStyle={{ color: '#ca8f04' }} /></div>\n {shareButton}\n\n <div className='detailed-status__action-bar-dropdown'>\n <DropdownMenuContainer size={18} icon='ellipsis-h' items={menu} direction='left' ariaLabel='More' />\n </div>\n </div>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/features/status/components/action_bar.js"],"sourceRoot":""} |