spc-pleroma/priv/static/packs/public.js.map

1 line
260 KiB
Plaintext

{"version":3,"sources":["webpack:///public.js","webpack:///./app/javascript/mastodon/components/media_gallery.js","webpack:///./app/javascript/mastodon/features/status/components/card.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///./node_modules/react-intl/lib/index.es.js","webpack:///./app/javascript/packs/public.js","webpack:///./app/javascript/mastodon/containers/video_container.js","webpack:///./app/javascript/mastodon/containers/card_container.js","webpack:///./app/javascript/mastodon/containers/media_galleries_container.js"],"names":["webpackJsonp","154","module","__webpack_exports__","__webpack_require__","Object","defineProperty","value","d","MediaGallery","_class","_temp2","_class2","_class3","_temp4","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default","n","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_4_react__","__WEBPACK_IMPORTED_MODULE_4_react___default","__WEBPACK_IMPORTED_MODULE_5_immutable__","__WEBPACK_IMPORTED_MODULE_6__icon_button__","__WEBPACK_IMPORTED_MODULE_7_react_intl__","__WEBPACK_IMPORTED_MODULE_8__is_mobile__","__WEBPACK_IMPORTED_MODULE_9_classnames__","__WEBPACK_IMPORTED_MODULE_9_classnames___default","__WEBPACK_IMPORTED_MODULE_10__initial_state__","messages","toggle_visible","id","defaultMessage","Item","_React$PureComponent","_temp","_this","_ret","this","_len","arguments","length","args","Array","_key","call","apply","concat","handleMouseEnter","e","hoverToPlay","target","play","handleMouseLeave","pause","currentTime","handleClick","_this$props","props","index","onClick","button","preventDefault","stopPropagation","prototype","attachment","get","render","_props","size","standalone","width","height","top","left","bottom","right","thumbnail","previewUrl","previewWidth","getIn","originalUrl","originalWidth","hasSize","srcSet","sizes","focusX","focusY","x","y","className","href","src","alt","title","style","objectPosition","autoPlay","autoplay","aria-label","role","onMouseEnter","onMouseLeave","loop","muted","a","PureComponent","defaultProps","_React$PureComponent2","_temp3","_this2","_ret2","_len2","_key2","state","visible","sensitive","handleOpen","setState","onOpenMedia","media","handleRef","node","offsetWidth","componentWillReceiveProps","nextProps","isStandaloneEligible","_props2","_this3","_props3","intl","_state","children","take","map","i","warning","createElement","type","ref","spoiler-button--visible","formatMessage","icon","overlay","332","Card","__WEBPACK_IMPORTED_MODULE_5_immutable___default","__WEBPACK_IMPORTED_MODULE_6_punycode__","__WEBPACK_IMPORTED_MODULE_6_punycode___default","__WEBPACK_IMPORTED_MODULE_7_classnames__","__WEBPACK_IMPORTED_MODULE_7_classnames___default","decodeIDNA","domain","split","part","indexOf","decode","slice","join","getHostname","url","parser","document","hostname","trim","text","len","cut","substring","domParser","DOMParser","addAutoPlay","html","parseFromString","documentElement","iframe","querySelector","innerHTML","embedded","handlePhotoClick","card","fromJS","description","meta","original","handleEmbedClick","setRef","c","renderVideo","content","__html","ratio","dangerouslySetInnerHTML","maxDescription","provider","horizontal","interactive","rel","embed","backgroundImage","iconVariant","333","exports","global","__WEBPACK_AMD_DEFINE_RESULT__","root","error","RangeError","errors","array","fn","result","mapDomain","string","parts","replace","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","6","addLocaleData","data","isArray","forEach","localeData","locale","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default","__addLocaleData","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default","hasLocaleData","localeParts","hasIMFAndIRFLocaleData","pop","normalizedLocale","__localeData__","escape","str","UNSAFE_CHARS_REGEX","match","ESCAPED_CHARS","filterProps","whitelist","defaults$$1","reduce","filtered","name","hasOwnProperty","invariantIntlContext","_ref","__WEBPACK_IMPORTED_MODULE_5_invariant___default","shallowEquals","objA","objB","_typeof","keysA","keys","keysB","bHasOwnProperty","bind","shouldIntlComponentUpdate","_ref2","nextState","_ref2$context","context","nextContext","_context$intl","_nextContext$intl","nextIntl","intlConfigPropNames","getDisplayName","Component$$1","displayName","injectIntl","WrappedComponent","options","_options$intlPropName","intlPropName","_options$withRef","withRef","InjectIntl","_Component","classCallCheck","possibleConstructorReturn","__proto__","getPrototypeOf","inherits","createClass","key","refs","wrappedInstance","_extends","contextTypes","intlShape","defineMessages","messageDescriptors","resolveLocale","locales","_resolveLocale","findPluralFunction","_findPluralRuleFunction","updateRelativeFormatThresholds","newThresholds","thresholds","second","minute","hour","day","month","getNamedFormat","formats","format","formatDate","config","date","Date","filteredOptions","DATE_TIME_FORMAT_OPTIONS","getDateTimeFormat","formatTime","formatRelative","now","RELATIVE_FORMAT_OPTIONS","oldThresholds","RELATIVE_FORMAT_THRESHOLDS","getRelativeFormat","isFinite","formatNumber","NUMBER_FORMAT_OPTIONS","getNumberFormat","formatPlural","PLURAL_FORMAT_OPTIONS","getPluralFormat","messageDescriptor","values","defaultLocale","defaultFormats","message","formattedMessage","getMessageFormat","formatHTMLMessage","rawValues","escaped","selectUnits","absDelta","abs","MINUTE","HOUR","DAY","getUnitDelay","units","SECOND","MAX_TIMER_DELAY","isSameDate","b","aTime","getTime","bTime","IntlProvider","FormattedDate","FormattedNumber","FormattedMessage","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__","__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default","__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__","__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__","__WEBPACK_IMPORTED_MODULE_3_prop_types__","__WEBPACK_IMPORTED_MODULE_3_prop_types___default","__WEBPACK_IMPORTED_MODULE_5_invariant__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__","__WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default","defaultLocaleData","pluralRuleFunction","ord","s","v0","t0","Number","n10","n100","fields","year","relative","0","1","-1","relativeTime","future","one","other","past","Symbol","iterator","obj","constructor","instance","Constructor","TypeError","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","assign","source","subClass","superClass","create","setPrototypeOf","objectWithoutProperties","self","ReferenceError","toConsumableArray","arr","arr2","from","bool","number","func","object","oneOf","shape","any","oneOfType","localeMatcher","narrowShortLong","numeric2digit","funcReq","isRequired","intlConfigPropTypes","textComponent","intlFormatPropTypes","formatters","dateTimeFormatPropTypes","formatMatcher","timeZone","hour12","weekday","era","timeZoneName","numberFormatPropTypes","currency","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","relativeFormatPropTypes","pluralFormatPropTypes","&",">","<","\"","'","IntlPluralFormat","useOrdinal","pluralFn","freeze","intlConfigPropNames$1","intlFormatPropNames","Intl","intlContext","initialNow","_ref$formatters","DateTimeFormat","NumberFormat","_didDisplay","propName","_config","boundFormatFns","getConfig","getBoundFormatFns","next","only","childContextTypes","Text","formattedDate","FormattedTime","formattedTime","FormattedRelative","clearTimeout","_timer","updateInterval","time","unitDelay","unitRemainder","delay","max","setTimeout","scheduleNextUpdate","formattedRelative","formattedNumber","FormattedPlural","pluralCategory","formattedPlural","nextPropsToCheck","_props$tagName","tagName","tokenDelimiter","tokenizedValues","elements","uid","random","toString","generateToken","token","nodes","filter","FormattedHTMLMessage","formattedHTMLMessage","690","main","_require","IntlRelativeFormat","default","_require2","delegate","emojify","_require3","getLocale","_getLocale","VideoContainer","CardContainer","React","ReactDOM","__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__","lang","dateTimeFormat","relativeFormat","querySelectorAll","datetime","getAttribute","textContent","addEventListener","window","open","JSON","parse","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default","mediaGalleries","MediaGalleriesContainer","galleries","body","appendChild","location","contentEl","parentNode","display","marginBottom","_ref3","nameCounter","_ref4","noteCounter","_ref5","avatar","_ref6","files","file","URL","createObjectURL","dataset","originalSrc","_ref7","header","_ref8","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__","__WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__","parent","postMessage","getElementsByTagName","scrollHeight","then","catch","console","691","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__","__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_5_react__","__WEBPACK_IMPORTED_MODULE_5_react___default","__WEBPACK_IMPORTED_MODULE_6_react_intl__","__WEBPACK_IMPORTED_MODULE_7__locales__","__WEBPACK_IMPORTED_MODULE_8__features_video__","692","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__","__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default","__WEBPACK_IMPORTED_MODULE_6__features_status_components_card__","__WEBPACK_IMPORTED_MODULE_7_immutable__","693","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__","__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__","__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__","__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__","__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default","__WEBPACK_IMPORTED_MODULE_6_react__","__WEBPACK_IMPORTED_MODULE_6_react___default","__WEBPACK_IMPORTED_MODULE_7_react_dom__","__WEBPACK_IMPORTED_MODULE_7_react_dom___default","__WEBPACK_IMPORTED_MODULE_8_react_intl__","__WEBPACK_IMPORTED_MODULE_9__locales__","__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__","__WEBPACK_IMPORTED_MODULE_11__components_modal_root__","__WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__","__WEBPACK_IMPORTED_MODULE_13_immutable__","handleOpenMedia","classList","add","handleCloseMedia","remove","Fragment","gallery","_JSON$parse","createPortal","onClose"],"mappings":"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","file":"public.js","sourcesContent":["webpackJsonp([29,25],{\n\n/***/ 154:\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_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__icon_button__ = __webpack_require__(23);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__is_mobile__ = __webpack_require__(35);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames__ = __webpack_require__(10);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9_classnames___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_9_classnames__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__initial_state__ = __webpack_require__(11);\n\n\n\n\n\nvar _class, _temp2, _class2, _class3, _temp4;\n\n\n\n\n\n\n\n\n\n\nvar messages = Object(__WEBPACK_IMPORTED_MODULE_7_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 (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_10__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 var focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n var focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n var x = (focusX / 2 + .5) * 100;\n var y = (focusY / -2 + .5) * 100;\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 style: { objectPosition: x + '% ' + y + '%' }\n }));\n } else if (attachment.get('type') === 'gifv') {\n var autoPlay = !Object(__WEBPACK_IMPORTED_MODULE_8__is_mobile__[\"a\" /* isIOS */])() && __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"a\" /* autoPlayGif */];\n\n thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_9_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_9_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.defaultProps = {\n standalone: false,\n index: 0,\n size: 1\n}, _temp2);\n\nvar MediaGallery = Object(__WEBPACK_IMPORTED_MODULE_7_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 || __WEBPACK_IMPORTED_MODULE_10__initial_state__[\"f\" /* displaySensitiveMedia */]\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 /*&& this.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_5_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 (width) {\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n }\n } else if (width) {\n style.height = width / (16 / 9);\n } else {\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_7_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_7_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 { type: 'button', 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_7_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_4_react___default.a.createElement(\n 'div',\n { className: 'media-gallery', style: style, ref: this.handleRef },\n __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: __WEBPACK_IMPORTED_MODULE_9_classnames___default()('spoiler-button', { 'spoiler-button--visible': visible })\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6__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 })),\n children\n );\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/***/ 332:\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_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_immutable__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode__ = __webpack_require__(333);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_punycode___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_punycode__);\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\n\n\n\n\nvar _class, _temp2;\n\n\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_6_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 trim = function trim(text, len) {\n var cut = text.indexOf(' ', len);\n\n if (cut === -1) {\n return text;\n }\n\n return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nvar domParser = new DOMParser();\n\nvar addAutoPlay = function addAutoPlay(html) {\n var document = domParser.parseFromString(html, 'text/html').documentElement;\n var iframe = document.querySelector('iframe');\n\n if (iframe) {\n if (iframe.src.indexOf('?') !== -1) {\n iframe.src += '&';\n } else {\n iframe.src += '?';\n }\n\n iframe.src += 'autoplay=1&auto_play=1';\n\n // DOM parser creates html/body elements around original HTML fragment,\n // so we need to get innerHTML out of the body and not the entire document\n return document.querySelector('body').innerHTML;\n }\n\n return html;\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: 280,\n embedded: false\n }, _this.handlePhotoClick = function () {\n var _this$props = _this.props,\n card = _this$props.card,\n onOpenMedia = _this$props.onOpenMedia;\n\n\n onOpenMedia(__WEBPACK_IMPORTED_MODULE_5_immutable___default.a.fromJS([{\n type: 'image',\n url: card.get('embed_url'),\n description: card.get('title'),\n meta: {\n original: {\n width: card.get('width'),\n height: card.get('height')\n }\n }\n }]), 0);\n }, _this.handleEmbedClick = function () {\n var card = _this.props.card;\n\n\n if (card.get('type') === 'photo') {\n _this.handlePhotoClick();\n } else {\n _this.setState({ embedded: true });\n }\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.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.card !== nextProps.card) {\n this.setState({ embedded: false });\n }\n };\n\n Card.prototype.renderVideo = function renderVideo() {\n var card = this.props.card;\n\n var content = { __html: addAutoPlay(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__image status-card-video',\n dangerouslySetInnerHTML: content,\n style: { height: height }\n });\n };\n\n Card.prototype.render = function render() {\n var _props = this.props,\n card = _props.card,\n maxDescription = _props.maxDescription;\n var _state = this.state,\n width = _state.width,\n embedded = _state.embedded;\n\n\n if (card === null) {\n return null;\n }\n\n var provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n var horizontal = card.get('width') > card.get('height') && card.get('width') + 100 >= width || card.get('type') !== 'link';\n var className = __WEBPACK_IMPORTED_MODULE_7_classnames___default()('status-card', { horizontal: horizontal });\n var interactive = card.get('type') !== 'link';\n var title = interactive ? __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n className: 'status-card__title',\n href: card.get('url'),\n title: card.get('title'),\n rel: 'noopener',\n target: '_blank'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('strong', {}, void 0, card.get('title'))) : __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'));\n var ratio = card.get('width') / card.get('height');\n var height = card.get('width') > card.get('height') ? width / ratio : width * ratio;\n\n var description = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__content'\n }, void 0, title, !horizontal && __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('p', {\n className: 'status-card__description'\n }, void 0, trim(card.get('description') || '', maxDescription)), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('span', {\n className: 'status-card__host'\n }, void 0, provider));\n\n var embed = '';\n var thumbnail = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n style: { backgroundImage: 'url(' + card.get('image') + ')', width: horizontal ? width : null, height: horizontal ? height : null },\n className: 'status-card__image-image'\n });\n\n if (interactive) {\n if (embedded) {\n embed = this.renderVideo();\n } else {\n var iconVariant = 'play';\n\n if (card.get('type') === 'photo') {\n iconVariant = 'search-plus';\n }\n\n embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__image'\n }, void 0, thumbnail, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__actions'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {}, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('button', {\n onClick: this.handleEmbedClick\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-' + iconVariant\n })), __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('a', {\n href: card.get('url'),\n target: '_blank',\n rel: 'noopener'\n }, void 0, __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('i', {\n className: 'fa fa-external-link'\n })))));\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'div',\n { className: className, ref: this.setRef },\n embed,\n description\n );\n } else if (card.get('image')) {\n embed = __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()('div', {\n className: 'status-card__image'\n }, void 0, thumbnail);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(\n 'a',\n { href: card.get('url'), className: className, target: '_blank', rel: 'noopener', ref: this.setRef },\n embed,\n description\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/***/ 333:\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__(74)(module), __webpack_require__(46)))\n\n/***/ }),\n\n/***/ 6:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"e\", function() { return addLocaleData; });\n/* unused harmony export intlShape */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"g\", function() { return injectIntl; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"f\", function() { return defineMessages; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return IntlProvider; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return FormattedDate; });\n/* unused harmony export FormattedTime */\n/* unused harmony export FormattedRelative */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return FormattedNumber; });\n/* unused harmony export FormattedPlural */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return FormattedMessage; });\n/* unused harmony export FormattedHTMLMessage */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__ = __webpack_require__(81);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat__ = __webpack_require__(54);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__ = __webpack_require__(62);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_prop_types___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_prop_types__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant__ = __webpack_require__(16);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_invariant___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_invariant__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache__ = __webpack_require__(82);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_intl_format_cache__);\n/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n\n\n\n\n\n\n\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__addLocaleData(localeData);\n __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.__localeData__[normalizedLocale] && __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.bool;\nvar number = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.number;\nvar string = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.string;\nvar func = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.func;\nvar object = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.object;\nvar oneOf = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOf;\nvar shape = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.shape;\nvar any = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.any;\nvar oneOfType = __WEBPACK_IMPORTED_MODULE_3_prop_types___default.a.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&amp;',\n '>': '&gt;',\n '<': '&lt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return __WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (false) {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, __WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && \"production\" === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (false) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (false) {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (false) {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\nvar format = Object.freeze({\n formatDate: formatDate,\n formatTime: formatTime,\n formatRelative: formatRelative,\n formatNumber: formatNumber,\n formatPlural: formatPlural,\n formatMessage: formatMessage,\n formatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n __WEBPACK_IMPORTED_MODULE_5_invariant___default()(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.DateTimeFormat),\n getNumberFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(Intl.NumberFormat),\n getMessageFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_1_intl_messageformat___default.a),\n getRelativeFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(__WEBPACK_IMPORTED_MODULE_2_intl_relativeformat___default.a),\n getPluralFormat: __WEBPACK_IMPORTED_MODULE_6_intl_format_cache___default()(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n if (false) {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"Children\"].only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\n false ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedDate);\n }\n }]);\n return FormattedDate;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedTime);\n }\n }]);\n return FormattedTime;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedRelative);\n }\n }]);\n return FormattedRelative;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedNumber);\n }\n }]);\n return FormattedNumber;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Text, null, formattedPlural);\n }\n }]);\n return FormattedPlural;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (Object(__WEBPACK_IMPORTED_MODULE_4_react__[\"isValidElement\"])(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return __WEBPACK_IMPORTED_MODULE_4_react__[\"createElement\"].apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\n false ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(__WEBPACK_IMPORTED_MODULE_4_react__[\"Component\"]);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\n false ? void 0 : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(__WEBPACK_IMPORTED_MODULE_0__locale_data_index_js___default.a);\n\n\n\n/***/ }),\n\n/***/ 690:\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_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_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__ = __webpack_require__(76);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__mastodon_ready__ = __webpack_require__(90);\n\n\n\n\n\nwindow.addEventListener('message', function (e) {\n var data = e.data || {};\n\n if (!window.parent || data.type !== 'setHeight') {\n return;\n }\n\n Object(__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__[\"default\"])(function () {\n window.parent.postMessage({\n type: 'setHeight',\n id: data.id,\n height: document.getElementsByTagName('html')[0].scrollHeight\n }, '*');\n });\n});\n\nfunction main() {\n var _require = __webpack_require__(99),\n length = _require.length;\n\n var IntlRelativeFormat = __webpack_require__(62).default;\n\n var _require2 = __webpack_require__(144),\n delegate = _require2.delegate;\n\n var emojify = __webpack_require__(72).default;\n\n var _require3 = __webpack_require__(7),\n getLocale = _require3.getLocale;\n\n var _getLocale = getLocale(),\n localeData = _getLocale.localeData;\n\n var VideoContainer = __webpack_require__(691).default;\n var CardContainer = __webpack_require__(692).default;\n var React = __webpack_require__(0);\n var ReactDOM = __webpack_require__(20);\n\n localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n Object(__WEBPACK_IMPORTED_MODULE_3__mastodon_ready__[\"default\"])(function () {\n var locale = document.documentElement.lang;\n\n var dateTimeFormat = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric'\n });\n\n var relativeFormat = new IntlRelativeFormat(locale);\n\n [].forEach.call(document.querySelectorAll('.emojify'), function (content) {\n content.innerHTML = emojify(content.innerHTML);\n });\n\n [].forEach.call(document.querySelectorAll('time.formatted'), function (content) {\n var datetime = new Date(content.getAttribute('datetime'));\n var formattedDate = dateTimeFormat.format(datetime);\n\n content.title = formattedDate;\n content.textContent = formattedDate;\n });\n\n [].forEach.call(document.querySelectorAll('time.time-ago'), function (content) {\n var datetime = new Date(content.getAttribute('datetime'));\n\n content.title = dateTimeFormat.format(datetime);\n content.textContent = relativeFormat.format(datetime);\n });\n\n [].forEach.call(document.querySelectorAll('.logo-button'), function (content) {\n content.addEventListener('click', function (e) {\n e.preventDefault();\n window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n });\n });\n\n [].forEach.call(document.querySelectorAll('[data-component=\"Video\"]'), function (content) {\n var props = JSON.parse(content.getAttribute('data-props'));\n ReactDOM.render(React.createElement(VideoContainer, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ locale: locale }, props)), content);\n });\n\n [].forEach.call(document.querySelectorAll('[data-component=\"Card\"]'), function (content) {\n var props = JSON.parse(content.getAttribute('data-props'));\n ReactDOM.render(React.createElement(CardContainer, __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_extends___default()({ locale: locale }, props)), content);\n });\n\n var mediaGalleries = document.querySelectorAll('[data-component=\"MediaGallery\"]');\n\n if (mediaGalleries.length > 0) {\n var MediaGalleriesContainer = __webpack_require__(693).default;\n var content = document.createElement('div');\n\n ReactDOM.render(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(MediaGalleriesContainer, {\n locale: locale,\n galleries: mediaGalleries\n }), content);\n document.body.appendChild(content);\n }\n });\n\n delegate(document, '.webapp-btn', 'click', function (_ref) {\n var target = _ref.target,\n button = _ref.button;\n\n if (button !== 0) {\n return true;\n }\n window.location.href = target.href;\n return false;\n });\n\n delegate(document, '.status__content__spoiler-link', 'click', function (_ref2) {\n var target = _ref2.target;\n\n var contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n if (contentEl.style.display === 'block') {\n contentEl.style.display = 'none';\n target.parentNode.style.marginBottom = 0;\n } else {\n contentEl.style.display = 'block';\n target.parentNode.style.marginBottom = null;\n }\n\n return false;\n });\n\n delegate(document, '.account_display_name', 'input', function (_ref3) {\n var target = _ref3.target;\n\n var nameCounter = document.querySelector('.name-counter');\n\n if (nameCounter) {\n nameCounter.textContent = 30 - length(target.value);\n }\n });\n\n delegate(document, '.account_note', 'input', function (_ref4) {\n var target = _ref4.target;\n\n var noteCounter = document.querySelector('.note-counter');\n\n if (noteCounter) {\n noteCounter.textContent = 160 - length(target.value);\n }\n });\n\n delegate(document, '#account_avatar', 'change', function (_ref5) {\n var target = _ref5.target;\n\n var avatar = document.querySelector('.card.compact .avatar img');\n\n var _ref6 = target.files || [],\n file = _ref6[0];\n\n var url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n avatar.src = url;\n });\n\n delegate(document, '#account_header', 'change', function (_ref7) {\n var target = _ref7.target;\n\n var header = document.querySelector('.card.compact');\n\n var _ref8 = target.files || [],\n file = _ref8[0];\n\n var url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n header.style.backgroundImage = 'url(' + url + ')';\n });\n}\n\nObject(__WEBPACK_IMPORTED_MODULE_2__mastodon_load_polyfills__[\"a\" /* default */])().then(main).catch(function (error) {\n console.error(error);\n});\n\n/***/ }),\n\n/***/ 691:\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 VideoContainer; });\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_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__locales__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__features_video__ = __webpack_require__(75);\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_7__locales__[\"getLocale\"])(),\n localeData = _getLocale.localeData,\n messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar VideoContainer = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(VideoContainer, _React$PureComponent);\n\n function VideoContainer() {\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, VideoContainer);\n\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n VideoContainer.prototype.render = function render() {\n var _props = this.props,\n locale = _props.locale,\n props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['locale']);\n\n return __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react_intl__[\"d\" /* IntlProvider */], {\n locale: locale,\n messages: messages\n }, void 0, __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_8__features_video__[\"default\"], props));\n };\n\n return VideoContainer;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 692:\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 CardContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__features_status_components_card__ = __webpack_require__(332);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_immutable__);\n\n\n\n\n\n\n\n\n\n\nvar CardContainer = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_inherits___default()(CardContainer, _React$PureComponent);\n\n function CardContainer() {\n __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_classCallCheck___default()(this, CardContainer);\n\n return __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.apply(this, arguments));\n }\n\n CardContainer.prototype.render = function render() {\n var _props = this.props,\n card = _props.card,\n props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_props, ['card']);\n\n return __WEBPACK_IMPORTED_MODULE_5_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_6__features_status_components_card__[\"a\" /* default */], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({ card: Object(__WEBPACK_IMPORTED_MODULE_7_immutable__[\"fromJS\"])(card) }, props));\n };\n\n return CardContainer;\n}(__WEBPACK_IMPORTED_MODULE_5_react___default.a.PureComponent);\n\n\n\n/***/ }),\n\n/***/ 693:\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 MediaGalleriesContainer; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(29);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__ = __webpack_require__(31);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__ = __webpack_require__(2);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react__ = __webpack_require__(0);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_react___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_react__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom__ = __webpack_require__(20);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_react_dom___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_react_dom__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8_react_intl__ = __webpack_require__(6);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__locales__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_media_gallery__ = __webpack_require__(154);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_modal_root__ = __webpack_require__(247);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__ = __webpack_require__(248);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_immutable__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13_immutable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_13_immutable__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar _getLocale = Object(__WEBPACK_IMPORTED_MODULE_9__locales__[\"getLocale\"])(),\n localeData = _getLocale.localeData,\n messages = _getLocale.messages;\n\nObject(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"e\" /* addLocaleData */])(localeData);\n\nvar MediaGalleriesContainer = function (_React$PureComponent) {\n __WEBPACK_IMPORTED_MODULE_5_babel_runtime_helpers_inherits___default()(MediaGalleriesContainer, _React$PureComponent);\n\n function MediaGalleriesContainer() {\n var _temp, _this, _ret;\n\n __WEBPACK_IMPORTED_MODULE_3_babel_runtime_helpers_classCallCheck___default()(this, MediaGalleriesContainer);\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_4_babel_runtime_helpers_possibleConstructorReturn___default()(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.state = {\n media: null,\n index: null\n }, _this.handleOpenMedia = function (media, index) {\n document.body.classList.add('media-gallery-standalone__body');\n _this.setState({ media: media, index: index });\n }, _this.handleCloseMedia = function () {\n document.body.classList.remove('media-gallery-standalone__body');\n _this.setState({ media: null, index: null });\n }, _temp), __WEBPACK_IMPORTED_MODULE_4_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);\n }\n\n MediaGalleriesContainer.prototype.render = function render() {\n var _this2 = this;\n\n var _props = this.props,\n locale = _props.locale,\n galleries = _props.galleries;\n\n\n return __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_8_react_intl__[\"d\" /* IntlProvider */], {\n locale: locale,\n messages: messages\n }, void 0, __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_6_react___default.a.Fragment, {}, void 0, [].map.call(galleries, function (gallery) {\n var _JSON$parse = JSON.parse(gallery.getAttribute('data-props')),\n media = _JSON$parse.media,\n props = __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_objectWithoutProperties___default()(_JSON$parse, ['media']);\n\n return __WEBPACK_IMPORTED_MODULE_7_react_dom___default.a.createPortal(__WEBPACK_IMPORTED_MODULE_6_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_10__components_media_gallery__[\"default\"], __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default()({}, props, {\n media: Object(__WEBPACK_IMPORTED_MODULE_13_immutable__[\"fromJS\"])(media),\n onOpenMedia: _this2.handleOpenMedia\n })), gallery);\n }), __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_11__components_modal_root__[\"a\" /* default */], {\n onClose: this.handleCloseMedia\n }, void 0, this.state.media === null || this.state.index === null ? null : __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_jsx___default()(__WEBPACK_IMPORTED_MODULE_12__features_ui_components_media_modal__[\"a\" /* default */], {\n media: this.state.media,\n index: this.state.index,\n onClose: this.handleCloseMedia\n }))));\n };\n\n return MediaGalleriesContainer;\n}(__WEBPACK_IMPORTED_MODULE_6_react___default.a.PureComponent);\n\n\n\n/***/ })\n\n},[690]);\n\n\n// WEBPACK FOOTER //\n// public.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, displaySensitiveMedia } 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 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 (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 const focusX = attachment.getIn(['meta', 'focus', 'x']) || 0;\n const focusY = attachment.getIn(['meta', 'focus', 'y']) || 0;\n const x = ((focusX / 2) + .5) * 100;\n const y = ((focusY / -2) + .5) * 100;\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\n src={previewUrl}\n srcSet={srcSet}\n sizes={sizes}\n alt={attachment.get('description')}\n title={attachment.get('description')}\n style={{ objectPosition: `${x}% ${y}%` }}\n />\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 || displaySensitiveMedia,\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 (width) {\n style.height = width / this.props.media.getIn([0, 'meta', 'small', 'aspect']);\n }\n } else if (width) {\n style.height = width / (16/9);\n } else {\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 type='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} ref={this.handleRef}>\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 PropTypes from 'prop-types';\nimport Immutable from 'immutable';\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\nconst trim = (text, len) => {\n const cut = text.indexOf(' ', len);\n\n if (cut === -1) {\n return text;\n }\n\n return text.substring(0, cut) + (text.length > len ? '…' : '');\n};\n\nconst domParser = new DOMParser();\n\nconst addAutoPlay = html => {\n const document = domParser.parseFromString(html, 'text/html').documentElement;\n const iframe = document.querySelector('iframe');\n\n if (iframe) {\n if (iframe.src.indexOf('?') !== -1) {\n iframe.src += '&';\n } else {\n iframe.src += '?';\n }\n\n iframe.src += 'autoplay=1&auto_play=1';\n\n // DOM parser creates html/body elements around original HTML fragment,\n // so we need to get innerHTML out of the body and not the entire document\n return document.querySelector('body').innerHTML;\n }\n\n return html;\n};\n\nexport default class Card extends React.PureComponent {\n\n static propTypes = {\n card: ImmutablePropTypes.map,\n maxDescription: PropTypes.number,\n onOpenMedia: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n maxDescription: 50,\n };\n\n state = {\n width: 280,\n embedded: false,\n };\n\n componentWillReceiveProps (nextProps) {\n if (this.props.card !== nextProps.card) {\n this.setState({ embedded: false });\n }\n }\n\n handlePhotoClick = () => {\n const { card, onOpenMedia } = this.props;\n\n onOpenMedia(\n Immutable.fromJS([\n {\n type: 'image',\n url: card.get('embed_url'),\n description: card.get('title'),\n meta: {\n original: {\n width: card.get('width'),\n height: card.get('height'),\n },\n },\n },\n ]),\n 0\n );\n };\n\n handleEmbedClick = () => {\n const { card } = this.props;\n\n if (card.get('type') === 'photo') {\n this.handlePhotoClick();\n } else {\n this.setState({ embedded: true });\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: addAutoPlay(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__image status-card-video'\n dangerouslySetInnerHTML={content}\n style={{ height }}\n />\n );\n }\n\n render () {\n const { card, maxDescription } = this.props;\n const { width, embedded } = this.state;\n\n if (card === null) {\n return null;\n }\n\n const provider = card.get('provider_name').length === 0 ? decodeIDNA(getHostname(card.get('url'))) : card.get('provider_name');\n const horizontal = card.get('width') > card.get('height') && (card.get('width') + 100 >= width) || card.get('type') !== 'link';\n const className = classnames('status-card', { horizontal });\n const interactive = card.get('type') !== 'link';\n const title = interactive ? <a className='status-card__title' href={card.get('url')} title={card.get('title')} rel='noopener' target='_blank'><strong>{card.get('title')}</strong></a> : <strong className='status-card__title' title={card.get('title')}>{card.get('title')}</strong>;\n const ratio = card.get('width') / card.get('height');\n const height = card.get('width') > card.get('height') ? (width / ratio) : (width * ratio);\n\n const description = (\n <div className='status-card__content'>\n {title}\n {!horizontal && <p className='status-card__description'>{trim(card.get('description') || '', maxDescription)}</p>}\n <span className='status-card__host'>{provider}</span>\n </div>\n );\n\n let embed = '';\n let thumbnail = <div style={{ backgroundImage: `url(${card.get('image')})`, width: horizontal ? width : null, height: horizontal ? height : null }} className='status-card__image-image' />;\n\n if (interactive) {\n if (embedded) {\n embed = this.renderVideo();\n } else {\n let iconVariant = 'play';\n\n if (card.get('type') === 'photo') {\n iconVariant = 'search-plus';\n }\n\n embed = (\n <div className='status-card__image'>\n {thumbnail}\n\n <div className='status-card__actions'>\n <div>\n <button onClick={this.handleEmbedClick}><i className={`fa fa-${iconVariant}`} /></button>\n <a href={card.get('url')} target='_blank' rel='noopener'><i className='fa fa-external-link' /></a>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div className={className} ref={this.setRef}>\n {embed}\n {description}\n </div>\n );\n } else if (card.get('image')) {\n embed = (\n <div className='status-card__image'>\n {thumbnail}\n </div>\n );\n }\n\n return (\n <a href={card.get('url')} className={className} target='_blank' rel='noopener' ref={this.setRef}>\n {embed}\n {description}\n </a>\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","/*\n * Copyright 2017, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nimport allLocaleData from '../locale-data/index.js';\nimport IntlMessageFormat from 'intl-messageformat';\nimport IntlRelativeFormat from 'intl-relativeformat';\nimport PropTypes from 'prop-types';\nimport React, { Children, Component, createElement, isValidElement } from 'react';\nimport invariant from 'invariant';\nimport memoizeIntlConstructor from 'intl-format-cache';\n\n// GENERATED FILE\nvar defaultLocaleData = { \"locale\": \"en\", \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";return n == 1 && v0 ? \"one\" : \"other\";\n }, \"fields\": { \"year\": { \"displayName\": \"year\", \"relative\": { \"0\": \"this year\", \"1\": \"next year\", \"-1\": \"last year\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} year\", \"other\": \"in {0} years\" }, \"past\": { \"one\": \"{0} year ago\", \"other\": \"{0} years ago\" } } }, \"month\": { \"displayName\": \"month\", \"relative\": { \"0\": \"this month\", \"1\": \"next month\", \"-1\": \"last month\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} month\", \"other\": \"in {0} months\" }, \"past\": { \"one\": \"{0} month ago\", \"other\": \"{0} months ago\" } } }, \"day\": { \"displayName\": \"day\", \"relative\": { \"0\": \"today\", \"1\": \"tomorrow\", \"-1\": \"yesterday\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} day\", \"other\": \"in {0} days\" }, \"past\": { \"one\": \"{0} day ago\", \"other\": \"{0} days ago\" } } }, \"hour\": { \"displayName\": \"hour\", \"relative\": { \"0\": \"this hour\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} hour\", \"other\": \"in {0} hours\" }, \"past\": { \"one\": \"{0} hour ago\", \"other\": \"{0} hours ago\" } } }, \"minute\": { \"displayName\": \"minute\", \"relative\": { \"0\": \"this minute\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} minute\", \"other\": \"in {0} minutes\" }, \"past\": { \"one\": \"{0} minute ago\", \"other\": \"{0} minutes ago\" } } }, \"second\": { \"displayName\": \"second\", \"relative\": { \"0\": \"now\" }, \"relativeTime\": { \"future\": { \"one\": \"in {0} second\", \"other\": \"in {0} seconds\" }, \"past\": { \"one\": \"{0} second ago\", \"other\": \"{0} seconds ago\" } } } } };\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction addLocaleData() {\n var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var locales = Array.isArray(data) ? data : [data];\n\n locales.forEach(function (localeData) {\n if (localeData && localeData.locale) {\n IntlMessageFormat.__addLocaleData(localeData);\n IntlRelativeFormat.__addLocaleData(localeData);\n }\n });\n}\n\nfunction hasLocaleData(locale) {\n var localeParts = (locale || '').split('-');\n\n while (localeParts.length > 0) {\n if (hasIMFAndIRFLocaleData(localeParts.join('-'))) {\n return true;\n }\n\n localeParts.pop();\n }\n\n return false;\n}\n\nfunction hasIMFAndIRFLocaleData(locale) {\n var normalizedLocale = locale && locale.toLowerCase();\n\n return !!(IntlMessageFormat.__localeData__[normalizedLocale] && IntlRelativeFormat.__localeData__[normalizedLocale]);\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n\n\n\n\n\n\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar toConsumableArray = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar bool = PropTypes.bool;\nvar number = PropTypes.number;\nvar string = PropTypes.string;\nvar func = PropTypes.func;\nvar object = PropTypes.object;\nvar oneOf = PropTypes.oneOf;\nvar shape = PropTypes.shape;\nvar any = PropTypes.any;\nvar oneOfType = PropTypes.oneOfType;\n\nvar localeMatcher = oneOf(['best fit', 'lookup']);\nvar narrowShortLong = oneOf(['narrow', 'short', 'long']);\nvar numeric2digit = oneOf(['numeric', '2-digit']);\nvar funcReq = func.isRequired;\n\nvar intlConfigPropTypes = {\n locale: string,\n formats: object,\n messages: object,\n textComponent: any,\n\n defaultLocale: string,\n defaultFormats: object\n};\n\nvar intlFormatPropTypes = {\n formatDate: funcReq,\n formatTime: funcReq,\n formatRelative: funcReq,\n formatNumber: funcReq,\n formatPlural: funcReq,\n formatMessage: funcReq,\n formatHTMLMessage: funcReq\n};\n\nvar intlShape = shape(_extends({}, intlConfigPropTypes, intlFormatPropTypes, {\n formatters: object,\n now: funcReq\n}));\n\nvar messageDescriptorPropTypes = {\n id: string.isRequired,\n description: oneOfType([string, object]),\n defaultMessage: string\n};\n\nvar dateTimeFormatPropTypes = {\n localeMatcher: localeMatcher,\n formatMatcher: oneOf(['basic', 'best fit']),\n\n timeZone: string,\n hour12: bool,\n\n weekday: narrowShortLong,\n era: narrowShortLong,\n year: numeric2digit,\n month: oneOf(['numeric', '2-digit', 'narrow', 'short', 'long']),\n day: numeric2digit,\n hour: numeric2digit,\n minute: numeric2digit,\n second: numeric2digit,\n timeZoneName: oneOf(['short', 'long'])\n};\n\nvar numberFormatPropTypes = {\n localeMatcher: localeMatcher,\n\n style: oneOf(['decimal', 'currency', 'percent']),\n currency: string,\n currencyDisplay: oneOf(['symbol', 'code', 'name']),\n useGrouping: bool,\n\n minimumIntegerDigits: number,\n minimumFractionDigits: number,\n maximumFractionDigits: number,\n minimumSignificantDigits: number,\n maximumSignificantDigits: number\n};\n\nvar relativeFormatPropTypes = {\n style: oneOf(['best fit', 'numeric']),\n units: oneOf(['second', 'minute', 'hour', 'day', 'month', 'year'])\n};\n\nvar pluralFormatPropTypes = {\n style: oneOf(['cardinal', 'ordinal'])\n};\n\n/*\nHTML escaping and shallow-equals implementations are the same as React's\n(on purpose.) Therefore, it has the following Copyright and Licensing:\n\nCopyright 2013-2014, Facebook, Inc.\nAll rights reserved.\n\nThis source code is licensed under the BSD-style license found in the LICENSE\nfile in the root directory of React's source tree.\n*/\n\nvar intlConfigPropNames = Object.keys(intlConfigPropTypes);\n\nvar ESCAPED_CHARS = {\n '&': '&amp;',\n '>': '&gt;',\n '<': '&lt;',\n '\"': '&quot;',\n \"'\": '&#x27;'\n};\n\nvar UNSAFE_CHARS_REGEX = /[&><\"']/g;\n\nfunction escape(str) {\n return ('' + str).replace(UNSAFE_CHARS_REGEX, function (match) {\n return ESCAPED_CHARS[match];\n });\n}\n\nfunction filterProps(props, whitelist) {\n var defaults$$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n return whitelist.reduce(function (filtered, name) {\n if (props.hasOwnProperty(name)) {\n filtered[name] = props[name];\n } else if (defaults$$1.hasOwnProperty(name)) {\n filtered[name] = defaults$$1[name];\n }\n\n return filtered;\n }, {});\n}\n\nfunction invariantIntlContext() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n intl = _ref.intl;\n\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\n\nfunction shallowEquals(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shouldIntlComponentUpdate(_ref2, nextProps, nextState) {\n var props = _ref2.props,\n state = _ref2.state,\n _ref2$context = _ref2.context,\n context = _ref2$context === undefined ? {} : _ref2$context;\n var nextContext = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _context$intl = context.intl,\n intl = _context$intl === undefined ? {} : _context$intl;\n var _nextContext$intl = nextContext.intl,\n nextIntl = _nextContext$intl === undefined ? {} : _nextContext$intl;\n\n\n return !shallowEquals(nextProps, props) || !shallowEquals(nextState, state) || !(nextIntl === intl || shallowEquals(filterProps(nextIntl, intlConfigPropNames), filterProps(intl, intlConfigPropNames)));\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// Inspired by react-redux's `connect()` HOC factory function implementation:\n// https://github.com/rackt/react-redux\n\nfunction getDisplayName(Component$$1) {\n return Component$$1.displayName || Component$$1.name || 'Component';\n}\n\nfunction injectIntl(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$intlPropName = options.intlPropName,\n intlPropName = _options$intlPropName === undefined ? 'intl' : _options$intlPropName,\n _options$withRef = options.withRef,\n withRef = _options$withRef === undefined ? false : _options$withRef;\n\n var InjectIntl = function (_Component) {\n inherits(InjectIntl, _Component);\n\n function InjectIntl(props, context) {\n classCallCheck(this, InjectIntl);\n\n var _this = possibleConstructorReturn(this, (InjectIntl.__proto__ || Object.getPrototypeOf(InjectIntl)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(InjectIntl, [{\n key: 'getWrappedInstance',\n value: function getWrappedInstance() {\n invariant(withRef, '[React Intl] To access the wrapped instance, ' + 'the `{withRef: true}` option must be set when calling: ' + '`injectIntl()`');\n\n return this.refs.wrappedInstance;\n }\n }, {\n key: 'render',\n value: function render() {\n return React.createElement(WrappedComponent, _extends({}, this.props, defineProperty({}, intlPropName, this.context.intl), {\n ref: withRef ? 'wrappedInstance' : null\n }));\n }\n }]);\n return InjectIntl;\n }(Component);\n\n InjectIntl.displayName = 'InjectIntl(' + getDisplayName(WrappedComponent) + ')';\n InjectIntl.contextTypes = {\n intl: intlShape\n };\n InjectIntl.WrappedComponent = WrappedComponent;\n\n\n return InjectIntl;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nfunction defineMessages(messageDescriptors) {\n // This simply returns what's passed-in because it's meant to be a hook for\n // babel-plugin-react-intl.\n return messageDescriptors;\n}\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\n// This is a \"hack\" until a proper `intl-pluralformat` package is created.\n\nfunction resolveLocale(locales) {\n // IntlMessageFormat#_resolveLocale() does not depend on `this`.\n return IntlMessageFormat.prototype._resolveLocale(locales);\n}\n\nfunction findPluralFunction(locale) {\n // IntlMessageFormat#_findPluralFunction() does not depend on `this`.\n return IntlMessageFormat.prototype._findPluralRuleFunction(locale);\n}\n\nvar IntlPluralFormat = function IntlPluralFormat(locales) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlPluralFormat);\n\n var useOrdinal = options.style === 'ordinal';\n var pluralFn = findPluralFunction(resolveLocale(locales));\n\n this.format = function (value) {\n return pluralFn(value, useOrdinal);\n };\n};\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar DATE_TIME_FORMAT_OPTIONS = Object.keys(dateTimeFormatPropTypes);\nvar NUMBER_FORMAT_OPTIONS = Object.keys(numberFormatPropTypes);\nvar RELATIVE_FORMAT_OPTIONS = Object.keys(relativeFormatPropTypes);\nvar PLURAL_FORMAT_OPTIONS = Object.keys(pluralFormatPropTypes);\n\nvar RELATIVE_FORMAT_THRESHOLDS = {\n second: 60, // seconds to minute\n minute: 60, // minutes to hour\n hour: 24, // hours to day\n day: 30, // days to month\n month: 12 // months to year\n};\n\nfunction updateRelativeFormatThresholds(newThresholds) {\n var thresholds = IntlRelativeFormat.thresholds;\n thresholds.second = newThresholds.second;\n thresholds.minute = newThresholds.minute;\n thresholds.hour = newThresholds.hour;\n thresholds.day = newThresholds.day;\n thresholds.month = newThresholds.month;\n}\n\nfunction getNamedFormat(formats, type, name) {\n var format = formats && formats[type] && formats[type][name];\n if (format) {\n return format;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] No ' + type + ' format named: ' + name);\n }\n}\n\nfunction formatDate(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'date', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting date.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatTime(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var defaults$$1 = format && getNamedFormat(formats, 'time', format);\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, defaults$$1);\n\n if (!filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = _extends({}, filteredOptions, { hour: 'numeric', minute: 'numeric' });\n }\n\n try {\n return state.getDateTimeFormat(locale, filteredOptions).format(date);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting time.\\n' + e);\n }\n }\n\n return String(date);\n}\n\nfunction formatRelative(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var date = new Date(value);\n var now = new Date(options.now);\n var defaults$$1 = format && getNamedFormat(formats, 'relative', format);\n var filteredOptions = filterProps(options, RELATIVE_FORMAT_OPTIONS, defaults$$1);\n\n // Capture the current threshold values, then temporarily override them with\n // specific values just for this render.\n var oldThresholds = _extends({}, IntlRelativeFormat.thresholds);\n updateRelativeFormatThresholds(RELATIVE_FORMAT_THRESHOLDS);\n\n try {\n return state.getRelativeFormat(locale, filteredOptions).format(date, {\n now: isFinite(now) ? now : state.now()\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting relative time.\\n' + e);\n }\n } finally {\n updateRelativeFormatThresholds(oldThresholds);\n }\n\n return String(date);\n}\n\nfunction formatNumber(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats;\n var format = options.format;\n\n\n var defaults$$1 = format && getNamedFormat(formats, 'number', format);\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults$$1);\n\n try {\n return state.getNumberFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting number.\\n' + e);\n }\n }\n\n return String(value);\n}\n\nfunction formatPlural(config, state, value) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale;\n\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return state.getPluralFormat(locale, filteredOptions).format(value);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting plural.\\n' + e);\n }\n }\n\n return 'other';\n}\n\nfunction formatMessage(config, state) {\n var messageDescriptor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var values = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var locale = config.locale,\n formats = config.formats,\n messages = config.messages,\n defaultLocale = config.defaultLocale,\n defaultFormats = config.defaultFormats;\n var id = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage;\n\n // `id` is a required field of a Message Descriptor.\n\n invariant(id, '[React Intl] An `id` must be provided to format a message.');\n\n var message = messages && messages[id];\n var hasValues = Object.keys(values).length > 0;\n\n // Avoid expensive message formatting for simple messages without values. In\n // development messages will always be formatted in case of missing values.\n if (!hasValues && process.env.NODE_ENV === 'production') {\n return message || defaultMessage || id;\n }\n\n var formattedMessage = void 0;\n\n if (message) {\n try {\n var formatter = state.getMessageFormat(message, locale, formats);\n\n formattedMessage = formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : '') + ('\\n' + e));\n }\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale, and a default message is in the source.\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n console.error('[React Intl] Missing message: \"' + id + '\" for locale: \"' + locale + '\"' + (defaultMessage ? ', using default message as fallback.' : ''));\n }\n }\n }\n\n if (!formattedMessage && defaultMessage) {\n try {\n var _formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats);\n\n formattedMessage = _formatter.format(values);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Error formatting the default message for: \"' + id + '\"' + ('\\n' + e));\n }\n }\n }\n\n if (!formattedMessage) {\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Cannot format message: \"' + id + '\", ' + ('using message ' + (message || defaultMessage ? 'source' : 'id') + ' as fallback.'));\n }\n }\n\n return formattedMessage || message || defaultMessage || id;\n}\n\nfunction formatHTMLMessage(config, state, messageDescriptor) {\n var rawValues = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n // Process all the values before they are used when formatting the ICU\n // Message string. Since the formatted message might be injected via\n // `innerHTML`, all String-based values need to be HTML-escaped.\n var escapedValues = Object.keys(rawValues).reduce(function (escaped, name) {\n var value = rawValues[name];\n escaped[name] = typeof value === 'string' ? escape(value) : value;\n return escaped;\n }, {});\n\n return formatMessage(config, state, messageDescriptor, escapedValues);\n}\n\n\n\nvar format = Object.freeze({\n\tformatDate: formatDate,\n\tformatTime: formatTime,\n\tformatRelative: formatRelative,\n\tformatNumber: formatNumber,\n\tformatPlural: formatPlural,\n\tformatMessage: formatMessage,\n\tformatHTMLMessage: formatHTMLMessage\n});\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar intlConfigPropNames$1 = Object.keys(intlConfigPropTypes);\nvar intlFormatPropNames = Object.keys(intlFormatPropTypes);\n\n// These are not a static property on the `IntlProvider` class so the intl\n// config values can be inherited from an <IntlProvider> ancestor.\nvar defaultProps = {\n formats: {},\n messages: {},\n textComponent: 'span',\n\n defaultLocale: 'en',\n defaultFormats: {}\n};\n\nvar IntlProvider = function (_Component) {\n inherits(IntlProvider, _Component);\n\n function IntlProvider(props) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n classCallCheck(this, IntlProvider);\n\n var _this = possibleConstructorReturn(this, (IntlProvider.__proto__ || Object.getPrototypeOf(IntlProvider)).call(this, props, context));\n\n invariant(typeof Intl !== 'undefined', '[React Intl] The `Intl` APIs must be available in the runtime, ' + 'and do not appear to be built-in. An `Intl` polyfill should be loaded.\\n' + 'See: http://formatjs.io/guides/runtime-environments/');\n\n var intlContext = context.intl;\n\n // Used to stabilize time when performing an initial rendering so that\n // all relative times use the same reference \"now\" time.\n\n var initialNow = void 0;\n if (isFinite(props.initialNow)) {\n initialNow = Number(props.initialNow);\n } else {\n // When an `initialNow` isn't provided via `props`, look to see an\n // <IntlProvider> exists in the ancestry and call its `now()`\n // function to propagate its value for \"now\".\n initialNow = intlContext ? intlContext.now() : Date.now();\n }\n\n // Creating `Intl*` formatters is expensive. If there's a parent\n // `<IntlProvider>`, then its formatters will be used. Otherwise, this\n // memoize the `Intl*` constructors and cache them for the lifecycle of\n // this IntlProvider instance.\n\n var _ref = intlContext || {},\n _ref$formatters = _ref.formatters,\n formatters = _ref$formatters === undefined ? {\n getDateTimeFormat: memoizeIntlConstructor(Intl.DateTimeFormat),\n getNumberFormat: memoizeIntlConstructor(Intl.NumberFormat),\n getMessageFormat: memoizeIntlConstructor(IntlMessageFormat),\n getRelativeFormat: memoizeIntlConstructor(IntlRelativeFormat),\n getPluralFormat: memoizeIntlConstructor(IntlPluralFormat)\n } : _ref$formatters;\n\n _this.state = _extends({}, formatters, {\n\n // Wrapper to provide stable \"now\" time for initial render.\n now: function now() {\n return _this._didDisplay ? Date.now() : initialNow;\n }\n });\n return _this;\n }\n\n createClass(IntlProvider, [{\n key: 'getConfig',\n value: function getConfig() {\n var intlContext = this.context.intl;\n\n // Build a whitelisted config object from `props`, defaults, and\n // `context.intl`, if an <IntlProvider> exists in the ancestry.\n\n var config = filterProps(this.props, intlConfigPropNames$1, intlContext);\n\n // Apply default props. This must be applied last after the props have\n // been resolved and inherited from any <IntlProvider> in the ancestry.\n // This matches how React resolves `defaultProps`.\n for (var propName in defaultProps) {\n if (config[propName] === undefined) {\n config[propName] = defaultProps[propName];\n }\n }\n\n if (!hasLocaleData(config.locale)) {\n var _config = config,\n locale = _config.locale,\n defaultLocale = _config.defaultLocale,\n defaultFormats = _config.defaultFormats;\n\n\n if (process.env.NODE_ENV !== 'production') {\n console.error('[React Intl] Missing locale data for locale: \"' + locale + '\". ' + ('Using default locale: \"' + defaultLocale + '\" as fallback.'));\n }\n\n // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n config = _extends({}, config, {\n locale: defaultLocale,\n formats: defaultFormats,\n messages: defaultProps.messages\n });\n }\n\n return config;\n }\n }, {\n key: 'getBoundFormatFns',\n value: function getBoundFormatFns(config, state) {\n return intlFormatPropNames.reduce(function (boundFormatFns, name) {\n boundFormatFns[name] = format[name].bind(null, config, state);\n return boundFormatFns;\n }, {});\n }\n }, {\n key: 'getChildContext',\n value: function getChildContext() {\n var config = this.getConfig();\n\n // Bind intl factories and current config to the format functions.\n var boundFormatFns = this.getBoundFormatFns(config, this.state);\n\n var _state = this.state,\n now = _state.now,\n formatters = objectWithoutProperties(_state, ['now']);\n\n\n return {\n intl: _extends({}, config, boundFormatFns, {\n formatters: formatters,\n now: now\n })\n };\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this._didDisplay = true;\n }\n }, {\n key: 'render',\n value: function render() {\n return Children.only(this.props.children);\n }\n }]);\n return IntlProvider;\n}(Component);\n\nIntlProvider.displayName = 'IntlProvider';\nIntlProvider.contextTypes = {\n intl: intlShape\n};\nIntlProvider.childContextTypes = {\n intl: intlShape.isRequired\n};\nprocess.env.NODE_ENV !== \"production\" ? IntlProvider.propTypes = _extends({}, intlConfigPropTypes, {\n children: PropTypes.element.isRequired,\n initialNow: PropTypes.any\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedDate = function (_Component) {\n inherits(FormattedDate, _Component);\n\n function FormattedDate(props, context) {\n classCallCheck(this, FormattedDate);\n\n var _this = possibleConstructorReturn(this, (FormattedDate.__proto__ || Object.getPrototypeOf(FormattedDate)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedDate, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatDate = _context$intl.formatDate,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedDate = formatDate(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedDate);\n }\n\n return React.createElement(\n Text,\n null,\n formattedDate\n );\n }\n }]);\n return FormattedDate;\n}(Component);\n\nFormattedDate.displayName = 'FormattedDate';\nFormattedDate.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedDate.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedTime = function (_Component) {\n inherits(FormattedTime, _Component);\n\n function FormattedTime(props, context) {\n classCallCheck(this, FormattedTime);\n\n var _this = possibleConstructorReturn(this, (FormattedTime.__proto__ || Object.getPrototypeOf(FormattedTime)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedTime, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatTime = _context$intl.formatTime,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedTime = formatTime(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedTime);\n }\n\n return React.createElement(\n Text,\n null,\n formattedTime\n );\n }\n }]);\n return FormattedTime;\n}(Component);\n\nFormattedTime.displayName = 'FormattedTime';\nFormattedTime.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedTime.propTypes = _extends({}, dateTimeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar SECOND = 1000;\nvar MINUTE = 1000 * 60;\nvar HOUR = 1000 * 60 * 60;\nvar DAY = 1000 * 60 * 60 * 24;\n\n// The maximum timer delay value is a 32-bit signed integer.\n// See: https://mdn.io/setTimeout\nvar MAX_TIMER_DELAY = 2147483647;\n\nfunction selectUnits(delta) {\n var absDelta = Math.abs(delta);\n\n if (absDelta < MINUTE) {\n return 'second';\n }\n\n if (absDelta < HOUR) {\n return 'minute';\n }\n\n if (absDelta < DAY) {\n return 'hour';\n }\n\n // The maximum scheduled delay will be measured in days since the maximum\n // timer delay is less than the number of milliseconds in 25 days.\n return 'day';\n}\n\nfunction getUnitDelay(units) {\n switch (units) {\n case 'second':\n return SECOND;\n case 'minute':\n return MINUTE;\n case 'hour':\n return HOUR;\n case 'day':\n return DAY;\n default:\n return MAX_TIMER_DELAY;\n }\n}\n\nfunction isSameDate(a, b) {\n if (a === b) {\n return true;\n }\n\n var aTime = new Date(a).getTime();\n var bTime = new Date(b).getTime();\n\n return isFinite(aTime) && isFinite(bTime) && aTime === bTime;\n}\n\nvar FormattedRelative = function (_Component) {\n inherits(FormattedRelative, _Component);\n\n function FormattedRelative(props, context) {\n classCallCheck(this, FormattedRelative);\n\n var _this = possibleConstructorReturn(this, (FormattedRelative.__proto__ || Object.getPrototypeOf(FormattedRelative)).call(this, props, context));\n\n invariantIntlContext(context);\n\n var now = isFinite(props.initialNow) ? Number(props.initialNow) : context.intl.now();\n\n // `now` is stored as state so that `render()` remains a function of\n // props + state, instead of accessing `Date.now()` inside `render()`.\n _this.state = { now: now };\n return _this;\n }\n\n createClass(FormattedRelative, [{\n key: 'scheduleNextUpdate',\n value: function scheduleNextUpdate(props, state) {\n var _this2 = this;\n\n // Cancel and pending update because we're scheduling a new update.\n clearTimeout(this._timer);\n\n var value = props.value,\n units = props.units,\n updateInterval = props.updateInterval;\n\n var time = new Date(value).getTime();\n\n // If the `updateInterval` is falsy, including `0` or we don't have a\n // valid date, then auto updates have been turned off, so we bail and\n // skip scheduling an update.\n if (!updateInterval || !isFinite(time)) {\n return;\n }\n\n var delta = time - state.now;\n var unitDelay = getUnitDelay(units || selectUnits(delta));\n var unitRemainder = Math.abs(delta % unitDelay);\n\n // We want the largest possible timer delay which will still display\n // accurate information while reducing unnecessary re-renders. The delay\n // should be until the next \"interesting\" moment, like a tick from\n // \"1 minute ago\" to \"2 minutes ago\" when the delta is 120,000ms.\n var delay = delta < 0 ? Math.max(updateInterval, unitDelay - unitRemainder) : Math.max(updateInterval, unitRemainder);\n\n this._timer = setTimeout(function () {\n _this2.setState({ now: _this2.context.intl.now() });\n }, delay);\n }\n }, {\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.scheduleNextUpdate(this.props, this.state);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var nextValue = _ref.value;\n\n // When the `props.value` date changes, `state.now` needs to be updated,\n // and the next update can be rescheduled.\n if (!isSameDate(nextValue, this.props.value)) {\n this.setState({ now: this.context.intl.now() });\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps, nextState) {\n this.scheduleNextUpdate(nextProps, nextState);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n clearTimeout(this._timer);\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatRelative = _context$intl.formatRelative,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedRelative = formatRelative(value, _extends({}, this.props, this.state));\n\n if (typeof children === 'function') {\n return children(formattedRelative);\n }\n\n return React.createElement(\n Text,\n null,\n formattedRelative\n );\n }\n }]);\n return FormattedRelative;\n}(Component);\n\nFormattedRelative.displayName = 'FormattedRelative';\nFormattedRelative.contextTypes = {\n intl: intlShape\n};\nFormattedRelative.defaultProps = {\n updateInterval: 1000 * 10\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedRelative.propTypes = _extends({}, relativeFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n updateInterval: PropTypes.number,\n initialNow: PropTypes.any,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedNumber = function (_Component) {\n inherits(FormattedNumber, _Component);\n\n function FormattedNumber(props, context) {\n classCallCheck(this, FormattedNumber);\n\n var _this = possibleConstructorReturn(this, (FormattedNumber.__proto__ || Object.getPrototypeOf(FormattedNumber)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedNumber, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatNumber = _context$intl.formatNumber,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n children = _props.children;\n\n\n var formattedNumber = formatNumber(value, this.props);\n\n if (typeof children === 'function') {\n return children(formattedNumber);\n }\n\n return React.createElement(\n Text,\n null,\n formattedNumber\n );\n }\n }]);\n return FormattedNumber;\n}(Component);\n\nFormattedNumber.displayName = 'FormattedNumber';\nFormattedNumber.contextTypes = {\n intl: intlShape\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedNumber.propTypes = _extends({}, numberFormatPropTypes, {\n value: PropTypes.any.isRequired,\n format: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedPlural = function (_Component) {\n inherits(FormattedPlural, _Component);\n\n function FormattedPlural(props, context) {\n classCallCheck(this, FormattedPlural);\n\n var _this = possibleConstructorReturn(this, (FormattedPlural.__proto__ || Object.getPrototypeOf(FormattedPlural)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedPlural, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n for (var _len = arguments.length, next = Array(_len), _key = 0; _key < _len; _key++) {\n next[_key] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatPlural = _context$intl.formatPlural,\n Text = _context$intl.textComponent;\n var _props = this.props,\n value = _props.value,\n other = _props.other,\n children = _props.children;\n\n\n var pluralCategory = formatPlural(value, this.props);\n var formattedPlural = this.props[pluralCategory] || other;\n\n if (typeof children === 'function') {\n return children(formattedPlural);\n }\n\n return React.createElement(\n Text,\n null,\n formattedPlural\n );\n }\n }]);\n return FormattedPlural;\n}(Component);\n\nFormattedPlural.displayName = 'FormattedPlural';\nFormattedPlural.contextTypes = {\n intl: intlShape\n};\nFormattedPlural.defaultProps = {\n style: 'cardinal'\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedPlural.propTypes = _extends({}, pluralFormatPropTypes, {\n value: PropTypes.any.isRequired,\n\n other: PropTypes.node.isRequired,\n zero: PropTypes.node,\n one: PropTypes.node,\n two: PropTypes.node,\n few: PropTypes.node,\n many: PropTypes.node,\n\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedMessage = function (_Component) {\n inherits(FormattedMessage, _Component);\n\n function FormattedMessage(props, context) {\n classCallCheck(this, FormattedMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedMessage.__proto__ || Object.getPrototypeOf(FormattedMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatMessage = _context$intl.formatMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n values = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var tokenDelimiter = void 0;\n var tokenizedValues = void 0;\n var elements = void 0;\n\n var hasValues = values && Object.keys(values).length > 0;\n if (hasValues) {\n // Creates a token with a random UID that should not be guessable or\n // conflict with other parts of the `message` string.\n var uid = Math.floor(Math.random() * 0x10000000000).toString(16);\n\n var generateToken = function () {\n var counter = 0;\n return function () {\n return 'ELEMENT-' + uid + '-' + (counter += 1);\n };\n }();\n\n // Splitting with a delimiter to support IE8. When using a regex\n // with a capture group IE8 does not include the capture group in\n // the resulting array.\n tokenDelimiter = '@__' + uid + '__@';\n tokenizedValues = {};\n elements = {};\n\n // Iterates over the `props` to keep track of any React Element\n // values so they can be represented by the `token` as a placeholder\n // when the `message` is formatted. This allows the formatted\n // message to then be broken-up into parts with references to the\n // React Elements inserted back in.\n Object.keys(values).forEach(function (name) {\n var value = values[name];\n\n if (isValidElement(value)) {\n var token = generateToken();\n tokenizedValues[name] = tokenDelimiter + token + tokenDelimiter;\n elements[token] = value;\n } else {\n tokenizedValues[name] = value;\n }\n });\n }\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedMessage = formatMessage(descriptor, tokenizedValues || values);\n\n var nodes = void 0;\n\n var hasElements = elements && Object.keys(elements).length > 0;\n if (hasElements) {\n // Split the message into parts so the React Element values captured\n // above can be inserted back into the rendered message. This\n // approach allows messages to render with React Elements while\n // keeping React's virtual diffing working properly.\n nodes = formattedMessage.split(tokenDelimiter).filter(function (part) {\n return !!part;\n }).map(function (part) {\n return elements[part] || part;\n });\n } else {\n nodes = [formattedMessage];\n }\n\n if (typeof children === 'function') {\n return children.apply(undefined, toConsumableArray(nodes));\n }\n\n // Needs to use `createElement()` instead of JSX, otherwise React will\n // warn about a missing `key` prop with rich-text message formatting.\n return createElement.apply(undefined, [Component$$1, null].concat(toConsumableArray(nodes)));\n }\n }]);\n return FormattedMessage;\n}(Component);\n\nFormattedMessage.displayName = 'FormattedMessage';\nFormattedMessage.contextTypes = {\n intl: intlShape\n};\nFormattedMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\nvar FormattedHTMLMessage = function (_Component) {\n inherits(FormattedHTMLMessage, _Component);\n\n function FormattedHTMLMessage(props, context) {\n classCallCheck(this, FormattedHTMLMessage);\n\n var _this = possibleConstructorReturn(this, (FormattedHTMLMessage.__proto__ || Object.getPrototypeOf(FormattedHTMLMessage)).call(this, props, context));\n\n invariantIntlContext(context);\n return _this;\n }\n\n createClass(FormattedHTMLMessage, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n var values = this.props.values;\n var nextValues = nextProps.values;\n\n\n if (!shallowEquals(nextValues, values)) {\n return true;\n }\n\n // Since `values` has already been checked, we know they're not\n // different, so the current `values` are carried over so the shallow\n // equals comparison on the other props isn't affected by the `values`.\n var nextPropsToCheck = _extends({}, nextProps, {\n values: values\n });\n\n for (var _len = arguments.length, next = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n next[_key - 1] = arguments[_key];\n }\n\n return shouldIntlComponentUpdate.apply(undefined, [this, nextPropsToCheck].concat(next));\n }\n }, {\n key: 'render',\n value: function render() {\n var _context$intl = this.context.intl,\n formatHTMLMessage = _context$intl.formatHTMLMessage,\n Text = _context$intl.textComponent;\n var _props = this.props,\n id = _props.id,\n description = _props.description,\n defaultMessage = _props.defaultMessage,\n rawValues = _props.values,\n _props$tagName = _props.tagName,\n Component$$1 = _props$tagName === undefined ? Text : _props$tagName,\n children = _props.children;\n\n\n var descriptor = { id: id, description: description, defaultMessage: defaultMessage };\n var formattedHTMLMessage = formatHTMLMessage(descriptor, rawValues);\n\n if (typeof children === 'function') {\n return children(formattedHTMLMessage);\n }\n\n // Since the message presumably has HTML in it, we need to set\n // `innerHTML` in order for it to be rendered and not escaped by React.\n // To be safe, all string prop values were escaped when formatting the\n // message. It is assumed that the message is not UGC, and came from the\n // developer making it more like a template.\n //\n // Note: There's a perf impact of using this component since there's no\n // way for React to do its virtual DOM diffing.\n var html = { __html: formattedHTMLMessage };\n return React.createElement(Component$$1, { dangerouslySetInnerHTML: html });\n }\n }]);\n return FormattedHTMLMessage;\n}(Component);\n\nFormattedHTMLMessage.displayName = 'FormattedHTMLMessage';\nFormattedHTMLMessage.contextTypes = {\n intl: intlShape\n};\nFormattedHTMLMessage.defaultProps = {\n values: {}\n};\nprocess.env.NODE_ENV !== \"production\" ? FormattedHTMLMessage.propTypes = _extends({}, messageDescriptorPropTypes, {\n values: PropTypes.object,\n tagName: PropTypes.string,\n children: PropTypes.func\n}) : void 0;\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(defaultLocaleData);\n\n/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\n\naddLocaleData(allLocaleData);\n\nexport { addLocaleData, intlShape, injectIntl, defineMessages, IntlProvider, FormattedDate, FormattedTime, FormattedRelative, FormattedNumber, FormattedPlural, FormattedMessage, FormattedHTMLMessage };\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/react-intl/lib/index.es.js","import loadPolyfills from '../mastodon/load_polyfills';\nimport ready from '../mastodon/ready';\n\nwindow.addEventListener('message', e => {\n const data = e.data || {};\n\n if (!window.parent || data.type !== 'setHeight') {\n return;\n }\n\n ready(() => {\n window.parent.postMessage({\n type: 'setHeight',\n id: data.id,\n height: document.getElementsByTagName('html')[0].scrollHeight,\n }, '*');\n });\n});\n\nfunction main() {\n const { length } = require('stringz');\n const IntlRelativeFormat = require('intl-relativeformat').default;\n const { delegate } = require('rails-ujs');\n const emojify = require('../mastodon/features/emoji/emoji').default;\n const { getLocale } = require('../mastodon/locales');\n const { localeData } = getLocale();\n const VideoContainer = require('../mastodon/containers/video_container').default;\n const CardContainer = require('../mastodon/containers/card_container').default;\n const React = require('react');\n const ReactDOM = require('react-dom');\n\n localeData.forEach(IntlRelativeFormat.__addLocaleData);\n\n ready(() => {\n const locale = document.documentElement.lang;\n\n const dateTimeFormat = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n });\n\n const relativeFormat = new IntlRelativeFormat(locale);\n\n [].forEach.call(document.querySelectorAll('.emojify'), (content) => {\n content.innerHTML = emojify(content.innerHTML);\n });\n\n [].forEach.call(document.querySelectorAll('time.formatted'), (content) => {\n const datetime = new Date(content.getAttribute('datetime'));\n const formattedDate = dateTimeFormat.format(datetime);\n\n content.title = formattedDate;\n content.textContent = formattedDate;\n });\n\n [].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {\n const datetime = new Date(content.getAttribute('datetime'));\n\n content.title = dateTimeFormat.format(datetime);\n content.textContent = relativeFormat.format(datetime);\n });\n\n [].forEach.call(document.querySelectorAll('.logo-button'), (content) => {\n content.addEventListener('click', (e) => {\n e.preventDefault();\n window.open(e.target.href, 'mastodon-intent', 'width=400,height=400,resizable=no,menubar=no,status=no,scrollbars=yes');\n });\n });\n\n [].forEach.call(document.querySelectorAll('[data-component=\"Video\"]'), (content) => {\n const props = JSON.parse(content.getAttribute('data-props'));\n ReactDOM.render(<VideoContainer locale={locale} {...props} />, content);\n });\n\n [].forEach.call(document.querySelectorAll('[data-component=\"Card\"]'), (content) => {\n const props = JSON.parse(content.getAttribute('data-props'));\n ReactDOM.render(<CardContainer locale={locale} {...props} />, content);\n });\n\n const mediaGalleries = document.querySelectorAll('[data-component=\"MediaGallery\"]');\n\n if (mediaGalleries.length > 0) {\n const MediaGalleriesContainer = require('../mastodon/containers/media_galleries_container').default;\n const content = document.createElement('div');\n\n ReactDOM.render(<MediaGalleriesContainer locale={locale} galleries={mediaGalleries} />, content);\n document.body.appendChild(content);\n }\n });\n\n delegate(document, '.webapp-btn', 'click', ({ target, button }) => {\n if (button !== 0) {\n return true;\n }\n window.location.href = target.href;\n return false;\n });\n\n delegate(document, '.status__content__spoiler-link', 'click', ({ target }) => {\n const contentEl = target.parentNode.parentNode.querySelector('.e-content');\n\n if (contentEl.style.display === 'block') {\n contentEl.style.display = 'none';\n target.parentNode.style.marginBottom = 0;\n } else {\n contentEl.style.display = 'block';\n target.parentNode.style.marginBottom = null;\n }\n\n return false;\n });\n\n delegate(document, '.account_display_name', 'input', ({ target }) => {\n const nameCounter = document.querySelector('.name-counter');\n\n if (nameCounter) {\n nameCounter.textContent = 30 - length(target.value);\n }\n });\n\n delegate(document, '.account_note', 'input', ({ target }) => {\n const noteCounter = document.querySelector('.note-counter');\n\n if (noteCounter) {\n noteCounter.textContent = 160 - length(target.value);\n }\n });\n\n delegate(document, '#account_avatar', 'change', ({ target }) => {\n const avatar = document.querySelector('.card.compact .avatar img');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : avatar.dataset.originalSrc;\n\n avatar.src = url;\n });\n\n delegate(document, '#account_header', 'change', ({ target }) => {\n const header = document.querySelector('.card.compact');\n const [file] = target.files || [];\n const url = file ? URL.createObjectURL(file) : header.dataset.originalSrc;\n\n header.style.backgroundImage = `url(${url})`;\n });\n}\n\nloadPolyfills().then(main).catch(error => {\n console.error(error);\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/packs/public.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport Video from '../features/video';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nexport default class VideoContainer extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n };\n\n render () {\n const { locale, ...props } = this.props;\n\n return (\n <IntlProvider locale={locale} messages={messages}>\n <Video {...props} />\n </IntlProvider>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/video_container.js","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Card from '../features/status/components/card';\nimport { fromJS } from 'immutable';\n\nexport default class CardContainer extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string,\n card: PropTypes.array.isRequired,\n };\n\n render () {\n const { card, ...props } = this.props;\n return <Card card={fromJS(card)} {...props} />;\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/card_container.js","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport MediaGallery from '../components/media_gallery';\nimport ModalRoot from '../components/modal_root';\nimport MediaModal from '../features/ui/components/media_modal';\nimport { fromJS } from 'immutable';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nexport default class MediaGalleriesContainer extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n galleries: PropTypes.object.isRequired,\n };\n\n state = {\n media: null,\n index: null,\n };\n\n handleOpenMedia = (media, index) => {\n document.body.classList.add('media-gallery-standalone__body');\n this.setState({ media, index });\n }\n\n handleCloseMedia = () => {\n document.body.classList.remove('media-gallery-standalone__body');\n this.setState({ media: null, index: null });\n }\n\n render () {\n const { locale, galleries } = this.props;\n\n return (\n <IntlProvider locale={locale} messages={messages}>\n <React.Fragment>\n {[].map.call(galleries, gallery => {\n const { media, ...props } = JSON.parse(gallery.getAttribute('data-props'));\n\n return ReactDOM.createPortal(\n <MediaGallery\n {...props}\n media={fromJS(media)}\n onOpenMedia={this.handleOpenMedia}\n />,\n gallery\n );\n })}\n <ModalRoot onClose={this.handleCloseMedia}>\n {this.state.media === null || this.state.index === null ? null : (\n <MediaModal\n media={this.state.media}\n index={this.state.index}\n onClose={this.handleCloseMedia}\n />\n )}\n </ModalRoot>\n </React.Fragment>\n </IntlProvider>\n );\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./app/javascript/mastodon/containers/media_galleries_container.js"],"sourceRoot":""}