-{"version":3,"sources":["webpack:///./app/javascript/mastodon/features/compose/containers/navigation_container.js","webpack:///./app/javascript/mastodon/features/compose/containers/search_container.js","webpack:///./app/javascript/mastodon/components/hashtag.js","webpack:///./app/javascript/mastodon/features/compose/components/search_results.js","webpack:///./app/javascript/mastodon/features/compose/containers/search_results_container.js","webpack:///./app/javascript/mastodon/features/compose/index.js","webpack:///./node_modules/react-sparklines/build/index.js"],"names":["navigation_container","Object","es","state","account","getIn","initial_state","navigation_bar","search_container","value","submitted","dispatch","onChange","search","onClear","onSubmit","onShow","components_search","components_hashtag","_ref","hashtag","jsx_default","className","Link","to","get","index_es","id","defaultMessage","values","rawCount","count","numbers","build","width","height","data","reverse","map","day","toArray","style","fill","search_results_SearchResults","render","results","this","props","accounts","statuses","hashtags","size","accountId","account_container","statusId","status_container","react_immutable_pure_component_es","propTypes","ImmutablePropTypes_default","a","isRequired","search_results_container","messages","start","home_timeline","notifications","public","community","preferences","logout","compose","compose_Compose","ownProps","columns","showSearch","multiColumn","isSearchPage","onFocus","_this","onBlur","componentDidMount","componentWillUnmount","_props","intl","header","title","formatMessage","aria-label","role","some","column","href","data-method","onClose","compose_form_container","optional_motion","defaultStyle","x","spring_default","stiffness","damping","transform","visibility","react_default","PureComponent","factory","__WEBPACK_EXTERNAL_MODULE_1__","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","defineProperty","configurable","enumerable","n","__esModule","object","property","prototype","hasOwnProperty","p","s","process","env","NODE_ENV","REACT_ELEMENT_TYPE","Symbol","for","$$typeof","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","args","Array","arguments","push","apply","browser","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","default","reduce","b","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","validateFormat","format","undefined","condition","f","error","argIndex","replace","framesToPop","Math","min","warning","indexOf","_len2","_key2","_len","_key","message","console","max","obj","_mean","_mean2","dataMean","sqDiff","pow","avgSqDiff","sqrt","SparklinesText","SparklinesNormalBand","SparklinesReferenceLine","SparklinesSpots","SparklinesBars","SparklinesCurve","SparklinesLine","Sparklines","_createClass","defineProperties","target","descriptor","writable","key","Constructor","protoProps","staticProps","_propTypes2","_interopRequireDefault","_react","_react2","_SparklinesText2","_SparklinesLine2","_SparklinesCurve2","_SparklinesBars2","_SparklinesSpots2","_SparklinesReferenceLine2","_SparklinesNormalBand2","_dataToPoints2","_PureComponent","instance","TypeError","_classCallCheck","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","limit","svgWidth","svgHeight","preserveAspectRatio","margin","points","svgOpts","viewBox","createElement","Children","children","child","cloneElement","number","string","onMouseMove","func","defaultProps","invariant","ReactPropTypesSecret","checkPropTypes","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","bool","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","componentName","location","propFullName","PropTypeError","propValue","isArray","propType","getPropType","element","createElementTypeChecker","instanceOf","expectedClass","expectedClassName","actualClassName","getClassName","node","isNode","createNodeChecker","objectOf","oneOf","expectedValues","is","valuesString","JSON","stringify","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","shape","shapeTypes","y","stack","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","secret","cacheKey","chainedCheckType","bind","expectedType","getPreciseType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","Date","type","PropTypes","loggedTypeFailures","typeSpecs","getStack","typeSpecName","ex","shim","getShim","_React$Component","Component","point","text","fontSize","fontFamily","color","linePoints","closePolyPoints","fillPoints","lineStyle","stroke","strokeWidth","strokeLinejoin","strokeLinecap","fillStyle","fillOpacity","pointerEvents","tooltips","cx","cy","r","onMouseEnter","onClick","join","_props$divisor","divisor","prev","res","curve","_this2","barWidth","marginWidth","sign","spotColors","startSpot","endSpot","lastDirection","-1","0","1","dataProcessing","newObj","_interopRequireWildcard","ypoints","x1","y1","x2","y2","strokeOpacity","strokeDasharray","variance","stdev","median","midRange","avg","mean","_min3","_mean3","_midRange3","_median3","_stdev3","_variance3","_min2","_max2","sort","floor","sq","_stdev2","dataStdev","_ref$width","_ref$height","_ref$margin","_ref$max","_ref$min","slice","vfactor","hfactor"],"mappings":"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","file":"features/compose.js","sourcesContent":["import { connect } from 'react-redux';\nimport NavigationBar from '../components/navigation_bar';\nimport { me } from '../../../initial_state';\n\nconst mapStateToProps = state => {\n return {\n account: state.getIn(['accounts', me]),\n };\n};\n\nexport default connect(mapStateToProps)(NavigationBar);\n","import { connect } from 'react-redux';\nimport {\n changeSearch,\n clearSearch,\n submitSearch,\n showSearch,\n} from '../../../actions/search';\nimport Search from '../components/search';\n\nconst mapStateToProps = state => ({\n value: state.getIn(['search', 'value']),\n submitted: state.getIn(['search', 'submitted']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (value) {\n dispatch(changeSearch(value));\n },\n\n onClear () {\n dispatch(clearSearch());\n },\n\n onSubmit () {\n dispatch(submitSearch());\n },\n\n onShow () {\n dispatch(showSearch());\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Search);\n","import React from 'react';\nimport { Sparklines, SparklinesCurve } from 'react-sparklines';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { shortNumberFormat } from '../utils/numbers';\n\nconst Hashtag = ({ hashtag }) => (\n <div className='trends__item'>\n <div className='trends__item__name'>\n <Link to={`/timelines/tag/${hashtag.get('name')}`}>\n #<span>{hashtag.get('name')}</span>\n </Link>\n\n <FormattedMessage id='trends.count_by_accounts' defaultMessage='{count} {rawCount, plural, one {person} other {people}} talking' values={{ rawCount: hashtag.getIn(['history', 0, 'accounts']), count: <strong>{shortNumberFormat(hashtag.getIn(['history', 0, 'accounts']))}</strong> }} />\n </div>\n\n <div className='trends__item__current'>\n {shortNumberFormat(hashtag.getIn(['history', 0, 'uses']))}\n </div>\n\n <div className='trends__item__sparkline'>\n <Sparklines width={50} height={28} data={hashtag.get('history') && hashtag.get('history').reverse().map(day => day.get('uses')).toArray()}>\n <SparklinesCurve style={{ fill: 'none' }} />\n </Sparklines>\n </div>\n </div>\n);\n\nHashtag.propTypes = {\n hashtag: ImmutablePropTypes.map.isRequired,\n};\n\nexport default Hashtag;\n","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { FormattedMessage } from 'react-intl';\nimport AccountContainer from '../../../containers/account_container';\nimport StatusContainer from '../../../containers/status_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Hashtag from '../../../components/hashtag';\n\nexport default class SearchResults extends ImmutablePureComponent {\n\n static propTypes = {\n results: ImmutablePropTypes.map.isRequired,\n };\n\n render () {\n const { results } = this.props;\n\n let accounts, statuses, hashtags;\n let count = 0;\n\n if (results.get('accounts') && results.get('accounts').size > 0) {\n count += results.get('accounts').size;\n accounts = (\n <div className='search-results__section'>\n <h5><i className='fa fa-fw fa-users' /><FormattedMessage id='search_results.accounts' defaultMessage='People' /></h5>\n\n {results.get('accounts').map(accountId => <AccountContainer key={accountId} id={accountId} />)}\n </div>\n );\n }\n\n if (results.get('statuses') && results.get('statuses').size > 0) {\n count += results.get('statuses').size;\n statuses = (\n <div className='search-results__section'>\n <h5><i className='fa fa-fw fa-quote-right' /><FormattedMessage id='search_results.statuses' defaultMessage='Toots' /></h5>\n\n {results.get('statuses').map(statusId => <StatusContainer key={statusId} id={statusId} />)}\n </div>\n );\n }\n\n if (results.get('hashtags') && results.get('hashtags').size > 0) {\n count += results.get('hashtags').size;\n hashtags = (\n <div className='search-results__section'>\n <h5><i className='fa fa-fw fa-hashtag' /><FormattedMessage id='search_results.hashtags' defaultMessage='Hashtags' /></h5>\n\n {results.get('hashtags').map(hashtag => <Hashtag key={hashtag.get('name')} hashtag={hashtag} />)}\n </div>\n );\n }\n\n return (\n <div className='search-results'>\n <div className='search-results__header'>\n <i className='fa fa-search fa-fw' />\n <FormattedMessage id='search_results.total' defaultMessage='{count, number} {count, plural, one {result} other {results}}' values={{ count }} />\n </div>\n\n {accounts}\n {statuses}\n {hashtags}\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport SearchResults from '../components/search_results';\n\nconst mapStateToProps = state => ({\n results: state.getIn(['search', 'results']),\n});\n\nexport default connect(mapStateToProps)(SearchResults);\n","import React from 'react';\nimport ComposeFormContainer from './containers/compose_form_container';\nimport NavigationContainer from './containers/navigation_container';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\nimport { mountCompose, unmountCompose } from '../../actions/compose';\nimport { Link } from 'react-router-dom';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport SearchContainer from './containers/search_container';\nimport Motion from '../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport SearchResultsContainer from './containers/search_results_container';\nimport { changeComposing } from '../../actions/compose';\n\nconst messages = defineMessages({\n start: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },\n public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },\n community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },\n preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },\n compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },\n});\n\nconst mapStateToProps = (state, ownProps) => ({\n columns: state.getIn(['settings', 'columns']),\n showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage,\n});\n\n@connect(mapStateToProps)\n@injectIntl\nexport default class Compose extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n columns: ImmutablePropTypes.list.isRequired,\n multiColumn: PropTypes.bool,\n showSearch: PropTypes.bool,\n isSearchPage: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n };\n\n componentDidMount () {\n const { isSearchPage } = this.props;\n\n if (!isSearchPage) {\n this.props.dispatch(mountCompose());\n }\n }\n\n componentWillUnmount () {\n const { isSearchPage } = this.props;\n\n if (!isSearchPage) {\n this.props.dispatch(unmountCompose());\n }\n }\n\n onFocus = () => {\n this.props.dispatch(changeComposing(true));\n }\n\n onBlur = () => {\n this.props.dispatch(changeComposing(false));\n }\n\n render () {\n const { multiColumn, showSearch, isSearchPage, intl } = this.props;\n\n let header = '';\n\n if (multiColumn) {\n const { columns } = this.props;\n header = (\n <nav className='drawer__header'>\n <Link to='/getting-started' className='drawer__tab' title={intl.formatMessage(messages.start)} aria-label={intl.formatMessage(messages.start)}><i role='img' className='fa fa-fw fa-bars' /></Link>\n {!columns.some(column => column.get('id') === 'HOME') && (\n <Link to='/timelines/home' className='drawer__tab' title={intl.formatMessage(messages.home_timeline)} aria-label={intl.formatMessage(messages.home_timeline)}><i role='img' className='fa fa-fw fa-home' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'NOTIFICATIONS') && (\n <Link to='/notifications' className='drawer__tab' title={intl.formatMessage(messages.notifications)} aria-label={intl.formatMessage(messages.notifications)}><i role='img' className='fa fa-fw fa-bell' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'COMMUNITY') && (\n <Link to='/timelines/public/local' className='drawer__tab' title={intl.formatMessage(messages.community)} aria-label={intl.formatMessage(messages.community)}><i role='img' className='fa fa-fw fa-users' /></Link>\n )}\n {!columns.some(column => column.get('id') === 'PUBLIC') && (\n <Link to='/timelines/public' className='drawer__tab' title={intl.formatMessage(messages.public)} aria-label={intl.formatMessage(messages.public)}><i role='img' className='fa fa-fw fa-globe' /></Link>\n )}\n <a href='/user-settings' className='drawer__tab' title={intl.formatMessage(messages.preferences)} aria-label={intl.formatMessage(messages.preferences)}><i role='img' className='fa fa-fw fa-cog' /></a>\n <a href='/auth/sign_out' className='drawer__tab' data-method='delete' title={intl.formatMessage(messages.logout)} aria-label={intl.formatMessage(messages.logout)}><i role='img' className='fa fa-fw fa-sign-out' /></a>\n </nav>\n );\n }\n\n return (\n <div className='drawer' role='region' aria-label={intl.formatMessage(messages.compose)}>\n {header}\n\n {(multiColumn || isSearchPage) && <SearchContainer /> }\n\n <div className='drawer__pager'>\n {!isSearchPage && <div className='drawer__inner' onFocus={this.onFocus}>\n <NavigationContainer onClose={this.onBlur} />\n <ComposeFormContainer />\n </div>}\n\n <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>\n {({ x }) => (\n <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>\n <SearchResultsContainer />\n </div>\n )}\n </Motion>\n </div>\n </div>\n );\n }\n\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactSparklines\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"ReactSparklines\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 11);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = __webpack_require__(14)(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = __webpack_require__(16)();\n}\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.reduce(function (a, b) {\n return a + b;\n }) / data.length;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.min.apply(Math, data);\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n\n\nvar emptyFunction = __webpack_require__(4);\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return Math.max.apply(Math, data);\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sqDiff = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n var avgSqDiff = (0, _mean2.default)(sqDiff);\n return Math.sqrt(avgSqDiff);\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(12);\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __webpack_require__(13);\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.SparklinesText = exports.SparklinesNormalBand = exports.SparklinesReferenceLine = exports.SparklinesSpots = exports.SparklinesBars = exports.SparklinesCurve = exports.SparklinesLine = exports.Sparklines = undefined;\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _SparklinesText = __webpack_require__(17);\n\nvar _SparklinesText2 = _interopRequireDefault(_SparklinesText);\n\nvar _SparklinesLine = __webpack_require__(18);\n\nvar _SparklinesLine2 = _interopRequireDefault(_SparklinesLine);\n\nvar _SparklinesCurve = __webpack_require__(19);\n\nvar _SparklinesCurve2 = _interopRequireDefault(_SparklinesCurve);\n\nvar _SparklinesBars = __webpack_require__(20);\n\nvar _SparklinesBars2 = _interopRequireDefault(_SparklinesBars);\n\nvar _SparklinesSpots = __webpack_require__(21);\n\nvar _SparklinesSpots2 = _interopRequireDefault(_SparklinesSpots);\n\nvar _SparklinesReferenceLine = __webpack_require__(22);\n\nvar _SparklinesReferenceLine2 = _interopRequireDefault(_SparklinesReferenceLine);\n\nvar _SparklinesNormalBand = __webpack_require__(27);\n\nvar _SparklinesNormalBand2 = _interopRequireDefault(_SparklinesNormalBand);\n\nvar _dataToPoints = __webpack_require__(28);\n\nvar _dataToPoints2 = _interopRequireDefault(_dataToPoints);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Sparklines = function (_PureComponent) {\n _inherits(Sparklines, _PureComponent);\n\n function Sparklines(props) {\n _classCallCheck(this, Sparklines);\n\n return _possibleConstructorReturn(this, (Sparklines.__proto__ || Object.getPrototypeOf(Sparklines)).call(this, props));\n }\n\n _createClass(Sparklines, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n limit = _props.limit,\n width = _props.width,\n height = _props.height,\n svgWidth = _props.svgWidth,\n svgHeight = _props.svgHeight,\n preserveAspectRatio = _props.preserveAspectRatio,\n margin = _props.margin,\n style = _props.style,\n max = _props.max,\n min = _props.min;\n\n\n if (data.length === 0) return null;\n\n var points = (0, _dataToPoints2.default)({ data: data, limit: limit, width: width, height: height, margin: margin, max: max, min: min });\n\n var svgOpts = { style: style, viewBox: '0 0 ' + width + ' ' + height, preserveAspectRatio: preserveAspectRatio };\n if (svgWidth > 0) svgOpts.width = svgWidth;\n if (svgHeight > 0) svgOpts.height = svgHeight;\n\n return _react2.default.createElement(\n 'svg',\n svgOpts,\n _react2.default.Children.map(this.props.children, function (child) {\n return _react2.default.cloneElement(child, { data: data, points: points, width: width, height: height, margin: margin });\n })\n );\n }\n }]);\n\n return Sparklines;\n}(_react.PureComponent);\n\nSparklines.propTypes = {\n data: _propTypes2.default.array,\n limit: _propTypes2.default.number,\n width: _propTypes2.default.number,\n height: _propTypes2.default.number,\n svgWidth: _propTypes2.default.number,\n svgHeight: _propTypes2.default.number,\n preserveAspectRatio: _propTypes2.default.string,\n margin: _propTypes2.default.number,\n style: _propTypes2.default.object,\n min: _propTypes2.default.number,\n max: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklines.defaultProps = {\n data: [],\n width: 240,\n height: 60,\n //Scale the graphic content of the given element non-uniformly if necessary such that the element's bounding box exactly matches the viewport rectangle.\n preserveAspectRatio: 'none', //https://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n margin: 2\n};\nexports.Sparklines = Sparklines;\nexports.SparklinesLine = _SparklinesLine2.default;\nexports.SparklinesCurve = _SparklinesCurve2.default;\nexports.SparklinesBars = _SparklinesBars2.default;\nexports.SparklinesSpots = _SparklinesSpots2.default;\nexports.SparklinesReferenceLine = _SparklinesReferenceLine2.default;\nexports.SparklinesNormalBand = _SparklinesNormalBand2.default;\nexports.SparklinesText = _SparklinesText2.default;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar warning = __webpack_require__(8);\n\nvar ReactPropTypesSecret = __webpack_require__(6);\nvar checkPropTypes = __webpack_require__(15);\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n warning(\n false,\n 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +\n 'received %s at index %s.',\n getPostfixForTypeWarning(checker),\n i\n );\n return emptyFunction.thatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(process) {/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = __webpack_require__(5);\n var warning = __webpack_require__(8);\n var ReactPropTypesSecret = __webpack_require__(6);\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n\n\nvar emptyFunction = __webpack_require__(4);\nvar invariant = __webpack_require__(5);\nvar ReactPropTypesSecret = __webpack_require__(6);\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesText = function (_React$Component) {\n _inherits(SparklinesText, _React$Component);\n\n function SparklinesText() {\n _classCallCheck(this, SparklinesText);\n\n return _possibleConstructorReturn(this, (SparklinesText.__proto__ || Object.getPrototypeOf(SparklinesText)).apply(this, arguments));\n }\n\n _createClass(SparklinesText, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n point = _props.point,\n text = _props.text,\n fontSize = _props.fontSize,\n fontFamily = _props.fontFamily;\n var x = point.x,\n y = point.y;\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement(\n 'text',\n { x: x, y: y, fontFamily: fontFamily || \"Verdana\", fontSize: fontSize || 10 },\n text\n )\n );\n }\n }]);\n\n return SparklinesText;\n}(_react2.default.Component);\n\nSparklinesText.propTypes = {\n text: _propTypes2.default.string,\n point: _propTypes2.default.object,\n fontSize: _propTypes2.default.number,\n fontFamily: _propTypes2.default.string\n};\nSparklinesText.defaultProps = {\n text: '',\n point: { x: 0, y: 0 }\n};\nexports.default = SparklinesText;\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesLine = function (_React$Component) {\n _inherits(SparklinesLine, _React$Component);\n\n function SparklinesLine() {\n _classCallCheck(this, SparklinesLine);\n\n return _possibleConstructorReturn(this, (SparklinesLine.__proto__ || Object.getPrototypeOf(SparklinesLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n data = _props.data,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n onMouseMove = _props.onMouseMove;\n\n\n var linePoints = points.map(function (p) {\n return [p.x, p.y];\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n\n var closePolyPoints = [points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray',\n pointerEvents: 'auto'\n };\n\n var tooltips = points.map(function (p, i) {\n return _react2.default.createElement('circle', {\n key: i,\n cx: p.x,\n cy: p.y,\n r: 2,\n style: fillStyle,\n onMouseEnter: function onMouseEnter(e) {\n return onMouseMove('enter', data[i], p);\n },\n onClick: function onClick(e) {\n return onMouseMove('click', data[i], p);\n }\n });\n });\n\n return _react2.default.createElement(\n 'g',\n null,\n tooltips,\n _react2.default.createElement('polyline', { points: fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('polyline', { points: linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesLine;\n}(_react2.default.Component);\n\nSparklinesLine.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesLine.defaultProps = {\n style: {},\n onMouseMove: function onMouseMove() {}\n};\nexports.default = SparklinesLine;\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesCurve = function (_React$Component) {\n _inherits(SparklinesCurve, _React$Component);\n\n function SparklinesCurve() {\n _classCallCheck(this, SparklinesCurve);\n\n return _possibleConstructorReturn(this, (SparklinesCurve.__proto__ || Object.getPrototypeOf(SparklinesCurve)).apply(this, arguments));\n }\n\n _createClass(SparklinesCurve, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n margin = _props.margin,\n color = _props.color,\n style = _props.style,\n _props$divisor = _props.divisor,\n divisor = _props$divisor === undefined ? 0.25 : _props$divisor;\n\n var prev = void 0;\n var curve = function curve(p) {\n var res = void 0;\n if (!prev) {\n res = [p.x, p.y];\n } else {\n var len = (p.x - prev.x) * divisor;\n res = [\"C\",\n //x1\n prev.x + len,\n //y1\n prev.y,\n //x2,\n p.x - len,\n //y2,\n p.y,\n //x,\n p.x,\n //y\n p.y];\n }\n prev = p;\n return res;\n };\n var linePoints = points.map(function (p) {\n return curve(p);\n }).reduce(function (a, b) {\n return a.concat(b);\n });\n var closePolyPoints = [\"L\" + points[points.length - 1].x, height - margin, margin, height - margin, margin, points[0].y];\n var fillPoints = linePoints.concat(closePolyPoints);\n\n var lineStyle = {\n stroke: color || style.stroke || 'slategray',\n strokeWidth: style.strokeWidth || '1',\n strokeLinejoin: style.strokeLinejoin || 'round',\n strokeLinecap: style.strokeLinecap || 'round',\n fill: 'none'\n };\n var fillStyle = {\n stroke: style.stroke || 'none',\n strokeWidth: '0',\n fillOpacity: style.fillOpacity || '.1',\n fill: style.fill || color || 'slategray'\n };\n\n return _react2.default.createElement(\n 'g',\n null,\n _react2.default.createElement('path', { d: \"M\" + fillPoints.join(' '), style: fillStyle }),\n _react2.default.createElement('path', { d: \"M\" + linePoints.join(' '), style: lineStyle })\n );\n }\n }]);\n\n return SparklinesCurve;\n}(_react2.default.Component);\n\nSparklinesCurve.propTypes = {\n color: _propTypes2.default.string,\n style: _propTypes2.default.object\n};\nSparklinesCurve.defaultProps = {\n style: {}\n};\nexports.default = SparklinesCurve;\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesBars = function (_React$Component) {\n _inherits(SparklinesBars, _React$Component);\n\n function SparklinesBars() {\n _classCallCheck(this, SparklinesBars);\n\n return _possibleConstructorReturn(this, (SparklinesBars.__proto__ || Object.getPrototypeOf(SparklinesBars)).apply(this, arguments));\n }\n\n _createClass(SparklinesBars, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n points = _props.points,\n height = _props.height,\n style = _props.style,\n barWidth = _props.barWidth,\n margin = _props.margin,\n onMouseMove = _props.onMouseMove;\n\n var strokeWidth = 1 * (style && style.strokeWidth || 0);\n var marginWidth = margin ? 2 * margin : 0;\n var width = barWidth || (points && points.length >= 2 ? Math.max(0, points[1].x - points[0].x - strokeWidth - marginWidth) : 0);\n\n return _react2.default.createElement(\n 'g',\n { transform: 'scale(1,-1)' },\n points.map(function (p, i) {\n return _react2.default.createElement('rect', {\n key: i,\n x: p.x - (width + strokeWidth) / 2,\n y: -height,\n width: width,\n height: Math.max(0, height - p.y),\n style: style,\n onMouseMove: onMouseMove && onMouseMove.bind(_this2, p)\n });\n })\n );\n }\n }]);\n\n return SparklinesBars;\n}(_react2.default.Component);\n\nSparklinesBars.propTypes = {\n points: _propTypes2.default.arrayOf(_propTypes2.default.object),\n height: _propTypes2.default.number,\n style: _propTypes2.default.object,\n barWidth: _propTypes2.default.number,\n margin: _propTypes2.default.number,\n onMouseMove: _propTypes2.default.func\n};\nSparklinesBars.defaultProps = {\n style: { fill: 'slategray' }\n};\nexports.default = SparklinesBars;\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesSpots = function (_React$Component) {\n _inherits(SparklinesSpots, _React$Component);\n\n function SparklinesSpots() {\n _classCallCheck(this, SparklinesSpots);\n\n return _possibleConstructorReturn(this, (SparklinesSpots.__proto__ || Object.getPrototypeOf(SparklinesSpots)).apply(this, arguments));\n }\n\n _createClass(SparklinesSpots, [{\n key: 'lastDirection',\n value: function lastDirection(points) {\n\n Math.sign = Math.sign || function (x) {\n return x > 0 ? 1 : -1;\n };\n\n return points.length < 2 ? 0 : Math.sign(points[points.length - 2].y - points[points.length - 1].y);\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n width = _props.width,\n height = _props.height,\n size = _props.size,\n style = _props.style,\n spotColors = _props.spotColors;\n\n\n var startSpot = _react2.default.createElement('circle', {\n cx: points[0].x,\n cy: points[0].y,\n r: size,\n style: style });\n\n var endSpot = _react2.default.createElement('circle', {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: size,\n style: style || { fill: spotColors[this.lastDirection(points)] } });\n\n return _react2.default.createElement(\n 'g',\n null,\n style && startSpot,\n endSpot\n );\n }\n }]);\n\n return SparklinesSpots;\n}(_react2.default.Component);\n\nSparklinesSpots.propTypes = {\n size: _propTypes2.default.number,\n style: _propTypes2.default.object,\n spotColors: _propTypes2.default.object\n};\nSparklinesSpots.defaultProps = {\n size: 2,\n spotColors: {\n '-1': 'red',\n '0': 'black',\n '1': 'green'\n }\n};\nexports.default = SparklinesSpots;\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _dataProcessing = __webpack_require__(23);\n\nvar dataProcessing = _interopRequireWildcard(_dataProcessing);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesReferenceLine = function (_React$Component) {\n _inherits(SparklinesReferenceLine, _React$Component);\n\n function SparklinesReferenceLine() {\n _classCallCheck(this, SparklinesReferenceLine);\n\n return _possibleConstructorReturn(this, (SparklinesReferenceLine.__proto__ || Object.getPrototypeOf(SparklinesReferenceLine)).apply(this, arguments));\n }\n\n _createClass(SparklinesReferenceLine, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n type = _props.type,\n style = _props.style,\n value = _props.value;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var y = type == 'custom' ? value : dataProcessing[type](ypoints);\n\n return _react2.default.createElement('line', {\n x1: points[0].x, y1: y + margin,\n x2: points[points.length - 1].x, y2: y + margin,\n style: style });\n }\n }]);\n\n return SparklinesReferenceLine;\n}(_react2.default.Component);\n\nSparklinesReferenceLine.propTypes = {\n type: _propTypes2.default.oneOf(['max', 'min', 'mean', 'avg', 'median', 'custom']),\n value: _propTypes2.default.number,\n style: _propTypes2.default.object\n};\nSparklinesReferenceLine.defaultProps = {\n type: 'mean',\n style: { stroke: 'red', strokeOpacity: .75, strokeDasharray: '2, 2' }\n};\nexports.default = SparklinesReferenceLine;\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.variance = exports.stdev = exports.median = exports.midRange = exports.avg = exports.mean = exports.max = exports.min = undefined;\n\nvar _min2 = __webpack_require__(7);\n\nvar _min3 = _interopRequireDefault(_min2);\n\nvar _mean2 = __webpack_require__(3);\n\nvar _mean3 = _interopRequireDefault(_mean2);\n\nvar _midRange2 = __webpack_require__(24);\n\nvar _midRange3 = _interopRequireDefault(_midRange2);\n\nvar _median2 = __webpack_require__(25);\n\nvar _median3 = _interopRequireDefault(_median2);\n\nvar _stdev2 = __webpack_require__(10);\n\nvar _stdev3 = _interopRequireDefault(_stdev2);\n\nvar _variance2 = __webpack_require__(26);\n\nvar _variance3 = _interopRequireDefault(_variance2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.min = _min3.default;\nexports.max = _min3.default;\nexports.mean = _mean3.default;\nexports.avg = _mean3.default;\nexports.midRange = _midRange3.default;\nexports.median = _median3.default;\nexports.stdev = _stdev3.default;\nexports.variance = _variance3.default;\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n return (0, _max2.default)(data) - (0, _min2.default)(data) / 2;\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (data) {\n return data.sort(function (a, b) {\n return a - b;\n })[Math.floor(data.length / 2)];\n};\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (data) {\n var dataMean = (0, _mean2.default)(data);\n var sq = data.map(function (n) {\n return Math.pow(n - dataMean, 2);\n });\n return (0, _mean2.default)(sq);\n};\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _propTypes = __webpack_require__(0);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _mean = __webpack_require__(3);\n\nvar _mean2 = _interopRequireDefault(_mean);\n\nvar _stdev = __webpack_require__(10);\n\nvar _stdev2 = _interopRequireDefault(_stdev);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar SparklinesNormalBand = function (_React$Component) {\n _inherits(SparklinesNormalBand, _React$Component);\n\n function SparklinesNormalBand() {\n _classCallCheck(this, SparklinesNormalBand);\n\n return _possibleConstructorReturn(this, (SparklinesNormalBand.__proto__ || Object.getPrototypeOf(SparklinesNormalBand)).apply(this, arguments));\n }\n\n _createClass(SparklinesNormalBand, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n points = _props.points,\n margin = _props.margin,\n style = _props.style;\n\n\n var ypoints = points.map(function (p) {\n return p.y;\n });\n var dataMean = (0, _mean2.default)(ypoints);\n var dataStdev = (0, _stdev2.default)(ypoints);\n\n return _react2.default.createElement('rect', { x: points[0].x, y: dataMean - dataStdev + margin,\n width: points[points.length - 1].x - points[0].x, height: _stdev2.default * 2,\n style: style });\n }\n }]);\n\n return SparklinesNormalBand;\n}(_react2.default.Component);\n\nSparklinesNormalBand.propTypes = {\n style: _propTypes2.default.object\n};\nSparklinesNormalBand.defaultProps = {\n style: { fill: 'red', fillOpacity: .1 }\n};\nexports.default = SparklinesNormalBand;\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _min = __webpack_require__(7);\n\nvar _min2 = _interopRequireDefault(_min);\n\nvar _max = __webpack_require__(9);\n\nvar _max2 = _interopRequireDefault(_max);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (_ref) {\n var data = _ref.data,\n limit = _ref.limit,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? 1 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? 1 : _ref$height,\n _ref$margin = _ref.margin,\n margin = _ref$margin === undefined ? 0 : _ref$margin,\n _ref$max = _ref.max,\n max = _ref$max === undefined ? (0, _max2.default)(data) : _ref$max,\n _ref$min = _ref.min,\n min = _ref$min === undefined ? (0, _min2.default)(data) : _ref$min;\n\n\n var len = data.length;\n\n if (limit && limit < len) {\n data = data.slice(len - limit);\n }\n\n var vfactor = (height - margin * 2) / (max - min || 2);\n var hfactor = (width - margin * 2) / ((limit || len) - (len > 1 ? 1 : 0));\n\n return data.map(function (d, i) {\n return {\n x: i * hfactor + margin,\n y: (max === min ? 1 : max - d) * vfactor + margin\n };\n });\n};\n\n/***/ })\n/******/ ]);\n});"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/components/autosuggest_emoji.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/reply_indicator.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/reply_indicator_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/autosuggest_account.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/autosuggest_account_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/components/autosuggest_hashtag.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/components/autosuggest_textarea.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/components/autosuggest_input.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/poll_button.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/poll_button_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/upload_button.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/upload_button_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/text_icon_button.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/spoiler_button_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/privacy_dropdown.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/privacy_dropdown_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/emoji_picker_dropdown_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/poll_form.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/poll_form_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/upload_progress_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/upload.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/upload_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/sensitive_button_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/upload_form.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/upload_form_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/warning.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/warning_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/components/compose_form.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/compose_form_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/containers/navigation_container.js","webpack:///app/javascript/tank/sources/git/git.pleroma.social/pleroma/mastofe/app/javascript/mastodon/features/compose/index.js"],"names":["assetHost","process","env","CDN_HOST","AutosuggestEmoji","render","url","emoji","this","props","custom","imageUrl","mapping","unicodeMapping","native","replace","filename","className","src","alt","colons","React","PureComponent","EmojiPicker","Emoji","messages","defineMessages","emoji_search","emoji_not_found","recent","search_results","people","nature","food","activity","travel","objects","symbols","flags","backgroundImageFn","listenerOptions","detectPassiveEvents","hasSupport","passive","ModifierPickerMenu","e","onSelect","currentTarget","getAttribute","node","contains","target","onClose","c","componentWillReceiveProps","nextProps","active","attachListeners","removeListeners","componentWillUnmount","document","addEventListener","handleDocumentClick","removeEventListener","style","display","ref","setRef","onClick","handleClick","data-index","set","size","sheetSize","skin","ModifierPicker","onOpen","modifier","onChange","handleSelect","EmojiPickerMenu","injectIntl","modifierOpen","placement","intl","search","formatMessage","notfound","categories","foods","places","onPick","setState","onSkinTone","componentDidMount","loading","custom_emojis","skinTone","frequentlyUsedEmojis","width","title","state","categoriesSort","splice","Array","from","categoriesFromEmojis","sort","classNames","selecting","perLine","emojiSize","buildCustomEmojis","color","i18n","getI18n","include","showPreview","autoFocus","emojiTooltip","handleModifierOpen","handleModifierClose","handleModifierChange","EmojiPickerDropdown","dropdown","EmojiPickerAsync","then","EmojiMart","Picker","catch","top","getBoundingClientRect","innerHeight","key","onHideDropdown","onShowDropdown","onPickEmoji","onKeyDown","handleKeyDown","setTargetRef","aria-label","aria-expanded","role","onToggle","tabIndex","show","findTarget","cancel","ReplyIndicator","onCancel","button","ctrlKey","metaKey","preventDefault","context","router","history","push","status","getIn","content","__html","get","direction","isRtl","icon","inverted","href","handleAccountClick","account","dangerouslySetInnerHTML","compact","media","ImmutablePureComponent","PropTypes","object","ImmutablePropTypes","map","func","isRequired","connect","getStatus","makeGetStatus","id","dispatch","cancelReplyCompose","AutosuggestAccount","getAccount","makeGetAccount","AutosuggestHashtag","tag","weeklyUses","shortNumberFormat","reduce","total","day","uses","name","undefined","defaultMessage","values","count","textAtCursorMatchesToken","str","caretPosition","word","left","slice","right","trim","length","indexOf","toLowerCase","AutosuggestTextarea","suggestionsHidden","focused","selectedSuggestion","lastToken","tokenStart","value","selectionStart","token","onSuggestionsFetchRequested","onSuggestionsClearRequested","suggestions","disabled","which","isComposing","querySelector","parentElement","focus","Math","min","max","stopPropagation","onSuggestionSelected","defaultPrevented","onFocus","suggestion","textarea","clipboardData","files","onPaste","i","inner","type","selected","onMouseDown","onSuggestionClick","placeholder","onKeyUp","children","inputRef","setTextarea","onBlur","aria-autocomplete","isEmpty","renderSuggestion","string","list","bool","searchTokens","AutosuggestInput","input","maxLength","setInput","arrayOf","number","ImmutableList","add_poll","remove_poll","iconStyle","height","lineHeight","PollButton","unavailable","_","getState","removePoll","addPoll","upload","UploadButton","acceptContentTypes","onSelectFile","fileElement","click","resetFileKey","formats","multiple","handleChange","listOf","some","m","includes","uploadCompose","TextIconButton","label","ariaControls","aria-controls","marked","unmarked","changeComposeSpoilerness","public_short","public_long","unlisted_short","unlisted_long","private_short","private_long","direct_short","direct_long","change_privacy","PrivacyDropdownMenu","mounted","element","items","index","findIndex","item","childNodes","shiftKey","lastChild","firstChild","focusedItem","defaultStyle","opacity","scaleX","scaleY","spring","damping","stiffness","transform","zIndex","aria-selected","setFocusRef","fixedWidth","text","meta","PrivacyDropdown","open","isUserTouching","onModalClose","onModalOpen","actions","options","option","handleModalActionClick","activeElement","handleClose","handleMouseDown","componentWillMount","valueOption","find","expanded","handleToggle","handleButtonKeyDown","isModalOpen","modalType","changeComposeVisibility","openModal","closeModal","DEFAULTS","getFrequentlyUsedEmojis","createSelector","ImmutableMap","emojiCounters","emojis","keySeq","a","b","reverse","toArray","uniqueDefaults","filter","concat","getCustomEmojis","aShort","bShort","changeSetting","useEmoji","option_placeholder","add_option","remove_option","poll_duration","switchToMultiple","switchToSingle","minutes","hours","days","Option","onRemove","onToggleMultiple","handleToggleMultiple","onClearSuggestions","onFetchSuggestions","isPollMultiple","checkbox","onKeyPress","handleCheckboxKeypress","handleOptionTitleChange","handleOptionRemove","PollForm","onAddOption","onChangeSettings","isMultiple","expiresIn","onChangeOption","onRemoveOption","other","handleAddOption","handleSelectDuration","addPollOption","removePollOption","changePollOption","changePollSettings","clearComposeSuggestions","fetchComposeSuggestions","position","accountId","path","selectComposeSuggestion","progress","UploadProgress","Upload","onUndo","onOpenFocalPoint","focusX","focusY","x","y","scale","backgroundImage","backgroundPosition","handleUndoClick","handleFocalPointClick","undoUploadCompose","onSubmit","submitCompose","SensitiveButton","checked","changeComposeSensitivity","UploadForm","mediaIds","message","Warning","APPROX_HASHTAG_RE","needsLockWarning","me","hashtagWarning","test","directMessageWarning","locked","allowedAroundShortCode","spoiler_placeholder","publish","publishLoud","ComposeForm","keyCode","handleSubmit","autosuggestTextarea","isSubmitting","isChangingUpload","isUploading","anyMedia","fulltext","spoilerText","join","maxChars","onChangeSpoilerText","composeForm","singleColumn","window","innerWidth","documentElement","clientWidth","scrollIntoView","data","needsSpace","componentDidUpdate","prevProps","selectionEnd","focusDate","preselectDate","setSelectionRange","spoiler","showSearch","disabledButton","publishText","privacy","handleChangeSpoilerText","setSpoilerText","onSpoilerSuggestionSelected","setAutosuggestTextarea","handleFocus","isMobile","handleEmojiPick","block","instanceOf","Date","changeCompose","changeComposeSpoilerText","insertEmojiCompose","logoutMessage","logoutConfirm","onLogout","confirm","onConfirm","logOut","NavigationBar","start","home_timeline","notifications","public","community","preferences","logout","compose","Compose","ownProps","columns","multiColumn","isSearchPage","changeComposing","mountCompose","unmountCompose","header","to","column","handleLogoutClick","draggable","mascot","elephantUIPlane","visibility"],"mappings":"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","file":"features/compose.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport unicodeMapping from '../features/emoji/emoji_unicode_mapping_light';\n\nconst assetHost = process.env.CDN_HOST || '';\n\nexport default class AutosuggestEmoji extends React.PureComponent {\n\n static propTypes = {\n emoji: PropTypes.object.isRequired,\n };\n\n render () {\n const { emoji } = this.props;\n let url;\n\n if (emoji.custom) {\n url = emoji.imageUrl;\n } else {\n const mapping = unicodeMapping[emoji.native] || unicodeMapping[emoji.native.replace(/\\uFE0F$/, '')];\n\n if (!mapping) {\n return null;\n }\n\n url = `${assetHost}/emoji/${mapping.filename}.svg`;\n }\n\n return (\n <div className='autosuggest-emoji'>\n <img\n className='emojione'\n src={url}\n alt={emoji.native || emoji.colons}\n />\n\n {emoji.colons}\n </div>\n );\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';\nimport Overlay from 'react-overlays/lib/Overlay';\nimport classNames from 'classnames';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport detectPassiveEvents from 'detect-passive-events';\nimport { buildCustomEmojis, categoriesFromEmojis } from '../../emoji/emoji';\n\nconst messages = defineMessages({\n emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },\n emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' },\n emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojos!! (╯°□°)╯︵ ┻━┻' },\n custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },\n recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },\n search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' },\n people: { id: 'emoji_button.people', defaultMessage: 'People' },\n nature: { id: 'emoji_button.nature', defaultMessage: 'Nature' },\n food: { id: 'emoji_button.food', defaultMessage: 'Food & Drink' },\n activity: { id: 'emoji_button.activity', defaultMessage: 'Activity' },\n travel: { id: 'emoji_button.travel', defaultMessage: 'Travel & Places' },\n objects: { id: 'emoji_button.objects', defaultMessage: 'Objects' },\n symbols: { id: 'emoji_button.symbols', defaultMessage: 'Symbols' },\n flags: { id: 'emoji_button.flags', defaultMessage: 'Flags' },\n});\n\nconst assetHost = process.env.CDN_HOST || '';\nlet EmojiPicker, Emoji; // load asynchronously\n\nconst backgroundImageFn = () => `${assetHost}/emoji/sheet_10.png`;\nconst listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;\n\nclass ModifierPickerMenu extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n onSelect: PropTypes.func.isRequired,\n onClose: PropTypes.func.isRequired,\n };\n\n handleClick = e => {\n this.props.onSelect(e.currentTarget.getAttribute('data-index') * 1);\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.active) {\n this.attachListeners();\n } else {\n this.removeListeners();\n }\n }\n\n componentWillUnmount () {\n this.removeListeners();\n }\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n attachListeners () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n removeListeners () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n render () {\n const { active } = this.props;\n\n return (\n <div className='emoji-picker-dropdown__modifiers__menu' style={{ display: active ? 'block' : 'none' }} ref={this.setRef}>\n <button onClick={this.handleClick} data-index={1}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={1} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={2}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={2} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={3}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={3} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={4}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={4} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={5}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={5} backgroundImageFn={backgroundImageFn} /></button>\n <button onClick={this.handleClick} data-index={6}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={6} backgroundImageFn={backgroundImageFn} /></button>\n </div>\n );\n }\n\n}\n\nclass ModifierPicker extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n modifier: PropTypes.number,\n onChange: PropTypes.func,\n onClose: PropTypes.func,\n onOpen: PropTypes.func,\n };\n\n handleClick = () => {\n if (this.props.active) {\n this.props.onClose();\n } else {\n this.props.onOpen();\n }\n }\n\n handleSelect = modifier => {\n this.props.onChange(modifier);\n this.props.onClose();\n }\n\n render () {\n const { active, modifier } = this.props;\n\n return (\n <div className='emoji-picker-dropdown__modifiers'>\n <Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={modifier} onClick={this.handleClick} backgroundImageFn={backgroundImageFn} />\n <ModifierPickerMenu active={active} onSelect={this.handleSelect} onClose={this.props.onClose} />\n </div>\n );\n }\n\n}\n\n@injectIntl\nclass EmojiPickerMenu extends React.PureComponent {\n\n static propTypes = {\n custom_emojis: ImmutablePropTypes.list,\n frequentlyUsedEmojis: PropTypes.arrayOf(PropTypes.string),\n loading: PropTypes.bool,\n onClose: PropTypes.func.isRequired,\n onPick: PropTypes.func.isRequired,\n style: PropTypes.object,\n placement: PropTypes.string,\n arrowOffsetLeft: PropTypes.string,\n arrowOffsetTop: PropTypes.string,\n intl: PropTypes.object.isRequired,\n skinTone: PropTypes.number.isRequired,\n onSkinTone: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n style: {},\n loading: true,\n frequentlyUsedEmojis: [],\n };\n\n state = {\n modifierOpen: false,\n placement: null,\n };\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n componentDidMount () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n componentWillUnmount () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n getI18n = () => {\n const { intl } = this.props;\n\n return {\n search: intl.formatMessage(messages.emoji_search),\n notfound: intl.formatMessage(messages.emoji_not_found),\n categories: {\n search: intl.formatMessage(messages.search_results),\n recent: intl.formatMessage(messages.recent),\n people: intl.formatMessage(messages.people),\n nature: intl.formatMessage(messages.nature),\n foods: intl.formatMessage(messages.food),\n activity: intl.formatMessage(messages.activity),\n places: intl.formatMessage(messages.travel),\n objects: intl.formatMessage(messages.objects),\n symbols: intl.formatMessage(messages.symbols),\n flags: intl.formatMessage(messages.flags),\n custom: intl.formatMessage(messages.custom),\n },\n };\n }\n\n handleClick = emoji => {\n if (!emoji.native) {\n emoji.native = emoji.colons;\n }\n\n this.props.onClose();\n this.props.onPick(emoji);\n }\n\n handleModifierOpen = () => {\n this.setState({ modifierOpen: true });\n }\n\n handleModifierClose = () => {\n this.setState({ modifierOpen: false });\n }\n\n handleModifierChange = modifier => {\n this.props.onSkinTone(modifier);\n }\n\n render () {\n const { loading, style, intl, custom_emojis, skinTone, frequentlyUsedEmojis } = this.props;\n\n if (loading) {\n return <div style={{ width: 299 }} />;\n }\n\n const title = intl.formatMessage(messages.emoji);\n\n const { modifierOpen } = this.state;\n\n const categoriesSort = [\n 'recent',\n 'people',\n 'nature',\n 'foods',\n 'activity',\n 'places',\n 'objects',\n 'symbols',\n 'flags',\n ];\n\n categoriesSort.splice(1, 0, ...Array.from(categoriesFromEmojis(custom_emojis)).sort());\n\n return (\n <div className={classNames('emoji-picker-dropdown__menu', { selecting: modifierOpen })} style={style} ref={this.setRef}>\n <EmojiPicker\n perLine={8}\n emojiSize={22}\n sheetSize={32}\n custom={buildCustomEmojis(custom_emojis)}\n color=''\n emoji=''\n set='twitter'\n title={title}\n i18n={this.getI18n()}\n onClick={this.handleClick}\n include={categoriesSort}\n recent={frequentlyUsedEmojis}\n skin={skinTone}\n showPreview={false}\n backgroundImageFn={backgroundImageFn}\n autoFocus\n emojiTooltip\n />\n\n <ModifierPicker\n active={modifierOpen}\n modifier={skinTone}\n onOpen={this.handleModifierOpen}\n onClose={this.handleModifierClose}\n onChange={this.handleModifierChange}\n />\n </div>\n );\n }\n\n}\n\nexport default @injectIntl\nclass EmojiPickerDropdown extends React.PureComponent {\n\n static propTypes = {\n custom_emojis: ImmutablePropTypes.list,\n frequentlyUsedEmojis: PropTypes.arrayOf(PropTypes.string),\n intl: PropTypes.object.isRequired,\n onPickEmoji: PropTypes.func.isRequired,\n onSkinTone: PropTypes.func.isRequired,\n skinTone: PropTypes.number.isRequired,\n };\n\n state = {\n active: false,\n loading: false,\n };\n\n setRef = (c) => {\n this.dropdown = c;\n }\n\n onShowDropdown = ({ target }) => {\n this.setState({ active: true });\n\n if (!EmojiPicker) {\n this.setState({ loading: true });\n\n EmojiPickerAsync().then(EmojiMart => {\n EmojiPicker = EmojiMart.Picker;\n Emoji = EmojiMart.Emoji;\n\n this.setState({ loading: false });\n }).catch(() => {\n this.setState({ loading: false });\n });\n }\n\n const { top } = target.getBoundingClientRect();\n this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\n }\n\n onHideDropdown = () => {\n this.setState({ active: false });\n }\n\n onToggle = (e) => {\n if (!this.state.loading && (!e.key || e.key === 'Enter')) {\n if (this.state.active) {\n this.onHideDropdown();\n } else {\n this.onShowDropdown(e);\n }\n }\n }\n\n handleKeyDown = e => {\n if (e.key === 'Escape') {\n this.onHideDropdown();\n }\n }\n\n setTargetRef = c => {\n this.target = c;\n }\n\n findTarget = () => {\n return this.target;\n }\n\n render () {\n const { intl, onPickEmoji, onSkinTone, skinTone, frequentlyUsedEmojis } = this.props;\n const title = intl.formatMessage(messages.emoji);\n const { active, loading, placement } = this.state;\n\n return (\n <div className='emoji-picker-dropdown' onKeyDown={this.handleKeyDown}>\n <div ref={this.setTargetRef} className='emoji-button' title={title} aria-label={title} aria-expanded={active} role='button' onClick={this.onToggle} onKeyDown={this.onToggle} tabIndex={0}>\n <img\n className={classNames('emojione', { 'pulse-loading': active && loading })}\n alt='🙂'\n src={`${assetHost}/emoji/1f602.svg`}\n />\n </div>\n\n <Overlay show={active} placement={placement} target={this.findTarget}>\n <EmojiPickerMenu\n custom_emojis={this.props.custom_emojis}\n loading={loading}\n onClose={this.onHideDropdown}\n onPick={onPickEmoji}\n onSkinTone={onSkinTone}\n skinTone={skinTone}\n frequentlyUsedEmojis={frequentlyUsedEmojis}\n />\n </Overlay>\n </div>\n );\n }\n\n}\n","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport Avatar from '../../../components/avatar';\nimport IconButton from '../../../components/icon_button';\nimport DisplayName from '../../../components/display_name';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { isRtl } from '../../../rtl';\nimport AttachmentList from 'mastodon/components/attachment_list';\n\nconst messages = defineMessages({\n cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },\n});\n\nexport default @injectIntl\nclass ReplyIndicator extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n status: ImmutablePropTypes.map,\n onCancel: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleClick = () => {\n this.props.onCancel();\n }\n\n handleAccountClick = (e) => {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);\n }\n }\n\n render () {\n const { status, intl } = this.props;\n\n if (!status) {\n return null;\n }\n\n const content = { __html: status.get('contentHtml') };\n const style = {\n direction: isRtl(status.get('search_index')) ? 'rtl' : 'ltr',\n };\n\n return (\n <div className='reply-indicator'>\n <div className='reply-indicator__header'>\n <div className='reply-indicator__cancel'><IconButton title={intl.formatMessage(messages.cancel)} icon='times' onClick={this.handleClick} inverted /></div>\n\n <a href={status.getIn(['account', 'url'])} onClick={this.handleAccountClick} className='reply-indicator__display-name'>\n <div className='reply-indicator__display-avatar'><Avatar account={status.get('account')} size={24} /></div>\n <DisplayName account={status.get('account')} />\n </a>\n </div>\n\n <div className='reply-indicator__content' style={style} dangerouslySetInnerHTML={content} />\n\n {status.get('media_attachments').size > 0 && (\n <AttachmentList\n compact\n media={status.get('media_attachments')}\n />\n )}\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport { cancelReplyCompose } from '../../../actions/compose';\nimport { makeGetStatus } from '../../../selectors';\nimport ReplyIndicator from '../components/reply_indicator';\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n\n const mapStateToProps = state => ({\n status: getStatus(state, { id: state.getIn(['compose', 'in_reply_to']) }),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = dispatch => ({\n\n onCancel () {\n dispatch(cancelReplyCompose());\n },\n\n});\n\nexport default connect(makeMapStateToProps, mapDispatchToProps)(ReplyIndicator);\n","import React from 'react';\nimport Avatar from '../../../components/avatar';\nimport DisplayName from '../../../components/display_name';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class AutosuggestAccount extends ImmutablePureComponent {\n\n static propTypes = {\n account: ImmutablePropTypes.map.isRequired,\n };\n\n render () {\n const { account } = this.props;\n\n return (\n <div className='autosuggest-account' title={account.get('acct')}>\n <div className='autosuggest-account-icon'><Avatar account={account} size={18} /></div>\n <DisplayName account={account} />\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport AutosuggestAccount from '../components/autosuggest_account';\nimport { makeGetAccount } from '../../../selectors';\n\nconst makeMapStateToProps = () => {\n const getAccount = makeGetAccount();\n\n const mapStateToProps = (state, { id }) => ({\n account: getAccount(state, id),\n });\n\n return mapStateToProps;\n};\n\nexport default connect(makeMapStateToProps)(AutosuggestAccount);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { shortNumberFormat } from 'mastodon/utils/numbers';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class AutosuggestHashtag extends React.PureComponent {\n\n static propTypes = {\n tag: PropTypes.shape({\n name: PropTypes.string.isRequired,\n url: PropTypes.string,\n history: PropTypes.array,\n }).isRequired,\n };\n\n render () {\n const { tag } = this.props;\n const weeklyUses = tag.history && shortNumberFormat(tag.history.reduce((total, day) => total + (day.uses * 1), 0));\n\n return (\n <div className='autosuggest-hashtag'>\n <div className='autosuggest-hashtag__name'>#<strong>{tag.name}</strong></div>\n {tag.history !== undefined && <div className='autosuggest-hashtag__uses'><FormattedMessage id='autosuggest_hashtag.per_week' defaultMessage='{count} per week' values={{ count: weeklyUses }} /></div>}\n </div>\n );\n }\n\n}\n","import React from 'react';\nimport AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';\nimport AutosuggestEmoji from './autosuggest_emoji';\nimport AutosuggestHashtag from './autosuggest_hashtag';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { isRtl } from '../rtl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Textarea from 'react-textarea-autosize';\nimport classNames from 'classnames';\n\nconst textAtCursorMatchesToken = (str, caretPosition) => {\n let word;\n\n let left = str.slice(0, caretPosition).search(/\\S+$/);\n let right = str.slice(caretPosition).search(/\\s/);\n\n if (right < 0) {\n word = str.slice(left);\n } else {\n word = str.slice(left, right + caretPosition);\n }\n\n if (!word || word.trim().length < 3 || ['@', ':', '#'].indexOf(word[0]) === -1) {\n return [null, null];\n }\n\n word = word.trim().toLowerCase();\n\n if (word.length > 0) {\n return [left + 1, word];\n } else {\n return [null, null];\n }\n};\n\nexport default class AutosuggestTextarea extends ImmutablePureComponent {\n\n static propTypes = {\n value: PropTypes.string,\n suggestions: ImmutablePropTypes.list,\n disabled: PropTypes.bool,\n placeholder: PropTypes.string,\n onSuggestionSelected: PropTypes.func.isRequired,\n onSuggestionsClearRequested: PropTypes.func.isRequired,\n onSuggestionsFetchRequested: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n onPaste: PropTypes.func.isRequired,\n autoFocus: PropTypes.bool,\n };\n\n static defaultProps = {\n autoFocus: true,\n };\n\n state = {\n suggestionsHidden: true,\n focused: false,\n selectedSuggestion: 0,\n lastToken: null,\n tokenStart: 0,\n };\n\n onChange = (e) => {\n const [ tokenStart, token ] = textAtCursorMatchesToken(e.target.value, e.target.selectionStart);\n\n if (token !== null && this.state.lastToken !== token) {\n this.setState({ lastToken: token, selectedSuggestion: 0, tokenStart });\n this.props.onSuggestionsFetchRequested(token);\n } else if (token === null) {\n this.setState({ lastToken: null });\n this.props.onSuggestionsClearRequested();\n }\n\n this.props.onChange(e);\n }\n\n onKeyDown = (e) => {\n const { suggestions, disabled } = this.props;\n const { selectedSuggestion, suggestionsHidden } = this.state;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n if (e.which === 229 || e.isComposing) {\n // Ignore key events during text composition\n // e.key may be a name of the physical key even in this case (e.x. Safari / Chrome on Mac)\n return;\n }\n\n switch(e.key) {\n case 'Escape':\n if (suggestions.size === 0 || suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n } else {\n e.preventDefault();\n this.setState({ suggestionsHidden: true });\n }\n\n break;\n case 'ArrowDown':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.min(selectedSuggestion + 1, suggestions.size - 1) });\n }\n\n break;\n case 'ArrowUp':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.max(selectedSuggestion - 1, 0) });\n }\n\n break;\n case 'Enter':\n case 'Tab':\n // Select suggestion\n if (this.state.lastToken !== null && suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestions.get(selectedSuggestion));\n }\n\n break;\n }\n\n if (e.defaultPrevented || !this.props.onKeyDown) {\n return;\n }\n\n this.props.onKeyDown(e);\n }\n\n onBlur = () => {\n this.setState({ suggestionsHidden: true, focused: false });\n }\n\n onFocus = (e) => {\n this.setState({ focused: true });\n if (this.props.onFocus) {\n this.props.onFocus(e);\n }\n }\n\n onSuggestionClick = (e) => {\n const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion);\n this.textarea.focus();\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) {\n this.setState({ suggestionsHidden: false });\n }\n }\n\n setTextarea = (c) => {\n this.textarea = c;\n }\n\n onPaste = (e) => {\n if (e.clipboardData && e.clipboardData.files.length === 1) {\n this.props.onPaste(e.clipboardData.files);\n e.preventDefault();\n }\n }\n\n renderSuggestion = (suggestion, i) => {\n const { selectedSuggestion } = this.state;\n let inner, key;\n\n if (suggestion.type === 'emoji') {\n inner = <AutosuggestEmoji emoji={suggestion} />;\n key = suggestion.id;\n } else if (suggestion.type === 'hashtag') {\n inner = <AutosuggestHashtag tag={suggestion} />;\n key = suggestion.name;\n } else if (suggestion.type === 'account') {\n inner = <AutosuggestAccountContainer id={suggestion.id} />;\n key = suggestion.id;\n }\n\n return (\n <div role='button' tabIndex='0' key={key} data-index={i} className={classNames('autosuggest-textarea__suggestions__item', { selected: i === selectedSuggestion })} onMouseDown={this.onSuggestionClick}>\n {inner}\n </div>\n );\n }\n\n render () {\n const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, children } = this.props;\n const { suggestionsHidden } = this.state;\n const style = { direction: 'ltr' };\n\n if (isRtl(value)) {\n style.direction = 'rtl';\n }\n\n return [\n <div className='compose-form__autosuggest-wrapper' key='autosuggest-wrapper'>\n <div className='autosuggest-textarea'>\n <label>\n <span style={{ display: 'none' }}>{placeholder}</span>\n\n <Textarea\n inputRef={this.setTextarea}\n className='autosuggest-textarea__textarea'\n disabled={disabled}\n placeholder={placeholder}\n autoFocus={autoFocus}\n value={value}\n onChange={this.onChange}\n onKeyDown={this.onKeyDown}\n onKeyUp={onKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onPaste={this.onPaste}\n style={style}\n aria-autocomplete='list'\n />\n </label>\n </div>\n {children}\n </div>,\n\n <div className='autosuggest-textarea__suggestions-wrapper' key='suggestions-wrapper'>\n <div className={`autosuggest-textarea__suggestions ${suggestionsHidden || suggestions.isEmpty() ? '' : 'autosuggest-textarea__suggestions--visible'}`}>\n {suggestions.map(this.renderSuggestion)}\n </div>\n </div>,\n ];\n }\n\n}\n","import React from 'react';\nimport AutosuggestAccountContainer from '../features/compose/containers/autosuggest_account_container';\nimport AutosuggestEmoji from './autosuggest_emoji';\nimport AutosuggestHashtag from './autosuggest_hashtag';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport { isRtl } from '../rtl';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport classNames from 'classnames';\nimport { List as ImmutableList } from 'immutable';\n\nconst textAtCursorMatchesToken = (str, caretPosition, searchTokens) => {\n let word;\n\n let left = str.slice(0, caretPosition).search(/\\S+$/);\n let right = str.slice(caretPosition).search(/\\s/);\n\n if (right < 0) {\n word = str.slice(left);\n } else {\n word = str.slice(left, right + caretPosition);\n }\n\n if (!word || word.trim().length < 3 || searchTokens.indexOf(word[0]) === -1) {\n return [null, null];\n }\n\n word = word.trim().toLowerCase();\n\n if (word.length > 0) {\n return [left + 1, word];\n } else {\n return [null, null];\n }\n};\n\nexport default class AutosuggestInput extends ImmutablePureComponent {\n\n static propTypes = {\n value: PropTypes.string,\n suggestions: ImmutablePropTypes.list,\n disabled: PropTypes.bool,\n placeholder: PropTypes.string,\n onSuggestionSelected: PropTypes.func.isRequired,\n onSuggestionsClearRequested: PropTypes.func.isRequired,\n onSuggestionsFetchRequested: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n onKeyUp: PropTypes.func,\n onKeyDown: PropTypes.func,\n autoFocus: PropTypes.bool,\n className: PropTypes.string,\n id: PropTypes.string,\n searchTokens: PropTypes.arrayOf(PropTypes.string),\n maxLength: PropTypes.number,\n };\n\n static defaultProps = {\n autoFocus: true,\n searchTokens: ImmutableList(['@', ':', '#']),\n };\n\n state = {\n suggestionsHidden: true,\n focused: false,\n selectedSuggestion: 0,\n lastToken: null,\n tokenStart: 0,\n };\n\n onChange = (e) => {\n const [ tokenStart, token ] = textAtCursorMatchesToken(e.target.value, e.target.selectionStart, this.props.searchTokens);\n\n if (token !== null && this.state.lastToken !== token) {\n this.setState({ lastToken: token, selectedSuggestion: 0, tokenStart });\n this.props.onSuggestionsFetchRequested(token);\n } else if (token === null) {\n this.setState({ lastToken: null });\n this.props.onSuggestionsClearRequested();\n }\n\n this.props.onChange(e);\n }\n\n onKeyDown = (e) => {\n const { suggestions, disabled } = this.props;\n const { selectedSuggestion, suggestionsHidden } = this.state;\n\n if (disabled) {\n e.preventDefault();\n return;\n }\n\n if (e.which === 229 || e.isComposing) {\n // Ignore key events during text composition\n // e.key may be a name of the physical key even in this case (e.x. Safari / Chrome on Mac)\n return;\n }\n\n switch(e.key) {\n case 'Escape':\n if (suggestions.size === 0 || suggestionsHidden) {\n document.querySelector('.ui').parentElement.focus();\n } else {\n e.preventDefault();\n this.setState({ suggestionsHidden: true });\n }\n\n break;\n case 'ArrowDown':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.min(selectedSuggestion + 1, suggestions.size - 1) });\n }\n\n break;\n case 'ArrowUp':\n if (suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n this.setState({ selectedSuggestion: Math.max(selectedSuggestion - 1, 0) });\n }\n\n break;\n case 'Enter':\n case 'Tab':\n // Select suggestion\n if (this.state.lastToken !== null && suggestions.size > 0 && !suggestionsHidden) {\n e.preventDefault();\n e.stopPropagation();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestions.get(selectedSuggestion));\n }\n\n break;\n }\n\n if (e.defaultPrevented || !this.props.onKeyDown) {\n return;\n }\n\n this.props.onKeyDown(e);\n }\n\n onBlur = () => {\n this.setState({ suggestionsHidden: true, focused: false });\n }\n\n onFocus = () => {\n this.setState({ focused: true });\n }\n\n onSuggestionClick = (e) => {\n const suggestion = this.props.suggestions.get(e.currentTarget.getAttribute('data-index'));\n e.preventDefault();\n this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion);\n this.input.focus();\n }\n\n componentWillReceiveProps (nextProps) {\n if (nextProps.suggestions !== this.props.suggestions && nextProps.suggestions.size > 0 && this.state.suggestionsHidden && this.state.focused) {\n this.setState({ suggestionsHidden: false });\n }\n }\n\n setInput = (c) => {\n this.input = c;\n }\n\n renderSuggestion = (suggestion, i) => {\n const { selectedSuggestion } = this.state;\n let inner, key;\n\n if (suggestion.type === 'emoji') {\n inner = <AutosuggestEmoji emoji={suggestion} />;\n key = suggestion.id;\n } else if (suggestion.type ==='hashtag') {\n inner = <AutosuggestHashtag tag={suggestion} />;\n key = suggestion.name;\n } else if (suggestion.type === 'account') {\n inner = <AutosuggestAccountContainer id={suggestion.id} />;\n key = suggestion.id;\n }\n\n return (\n <div role='button' tabIndex='0' key={key} data-index={i} className={classNames('autosuggest-textarea__suggestions__item', { selected: i === selectedSuggestion })} onMouseDown={this.onSuggestionClick}>\n {inner}\n </div>\n );\n }\n\n render () {\n const { value, suggestions, disabled, placeholder, onKeyUp, autoFocus, className, id, maxLength } = this.props;\n const { suggestionsHidden } = this.state;\n const style = { direction: 'ltr' };\n\n if (isRtl(value)) {\n style.direction = 'rtl';\n }\n\n return (\n <div className='autosuggest-input'>\n <label>\n <span style={{ display: 'none' }}>{placeholder}</span>\n\n <input\n type='text'\n ref={this.setInput}\n disabled={disabled}\n placeholder={placeholder}\n autoFocus={autoFocus}\n value={value}\n onChange={this.onChange}\n onKeyDown={this.onKeyDown}\n onKeyUp={onKeyUp}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n style={style}\n aria-autocomplete='list'\n id={id}\n className={className}\n maxLength={maxLength}\n />\n </label>\n\n <div className={`autosuggest-textarea__suggestions ${suggestionsHidden || suggestions.isEmpty() ? '' : 'autosuggest-textarea__suggestions--visible'}`}>\n {suggestions.map(this.renderSuggestion)}\n </div>\n </div>\n );\n }\n\n}\n","import React from 'react';\nimport IconButton from '../../../components/icon_button';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nconst messages = defineMessages({\n add_poll: { id: 'poll_button.add_poll', defaultMessage: 'Add a poll' },\n remove_poll: { id: 'poll_button.remove_poll', defaultMessage: 'Remove poll' },\n});\n\nconst iconStyle = {\n height: null,\n lineHeight: '27px',\n};\n\nexport default\n@injectIntl\nclass PollButton extends React.PureComponent {\n\n static propTypes = {\n disabled: PropTypes.bool,\n unavailable: PropTypes.bool,\n active: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleClick = () => {\n this.props.onClick();\n }\n\n render () {\n const { intl, active, unavailable, disabled } = this.props;\n\n if (unavailable) {\n return null;\n }\n\n return (\n <div className='compose-form__poll-button'>\n <IconButton\n icon='tasks'\n title={intl.formatMessage(active ? messages.remove_poll : messages.add_poll)}\n disabled={disabled}\n onClick={this.handleClick}\n className={`compose-form__poll-button-icon ${active ? 'active' : ''}`}\n size={18}\n inverted\n style={iconStyle}\n />\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport PollButton from '../components/poll_button';\nimport { addPoll, removePoll } from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n unavailable: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size > 0),\n active: state.getIn(['compose', 'poll']) !== null,\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onClick () {\n dispatch((_, getState) => {\n if (getState().getIn(['compose', 'poll'])) {\n dispatch(removePoll());\n } else {\n dispatch(addPoll());\n }\n });\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PollButton);\n","import React from 'react';\nimport IconButton from '../../../components/icon_button';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { connect } from 'react-redux';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\n\nconst messages = defineMessages({\n upload: { id: 'upload_button.label', defaultMessage: 'Add media ({formats})' },\n});\n\nconst SUPPORTED_FORMATS = 'JPEG, PNG, GIF, WebM, MP4, MOV, OGG, WAV, MP3, FLAC';\n\nconst makeMapStateToProps = () => {\n const mapStateToProps = state => ({\n acceptContentTypes: state.getIn(['media_attachments', 'accept_content_types']),\n });\n\n return mapStateToProps;\n};\n\nconst iconStyle = {\n height: null,\n lineHeight: '27px',\n};\n\nexport default @connect(makeMapStateToProps)\n@injectIntl\nclass UploadButton extends ImmutablePureComponent {\n\n static propTypes = {\n disabled: PropTypes.bool,\n unavailable: PropTypes.bool,\n onSelectFile: PropTypes.func.isRequired,\n style: PropTypes.object,\n resetFileKey: PropTypes.number,\n acceptContentTypes: ImmutablePropTypes.listOf(PropTypes.string).isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleChange = (e) => {\n if (e.target.files.length > 0) {\n this.props.onSelectFile(e.target.files);\n }\n }\n\n handleClick = () => {\n this.fileElement.click();\n }\n\n setRef = (c) => {\n this.fileElement = c;\n }\n\n render () {\n const { intl, resetFileKey, unavailable, disabled, acceptContentTypes } = this.props;\n\n if (unavailable) {\n return null;\n }\n\n return (\n <div className='compose-form__upload-button'>\n <IconButton icon='paperclip' title={intl.formatMessage(messages.upload, { formats: SUPPORTED_FORMATS })} disabled={disabled} onClick={this.handleClick} className='compose-form__upload-button-icon' size={18} inverted style={iconStyle} />\n <label>\n <span style={{ display: 'none' }}>{intl.formatMessage(messages.upload, { formats: SUPPORTED_FORMATS })}</span>\n <input\n key={resetFileKey}\n ref={this.setRef}\n type='file'\n multiple\n onChange={this.handleChange}\n disabled={disabled}\n style={{ display: 'none' }}\n />\n </label>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport UploadButton from '../components/upload_button';\nimport { uploadCompose } from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n disabled: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size + state.getIn(['compose', 'pending_media_attachments']) > 3 || state.getIn(['compose', 'media_attachments']).some(m => ['video', 'audio'].includes(m.get('type')))),\n unavailable: state.getIn(['compose', 'poll']) !== null,\n resetFileKey: state.getIn(['compose', 'resetFileKey']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onSelectFile (files) {\n dispatch(uploadCompose(files));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UploadButton);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst iconStyle = {\n height: null,\n lineHeight: '27px',\n width: `${18 * 1.28571429}px`,\n};\n\nexport default class TextIconButton extends React.PureComponent {\n\n static propTypes = {\n label: PropTypes.string.isRequired,\n title: PropTypes.string,\n active: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n ariaControls: PropTypes.string,\n };\n\n handleClick = (e) => {\n e.preventDefault();\n this.props.onClick();\n }\n\n render () {\n const { label, title, active, ariaControls } = this.props;\n\n return (\n <button\n title={title}\n aria-label={title}\n className={`text-icon-button ${active ? 'active' : ''}`}\n aria-expanded={active}\n onClick={this.handleClick}\n aria-controls={ariaControls} style={iconStyle}\n >\n {label}\n </button>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport TextIconButton from '../components/text_icon_button';\nimport { changeComposeSpoilerness } from '../../../actions/compose';\nimport { injectIntl, defineMessages } from 'react-intl';\n\nconst messages = defineMessages({\n marked: { id: 'compose_form.spoiler.marked', defaultMessage: 'Text is hidden behind warning' },\n unmarked: { id: 'compose_form.spoiler.unmarked', defaultMessage: 'Text is not hidden' },\n});\n\nconst mapStateToProps = (state, { intl }) => ({\n label: 'CW',\n title: intl.formatMessage(state.getIn(['compose', 'spoiler']) ? messages.marked : messages.unmarked),\n active: state.getIn(['compose', 'spoiler']),\n ariaControls: 'cw-spoiler-input',\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onClick () {\n dispatch(changeComposeSpoilerness());\n },\n\n});\n\nexport default injectIntl(connect(mapStateToProps, mapDispatchToProps)(TextIconButton));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport IconButton from '../../../components/icon_button';\nimport Overlay from 'react-overlays/lib/Overlay';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport detectPassiveEvents from 'detect-passive-events';\nimport classNames from 'classnames';\nimport Icon from 'mastodon/components/icon';\n\nconst messages = defineMessages({\n public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },\n public_long: { id: 'privacy.public.long', defaultMessage: 'Post to public timelines' },\n unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },\n unlisted_long: { id: 'privacy.unlisted.long', defaultMessage: 'Do not show in public timelines' },\n private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },\n private_long: { id: 'privacy.private.long', defaultMessage: 'Post to followers only' },\n direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },\n direct_long: { id: 'privacy.direct.long', defaultMessage: 'Post to mentioned users only' },\n change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },\n});\n\nconst listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false;\n\nclass PrivacyDropdownMenu extends React.PureComponent {\n\n static propTypes = {\n style: PropTypes.object,\n items: PropTypes.array.isRequired,\n value: PropTypes.string.isRequired,\n placement: PropTypes.string.isRequired,\n onClose: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n state = {\n mounted: false,\n };\n\n handleDocumentClick = e => {\n if (this.node && !this.node.contains(e.target)) {\n this.props.onClose();\n }\n }\n\n handleKeyDown = e => {\n const { items } = this.props;\n const value = e.currentTarget.getAttribute('data-index');\n const index = items.findIndex(item => {\n return (item.value === value);\n });\n let element;\n\n switch(e.key) {\n case 'Escape':\n this.props.onClose();\n break;\n case 'Enter':\n this.handleClick(e);\n break;\n case 'ArrowDown':\n element = this.node.childNodes[index + 1];\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'ArrowUp':\n element = this.node.childNodes[index - 1];\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'Tab':\n if (e.shiftKey) {\n element = this.node.childNodes[index - 1] || this.node.lastChild;\n } else {\n element = this.node.childNodes[index + 1] || this.node.firstChild;\n }\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n e.preventDefault();\n e.stopPropagation();\n }\n break;\n case 'Home':\n element = this.node.firstChild;\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n case 'End':\n element = this.node.lastChild;\n if (element) {\n element.focus();\n this.props.onChange(element.getAttribute('data-index'));\n }\n break;\n }\n }\n\n handleClick = e => {\n const value = e.currentTarget.getAttribute('data-index');\n\n e.preventDefault();\n\n this.props.onClose();\n this.props.onChange(value);\n }\n\n componentDidMount () {\n document.addEventListener('click', this.handleDocumentClick, false);\n document.addEventListener('touchend', this.handleDocumentClick, listenerOptions);\n if (this.focusedItem) this.focusedItem.focus();\n this.setState({ mounted: true });\n }\n\n componentWillUnmount () {\n document.removeEventListener('click', this.handleDocumentClick, false);\n document.removeEventListener('touchend', this.handleDocumentClick, listenerOptions);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n setFocusRef = c => {\n this.focusedItem = c;\n }\n\n render () {\n const { mounted } = this.state;\n const { style, items, placement, value } = this.props;\n\n return (\n <Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>\n {({ opacity, scaleX, scaleY }) => (\n // It should not be transformed when mounting because the resulting\n // size will be used to determine the coordinate of the menu by\n // react-overlays\n <div className={`privacy-dropdown__dropdown ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null, zIndex: 2 }} role='listbox' ref={this.setRef}>\n {items.map(item => (\n <div role='option' tabIndex='0' key={item.value} data-index={item.value} onKeyDown={this.handleKeyDown} onClick={this.handleClick} className={classNames('privacy-dropdown__option', { active: item.value === value })} aria-selected={item.value === value} ref={item.value === value ? this.setFocusRef : null}>\n <div className='privacy-dropdown__option__icon'>\n <Icon id={item.icon} fixedWidth />\n </div>\n\n <div className='privacy-dropdown__option__content'>\n <strong>{item.text}</strong>\n {item.meta}\n </div>\n </div>\n ))}\n </div>\n )}\n </Motion>\n );\n }\n\n}\n\nexport default @injectIntl\nclass PrivacyDropdown extends React.PureComponent {\n\n static propTypes = {\n isUserTouching: PropTypes.func,\n isModalOpen: PropTypes.bool.isRequired,\n onModalOpen: PropTypes.func,\n onModalClose: PropTypes.func,\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n state = {\n open: false,\n placement: 'bottom',\n };\n\n handleToggle = ({ target }) => {\n if (this.props.isUserTouching()) {\n if (this.state.open) {\n this.props.onModalClose();\n } else {\n this.props.onModalOpen({\n actions: this.options.map(option => ({ ...option, active: option.value === this.props.value })),\n onClick: this.handleModalActionClick,\n });\n }\n } else {\n const { top } = target.getBoundingClientRect();\n if (this.state.open && this.activeElement) {\n this.activeElement.focus();\n }\n this.setState({ placement: top * 2 < innerHeight ? 'bottom' : 'top' });\n this.setState({ open: !this.state.open });\n }\n }\n\n handleModalActionClick = (e) => {\n e.preventDefault();\n\n const { value } = this.options[e.currentTarget.getAttribute('data-index')];\n\n this.props.onModalClose();\n this.props.onChange(value);\n }\n\n handleKeyDown = e => {\n switch(e.key) {\n case 'Escape':\n this.handleClose();\n break;\n }\n }\n\n handleMouseDown = () => {\n if (!this.state.open) {\n this.activeElement = document.activeElement;\n }\n }\n\n handleButtonKeyDown = (e) => {\n switch(e.key) {\n case ' ':\n case 'Enter':\n this.handleMouseDown();\n break;\n }\n }\n\n handleClose = () => {\n if (this.state.open && this.activeElement) {\n this.activeElement.focus();\n }\n this.setState({ open: false });\n }\n\n handleChange = value => {\n this.props.onChange(value);\n }\n\n componentWillMount () {\n const { intl: { formatMessage } } = this.props;\n\n this.options = [\n { icon: 'globe', value: 'public', text: formatMessage(messages.public_short), meta: formatMessage(messages.public_long) },\n { icon: 'unlock', value: 'unlisted', text: formatMessage(messages.unlisted_short), meta: formatMessage(messages.unlisted_long) },\n { icon: 'lock', value: 'private', text: formatMessage(messages.private_short), meta: formatMessage(messages.private_long) },\n { icon: 'envelope', value: 'direct', text: formatMessage(messages.direct_short), meta: formatMessage(messages.direct_long) },\n ];\n }\n\n render () {\n const { value, intl } = this.props;\n const { open, placement } = this.state;\n\n const valueOption = this.options.find(item => item.value === value);\n\n return (\n <div className={classNames('privacy-dropdown', placement, { active: open })} onKeyDown={this.handleKeyDown}>\n <div className={classNames('privacy-dropdown__value', { active: this.options.indexOf(valueOption) === (placement === 'bottom' ? 0 : (this.options.length - 1)) })}>\n <IconButton\n className='privacy-dropdown__value-icon'\n icon={valueOption.icon}\n title={intl.formatMessage(messages.change_privacy)}\n size={18}\n expanded={open}\n active={open}\n inverted\n onClick={this.handleToggle}\n onMouseDown={this.handleMouseDown}\n onKeyDown={this.handleButtonKeyDown}\n style={{ height: null, lineHeight: '27px' }}\n />\n </div>\n\n <Overlay show={open} placement={placement} target={this}>\n <PrivacyDropdownMenu\n items={this.options}\n value={value}\n onClose={this.handleClose}\n onChange={this.handleChange}\n placement={placement}\n />\n </Overlay>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport PrivacyDropdown from '../components/privacy_dropdown';\nimport { changeComposeVisibility } from '../../../actions/compose';\nimport { openModal, closeModal } from '../../../actions/modal';\nimport { isUserTouching } from '../../../is_mobile';\n\nconst mapStateToProps = state => ({\n isModalOpen: state.get('modal').modalType === 'ACTIONS',\n value: state.getIn(['compose', 'privacy']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (value) {\n dispatch(changeComposeVisibility(value));\n },\n\n isUserTouching,\n onModalOpen: props => dispatch(openModal('ACTIONS', props)),\n onModalClose: () => dispatch(closeModal()),\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PrivacyDropdown);\n","import { connect } from 'react-redux';\nimport EmojiPickerDropdown from '../components/emoji_picker_dropdown';\nimport { changeSetting } from '../../../actions/settings';\nimport { createSelector } from 'reselect';\nimport { Map as ImmutableMap } from 'immutable';\nimport { useEmoji } from '../../../actions/emojis';\n\nconst perLine = 8;\nconst lines = 2;\n\nconst DEFAULTS = [\n '+1',\n 'grinning',\n 'kissing_heart',\n 'heart_eyes',\n 'laughing',\n 'stuck_out_tongue_winking_eye',\n 'sweat_smile',\n 'joy',\n 'yum',\n 'disappointed',\n 'thinking_face',\n 'weary',\n 'sob',\n 'sunglasses',\n 'heart',\n 'ok_hand',\n];\n\nconst getFrequentlyUsedEmojis = createSelector([\n state => state.getIn(['settings', 'frequentlyUsedEmojis'], ImmutableMap()),\n], emojiCounters => {\n let emojis = emojiCounters\n .keySeq()\n .sort((a, b) => emojiCounters.get(a) - emojiCounters.get(b))\n .reverse()\n .slice(0, perLine * lines)\n .toArray();\n\n if (emojis.length < DEFAULTS.length) {\n let uniqueDefaults = DEFAULTS.filter(emoji => !emojis.includes(emoji));\n emojis = emojis.concat(uniqueDefaults.slice(0, DEFAULTS.length - emojis.length));\n }\n\n return emojis;\n});\n\nconst getCustomEmojis = createSelector([\n state => state.get('custom_emojis'),\n], emojis => emojis.filter(e => e.get('visible_in_picker')).sort((a, b) => {\n const aShort = a.get('shortcode').toLowerCase();\n const bShort = b.get('shortcode').toLowerCase();\n\n if (aShort < bShort) {\n return -1;\n } else if (aShort > bShort ) {\n return 1;\n } else {\n return 0;\n }\n}));\n\nconst mapStateToProps = state => ({\n custom_emojis: getCustomEmojis(state),\n skinTone: state.getIn(['settings', 'skinTone']),\n frequentlyUsedEmojis: getFrequentlyUsedEmojis(state),\n});\n\nconst mapDispatchToProps = (dispatch, { onPickEmoji }) => ({\n onSkinTone: skinTone => {\n dispatch(changeSetting(['skinTone'], skinTone));\n },\n\n onPickEmoji: emoji => {\n dispatch(useEmoji(emoji));\n\n if (onPickEmoji) {\n onPickEmoji(emoji);\n }\n },\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(EmojiPickerDropdown);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport IconButton from 'mastodon/components/icon_button';\nimport Icon from 'mastodon/components/icon';\nimport AutosuggestInput from 'mastodon/components/autosuggest_input';\nimport classNames from 'classnames';\n\nconst messages = defineMessages({\n option_placeholder: { id: 'compose_form.poll.option_placeholder', defaultMessage: 'Choice {number}' },\n add_option: { id: 'compose_form.poll.add_option', defaultMessage: 'Add a choice' },\n remove_option: { id: 'compose_form.poll.remove_option', defaultMessage: 'Remove this choice' },\n poll_duration: { id: 'compose_form.poll.duration', defaultMessage: 'Poll duration' },\n switchToMultiple: { id: 'compose_form.poll.switch_to_multiple', defaultMessage: 'Change poll to allow multiple choices' },\n switchToSingle: { id: 'compose_form.poll.switch_to_single', defaultMessage: 'Change poll to allow for a single choice' },\n minutes: { id: 'intervals.full.minutes', defaultMessage: '{number, plural, one {# minute} other {# minutes}}' },\n hours: { id: 'intervals.full.hours', defaultMessage: '{number, plural, one {# hour} other {# hours}}' },\n days: { id: 'intervals.full.days', defaultMessage: '{number, plural, one {# day} other {# days}}' },\n});\n\n@injectIntl\nclass Option extends React.PureComponent {\n\n static propTypes = {\n title: PropTypes.string.isRequired,\n index: PropTypes.number.isRequired,\n isPollMultiple: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onRemove: PropTypes.func.isRequired,\n onToggleMultiple: PropTypes.func.isRequired,\n suggestions: ImmutablePropTypes.list,\n onClearSuggestions: PropTypes.func.isRequired,\n onFetchSuggestions: PropTypes.func.isRequired,\n onSuggestionSelected: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleOptionTitleChange = e => {\n this.props.onChange(this.props.index, e.target.value);\n };\n\n handleOptionRemove = () => {\n this.props.onRemove(this.props.index);\n };\n\n\n handleToggleMultiple = e => {\n this.props.onToggleMultiple();\n e.preventDefault();\n e.stopPropagation();\n };\n\n handleCheckboxKeypress = e => {\n if (e.key === 'Enter' || e.key === ' ') {\n this.handleToggleMultiple(e);\n }\n }\n\n onSuggestionsClearRequested = () => {\n this.props.onClearSuggestions();\n }\n\n onSuggestionsFetchRequested = (token) => {\n this.props.onFetchSuggestions(token);\n }\n\n onSuggestionSelected = (tokenStart, token, value) => {\n this.props.onSuggestionSelected(tokenStart, token, value, ['poll', 'options', this.props.index]);\n }\n\n render () {\n const { isPollMultiple, title, index, intl } = this.props;\n\n return (\n <li>\n <label className='poll__text editable'>\n <span\n className={classNames('poll__input', { checkbox: isPollMultiple })}\n onClick={this.handleToggleMultiple}\n onKeyPress={this.handleCheckboxKeypress}\n role='button'\n tabIndex='0'\n title={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)}\n aria-label={intl.formatMessage(isPollMultiple ? messages.switchToSingle : messages.switchToMultiple)}\n />\n\n <AutosuggestInput\n placeholder={intl.formatMessage(messages.option_placeholder, { number: index + 1 })}\n maxLength={100}\n value={title}\n onChange={this.handleOptionTitleChange}\n suggestions={this.props.suggestions}\n onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n onSuggestionSelected={this.onSuggestionSelected}\n searchTokens={[':']}\n />\n </label>\n\n <div className='poll__cancel'>\n <IconButton disabled={index <= 1} title={intl.formatMessage(messages.remove_option)} icon='times' onClick={this.handleOptionRemove} />\n </div>\n </li>\n );\n }\n\n}\n\nexport default\n@injectIntl\nclass PollForm extends ImmutablePureComponent {\n\n static propTypes = {\n options: ImmutablePropTypes.list,\n expiresIn: PropTypes.number,\n isMultiple: PropTypes.bool,\n onChangeOption: PropTypes.func.isRequired,\n onAddOption: PropTypes.func.isRequired,\n onRemoveOption: PropTypes.func.isRequired,\n onChangeSettings: PropTypes.func.isRequired,\n suggestions: ImmutablePropTypes.list,\n onClearSuggestions: PropTypes.func.isRequired,\n onFetchSuggestions: PropTypes.func.isRequired,\n onSuggestionSelected: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n handleAddOption = () => {\n this.props.onAddOption('');\n };\n\n handleSelectDuration = e => {\n this.props.onChangeSettings(e.target.value, this.props.isMultiple);\n };\n\n handleToggleMultiple = () => {\n this.props.onChangeSettings(this.props.expiresIn, !this.props.isMultiple);\n };\n\n render () {\n const { options, expiresIn, isMultiple, onChangeOption, onRemoveOption, intl, ...other } = this.props;\n\n if (!options) {\n return null;\n }\n\n return (\n <div className='compose-form__poll-wrapper'>\n <ul>\n {options.map((title, i) => <Option title={title} key={i} index={i} onChange={onChangeOption} onRemove={onRemoveOption} isPollMultiple={isMultiple} onToggleMultiple={this.handleToggleMultiple} {...other} />)}\n </ul>\n\n <div className='poll__footer'>\n <button disabled={options.size >= 5} className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button>\n\n <select value={expiresIn} onChange={this.handleSelectDuration}>\n <option value={300}>{intl.formatMessage(messages.minutes, { number: 5 })}</option>\n <option value={1800}>{intl.formatMessage(messages.minutes, { number: 30 })}</option>\n <option value={3600}>{intl.formatMessage(messages.hours, { number: 1 })}</option>\n <option value={21600}>{intl.formatMessage(messages.hours, { number: 6 })}</option>\n <option value={86400}>{intl.formatMessage(messages.days, { number: 1 })}</option>\n <option value={259200}>{intl.formatMessage(messages.days, { number: 3 })}</option>\n <option value={604800}>{intl.formatMessage(messages.days, { number: 7 })}</option>\n </select>\n </div>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport PollForm from '../components/poll_form';\nimport { addPollOption, removePollOption, changePollOption, changePollSettings } from '../../../actions/compose';\nimport {\n clearComposeSuggestions,\n fetchComposeSuggestions,\n selectComposeSuggestion,\n} from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n suggestions: state.getIn(['compose', 'suggestions']),\n options: state.getIn(['compose', 'poll', 'options']),\n expiresIn: state.getIn(['compose', 'poll', 'expires_in']),\n isMultiple: state.getIn(['compose', 'poll', 'multiple']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n onAddOption(title) {\n dispatch(addPollOption(title));\n },\n\n onRemoveOption(index) {\n dispatch(removePollOption(index));\n },\n\n onChangeOption(index, title) {\n dispatch(changePollOption(index, title));\n },\n\n onChangeSettings(expiresIn, isMultiple) {\n dispatch(changePollSettings(expiresIn, isMultiple));\n },\n\n onClearSuggestions () {\n dispatch(clearComposeSuggestions());\n },\n\n onFetchSuggestions (token) {\n dispatch(fetchComposeSuggestions(token));\n },\n\n onSuggestionSelected (position, token, accountId, path) {\n dispatch(selectComposeSuggestion(position, token, accountId, path));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PollForm);\n","import { connect } from 'react-redux';\nimport UploadProgress from '../components/upload_progress';\n\nconst mapStateToProps = state => ({\n active: state.getIn(['compose', 'is_uploading']),\n progress: state.getIn(['compose', 'progress']),\n});\n\nexport default connect(mapStateToProps)(UploadProgress);\n","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { FormattedMessage } from 'react-intl';\nimport classNames from 'classnames';\nimport Icon from 'mastodon/components/icon';\n\nexport default class Upload extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n media: ImmutablePropTypes.map.isRequired,\n onUndo: PropTypes.func.isRequired,\n onOpenFocalPoint: PropTypes.func.isRequired,\n };\n\n handleUndoClick = e => {\n e.stopPropagation();\n this.props.onUndo(this.props.media.get('id'));\n }\n\n handleFocalPointClick = e => {\n e.stopPropagation();\n this.props.onOpenFocalPoint(this.props.media.get('id'));\n }\n\n render () {\n const { media } = this.props;\n const focusX = media.getIn(['meta', 'focus', 'x']);\n const focusY = media.getIn(['meta', 'focus', 'y']);\n const x = ((focusX / 2) + .5) * 100;\n const y = ((focusY / -2) + .5) * 100;\n\n return (\n <div className='compose-form__upload' tabIndex='0' role='button'>\n <Motion defaultStyle={{ scale: 0.8 }} style={{ scale: spring(1, { stiffness: 180, damping: 12 }) }}>\n {({ scale }) => (\n <div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>\n <div className={classNames('compose-form__upload__actions', { active: true })}>\n <button className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>\n <button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>\n </div>\n </div>\n )}\n </Motion>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport Upload from '../components/upload';\nimport { undoUploadCompose } from '../../../actions/compose';\nimport { openModal } from '../../../actions/modal';\nimport { submitCompose } from '../../../actions/compose';\n\nconst mapStateToProps = (state, { id }) => ({\n media: state.getIn(['compose', 'media_attachments']).find(item => item.get('id') === id),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onUndo: id => {\n dispatch(undoUploadCompose(id));\n },\n\n onOpenFocalPoint: id => {\n dispatch(openModal('FOCAL_POINT', { id }));\n },\n\n onSubmit (router) {\n dispatch(submitCompose(router));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Upload);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { changeComposeSensitivity } from 'mastodon/actions/compose';\nimport { injectIntl, defineMessages, FormattedMessage } from 'react-intl';\n\nconst messages = defineMessages({\n marked: { id: 'compose_form.sensitive.marked', defaultMessage: 'Media is marked as sensitive' },\n unmarked: { id: 'compose_form.sensitive.unmarked', defaultMessage: 'Media is not marked as sensitive' },\n});\n\nconst mapStateToProps = state => ({\n active: state.getIn(['compose', 'sensitive']),\n disabled: state.getIn(['compose', 'spoiler']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onClick () {\n dispatch(changeComposeSensitivity());\n },\n\n});\n\nclass SensitiveButton extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n disabled: PropTypes.bool,\n onClick: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const { active, disabled, onClick, intl } = this.props;\n\n return (\n <div className='compose-form__sensitive-button'>\n <label className={classNames('icon-button', { active })} title={intl.formatMessage(active ? messages.marked : messages.unmarked)}>\n <input\n name='mark-sensitive'\n type='checkbox'\n checked={active}\n onChange={onClick}\n disabled={disabled}\n />\n\n <span className={classNames('checkbox', { active })} />\n\n <FormattedMessage id='compose_form.sensitive.hide' defaultMessage='Mark media as sensitive' />\n </label>\n </div>\n );\n }\n\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(injectIntl(SensitiveButton));\n","import React from 'react';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport UploadProgressContainer from '../containers/upload_progress_container';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport UploadContainer from '../containers/upload_container';\nimport SensitiveButtonContainer from '../containers/sensitive_button_container';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class UploadForm extends ImmutablePureComponent {\n\n static propTypes = {\n mediaIds: ImmutablePropTypes.list.isRequired,\n };\n\n render () {\n const { mediaIds } = this.props;\n\n return (\n <div className='compose-form__upload-wrapper'>\n <UploadProgressContainer icon='upload' message={<FormattedMessage id='upload_progress.label' defaultMessage='Uploading…' />} />\n\n <div className='compose-form__uploads-wrapper'>\n {mediaIds.map(id => (\n <UploadContainer id={id} key={id} />\n ))}\n </div>\n\n {!mediaIds.isEmpty() && <SensitiveButtonContainer />}\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport UploadForm from '../components/upload_form';\n\nconst mapStateToProps = state => ({\n mediaIds: state.getIn(['compose', 'media_attachments']).map(item => item.get('id')),\n});\n\nexport default connect(mapStateToProps)(UploadForm);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\n\nexport default class Warning extends React.PureComponent {\n\n static propTypes = {\n message: PropTypes.node.isRequired,\n };\n\n render () {\n const { message } = this.props;\n\n return (\n <Motion defaultStyle={{ opacity: 0, scaleX: 0.85, scaleY: 0.75 }} style={{ opacity: spring(1, { damping: 35, stiffness: 400 }), scaleX: spring(1, { damping: 35, stiffness: 400 }), scaleY: spring(1, { damping: 35, stiffness: 400 }) }}>\n {({ opacity, scaleX, scaleY }) => (\n <div className='compose-form__warning' style={{ opacity: opacity, transform: `scale(${scaleX}, ${scaleY})` }}>\n {message}\n </div>\n )}\n </Motion>\n );\n }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport Warning from '../components/warning';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { me } from '../../../initial_state';\n\nconst APPROX_HASHTAG_RE = /(?:^|[^\\/\\)\\w])#(\\w*[a-zA-Z·]\\w*)/i;\n\nconst mapStateToProps = state => ({\n needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),\n hashtagWarning: state.getIn(['compose', 'privacy']) !== 'public' && APPROX_HASHTAG_RE.test(state.getIn(['compose', 'text'])),\n directMessageWarning: state.getIn(['compose', 'privacy']) === 'direct',\n});\n\nconst WarningWrapper = ({ needsLockWarning, hashtagWarning, directMessageWarning }) => {\n if (needsLockWarning) {\n return <Warning message={<FormattedMessage id='compose_form.lock_disclaimer' defaultMessage='Your account is not {locked}. Anyone can follow you to view your follower-only posts.' values={{ locked: <a href='/user-settings'><FormattedMessage id='compose_form.lock_disclaimer.lock' defaultMessage='locked' /></a> }} />} />;\n }\n\n if (hashtagWarning) {\n return <Warning message={<FormattedMessage id='compose_form.hashtag_warning' defaultMessage=\"This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.\" />} />;\n }\n\n if (directMessageWarning) {\n const message = (\n <span>\n <FormattedMessage id='compose_form.direct_message_warning' defaultMessage='This toot will only be sent to all the mentioned users.' /> <a href='/terms' target='_blank'><FormattedMessage id='compose_form.direct_message_warning_learn_more' defaultMessage='Learn more' /></a>\n </span>\n );\n\n return <Warning message={message} />;\n }\n\n return null;\n};\n\nWarningWrapper.propTypes = {\n needsLockWarning: PropTypes.bool,\n hashtagWarning: PropTypes.bool,\n directMessageWarning: PropTypes.bool,\n};\n\nexport default connect(mapStateToProps)(WarningWrapper);\n","import React from 'react';\nimport CharacterCounter from './character_counter';\nimport Button from '../../../components/button';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport ReplyIndicatorContainer from '../containers/reply_indicator_container';\nimport AutosuggestTextarea from '../../../components/autosuggest_textarea';\nimport AutosuggestInput from '../../../components/autosuggest_input';\nimport PollButtonContainer from '../containers/poll_button_container';\nimport UploadButtonContainer from '../containers/upload_button_container';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport SpoilerButtonContainer from '../containers/spoiler_button_container';\nimport PrivacyDropdownContainer from '../containers/privacy_dropdown_container';\nimport EmojiPickerDropdown from '../containers/emoji_picker_dropdown_container';\nimport PollFormContainer from '../containers/poll_form_container';\nimport UploadFormContainer from '../containers/upload_form_container';\nimport WarningContainer from '../containers/warning_container';\nimport { isMobile } from '../../../is_mobile';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport { length } from 'stringz';\nimport Icon from 'mastodon/components/icon';\nimport { maxChars } from '../../../initial_state';\n\nconst allowedAroundShortCode = '><\\u0085\\u0020\\u00a0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\u2028\\u2029\\u0009\\u000a\\u000b\\u000c\\u000d';\n\nconst messages = defineMessages({\n placeholder: { id: 'compose_form.placeholder', defaultMessage: 'What is on your mind?' },\n spoiler_placeholder: { id: 'compose_form.spoiler_placeholder', defaultMessage: 'Write your warning here' },\n publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },\n publishLoud: { id: 'compose_form.publish_loud', defaultMessage: '{publish}!' },\n});\n\nexport default @injectIntl\nclass ComposeForm extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n text: PropTypes.string.isRequired,\n suggestions: ImmutablePropTypes.list,\n spoiler: PropTypes.bool,\n privacy: PropTypes.string,\n spoilerText: PropTypes.string,\n focusDate: PropTypes.instanceOf(Date),\n caretPosition: PropTypes.number,\n preselectDate: PropTypes.instanceOf(Date),\n isSubmitting: PropTypes.bool,\n isChangingUpload: PropTypes.bool,\n isUploading: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n onClearSuggestions: PropTypes.func.isRequired,\n onFetchSuggestions: PropTypes.func.isRequired,\n onSuggestionSelected: PropTypes.func.isRequired,\n onChangeSpoilerText: PropTypes.func.isRequired,\n onPaste: PropTypes.func.isRequired,\n onPickEmoji: PropTypes.func.isRequired,\n showSearch: PropTypes.bool,\n anyMedia: PropTypes.bool,\n singleColumn: PropTypes.bool,\n };\n\n static defaultProps = {\n showSearch: false,\n };\n\n handleChange = (e) => {\n this.props.onChange(e.target.value);\n }\n\n handleKeyDown = (e) => {\n if (e.keyCode === 13 && (e.ctrlKey || e.metaKey)) {\n this.handleSubmit();\n }\n }\n\n handleSubmit = () => {\n if (this.props.text !== this.autosuggestTextarea.textarea.value) {\n // Something changed the text inside the textarea (e.g. browser extensions like Grammarly)\n // Update the state to match the current text\n this.props.onChange(this.autosuggestTextarea.textarea.value);\n }\n\n // Submit disabled:\n const { isSubmitting, isChangingUpload, isUploading, anyMedia } = this.props;\n const fulltext = [this.props.spoilerText, this.props.text].join('');\n\n if (isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (fulltext.length !== 0 && fulltext.trim().length === 0 && !anyMedia)) {\n return;\n }\n\n this.props.onSubmit(this.context.router ? this.context.router.history : null);\n }\n\n onSuggestionsClearRequested = () => {\n this.props.onClearSuggestions();\n }\n\n onSuggestionsFetchRequested = (token) => {\n this.props.onFetchSuggestions(token);\n }\n\n onSuggestionSelected = (tokenStart, token, value) => {\n this.props.onSuggestionSelected(tokenStart, token, value, ['text']);\n }\n\n onSpoilerSuggestionSelected = (tokenStart, token, value) => {\n this.props.onSuggestionSelected(tokenStart, token, value, ['spoiler_text']);\n }\n\n handleChangeSpoilerText = (e) => {\n this.props.onChangeSpoilerText(e.target.value);\n }\n\n handleFocus = () => {\n if (this.composeForm && !this.props.singleColumn) {\n const { left, right } = this.composeForm.getBoundingClientRect();\n if (left < 0 || right > (window.innerWidth || document.documentElement.clientWidth)) {\n this.composeForm.scrollIntoView();\n }\n }\n }\n\n componentDidUpdate (prevProps) {\n // This statement does several things:\n // - If we're beginning a reply, and,\n // - Replying to zero or one users, places the cursor at the end of the textbox.\n // - Replying to more than one user, selects any usernames past the first;\n // this provides a convenient shortcut to drop everyone else from the conversation.\n if (this.props.focusDate !== prevProps.focusDate) {\n let selectionEnd, selectionStart;\n\n if (this.props.preselectDate !== prevProps.preselectDate) {\n selectionEnd = this.props.text.length;\n selectionStart = this.props.text.search(/\\s/) + 1;\n } else if (typeof this.props.caretPosition === 'number') {\n selectionStart = this.props.caretPosition;\n selectionEnd = this.props.caretPosition;\n } else {\n selectionEnd = this.props.text.length;\n selectionStart = selectionEnd;\n }\n\n this.autosuggestTextarea.textarea.setSelectionRange(selectionStart, selectionEnd);\n this.autosuggestTextarea.textarea.focus();\n } else if(prevProps.isSubmitting && !this.props.isSubmitting) {\n this.autosuggestTextarea.textarea.focus();\n } else if (this.props.spoiler !== prevProps.spoiler) {\n if (this.props.spoiler) {\n this.spoilerText.input.focus();\n } else {\n this.autosuggestTextarea.textarea.focus();\n }\n }\n }\n\n setAutosuggestTextarea = (c) => {\n this.autosuggestTextarea = c;\n }\n\n setSpoilerText = (c) => {\n this.spoilerText = c;\n }\n\n setRef = c => {\n this.composeForm = c;\n };\n\n handleEmojiPick = (data) => {\n const { text } = this.props;\n const position = this.autosuggestTextarea.textarea.selectionStart;\n const needsSpace = data.custom && position > 0 && !allowedAroundShortCode.includes(text[position - 1]);\n\n this.props.onPickEmoji(position, data, needsSpace);\n }\n\n render () {\n const { intl, onPaste, showSearch, anyMedia } = this.props;\n const disabled = this.props.isSubmitting;\n const text = [this.props.spoilerText, this.props.text].join('');\n const disabledButton = disabled || this.props.isUploading || this.props.isChangingUpload || length(text) > maxChars || (text.length !== 0 && text.trim().length === 0 && !anyMedia);\n let publishText = '';\n\n if (this.props.privacy === 'private' || this.props.privacy === 'direct') {\n publishText = <span className='compose-form__publish-private'><Icon id='lock' /> {intl.formatMessage(messages.publish)}</span>;\n } else {\n publishText = this.props.privacy !== 'unlisted' ? intl.formatMessage(messages.publishLoud, { publish: intl.formatMessage(messages.publish) }) : intl.formatMessage(messages.publish);\n }\n\n return (\n <div className='compose-form'>\n <WarningContainer />\n\n <ReplyIndicatorContainer />\n\n <div className={`spoiler-input ${this.props.spoiler ? 'spoiler-input--visible' : ''}`} ref={this.setRef}>\n <AutosuggestInput\n placeholder={intl.formatMessage(messages.spoiler_placeholder)}\n value={this.props.spoilerText}\n onChange={this.handleChangeSpoilerText}\n onKeyDown={this.handleKeyDown}\n disabled={!this.props.spoiler}\n ref={this.setSpoilerText}\n suggestions={this.props.suggestions}\n onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n onSuggestionSelected={this.onSpoilerSuggestionSelected}\n searchTokens={[':']}\n id='cw-spoiler-input'\n className='spoiler-input__input'\n />\n </div>\n\n <AutosuggestTextarea\n ref={this.setAutosuggestTextarea}\n placeholder={intl.formatMessage(messages.placeholder)}\n disabled={disabled}\n value={this.props.text}\n onChange={this.handleChange}\n suggestions={this.props.suggestions}\n onFocus={this.handleFocus}\n onKeyDown={this.handleKeyDown}\n onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}\n onSuggestionsClearRequested={this.onSuggestionsClearRequested}\n onSuggestionSelected={this.onSuggestionSelected}\n onPaste={onPaste}\n autoFocus={!showSearch && !isMobile(window.innerWidth)}\n >\n <EmojiPickerDropdown onPickEmoji={this.handleEmojiPick} />\n <div className='compose-form__modifiers'>\n <UploadFormContainer />\n <PollFormContainer />\n </div>\n </AutosuggestTextarea>\n\n <div className='compose-form__buttons-wrapper'>\n <div className='compose-form__buttons'>\n <UploadButtonContainer />\n <PollButtonContainer />\n <PrivacyDropdownContainer />\n <SpoilerButtonContainer />\n </div>\n <div className='character-counter__wrapper'><CharacterCounter max={maxChars} text={text} /></div>\n </div>\n\n <div className='compose-form__publish'>\n <div className='compose-form__publish-button-wrapper'><Button text={publishText} onClick={this.handleSubmit} disabled={disabledButton} block /></div>\n </div>\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport ComposeForm from '../components/compose_form';\nimport {\n changeCompose,\n submitCompose,\n clearComposeSuggestions,\n fetchComposeSuggestions,\n selectComposeSuggestion,\n changeComposeSpoilerText,\n insertEmojiCompose,\n uploadCompose,\n} from '../../../actions/compose';\n\nconst mapStateToProps = state => ({\n text: state.getIn(['compose', 'text']),\n suggestions: state.getIn(['compose', 'suggestions']),\n spoiler: state.getIn(['compose', 'spoiler']),\n spoilerText: state.getIn(['compose', 'spoiler_text']),\n privacy: state.getIn(['compose', 'privacy']),\n focusDate: state.getIn(['compose', 'focusDate']),\n caretPosition: state.getIn(['compose', 'caretPosition']),\n preselectDate: state.getIn(['compose', 'preselectDate']),\n isSubmitting: state.getIn(['compose', 'is_submitting']),\n isChangingUpload: state.getIn(['compose', 'is_changing_upload']),\n isUploading: state.getIn(['compose', 'is_uploading']),\n showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),\n anyMedia: state.getIn(['compose', 'media_attachments']).size > 0,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n\n onChange (text) {\n dispatch(changeCompose(text));\n },\n\n onSubmit (router) {\n dispatch(submitCompose(router));\n },\n\n onClearSuggestions () {\n dispatch(clearComposeSuggestions());\n },\n\n onFetchSuggestions (token) {\n dispatch(fetchComposeSuggestions(token));\n },\n\n onSuggestionSelected (position, token, suggestion, path) {\n dispatch(selectComposeSuggestion(position, token, suggestion, path));\n },\n\n onChangeSpoilerText (checked) {\n dispatch(changeComposeSpoilerText(checked));\n },\n\n onPaste (files) {\n dispatch(uploadCompose(files));\n },\n\n onPickEmoji (position, data, needsSpace) {\n dispatch(insertEmojiCompose(position, data, needsSpace));\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComposeForm);\n","import { connect } from 'react-redux';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport NavigationBar from '../components/navigation_bar';\nimport { logOut } from 'mastodon/utils/log_out';\nimport { openModal } from 'mastodon/actions/modal';\nimport { me } from '../../../initial_state';\n\nconst messages = defineMessages({\n logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },\n logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },\n});\n\nconst mapStateToProps = state => {\n return {\n account: state.getIn(['accounts', me]),\n };\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n onLogout () {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.logoutMessage),\n confirm: intl.formatMessage(messages.logoutConfirm),\n onConfirm: () => logOut(),\n }));\n },\n});\n\nexport default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NavigationBar));\n","import React from 'react';\nimport ComposeFormContainer from './containers/compose_form_container';\nimport NavigationContainer from './containers/navigation_container';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { connect } from 'react-redux';\nimport { mountCompose, unmountCompose } from '../../actions/compose';\nimport { Link } from 'react-router-dom';\nimport { injectIntl, defineMessages } from 'react-intl';\nimport SearchContainer from './containers/search_container';\nimport Motion from '../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport SearchResultsContainer from './containers/search_results_container';\nimport { changeComposing } from '../../actions/compose';\nimport { openModal } from 'mastodon/actions/modal';\nimport { mascot } from '../../initial_state';\nimport Icon from 'mastodon/components/icon';\nimport { logOut } from 'mastodon/utils/log_out';\n\nconst messages = defineMessages({\n start: { id: 'getting_started.heading', defaultMessage: 'Getting started' },\n home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' },\n notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' },\n public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },\n community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },\n preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },\n logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },\n compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' },\n logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },\n logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },\n});\n\nconst mapStateToProps = (state, ownProps) => ({\n columns: state.getIn(['settings', 'columns']),\n showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage,\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass Compose extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n columns: ImmutablePropTypes.list.isRequired,\n multiColumn: PropTypes.bool,\n showSearch: PropTypes.bool,\n isSearchPage: PropTypes.bool,\n intl: PropTypes.object.isRequired,\n };\n\n componentDidMount () {\n const { isSearchPage } = this.props;\n\n if (!isSearchPage) {\n this.props.dispatch(mountCompose());\n }\n }\n\n componentWillUnmount () {\n const { isSearchPage } = this.props;\n\n if (!isSearchPage) {\n this.props.dispatch(unmountCompose());\n }\n }\n\n handleLogoutClick = e => {\n const { dispatch, intl } = this.props;\n\n e.preventDefault();\n e.stopPropagation();\n\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.logoutMessage),\n confirm: intl.formatMessage(messages.logoutConfirm),\n onConfirm: () => logOut(),\n }));\n\n return false;\n }\n\n onFocus = () => {\n this.props.dispatch(changeComposing(true));\n }\n\n onBlur = () => {\n this.props.dispatch(changeComposing(false));\n }\n\n render () {\n const { multiColumn, showSearch, isSearchPage, intl } = this.props;\n\n let header = '';\n\n if (multiColumn) {\n const { columns } = this.props;\n header = (\n <nav className='drawer__header'>\n <Link to='/getting-started' className='drawer__tab' title={intl.formatMessage(messages.start)} aria-label={intl.formatMessage(messages.start)}><Icon id='bars' fixedWidth /></Link>\n {!columns.some(column => column.get('id') === 'HOME') && (\n <Link to='/timelines/home' className='drawer__tab' title={intl.formatMessage(messages.home_timeline)} aria-label={intl.formatMessage(messages.home_timeline)}><Icon id='home' fixedWidth /></Link>\n )}\n {!columns.some(column => column.get('id') === 'NOTIFICATIONS') && (\n <Link to='/notifications' className='drawer__tab' title={intl.formatMessage(messages.notifications)} aria-label={intl.formatMessage(messages.notifications)}><Icon id='bell' fixedWidth /></Link>\n )}\n {!columns.some(column => column.get('id') === 'COMMUNITY') && (\n <Link to='/timelines/public/local' className='drawer__tab' title={intl.formatMessage(messages.community)} aria-label={intl.formatMessage(messages.community)}><Icon id='users' fixedWidth /></Link>\n )}\n {!columns.some(column => column.get('id') === 'PUBLIC') && (\n <Link to='/timelines/public' className='drawer__tab' title={intl.formatMessage(messages.public)} aria-label={intl.formatMessage(messages.public)}><Icon id='globe' fixedWidth /></Link>\n )}\n <a href='/user-settings' className='drawer__tab' title={intl.formatMessage(messages.preferences)} aria-label={intl.formatMessage(messages.preferences)}><Icon id='cog' fixedWidth /></a>\n <a href='/auth/sign_out' className='drawer__tab' title={intl.formatMessage(messages.logout)} aria-label={intl.formatMessage(messages.logout)} onClick={this.handleLogoutClick}><Icon id='sign-out' fixedWidth /></a>\n </nav>\n );\n }\n\n return (\n <div className='drawer' role='region' aria-label={intl.formatMessage(messages.compose)}>\n {header}\n\n {(multiColumn || isSearchPage) && <SearchContainer /> }\n\n <div className='drawer__pager'>\n {!isSearchPage && <div className='drawer__inner' onFocus={this.onFocus}>\n <NavigationContainer onClose={this.onBlur} />\n\n <ComposeFormContainer />\n\n <div className='drawer__inner__mastodon'>\n <img alt='' draggable='false' src={mascot || elephantUIPlane} />\n </div>\n </div>}\n\n <Motion defaultStyle={{ x: isSearchPage ? 0 : -100 }} style={{ x: spring(showSearch || isSearchPage ? 0 : -100, { stiffness: 210, damping: 20 }) }}>\n {({ x }) => (\n <div className='drawer__inner darker' style={{ transform: `translateX(${x}%)`, visibility: x === -100 ? 'hidden' : 'visible' }}>\n <SearchResultsContainer />\n </div>\n )}\n </Motion>\n </div>\n </div>\n );\n }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file