{"version":3,"sources":["webpack:///app/javascript/opt/mastodon/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.js","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.js","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.js","webpack:///./app/javascript/images/elephant_ui_plane.svg"],"names":["messages","defineMessages","filter_regex","settings","ColumnSettings","injectIntl","React","PureComponent","render","onChange","intl","this","props","className","id","defaultMessage","prefix","settingPath","label","formatMessage","connect","state","getIn","dispatch","path","checked","changeSetting","onSave","saveSettings","close","previous","next","Content","ImmutablePureComponent","setRef","c","node","onMentionClick","mention","e","context","router","button","ctrlKey","metaKey","preventDefault","history","push","get","onHashtagClick","hashtag","replace","onStatusClick","status","handleMouseEnter","currentTarget","autoPlayGif","emojis","querySelectorAll","i","length","emoji","src","getAttribute","handleMouseLeave","componentDidMount","_updateLinks","componentDidUpdate","links","link","classList","contains","add","announcement","find","item","href","addEventListener","bind","setAttribute","textContent","previousSibling","text","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","value","string","func","ReactionsBar","handleEmojiPick","data","native","willEnter","scale","reduceMotion","willLeave","spring","stiffness","damping","reactions","visibleReactions","filter","x","styles","key","toArray","items","isEmpty","transform","position","size","onPickEmoji","list","Announcement","unread","selected","startsAt","Date","endsAt","now","hasTimeRange","skipYear","getFullYear","skipEndDate","getDate","getMonth","skipTime","hour12","year","undefined","month","day","hour","minute","bool","Announcements","index","handleChangeIndex","announcements","handleNextClick","handlePrevClick","static","_markAnnouncementAsRead","dismissAnnouncement","mascot","elephantUIPlane","animateHeight","adjustHeight","onChangeIndex","idx","disabled","disableSwiping","icon","customEmojiMap","createSelector","reduce","set","ImmutableMap","name","show_announcements","hide_announcements","HomeTimeline","hasUnread","isPartial","hasAnnouncements","unreadAnnouncements","count","showAnnouncements","regex","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","bindToDocument","onPin","onMove","extraButton","appendContent","trackScroll","scrollKey","onLoadMore","timelineId","emptyMessage","values","suggestions","Link","to","Helmet","content"],"mappings":"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","file":"js/flavours/glitch/async/home_timeline-4e96b323962d2b201eb8.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 } from 'flavours/glitch/initial_state';\nimport elephantUIPlane from 'mastodon/../images/elephant_ui_plane.svg';\nimport { mascot } from 'flavours/glitch/initial_state';\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":""}