pleroma/priv/static/packs/application.js.map
Haelwenn (lanodan) Monnier 83e3afac2c Update mastodon frontend
2018-09-20 16:13:13 +00:00

1 line
90 KiB
Plaintext

{"version":3,"sources":["webpack:///./node_modules/react-router-dom/node_modules/warning/warning.js","webpack:///./node_modules/react-router/es/Router.js","webpack:///./node_modules/react-router-dom/es/Router.js","webpack:///./node_modules/react-router-dom/es/BrowserRouter.js","webpack:///./node_modules/react-router/es/generatePath.js","webpack:///./node_modules/react-router/es/Redirect.js","webpack:///./node_modules/react-router-dom/es/Redirect.js","webpack:///./app/javascript/mastodon/features/ui/components/tabs_bar.js","webpack:///./node_modules/react-router/es/Switch.js","webpack:///./node_modules/react-router-dom/es/Switch.js","webpack:///./app/javascript/mastodon/features/ui/components/column_loading.js","webpack:///./app/javascript/mastodon/features/ui/components/bundle_column_error.js","webpack:///./app/javascript/mastodon/features/ui/util/react_router_helpers.js","webpack:///./app/javascript/mastodon/features/ui/components/upload_area.js","webpack:///./app/javascript/mastodon/features/ui/components/drawer_loading.js","webpack:///./app/javascript/mastodon/features/ui/components/columns_area.js","webpack:///./app/javascript/mastodon/features/ui/containers/columns_area_container.js","webpack:///./app/javascript/mastodon/features/ui/index.js","webpack:///./app/javascript/mastodon/containers/mastodon.js","webpack:///./app/javascript/mastodon/actions/onboarding.js","webpack:///./app/javascript/mastodon/main.js","webpack:///./node_modules/offline-plugin/runtime.js","webpack:///./app/javascript/mastodon/performance.js","webpack:///./app/javascript/packs/application.js"],"names":["warning","module","exports","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_possibleConstructorReturn","self","ReferenceError","Router_Router","_React$Component","Router","_temp","_this","instance","Constructor","TypeError","_classCallCheck","this","_len","args","Array","_key","apply","concat","state","match","computeMatch","props","history","location","pathname","subClass","superClass","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","_inherits","getChildContext","router","context","route","path","url","params","isExact","componentWillMount","_this2","_props","children","browser_default","react_default","a","Children","count","unlisten","listen","setState","componentWillReceiveProps","nextProps","warning_warning_default","componentWillUnmount","render","only","Component","propTypes","prop_types_default","object","isRequired","node","contextTypes","childContextTypes","react_router_dom_es_Router","BrowserRouter_possibleConstructorReturn","es_BrowserRouter","BrowserRouter","BrowserRouter_classCallCheck","history_es","BrowserRouter_inherits","warning_default","createElement","patternCache","cacheCount","es_generatePath","pattern","undefined","cacheKey","cache","compiledGenerator","path_to_regexp_default","compile","generatePath_compileGenerator","generator","pretty","Redirect_extends","Redirect_Redirect","Redirect","Redirect_classCallCheck","Redirect_possibleConstructorReturn","Redirect_inherits","isStatic","staticContext","perform","componentDidMount","componentDidUpdate","prevProps","prevTo","to","nextTo","search","computeTo","_ref","computedMatch","push","replace","bool","from","string","oneOfType","defaultProps","shape","func","react_router_dom_es_Redirect","links","jsx_default","NavLink","className","data-preview-title-id","data-preview-icon","index_es","id","defaultMessage","exact","style","flexGrow","flexBasis","getIndex","findIndex","link","tabs_bar_TabsBar","withRouter","setRef","ref","handleClick","e","is_mobile","preventDefault","persist","requestAnimationFrame","tabs","querySelectorAll","currentTab","find","tab","classList","contains","nextTab","childNodes","indexOf","remove","listener","debounce_default","removeEventListener","addEventListener","add","formatMessage","intl","map","cloneElement","onClick","aria-label","PureComponent","Switch_Switch","Switch","Switch_classCallCheck","Switch_possibleConstructorReturn","Switch_inherits","child","forEach","element","isValidElement","_element$props","pathProp","strict","sensitive","matchPath","react_router_dom_es_Switch","column_loading_ColumnLoading","title","icon","components_column","column_header","multiColumn","focusable","react_immutable_pure_component_es","messages","body","retry","bundle_column_error_BundleColumnError","handleRetry","onRetry","ui_components_column","components_column_header","type","column_back_button_slim","icon_button","size","bundle_column_error","react_router_helpers_WrappedSwitch","_React$PureComponent","WrappedSwitch","classCallCheck_default","possibleConstructorReturn_default","inherits_default","react_router_helpers_WrappedRoute","react_router_helpers_temp2","react_router_helpers_class","WrappedRoute","_ret","renderComponent","_this2$props","component","content","componentParams","bundle_container","fetchComponent","loading","renderLoading","error","renderError","extends_default","_props2","rest","objectWithoutProperties_default","Route","upload_area_UploadArea","handleKeyUp","keyCode","active","stopPropagation","onClose","window","optional_motion","defaultStyle","backgroundOpacity","backgroundScale","spring_default","stiffness","damping","visibility","opacity","transform","drawer_loading","componentMap","COMPOSE","async_components","HOME","NOTIFICATIONS","PUBLIC","COMMUNITY","HASHTAG","DIRECT","FAVOURITES","LIST","columns_area_messages","publish","columns_area_ColumnsArea","withRef","shouldAnimate","handleSwipe","index","pendingIndex","nextLinkSelector","document","querySelector","handleAnimationEnd","handleWheel","_interruptScrollAnimation","renderView","columnIndex","view","columnId","singleColumn","detect_passive_events_lib_default","hasSupport","passive","lastIndex","isRtlLayout","getElementsByTagName","componentWillUpdate","handleChildrenContentChange","modifier","mastodon_scroll","scrollWidth","innerWidth","columns","isModalOpen","floatingActionButton","Link","react_swipeable_views_lib_default","onChangeIndex","onTransitionEnd","animateTransitions","springConfig","duration","delay","easeFunction","height","column","get","toJS","other","SpecificComponent","ImmutablePropTypes_default","list","columns_area_container","es","getIn","modalType","ui_messages","beforeUnload","keyMap","help","new","forceNew","focusColumn","reply","favourite","boost","mention","open","openProfile","moveDown","moveUp","back","goToHome","goToNotifications","goToLocal","goToFederated","goToDirect","goToStart","goToFavourites","goToPinned","goToProfile","goToBlocked","goToMuted","goToRequests","toggleHidden","ui_SwitchingColumnsArea","mobile","handleResize","onLayoutChange","trailing","c","getWrappedInstance","includes","shouldUpdateScroll","_","media_modal","redirect","onlyMedia","isSearchPage","withReplies","ui_UI","isComposing","hasComposingText","dropdownMenuIsOpen","draggingOver","handleBeforeUnload","returnValue","handleLayoutChange","dispatch","height_cache","handleDragEnter","dragTargets","dataTransfer","types","handleDragOver","dropEffect","err","handleDrop","files","compose","handleDragLeave","filter","el","closeUploadModal","handleServiceWorkerPostMessage","_ref2","data","console","warn","handleHotkeyNew","focus","handleHotkeySearch","handleHotkeyForceNew","handleHotkeyFocusColumn","status","handleHotkeyBack","goBack","setHotkeysRef","hotkeys","handleHotkeyToggleHelp","handleHotkeyGoToHome","handleHotkeyGoToNotifications","handleHotkeyGoToLocal","handleHotkeyGoToFederated","handleHotkeyGoToDirect","handleHotkeyGoToStart","handleHotkeyGoToFavourites","handleHotkeyGoToPinned","handleHotkeyGoToProfile","initial_state","handleHotkeyGoToBlocked","handleHotkeyGoToMuted","handleHotkeyGoToRequests","_this3","handleDragEnd","navigator","serviceWorker","timelines","notifications","setTimeout","filters","__mousetrap__","stopCallback","tagName","handlers","lib","classnames_default","is-composing","pointerEvents","notifications_container","loading_bar_container","modal_container","locales","localeData","mastodon_messages","mastodon_store","configureStore","hydrateAction","store","custom_emojis","mastodon_Mastodon","disconnect","streaming","Notification","permission","requestPermission","getState","modal","settings","locale","basename","react_router_scroll_4_es","perf","__webpack_require__","__webpack_exports__","start","replaceState","_window$location","hash","test","ready","mountNode","getElementById","JSON","parse","getAttribute","react_dom_default","install","push_notifications","stop","hasSW","protocol","hostname","options","register","applyUpdate","callback","errback","update","getRegistration","then","registration","d","name","_mastodon_common__WEBPACK_IMPORTED_MODULE_1__","_mastodon_load_polyfills__WEBPACK_IMPORTED_MODULE_0__","default","catch"],"mappings":"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","file":"application.js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @providesModule warning\n */\n\n'use strict';\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 __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n 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(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = function (_React$Component) {\n _inherits(Router, _React$Component);\n\n function Router() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Router);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n match: _this.computeMatch(_this.props.history.location.pathname)\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Router.prototype.getChildContext = function getChildContext() {\n return {\n router: _extends({}, this.context.router, {\n history: this.props.history,\n route: {\n location: this.props.history.location,\n match: this.state.match\n }\n })\n };\n };\n\n Router.prototype.computeMatch = function computeMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n Router.prototype.componentWillMount = function componentWillMount() {\n var _this2 = this;\n\n var _props = this.props,\n children = _props.children,\n history = _props.history;\n\n\n invariant(children == null || React.Children.count(children) === 1, \"A <Router> may have only one child element\");\n\n // Do this here so we can setState when a <Redirect> changes the\n // location in componentWillMount. This happens e.g. when doing\n // server rendering using a <StaticRouter>.\n this.unlisten = history.listen(function () {\n _this2.setState({\n match: _this2.computeMatch(history.location.pathname)\n });\n });\n };\n\n Router.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(this.props.history === nextProps.history, \"You cannot change <Router history>\");\n };\n\n Router.prototype.componentWillUnmount = function componentWillUnmount() {\n this.unlisten();\n };\n\n Router.prototype.render = function render() {\n var children = this.props.children;\n\n return children ? React.Children.only(children) : null;\n };\n\n return Router;\n}(React.Component);\n\nRouter.propTypes = {\n history: PropTypes.object.isRequired,\n children: PropTypes.node\n};\nRouter.contextTypes = {\n router: PropTypes.object\n};\nRouter.childContextTypes = {\n router: PropTypes.object.isRequired\n};\n\n\nexport default Router;","// Written in this round about way for babel-transform-imports\nimport Router from \"react-router/es/Router\";\n\nexport default Router;","function _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\nimport warning from \"warning\";\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport Router from \"./Router\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\n\nvar BrowserRouter = function (_React$Component) {\n _inherits(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, BrowserRouter);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.history = createHistory(_this.props), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n BrowserRouter.prototype.componentWillMount = function componentWillMount() {\n warning(!this.props.history, \"<BrowserRouter> ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\");\n };\n\n BrowserRouter.prototype.render = function render() {\n return React.createElement(Router, { history: this.history, children: this.props.children });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nBrowserRouter.propTypes = {\n basename: PropTypes.string,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n};\n\n\nexport default BrowserRouter;","import pathToRegexp from \"path-to-regexp\";\n\nvar patternCache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nvar compileGenerator = function compileGenerator(pattern) {\n var cacheKey = pattern;\n var cache = patternCache[cacheKey] || (patternCache[cacheKey] = {});\n\n if (cache[pattern]) return cache[pattern];\n\n var compiledGenerator = pathToRegexp.compile(pattern);\n\n if (cacheCount < cacheLimit) {\n cache[pattern] = compiledGenerator;\n cacheCount++;\n }\n\n return compiledGenerator;\n};\n\n/**\n * Public API for generating a URL pathname from a pattern and parameters.\n */\nvar generatePath = function generatePath() {\n var pattern = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (pattern === \"/\") {\n return pattern;\n }\n var generator = compileGenerator(pattern);\n return generator(params, { pretty: true });\n};\n\nexport default generatePath;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\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\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport generatePath from \"./generatePath\";\n\n/**\n * The public API for updating the location programmatically\n * with a component.\n */\n\nvar Redirect = function (_React$Component) {\n _inherits(Redirect, _React$Component);\n\n function Redirect() {\n _classCallCheck(this, Redirect);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Redirect.prototype.isStatic = function isStatic() {\n return this.context.router && this.context.router.staticContext;\n };\n\n Redirect.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, \"You should not use <Redirect> outside a <Router>\");\n\n if (this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidMount = function componentDidMount() {\n if (!this.isStatic()) this.perform();\n };\n\n Redirect.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {\n var prevTo = createLocation(prevProps.to);\n var nextTo = createLocation(this.props.to);\n\n if (locationsAreEqual(prevTo, nextTo)) {\n warning(false, \"You tried to redirect to the same route you're currently on: \" + (\"\\\"\" + nextTo.pathname + nextTo.search + \"\\\"\"));\n return;\n }\n\n this.perform();\n };\n\n Redirect.prototype.computeTo = function computeTo(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to;\n\n if (computedMatch) {\n if (typeof to === \"string\") {\n return generatePath(to, computedMatch.params);\n } else {\n return _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n });\n }\n }\n\n return to;\n };\n\n Redirect.prototype.perform = function perform() {\n var history = this.context.router.history;\n var push = this.props.push;\n\n var to = this.computeTo(this.props);\n\n if (push) {\n history.push(to);\n } else {\n history.replace(to);\n }\n };\n\n Redirect.prototype.render = function render() {\n return null;\n };\n\n return Redirect;\n}(React.Component);\n\nRedirect.propTypes = {\n computedMatch: PropTypes.object, // private, from <Switch>\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n};\nRedirect.defaultProps = {\n push: false\n};\nRedirect.contextTypes = {\n router: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired,\n replace: PropTypes.func.isRequired\n }).isRequired,\n staticContext: PropTypes.object\n }).isRequired\n};\n\n\nexport default Redirect;","// Written in this round about way for babel-transform-imports\nimport Redirect from \"react-router/es/Redirect\";\n\nexport default Redirect;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { NavLink, withRouter } from 'react-router-dom';\nimport { FormattedMessage, injectIntl } from 'react-intl';\nimport { debounce } from 'lodash';\nimport { isUserTouching } from '../../../is_mobile';\n\nexport const links = [\n <NavLink className='tabs-bar__link primary' to='/timelines/home' data-preview-title-id='column.home' data-preview-icon='home' ><i className='fa fa-fw fa-home' /><FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></NavLink>,\n <NavLink className='tabs-bar__link primary' to='/notifications' data-preview-title-id='column.notifications' data-preview-icon='bell' ><i className='fa fa-fw fa-bell' /><FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></NavLink>,\n\n <NavLink className='tabs-bar__link secondary' to='/timelines/public/local' data-preview-title-id='column.community' data-preview-icon='users' ><i className='fa fa-fw fa-users' /><FormattedMessage id='tabs_bar.local_timeline' defaultMessage='Local' /></NavLink>,\n <NavLink className='tabs-bar__link secondary' exact to='/timelines/public' data-preview-title-id='column.public' data-preview-icon='globe' ><i className='fa fa-fw fa-globe' /><FormattedMessage id='tabs_bar.federated_timeline' defaultMessage='Federated' /></NavLink>,\n <NavLink className='tabs-bar__link primary' to='/search' data-preview-title-id='tabs_bar.search' data-preview-icon='bell' ><i className='fa fa-fw fa-search' /><FormattedMessage id='tabs_bar.search' defaultMessage='Search' /></NavLink>,\n\n <NavLink className='tabs-bar__link primary' style={{ flexGrow: '0', flexBasis: '30px' }} to='/getting-started' data-preview-title-id='getting_started.heading' data-preview-icon='bars' ><i className='fa fa-fw fa-bars' /></NavLink>,\n];\n\nexport function getIndex (path) {\n return links.findIndex(link => link.props.to === path);\n}\n\nexport function getLink (index) {\n return links[index].props.to;\n}\n\n@injectIntl\n@withRouter\nexport default class TabsBar extends React.PureComponent {\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n }\n\n setRef = ref => {\n this.node = ref;\n }\n\n handleClick = (e) => {\n // Only apply optimization for touch devices, which we assume are slower\n // We thus avoid the 250ms delay for non-touch devices and the lag for touch devices\n if (isUserTouching()) {\n e.preventDefault();\n e.persist();\n\n requestAnimationFrame(() => {\n const tabs = Array(...this.node.querySelectorAll('.tabs-bar__link'));\n const currentTab = tabs.find(tab => tab.classList.contains('active'));\n const nextTab = tabs.find(tab => tab.contains(e.target));\n const { props: { to } } = links[Array(...this.node.childNodes).indexOf(nextTab)];\n\n\n if (currentTab !== nextTab) {\n if (currentTab) {\n currentTab.classList.remove('active');\n }\n\n const listener = debounce(() => {\n nextTab.removeEventListener('transitionend', listener);\n this.props.history.push(to);\n }, 50);\n\n nextTab.addEventListener('transitionend', listener);\n nextTab.classList.add('active');\n }\n });\n }\n\n }\n\n render () {\n const { intl: { formatMessage } } = this.props;\n\n return (\n <nav className='tabs-bar' ref={this.setRef}>\n {links.map(link => React.cloneElement(link, { key: link.props.to, onClick: this.handleClick, 'aria-label': formatMessage({ id: link.props['data-preview-title-id'] }) }))}\n </nav>\n );\n }\n\n}\n","function _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\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"warning\";\nimport invariant from \"invariant\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\n\nvar Switch = function (_React$Component) {\n _inherits(Switch, _React$Component);\n\n function Switch() {\n _classCallCheck(this, Switch);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n Switch.prototype.componentWillMount = function componentWillMount() {\n invariant(this.context.router, \"You should not use <Switch> outside a <Router>\");\n };\n\n Switch.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n warning(!(nextProps.location && !this.props.location), '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.');\n\n warning(!(!nextProps.location && this.props.location), '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.');\n };\n\n Switch.prototype.render = function render() {\n var route = this.context.router.route;\n var children = this.props.children;\n\n var location = this.props.location || route.location;\n\n var match = void 0,\n child = void 0;\n React.Children.forEach(children, function (element) {\n if (match == null && React.isValidElement(element)) {\n var _element$props = element.props,\n pathProp = _element$props.path,\n exact = _element$props.exact,\n strict = _element$props.strict,\n sensitive = _element$props.sensitive,\n from = _element$props.from;\n\n var path = pathProp || from;\n\n child = element;\n match = matchPath(location.pathname, { path: path, exact: exact, strict: strict, sensitive: sensitive }, route.match);\n }\n });\n\n return match ? React.cloneElement(child, { location: location, computedMatch: match }) : null;\n };\n\n return Switch;\n}(React.Component);\n\nSwitch.contextTypes = {\n router: PropTypes.shape({\n route: PropTypes.object.isRequired\n }).isRequired\n};\nSwitch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n};\n\n\nexport default Switch;","// Written in this round about way for babel-transform-imports\nimport Switch from \"react-router/es/Switch\";\n\nexport default Switch;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Column from '../../../components/column';\nimport ColumnHeader from '../../../components/column_header';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nexport default class ColumnLoading extends ImmutablePureComponent {\n\n static propTypes = {\n title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]),\n icon: PropTypes.string,\n };\n\n static defaultProps = {\n title: '',\n icon: '',\n };\n\n render() {\n let { title, icon } = this.props;\n return (\n <Column>\n <ColumnHeader icon={icon} title={title} multiColumn={false} focusable={false} />\n <div className='scrollable' />\n </Column>\n );\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport Column from './column';\nimport ColumnHeader from './column_header';\nimport ColumnBackButtonSlim from '../../../components/column_back_button_slim';\nimport IconButton from '../../../components/icon_button';\n\nconst messages = defineMessages({\n title: { id: 'bundle_column_error.title', defaultMessage: 'Network error' },\n body: { id: 'bundle_column_error.body', defaultMessage: 'Something went wrong while loading this component.' },\n retry: { id: 'bundle_column_error.retry', defaultMessage: 'Try again' },\n});\n\nclass BundleColumnError extends React.PureComponent {\n\n static propTypes = {\n onRetry: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n }\n\n handleRetry = () => {\n this.props.onRetry();\n }\n\n render () {\n const { intl: { formatMessage } } = this.props;\n\n return (\n <Column>\n <ColumnHeader icon='exclamation-circle' type={formatMessage(messages.title)} />\n <ColumnBackButtonSlim />\n <div className='error-column'>\n <IconButton title={formatMessage(messages.retry)} icon='refresh' onClick={this.handleRetry} size={64} />\n {formatMessage(messages.body)}\n </div>\n </Column>\n );\n }\n\n}\n\nexport default injectIntl(BundleColumnError);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Switch, Route } from 'react-router-dom';\n\nimport ColumnLoading from '../components/column_loading';\nimport BundleColumnError from '../components/bundle_column_error';\nimport BundleContainer from '../containers/bundle_container';\n\n// Small wrapper to pass multiColumn to the route components\nexport class WrappedSwitch extends React.PureComponent {\n\n render () {\n const { multiColumn, children } = this.props;\n\n return (\n <Switch>\n {React.Children.map(children, child => React.cloneElement(child, { multiColumn }))}\n </Switch>\n );\n }\n\n}\n\nWrappedSwitch.propTypes = {\n multiColumn: PropTypes.bool,\n children: PropTypes.node,\n};\n\n// Small Wraper to extract the params from the route and pass\n// them to the rendered component, together with the content to\n// be rendered inside (the children)\nexport class WrappedRoute extends React.Component {\n\n static propTypes = {\n component: PropTypes.func.isRequired,\n content: PropTypes.node,\n multiColumn: PropTypes.bool,\n componentParams: PropTypes.object,\n };\n\n static defaultProps = {\n componentParams: {},\n };\n\n renderComponent = ({ match }) => {\n const { component, content, multiColumn, componentParams } = this.props;\n\n return (\n <BundleContainer fetchComponent={component} loading={this.renderLoading} error={this.renderError}>\n {Component => <Component params={match.params} multiColumn={multiColumn} {...componentParams}>{content}</Component>}\n </BundleContainer>\n );\n }\n\n renderLoading = () => {\n return <ColumnLoading />;\n }\n\n renderError = (props) => {\n return <BundleColumnError {...props} />;\n }\n\n render () {\n const { component: Component, content, ...rest } = this.props;\n\n return <Route {...rest} render={this.renderComponent} />;\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Motion from '../../ui/util/optional_motion';\nimport spring from 'react-motion/lib/spring';\nimport { FormattedMessage } from 'react-intl';\n\nexport default class UploadArea extends React.PureComponent {\n\n static propTypes = {\n active: PropTypes.bool,\n onClose: PropTypes.func,\n };\n\n handleKeyUp = (e) => {\n const keyCode = e.keyCode;\n if (this.props.active) {\n switch(keyCode) {\n case 27:\n e.preventDefault();\n e.stopPropagation();\n this.props.onClose();\n break;\n }\n }\n }\n\n componentDidMount () {\n window.addEventListener('keyup', this.handleKeyUp, false);\n }\n\n componentWillUnmount () {\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n render () {\n const { active } = this.props;\n\n return (\n <Motion defaultStyle={{ backgroundOpacity: 0, backgroundScale: 0.95 }} style={{ backgroundOpacity: spring(active ? 1 : 0, { stiffness: 150, damping: 15 }), backgroundScale: spring(active ? 1 : 0.95, { stiffness: 200, damping: 3 }) }}>\n {({ backgroundOpacity, backgroundScale }) => (\n <div className='upload-area' style={{ visibility: active ? 'visible' : 'hidden', opacity: backgroundOpacity }}>\n <div className='upload-area__drop'>\n <div className='upload-area__background' style={{ transform: `scale(${backgroundScale})` }} />\n <div className='upload-area__content'><FormattedMessage id='upload_area.title' defaultMessage='Drag & drop to upload' /></div>\n </div>\n </div>\n )}\n </Motion>\n );\n }\n\n}\n","import React from 'react';\n\nconst DrawerLoading = () => (\n <div className='drawer'>\n <div className='drawer__pager'>\n <div className='drawer__inner' />\n </div>\n </div>\n);\n\nexport default DrawerLoading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\n\nimport ReactSwipeableViews from 'react-swipeable-views';\nimport { links, getIndex, getLink } from './tabs_bar';\nimport { Link } from 'react-router-dom';\n\nimport BundleContainer from '../containers/bundle_container';\nimport ColumnLoading from './column_loading';\nimport DrawerLoading from './drawer_loading';\nimport BundleColumnError from './bundle_column_error';\nimport { Compose, Notifications, HomeTimeline, CommunityTimeline, PublicTimeline, HashtagTimeline, DirectTimeline, FavouritedStatuses, ListTimeline } from '../../ui/util/async-components';\n\nimport detectPassiveEvents from 'detect-passive-events';\nimport { scrollRight } from '../../../scroll';\n\nconst componentMap = {\n 'COMPOSE': Compose,\n 'HOME': HomeTimeline,\n 'NOTIFICATIONS': Notifications,\n 'PUBLIC': PublicTimeline,\n 'COMMUNITY': CommunityTimeline,\n 'HASHTAG': HashtagTimeline,\n 'DIRECT': DirectTimeline,\n 'FAVOURITES': FavouritedStatuses,\n 'LIST': ListTimeline,\n};\n\nconst messages = defineMessages({\n publish: { id: 'compose_form.publish', defaultMessage: 'Toot' },\n});\n\nconst shouldHideFAB = path => path.match(/^\\/statuses\\//);\n\n@component => injectIntl(component, { withRef: true })\nexport default class ColumnsArea extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object.isRequired,\n };\n\n static propTypes = {\n intl: PropTypes.object.isRequired,\n columns: ImmutablePropTypes.list.isRequired,\n isModalOpen: PropTypes.bool.isRequired,\n singleColumn: PropTypes.bool,\n children: PropTypes.node,\n };\n\n state = {\n shouldAnimate: false,\n }\n\n componentWillReceiveProps() {\n this.setState({ shouldAnimate: false });\n }\n\n componentDidMount() {\n if (!this.props.singleColumn) {\n this.node.addEventListener('wheel', this.handleWheel, detectPassiveEvents.hasSupport ? { passive: true } : false);\n }\n\n this.lastIndex = getIndex(this.context.router.history.location.pathname);\n this.isRtlLayout = document.getElementsByTagName('body')[0].classList.contains('rtl');\n\n this.setState({ shouldAnimate: true });\n }\n\n componentWillUpdate(nextProps) {\n if (this.props.singleColumn !== nextProps.singleColumn && nextProps.singleColumn) {\n this.node.removeEventListener('wheel', this.handleWheel);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.singleColumn !== prevProps.singleColumn && !this.props.singleColumn) {\n this.node.addEventListener('wheel', this.handleWheel, detectPassiveEvents.hasSupport ? { passive: true } : false);\n }\n this.lastIndex = getIndex(this.context.router.history.location.pathname);\n this.setState({ shouldAnimate: true });\n }\n\n componentWillUnmount () {\n if (!this.props.singleColumn) {\n this.node.removeEventListener('wheel', this.handleWheel);\n }\n }\n\n handleChildrenContentChange() {\n if (!this.props.singleColumn) {\n const modifier = this.isRtlLayout ? -1 : 1;\n this._interruptScrollAnimation = scrollRight(this.node, (this.node.scrollWidth - window.innerWidth) * modifier);\n }\n }\n\n handleSwipe = (index) => {\n this.pendingIndex = index;\n\n const nextLinkTranslationId = links[index].props['data-preview-title-id'];\n const currentLinkSelector = '.tabs-bar__link.active';\n const nextLinkSelector = `.tabs-bar__link[data-preview-title-id=\"${nextLinkTranslationId}\"]`;\n\n // HACK: Remove the active class from the current link and set it to the next one\n // React-router does this for us, but too late, feeling laggy.\n document.querySelector(currentLinkSelector).classList.remove('active');\n document.querySelector(nextLinkSelector).classList.add('active');\n }\n\n handleAnimationEnd = () => {\n if (typeof this.pendingIndex === 'number') {\n this.context.router.history.push(getLink(this.pendingIndex));\n this.pendingIndex = null;\n }\n }\n\n handleWheel = () => {\n if (typeof this._interruptScrollAnimation !== 'function') {\n return;\n }\n\n this._interruptScrollAnimation();\n }\n\n setRef = (node) => {\n this.node = node;\n }\n\n renderView = (link, index) => {\n const columnIndex = getIndex(this.context.router.history.location.pathname);\n const title = this.props.intl.formatMessage({ id: link.props['data-preview-title-id'] });\n const icon = link.props['data-preview-icon'];\n\n const view = (index === columnIndex) ?\n React.cloneElement(this.props.children) :\n <ColumnLoading title={title} icon={icon} />;\n\n return (\n <div className='columns-area' key={index}>\n {view}\n </div>\n );\n }\n\n renderLoading = columnId => () => {\n return columnId === 'COMPOSE' ? <DrawerLoading /> : <ColumnLoading />;\n }\n\n renderError = (props) => {\n return <BundleColumnError {...props} />;\n }\n\n render () {\n const { columns, children, singleColumn, isModalOpen, intl } = this.props;\n const { shouldAnimate } = this.state;\n\n const columnIndex = getIndex(this.context.router.history.location.pathname);\n this.pendingIndex = null;\n\n if (singleColumn) {\n const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button' aria-label={intl.formatMessage(messages.publish)}><i className='fa fa-pencil' /></Link>;\n\n return columnIndex !== -1 ? [\n <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}>\n {links.map(this.renderView)}\n </ReactSwipeableViews>,\n\n floatingActionButton,\n ] : [\n <div className='columns-area'>{children}</div>,\n\n floatingActionButton,\n ];\n }\n\n return (\n <div className={`columns-area ${ isModalOpen ? 'unscrollable' : '' }`} ref={this.setRef}>\n {columns.map(column => {\n const params = column.get('params', null) === null ? null : column.get('params').toJS();\n const other = params && params.other ? params.other : {};\n\n return (\n <BundleContainer key={column.get('uuid')} fetchComponent={componentMap[column.get('id')]} loading={this.renderLoading(column.get('id'))} error={this.renderError}>\n {SpecificComponent => <SpecificComponent columnId={column.get('uuid')} params={params} multiColumn {...other} />}\n </BundleContainer>\n );\n })}\n\n {React.Children.map(children, child => React.cloneElement(child, { multiColumn: true }))}\n </div>\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnsArea from '../components/columns_area';\n\nconst mapStateToProps = state => ({\n columns: state.getIn(['settings', 'columns']),\n isModalOpen: !!state.get('modal').modalType,\n});\n\nexport default connect(mapStateToProps, null, null, { withRef: true })(ColumnsArea);\n","import classNames from 'classnames';\nimport React from 'react';\nimport { HotKeys } from 'react-hotkeys';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { connect } from 'react-redux';\nimport { Redirect, withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport NotificationsContainer from './containers/notifications_container';\nimport LoadingBarContainer from './containers/loading_bar_container';\nimport TabsBar from './components/tabs_bar';\nimport ModalContainer from './containers/modal_container';\nimport { isMobile } from '../../is_mobile';\nimport { debounce } from 'lodash';\nimport { uploadCompose, resetCompose } from '../../actions/compose';\nimport { expandHomeTimeline } from '../../actions/timelines';\nimport { expandNotifications } from '../../actions/notifications';\nimport { fetchFilters } from '../../actions/filters';\nimport { clearHeight } from '../../actions/height_cache';\nimport { WrappedSwitch, WrappedRoute } from './util/react_router_helpers';\nimport UploadArea from './components/upload_area';\nimport ColumnsAreaContainer from './containers/columns_area_container';\nimport {\n Compose,\n Status,\n GettingStarted,\n KeyboardShortcuts,\n PublicTimeline,\n CommunityTimeline,\n AccountTimeline,\n AccountGallery,\n HomeTimeline,\n Followers,\n Following,\n Reblogs,\n Favourites,\n DirectTimeline,\n HashtagTimeline,\n Notifications,\n FollowRequests,\n GenericNotFound,\n FavouritedStatuses,\n ListTimeline,\n Blocks,\n DomainBlocks,\n Mutes,\n PinnedStatuses,\n Lists,\n} from './util/async-components';\nimport { me } from '../../initial_state';\nimport { previewState } from './components/media_modal';\n\n// Dummy import, to make sure that <Status /> ends up in the application bundle.\n// Without this it ends up in ~8 very commonly used bundles.\nimport '../../components/status';\n\nconst messages = defineMessages({\n beforeUnload: { id: 'ui.beforeunload', defaultMessage: 'Your draft will be lost if you leave Mastodon.' },\n});\n\nconst mapStateToProps = state => ({\n isComposing: state.getIn(['compose', 'is_composing']),\n hasComposingText: state.getIn(['compose', 'text']) !== '',\n dropdownMenuIsOpen: state.getIn(['dropdown_menu', 'openId']) !== null,\n});\n\nconst keyMap = {\n help: '?',\n new: 'n',\n search: 's',\n forceNew: 'option+n',\n focusColumn: ['1', '2', '3', '4', '5', '6', '7', '8', '9'],\n reply: 'r',\n favourite: 'f',\n boost: 'b',\n mention: 'm',\n open: ['enter', 'o'],\n openProfile: 'p',\n moveDown: ['down', 'j'],\n moveUp: ['up', 'k'],\n back: 'backspace',\n goToHome: 'g h',\n goToNotifications: 'g n',\n goToLocal: 'g l',\n goToFederated: 'g t',\n goToDirect: 'g d',\n goToStart: 'g s',\n goToFavourites: 'g f',\n goToPinned: 'g p',\n goToProfile: 'g u',\n goToBlocked: 'g b',\n goToMuted: 'g m',\n goToRequests: 'g r',\n toggleHidden: 'x',\n};\n\nclass SwitchingColumnsArea extends React.PureComponent {\n\n static propTypes = {\n children: PropTypes.node,\n location: PropTypes.object,\n onLayoutChange: PropTypes.func.isRequired,\n };\n\n state = {\n mobile: isMobile(window.innerWidth),\n };\n\n componentWillMount () {\n window.addEventListener('resize', this.handleResize, { passive: true });\n }\n\n componentDidUpdate (prevProps) {\n if (![this.props.location.pathname, '/'].includes(prevProps.location.pathname)) {\n this.node.handleChildrenContentChange();\n }\n }\n\n componentWillUnmount () {\n window.removeEventListener('resize', this.handleResize);\n }\n\n shouldUpdateScroll (_, { location }) {\n return location.state !== previewState;\n }\n\n handleResize = debounce(() => {\n // The cached heights are no longer accurate, invalidate\n this.props.onLayoutChange();\n\n this.setState({ mobile: isMobile(window.innerWidth) });\n }, 500, {\n trailing: true,\n });\n\n setRef = c => {\n this.node = c.getWrappedInstance().getWrappedInstance();\n }\n\n render () {\n const { children } = this.props;\n const { mobile } = this.state;\n const redirect = mobile ? <Redirect from='/' to='/timelines/home' exact /> : <Redirect from='/' to='/getting-started' exact />;\n\n return (\n <ColumnsAreaContainer ref={this.setRef} singleColumn={mobile}>\n <WrappedSwitch>\n {redirect}\n <WrappedRoute path='/getting-started' component={GettingStarted} content={children} />\n <WrappedRoute path='/keyboard-shortcuts' component={KeyboardShortcuts} content={children} />\n <WrappedRoute path='/timelines/home' component={HomeTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/timelines/public' exact component={PublicTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/timelines/public/media' component={PublicTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, onlyMedia: true }} />\n <WrappedRoute path='/timelines/public/local' exact component={CommunityTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/timelines/public/local/media' component={CommunityTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, onlyMedia: true }} />\n <WrappedRoute path='/timelines/direct' component={DirectTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/timelines/tag/:id' component={HashtagTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/timelines/list/:id' component={ListTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n\n <WrappedRoute path='/notifications' component={Notifications} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/favourites' component={FavouritedStatuses} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/pinned' component={PinnedStatuses} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n\n <WrappedRoute path='/search' component={Compose} content={children} componentParams={{ isSearchPage: true }} />\n\n <WrappedRoute path='/statuses/new' component={Compose} content={children} />\n <WrappedRoute path='/statuses/:statusId' exact component={Status} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/statuses/:statusId/reblogs' component={Reblogs} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/statuses/:statusId/favourites' component={Favourites} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n\n <WrappedRoute path='/accounts/:accountId' exact component={AccountTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/accounts/:accountId/with_replies' component={AccountTimeline} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll, withReplies: true }} />\n <WrappedRoute path='/accounts/:accountId/followers' component={Followers} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/accounts/:accountId/following' component={Following} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/accounts/:accountId/media' component={AccountGallery} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n\n <WrappedRoute path='/follow_requests' component={FollowRequests} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/blocks' component={Blocks} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/domain_blocks' component={DomainBlocks} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/mutes' component={Mutes} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n <WrappedRoute path='/lists' component={Lists} content={children} componentParams={{ shouldUpdateScroll: this.shouldUpdateScroll }} />\n\n <WrappedRoute component={GenericNotFound} content={children} />\n </WrappedSwitch>\n </ColumnsAreaContainer>\n );\n }\n\n}\n\n@connect(mapStateToProps)\n@injectIntl\n@withRouter\nexport default class UI extends React.PureComponent {\n\n static contextTypes = {\n router: PropTypes.object.isRequired,\n };\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n children: PropTypes.node,\n isComposing: PropTypes.bool,\n hasComposingText: PropTypes.bool,\n location: PropTypes.object,\n intl: PropTypes.object.isRequired,\n dropdownMenuIsOpen: PropTypes.bool,\n };\n\n state = {\n draggingOver: false,\n };\n\n handleBeforeUnload = (e) => {\n const { intl, isComposing, hasComposingText } = this.props;\n\n if (isComposing && hasComposingText) {\n // Setting returnValue to any string causes confirmation dialog.\n // Many browsers no longer display this text to users,\n // but we set user-friendly message for other browsers, e.g. Edge.\n e.returnValue = intl.formatMessage(messages.beforeUnload);\n }\n }\n\n handleLayoutChange = () => {\n // The cached heights are no longer accurate, invalidate\n this.props.dispatch(clearHeight());\n }\n\n handleDragEnter = (e) => {\n e.preventDefault();\n\n if (!this.dragTargets) {\n this.dragTargets = [];\n }\n\n if (this.dragTargets.indexOf(e.target) === -1) {\n this.dragTargets.push(e.target);\n }\n\n if (e.dataTransfer && Array.from(e.dataTransfer.types).includes('Files')) {\n this.setState({ draggingOver: true });\n }\n }\n\n handleDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n try {\n e.dataTransfer.dropEffect = 'copy';\n } catch (err) {\n\n }\n\n return false;\n }\n\n handleDrop = (e) => {\n e.preventDefault();\n\n this.setState({ draggingOver: false });\n\n if (e.dataTransfer && e.dataTransfer.files.length === 1) {\n this.props.dispatch(uploadCompose(e.dataTransfer.files));\n }\n }\n\n handleDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n this.dragTargets = this.dragTargets.filter(el => el !== e.target && this.node.contains(el));\n\n if (this.dragTargets.length > 0) {\n return;\n }\n\n this.setState({ draggingOver: false });\n }\n\n closeUploadModal = () => {\n this.setState({ draggingOver: false });\n }\n\n handleServiceWorkerPostMessage = ({ data }) => {\n if (data.type === 'navigate') {\n this.context.router.history.push(data.path);\n } else {\n console.warn('Unknown message type:', data.type);\n }\n }\n\n componentWillMount () {\n window.addEventListener('beforeunload', this.handleBeforeUnload, false);\n document.addEventListener('dragenter', this.handleDragEnter, false);\n document.addEventListener('dragover', this.handleDragOver, false);\n document.addEventListener('drop', this.handleDrop, false);\n document.addEventListener('dragleave', this.handleDragLeave, false);\n document.addEventListener('dragend', this.handleDragEnd, false);\n\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.addEventListener('message', this.handleServiceWorkerPostMessage);\n }\n\n this.props.dispatch(expandHomeTimeline());\n this.props.dispatch(expandNotifications());\n setTimeout(() => this.props.dispatch(fetchFilters()), 500);\n }\n\n componentDidMount () {\n this.hotkeys.__mousetrap__.stopCallback = (e, element) => {\n return ['TEXTAREA', 'SELECT', 'INPUT'].includes(element.tagName);\n };\n }\n\n componentWillUnmount () {\n window.removeEventListener('beforeunload', this.handleBeforeUnload);\n document.removeEventListener('dragenter', this.handleDragEnter);\n document.removeEventListener('dragover', this.handleDragOver);\n document.removeEventListener('drop', this.handleDrop);\n document.removeEventListener('dragleave', this.handleDragLeave);\n document.removeEventListener('dragend', this.handleDragEnd);\n }\n\n setRef = c => {\n this.node = c;\n }\n\n handleHotkeyNew = e => {\n e.preventDefault();\n\n const element = this.node.querySelector('.compose-form__autosuggest-wrapper textarea');\n\n if (element) {\n element.focus();\n }\n }\n\n handleHotkeySearch = e => {\n e.preventDefault();\n\n const element = this.node.querySelector('.search__input');\n\n if (element) {\n element.focus();\n }\n }\n\n handleHotkeyForceNew = e => {\n this.handleHotkeyNew(e);\n this.props.dispatch(resetCompose());\n }\n\n handleHotkeyFocusColumn = e => {\n const index = (e.key * 1) + 1; // First child is drawer, skip that\n const column = this.node.querySelector(`.column:nth-child(${index})`);\n\n if (column) {\n const status = column.querySelector('.focusable');\n\n if (status) {\n status.focus();\n }\n }\n }\n\n handleHotkeyBack = () => {\n if (window.history && window.history.length === 1) {\n this.context.router.history.push('/');\n } else {\n this.context.router.history.goBack();\n }\n }\n\n setHotkeysRef = c => {\n this.hotkeys = c;\n }\n\n handleHotkeyToggleHelp = () => {\n if (this.props.location.pathname === '/keyboard-shortcuts') {\n this.context.router.history.goBack();\n } else {\n this.context.router.history.push('/keyboard-shortcuts');\n }\n }\n\n handleHotkeyGoToHome = () => {\n this.context.router.history.push('/timelines/home');\n }\n\n handleHotkeyGoToNotifications = () => {\n this.context.router.history.push('/notifications');\n }\n\n handleHotkeyGoToLocal = () => {\n this.context.router.history.push('/timelines/public/local');\n }\n\n handleHotkeyGoToFederated = () => {\n this.context.router.history.push('/timelines/public');\n }\n\n handleHotkeyGoToDirect = () => {\n this.context.router.history.push('/timelines/direct');\n }\n\n handleHotkeyGoToStart = () => {\n this.context.router.history.push('/getting-started');\n }\n\n handleHotkeyGoToFavourites = () => {\n this.context.router.history.push('/favourites');\n }\n\n handleHotkeyGoToPinned = () => {\n this.context.router.history.push('/pinned');\n }\n\n handleHotkeyGoToProfile = () => {\n this.context.router.history.push(`/accounts/${me}`);\n }\n\n handleHotkeyGoToBlocked = () => {\n this.context.router.history.push('/blocks');\n }\n\n handleHotkeyGoToMuted = () => {\n this.context.router.history.push('/mutes');\n }\n\n handleHotkeyGoToRequests = () => {\n this.context.router.history.push('/follow_requests');\n }\n\n render () {\n const { draggingOver } = this.state;\n const { children, isComposing, location, dropdownMenuIsOpen } = this.props;\n\n const handlers = {\n help: this.handleHotkeyToggleHelp,\n new: this.handleHotkeyNew,\n search: this.handleHotkeySearch,\n forceNew: this.handleHotkeyForceNew,\n focusColumn: this.handleHotkeyFocusColumn,\n back: this.handleHotkeyBack,\n goToHome: this.handleHotkeyGoToHome,\n goToNotifications: this.handleHotkeyGoToNotifications,\n goToLocal: this.handleHotkeyGoToLocal,\n goToFederated: this.handleHotkeyGoToFederated,\n goToDirect: this.handleHotkeyGoToDirect,\n goToStart: this.handleHotkeyGoToStart,\n goToFavourites: this.handleHotkeyGoToFavourites,\n goToPinned: this.handleHotkeyGoToPinned,\n goToProfile: this.handleHotkeyGoToProfile,\n goToBlocked: this.handleHotkeyGoToBlocked,\n goToMuted: this.handleHotkeyGoToMuted,\n goToRequests: this.handleHotkeyGoToRequests,\n };\n\n return (\n <HotKeys keyMap={keyMap} handlers={handlers} ref={this.setHotkeysRef}>\n <div className={classNames('ui', { 'is-composing': isComposing })} ref={this.setRef} style={{ pointerEvents: dropdownMenuIsOpen ? 'none' : null }}>\n <TabsBar />\n\n <SwitchingColumnsArea location={location} onLayoutChange={this.handleLayoutChange}>\n {children}\n </SwitchingColumnsArea>\n\n <NotificationsContainer />\n <LoadingBarContainer className='loading-bar' />\n <ModalContainer />\n <UploadArea active={draggingOver} onClose={this.closeUploadModal} />\n </div>\n </HotKeys>\n );\n }\n\n}\n","import React from 'react';\nimport { Provider } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport configureStore from '../store/configureStore';\nimport { showOnboardingOnce } from '../actions/onboarding';\nimport { BrowserRouter, Route } from 'react-router-dom';\nimport { ScrollContext } from 'react-router-scroll-4';\nimport UI from '../features/ui';\nimport { fetchCustomEmojis } from '../actions/custom_emojis';\nimport { hydrateStore } from '../actions/store';\nimport { connectUserStream } from '../actions/streaming';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport initialState from '../initial_state';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nexport const store = configureStore();\nconst hydrateAction = hydrateStore(initialState);\nstore.dispatch(hydrateAction);\n\n// load custom emojis\nstore.dispatch(fetchCustomEmojis());\n\nexport default class Mastodon extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n };\n\n componentDidMount() {\n this.disconnect = store.dispatch(connectUserStream());\n\n // Desktop notifications\n // Ask after 1 minute\n if (typeof window.Notification !== 'undefined' && Notification.permission === 'default') {\n window.setTimeout(() => Notification.requestPermission(), 60 * 1000);\n }\n\n store.dispatch(showOnboardingOnce());\n }\n\n componentWillUnmount () {\n if (this.disconnect) {\n this.disconnect();\n this.disconnect = null;\n }\n }\n\n render () {\n const { locale } = this.props;\n\n return (\n <IntlProvider locale={locale} messages={messages}>\n <Provider store={store}>\n <BrowserRouter basename='/web'>\n <ScrollContext>\n <Route path='/' component={UI} />\n </ScrollContext>\n </BrowserRouter>\n </Provider>\n </IntlProvider>\n );\n }\n\n}\n","import { openModal } from './modal';\nimport { changeSetting, saveSettings } from './settings';\n\nexport function showOnboardingOnce() {\n return (dispatch, getState) => {\n const alreadySeen = getState().getIn(['settings', 'onboarded']);\n\n if (!alreadySeen) {\n dispatch(openModal('ONBOARDING'));\n dispatch(changeSetting(['onboarded'], true));\n dispatch(saveSettings());\n }\n };\n};\n","import * as registerPushNotifications from './actions/push_notifications';\nimport { default as Mastodon, store } from './containers/mastodon';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport ready from './ready';\n\nconst perf = require('./performance');\n\nfunction main() {\n perf.start('main()');\n\n if (window.history && history.replaceState) {\n const { pathname, search, hash } = window.location;\n const path = pathname + search + hash;\n if (!(/^\\/web($|\\/)/).test(path)) {\n history.replaceState(null, document.title, `/web${path}`);\n }\n }\n\n ready(() => {\n const mountNode = document.getElementById('mastodon');\n const props = JSON.parse(mountNode.getAttribute('data-props'));\n\n ReactDOM.render(<Mastodon {...props} />, mountNode);\n if (process.env.NODE_ENV === 'production') {\n // avoid offline in dev mode because it's harder to debug\n require('offline-plugin/runtime').install();\n store.dispatch(registerPushNotifications.register());\n }\n perf.stop('main()');\n });\n}\n\nexport default main;\n","var appCacheIframe;\n\nfunction hasSW() {\n \n return 'serviceWorker' in navigator && (\n window.location.protocol === 'https:' ||\n window.location.hostname === 'localhost' ||\n window.location.hostname.indexOf('127.') === 0\n );\n \n}\n\nfunction install(options) {\n options || (options = {});\n\n \n if (hasSW()) {\n var registration = navigator.serviceWorker\n .register(\n \"/sw.js\", {\n \n \n }\n );\n\n \n\n return;\n }\n \n\n \n}\n\nfunction applyUpdate(callback, errback) {\n \n\n \n}\n\nfunction update() {\n \n if (hasSW()) {\n navigator.serviceWorker.getRegistration().then(function(registration) {\n if (!registration) return;\n return registration.update();\n });\n }\n \n\n \n}\n\n\n\nexports.install = install;\nexports.applyUpdate = applyUpdate;\nexports.update = update;\n","//\n// Tools for performance debugging, only enabled in development mode.\n// Open up Chrome Dev Tools, then Timeline, then User Timing to see output.\n// Also see config/webpack/loaders/mark.js for the webpack loader marks.\n//\n\nlet marky;\n\nif (process.env.NODE_ENV === 'development') {\n if (typeof performance !== 'undefined' && performance.setResourceTimingBufferSize) {\n // Increase Firefox's performance entry limit; otherwise it's capped to 150.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135\n performance.setResourceTimingBufferSize(Infinity);\n }\n marky = require('marky');\n // allows us to easily do e.g. ReactPerf.printWasted() while debugging\n //window.ReactPerf = require('react-addons-perf');\n //window.ReactPerf.start();\n}\n\nexport function start(name) {\n if (process.env.NODE_ENV === 'development') {\n marky.mark(name);\n }\n}\n\nexport function stop(name) {\n if (process.env.NODE_ENV === 'development') {\n marky.stop(name);\n }\n}\n","import loadPolyfills from '../mastodon/load_polyfills';\nimport { start } from '../mastodon/common';\n\nstart();\n\nloadPolyfills().then(() => {\n require('../mastodon/main').default();\n}).catch(e => {\n console.error(e);\n});\n"],"sourceRoot":""}