{"version":3,"sources":["webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/home_timeline/containers/column_settings_container.js","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/getting_started/components/announcements.jsx","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/getting_started/containers/announcements_container.js","webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/home_timeline/index.jsx","webpack:///./app/javascript/images/elephant_ui_plane.svg"],"names":["messages","defineMessages","filter_regex","settings","ColumnSettings","injectIntl","_class","React","PureComponent","render","onChange","intl","this","props","_jsx","className","FormattedMessage","id","defaultMessage","SettingToggle","prefix","settingPath","label","SettingText","formatMessage","connect","state","getIn","dispatch","path","checked","changeSetting","onSave","saveSettings","close","previous","next","Content","ImmutablePureComponent","constructor","arguments","setRef","c","node","onMentionClick","mention","e","context","router","button","ctrlKey","metaKey","preventDefault","history","push","get","onHashtagClick","hashtag","replace","onStatusClick","status","handleMouseEnter","_ref","currentTarget","autoPlayGif","emojis","querySelectorAll","i","length","emoji","src","getAttribute","handleMouseLeave","_ref2","componentDidMount","_updateLinks","componentDidUpdate","links","link","classList","contains","add","announcement","find","item","href","addEventListener","bind","setAttribute","textContent","previousSibling","text","createElement","ref","dangerouslySetInnerHTML","__html","onMouseEnter","onMouseLeave","contextTypes","PropTypes","object","propTypes","ImmutablePropTypes","map","isRequired","Emoji","emojiMap","hovered","unicodeMapping","filename","shortCode","title","draggable","alt","assetHost","Reaction","handleClick","reaction","announcementId","addReaction","removeReaction","setState","classNames","active","onClick","style","AnimatedNumber","value","string","func","ReactionsBar","handleEmojiPick","data","native","willEnter","scale","reduceMotion","willLeave","spring","stiffness","damping","reactions","visibleReactions","filter","x","styles","key","toArray","TransitionMotion","items","isEmpty","_ref3","transform","position","size","EmojiPickerDropdown","onPickEmoji","Icon","list","Announcement","unread","selected","startsAt","Date","endsAt","now","hasTimeRange","skipYear","getFullYear","skipEndDate","getDate","getMonth","skipTime","FormattedDate","hour12","year","undefined","month","day","hour","minute","bool","Announcements","_class2","index","handleChangeIndex","announcements","handleNextClick","handlePrevClick","static","_markAnnouncementAsRead","dismissAnnouncement","mascot","elephantUIPlane","ReactSwipeableViews","animateHeight","adjustHeight","onChangeIndex","idx","disabled","disableSwiping","IconButton","icon","customEmojiMap","createSelector","reduce","set","ImmutableMap","name","show_announcements","hide_announcements","HomeTimeline","hasUnread","isPartial","hasAnnouncements","unreadAnnouncements","count","showAnnouncements","regex","_dec","handlePin","columnId","removeColumn","addColumn","handleMove","dir","moveColumn","handleHeaderClick","column","scrollTop","handleLoadMore","maxId","expandHomeTimeline","handleToggleAnnouncementsClick","stopPropagation","toggleShowAnnouncements","setTimeout","fetchAnnouncements","_checkIfReloadNeeded","prevProps","componentWillUnmount","_stopPolling","wasPartial","polling","setInterval","clearInterval","multiColumn","pinned","signedIn","identity","announcementsButton","IconWithBadge","Column","bindToDocument","ColumnHeader","onPin","onMove","extraButton","appendContent","AnnouncementsContainer","ColumnSettingsContainer","StatusListContainer","trackScroll","scrollKey","onLoadMore","timelineId","emptyMessage","values","suggestions","Link","to","NotSignedInIndicator","Helmet","content"],"mappings":"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","file":"js/flavours/glitch/async/home_timeline-1b20a975ecac22d21ad0.chunk.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport SettingToggle from 'flavours/glitch/features/notifications/components/setting_toggle';\nimport SettingText from 'flavours/glitch/components/setting_text';\n\nconst messages = defineMessages({\n filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },\n settings: { id: 'home.settings', defaultMessage: 'Column settings' },\n});\n\nexport default @injectIntl\nclass ColumnSettings extends React.PureComponent {\n\n static propTypes = {\n settings: ImmutablePropTypes.map.isRequired,\n onChange: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n render () {\n const { settings, onChange, intl } = this.props;\n\n return (\n
\n \n\n
\n } />\n
\n\n
\n } />\n
\n\n
\n } />\n
\n\n \n\n
\n \n
\n
\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport ColumnSettings from '../components/column_settings';\nimport { changeSetting, saveSettings } from 'flavours/glitch/actions/settings';\n\nconst mapStateToProps = state => ({\n settings: state.getIn(['settings', 'home']),\n});\n\nconst mapDispatchToProps = dispatch => ({\n\n onChange (path, checked) {\n dispatch(changeSetting(['home', ...path], checked));\n },\n\n onSave () {\n dispatch(saveSettings());\n },\n\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings);\n","import React from 'react';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport ReactSwipeableViews from 'react-swipeable-views';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport PropTypes from 'prop-types';\nimport IconButton from 'flavours/glitch/components/icon_button';\nimport Icon from 'flavours/glitch/components/icon';\nimport { defineMessages, injectIntl, FormattedMessage, FormattedDate } from 'react-intl';\nimport { autoPlayGif, reduceMotion, disableSwiping, mascot } from 'flavours/glitch/initial_state';\nimport elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg';\nimport unicodeMapping from 'flavours/glitch/features/emoji/emoji_unicode_mapping_light';\nimport classNames from 'classnames';\nimport EmojiPickerDropdown from 'flavours/glitch/features/compose/containers/emoji_picker_dropdown_container';\nimport AnimatedNumber from 'flavours/glitch/components/animated_number';\nimport TransitionMotion from 'react-motion/lib/TransitionMotion';\nimport spring from 'react-motion/lib/spring';\nimport { assetHost } from 'flavours/glitch/utils/config';\n\nconst messages = defineMessages({\n close: { id: 'lightbox.close', defaultMessage: 'Close' },\n previous: { id: 'lightbox.previous', defaultMessage: 'Previous' },\n next: { id: 'lightbox.next', defaultMessage: 'Next' },\n});\n\nclass Content extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n announcement: ImmutablePropTypes.map.isRequired,\n };\n\n setRef = c => {\n this.node = c;\n };\n\n componentDidMount () {\n this._updateLinks();\n }\n\n componentDidUpdate () {\n this._updateLinks();\n }\n\n _updateLinks () {\n const node = this.node;\n\n if (!node) {\n return;\n }\n\n const links = node.querySelectorAll('a');\n\n for (var i = 0; i < links.length; ++i) {\n let link = links[i];\n\n if (link.classList.contains('status-link')) {\n continue;\n }\n\n link.classList.add('status-link');\n\n let mention = this.props.announcement.get('mentions').find(item => link.href === item.get('url'));\n\n if (mention) {\n link.addEventListener('click', this.onMentionClick.bind(this, mention), false);\n link.setAttribute('title', mention.get('acct'));\n } else if (link.textContent[0] === '#' || (link.previousSibling && link.previousSibling.textContent && link.previousSibling.textContent[link.previousSibling.textContent.length - 1] === '#')) {\n link.addEventListener('click', this.onHashtagClick.bind(this, link.text), false);\n } else {\n let status = this.props.announcement.get('statuses').find(item => link.href === item.get('url'));\n if (status) {\n link.addEventListener('click', this.onStatusClick.bind(this, status), false);\n }\n link.setAttribute('title', link.href);\n link.classList.add('unhandled-link');\n }\n\n link.setAttribute('target', '_blank');\n link.setAttribute('rel', 'noopener noreferrer');\n }\n }\n\n onMentionClick = (mention, e) => {\n if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n this.context.router.history.push(`/@${mention.get('acct')}`);\n }\n };\n\n onHashtagClick = (hashtag, e) => {\n hashtag = hashtag.replace(/^#/, '');\n\n if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n this.context.router.history.push(`/tags/${hashtag}`);\n }\n };\n\n onStatusClick = (status, e) => {\n if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) {\n e.preventDefault();\n this.context.router.history.push(`/@${status.getIn(['account', 'acct'])}/${status.get('id')}`);\n }\n };\n\n handleMouseEnter = ({ currentTarget }) => {\n if (autoPlayGif) {\n return;\n }\n\n const emojis = currentTarget.querySelectorAll('.custom-emoji');\n\n for (var i = 0; i < emojis.length; i++) {\n let emoji = emojis[i];\n emoji.src = emoji.getAttribute('data-original');\n }\n };\n\n handleMouseLeave = ({ currentTarget }) => {\n if (autoPlayGif) {\n return;\n }\n\n const emojis = currentTarget.querySelectorAll('.custom-emoji');\n\n for (var i = 0; i < emojis.length; i++) {\n let emoji = emojis[i];\n emoji.src = emoji.getAttribute('data-static');\n }\n };\n\n render () {\n const { announcement } = this.props;\n\n return (\n \n );\n }\n\n}\n\nclass Emoji extends React.PureComponent {\n\n static propTypes = {\n emoji: PropTypes.string.isRequired,\n emojiMap: ImmutablePropTypes.map.isRequired,\n hovered: PropTypes.bool.isRequired,\n };\n\n render () {\n const { emoji, emojiMap, hovered } = this.props;\n\n if (unicodeMapping[emoji]) {\n const { filename, shortCode } = unicodeMapping[this.props.emoji];\n const title = shortCode ? `:${shortCode}:` : '';\n\n return (\n \n );\n } else if (emojiMap.get(emoji)) {\n const filename = (autoPlayGif || hovered) ? emojiMap.getIn([emoji, 'url']) : emojiMap.getIn([emoji, 'static_url']);\n const shortCode = `:${emoji}:`;\n\n return (\n \n );\n } else {\n return null;\n }\n }\n\n}\n\nclass Reaction extends ImmutablePureComponent {\n\n static propTypes = {\n announcementId: PropTypes.string.isRequired,\n reaction: ImmutablePropTypes.map.isRequired,\n addReaction: PropTypes.func.isRequired,\n removeReaction: PropTypes.func.isRequired,\n emojiMap: ImmutablePropTypes.map.isRequired,\n style: PropTypes.object,\n };\n\n state = {\n hovered: false,\n };\n\n handleClick = () => {\n const { reaction, announcementId, addReaction, removeReaction } = this.props;\n\n if (reaction.get('me')) {\n removeReaction(announcementId, reaction.get('name'));\n } else {\n addReaction(announcementId, reaction.get('name'));\n }\n };\n\n handleMouseEnter = () => this.setState({ hovered: true });\n\n handleMouseLeave = () => this.setState({ hovered: false });\n\n render () {\n const { reaction } = this.props;\n\n let shortCode = reaction.get('name');\n\n if (unicodeMapping[shortCode]) {\n shortCode = unicodeMapping[shortCode].shortCode;\n }\n\n return (\n \n );\n }\n\n}\n\nclass ReactionsBar extends ImmutablePureComponent {\n\n static propTypes = {\n announcementId: PropTypes.string.isRequired,\n reactions: ImmutablePropTypes.list.isRequired,\n addReaction: PropTypes.func.isRequired,\n removeReaction: PropTypes.func.isRequired,\n emojiMap: ImmutablePropTypes.map.isRequired,\n };\n\n handleEmojiPick = data => {\n const { addReaction, announcementId } = this.props;\n addReaction(announcementId, data.native.replace(/:/g, ''));\n };\n\n willEnter () {\n return { scale: reduceMotion ? 1 : 0 };\n }\n\n willLeave () {\n return { scale: reduceMotion ? 0 : spring(0, { stiffness: 170, damping: 26 }) };\n }\n\n render () {\n const { reactions } = this.props;\n const visibleReactions = reactions.filter(x => x.get('count') > 0);\n\n const styles = visibleReactions.map(reaction => ({\n key: reaction.get('name'),\n data: reaction,\n style: { scale: reduceMotion ? 1 : spring(1, { stiffness: 150, damping: 13 }) },\n })).toArray();\n\n return (\n \n {items => (\n
\n {items.map(({ key, data, style }) => (\n \n ))}\n\n {visibleReactions.size < 8 && } />}\n
\n )}\n
\n );\n }\n\n}\n\nclass Announcement extends ImmutablePureComponent {\n\n static propTypes = {\n announcement: ImmutablePropTypes.map.isRequired,\n emojiMap: ImmutablePropTypes.map.isRequired,\n addReaction: PropTypes.func.isRequired,\n removeReaction: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n selected: PropTypes.bool,\n };\n\n state = {\n unread: !this.props.announcement.get('read'),\n };\n\n componentDidUpdate () {\n const { selected, announcement } = this.props;\n if (!selected && this.state.unread !== !announcement.get('read')) {\n this.setState({ unread: !announcement.get('read') });\n }\n }\n\n render () {\n const { announcement } = this.props;\n const { unread } = this.state;\n const startsAt = announcement.get('starts_at') && new Date(announcement.get('starts_at'));\n const endsAt = announcement.get('ends_at') && new Date(announcement.get('ends_at'));\n const now = new Date();\n const hasTimeRange = startsAt && endsAt;\n const skipYear = hasTimeRange && startsAt.getFullYear() === endsAt.getFullYear() && endsAt.getFullYear() === now.getFullYear();\n const skipEndDate = hasTimeRange && startsAt.getDate() === endsAt.getDate() && startsAt.getMonth() === endsAt.getMonth() && startsAt.getFullYear() === endsAt.getFullYear();\n const skipTime = announcement.get('all_day');\n\n return (\n
\n \n \n {hasTimeRange && ยท - }\n \n\n \n\n \n\n {unread && }\n
\n );\n }\n\n}\n\nexport default @injectIntl\nclass Announcements extends ImmutablePureComponent {\n\n static propTypes = {\n announcements: ImmutablePropTypes.list,\n emojiMap: ImmutablePropTypes.map.isRequired,\n dismissAnnouncement: PropTypes.func.isRequired,\n addReaction: PropTypes.func.isRequired,\n removeReaction: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n };\n\n state = {\n index: 0,\n };\n\n static getDerivedStateFromProps(props, state) {\n if (props.announcements.size > 0 && state.index >= props.announcements.size) {\n return { index: props.announcements.size - 1 };\n } else {\n return null;\n }\n }\n\n componentDidMount () {\n this._markAnnouncementAsRead();\n }\n\n componentDidUpdate () {\n this._markAnnouncementAsRead();\n }\n\n _markAnnouncementAsRead () {\n const { dismissAnnouncement, announcements } = this.props;\n const { index } = this.state;\n const announcement = announcements.get(index);\n if (!announcement.get('read')) dismissAnnouncement(announcement.get('id'));\n }\n\n handleChangeIndex = index => {\n this.setState({ index: index % this.props.announcements.size });\n };\n\n handleNextClick = () => {\n this.setState({ index: (this.state.index + 1) % this.props.announcements.size });\n };\n\n handlePrevClick = () => {\n this.setState({ index: (this.props.announcements.size + this.state.index - 1) % this.props.announcements.size });\n };\n\n render () {\n const { announcements, intl } = this.props;\n const { index } = this.state;\n\n if (announcements.isEmpty()) {\n return null;\n }\n\n return (\n
\n \n\n
\n \n {announcements.map((announcement, idx) => (\n \n ))}\n \n\n {announcements.size > 1 && (\n
\n \n {index + 1} / {announcements.size}\n \n
\n )}\n
\n
\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport { addReaction, removeReaction, dismissAnnouncement } from 'flavours/glitch/actions/announcements';\nimport Announcements from '../components/announcements';\nimport { createSelector } from 'reselect';\nimport { Map as ImmutableMap } from 'immutable';\n\nconst customEmojiMap = createSelector([state => state.get('custom_emojis')], items => items.reduce((map, emoji) => map.set(emoji.get('shortcode'), emoji), ImmutableMap()));\n\nconst mapStateToProps = state => ({\n announcements: state.getIn(['announcements', 'items']),\n emojiMap: customEmojiMap(state),\n});\n\nconst mapDispatchToProps = dispatch => ({\n dismissAnnouncement: id => dispatch(dismissAnnouncement(id)),\n addReaction: (id, name) => dispatch(addReaction(id, name)),\n removeReaction: (id, name) => dispatch(removeReaction(id, name)),\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Announcements);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { expandHomeTimeline } from 'flavours/glitch/actions/timelines';\nimport PropTypes from 'prop-types';\nimport StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container';\nimport Column from 'flavours/glitch/components/column';\nimport ColumnHeader from 'flavours/glitch/components/column_header';\nimport { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns';\nimport { defineMessages, injectIntl, FormattedMessage } from 'react-intl';\nimport ColumnSettingsContainer from './containers/column_settings_container';\nimport { Link } from 'react-router-dom';\nimport { fetchAnnouncements, toggleShowAnnouncements } from 'flavours/glitch/actions/announcements';\nimport AnnouncementsContainer from 'flavours/glitch/features/getting_started/containers/announcements_container';\nimport classNames from 'classnames';\nimport IconWithBadge from 'flavours/glitch/components/icon_with_badge';\nimport NotSignedInIndicator from 'flavours/glitch/components/not_signed_in_indicator';\nimport { Helmet } from 'react-helmet';\n\nconst messages = defineMessages({\n title: { id: 'column.home', defaultMessage: 'Home' },\n show_announcements: { id: 'home.show_announcements', defaultMessage: 'Show announcements' },\n hide_announcements: { id: 'home.hide_announcements', defaultMessage: 'Hide announcements' },\n});\n\nconst mapStateToProps = state => ({\n hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,\n isPartial: state.getIn(['timelines', 'home', 'isPartial']),\n hasAnnouncements: !state.getIn(['announcements', 'items']).isEmpty(),\n unreadAnnouncements: state.getIn(['announcements', 'items']).count(item => !item.get('read')),\n showAnnouncements: state.getIn(['announcements', 'show']),\n regex: state.getIn(['settings', 'home', 'regex', 'body']),\n});\n\nexport default @connect(mapStateToProps)\n@injectIntl\nclass HomeTimeline extends React.PureComponent {\n\n static contextTypes = {\n identity: PropTypes.object,\n };\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n hasUnread: PropTypes.bool,\n isPartial: PropTypes.bool,\n columnId: PropTypes.string,\n multiColumn: PropTypes.bool,\n hasAnnouncements: PropTypes.bool,\n unreadAnnouncements: PropTypes.number,\n showAnnouncements: PropTypes.bool,\n regex: PropTypes.string,\n };\n\n handlePin = () => {\n const { columnId, dispatch } = this.props;\n\n if (columnId) {\n dispatch(removeColumn(columnId));\n } else {\n dispatch(addColumn('HOME', {}));\n }\n };\n\n handleMove = (dir) => {\n const { columnId, dispatch } = this.props;\n dispatch(moveColumn(columnId, dir));\n };\n\n handleHeaderClick = () => {\n this.column.scrollTop();\n };\n\n setRef = c => {\n this.column = c;\n };\n\n handleLoadMore = maxId => {\n this.props.dispatch(expandHomeTimeline({ maxId }));\n };\n\n componentDidMount () {\n setTimeout(() => this.props.dispatch(fetchAnnouncements()), 700);\n this._checkIfReloadNeeded(false, this.props.isPartial);\n }\n\n componentDidUpdate (prevProps) {\n this._checkIfReloadNeeded(prevProps.isPartial, this.props.isPartial);\n }\n\n componentWillUnmount () {\n this._stopPolling();\n }\n\n _checkIfReloadNeeded (wasPartial, isPartial) {\n const { dispatch } = this.props;\n\n if (wasPartial === isPartial) {\n return;\n } else if (!wasPartial && isPartial) {\n this.polling = setInterval(() => {\n dispatch(expandHomeTimeline());\n }, 3000);\n } else if (wasPartial && !isPartial) {\n this._stopPolling();\n }\n }\n\n _stopPolling () {\n if (this.polling) {\n clearInterval(this.polling);\n this.polling = null;\n }\n }\n\n handleToggleAnnouncementsClick = (e) => {\n e.stopPropagation();\n this.props.dispatch(toggleShowAnnouncements());\n };\n\n render () {\n const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props;\n const pinned = !!columnId;\n const { signedIn } = this.context.identity;\n\n let announcementsButton = null;\n\n if (hasAnnouncements) {\n announcementsButton = (\n \n \n \n );\n }\n\n return (\n \n }\n >\n \n \n\n {signedIn ? (\n }} />}\n bindToDocument={!multiColumn}\n regex={this.props.regex}\n />\n ) : }\n\n \n {intl.formatMessage(messages.title)}\n \n \n \n );\n }\n\n}\n","export default __webpack_public_path__ + \"media/images/elephant_ui_plane-72f8702db120a51a1cdbc4fb7f5ef59d.svg\";"],"sourceRoot":""}