{"version":3,"sources":["webpack:///./app/javascript/brighteon/components/picture_in_picture_placeholder.js","webpack:///./app/javascript/brighteon/features/status/components/detailed_status.js","webpack:///./app/javascript/brighteon/features/status/containers/detailed_status_container.js","webpack:///./app/javascript/brighteon/features/standalone/public_timeline/index.js","webpack:///./app/javascript/brighteon/features/standalone/hashtag_timeline/index.js","webpack:///./app/javascript/brighteon/containers/timeline_container.js","webpack:///./node_modules/react-masonry-infinite/lib/index.js","webpack:///./app/javascript/packs/about.js","webpack:///./node_modules/bricks.js/dist/bricks.module.js","webpack:///./node_modules/react-infinite-scroller/index.js","webpack:///./node_modules/react-infinite-scroller/dist/InfiniteScroll.js"],"names":["PictureInPicturePlaceholder","connect","state","width","props","height","handleClick","dispatch","removePictureInPicture","setRef","c","node","_setDimensions","handleResize","trailing","this","offsetWidth","setState","componentDidMount","window","addEventListener","passive","componentWillUnmount","removeEventListener","render","ref","className","style","role","tabIndex","onClick","id","defaultMessage","React","PureComponent","messages","defineMessages","public_short","unlisted_short","private_short","direct_short","DetailedStatus","injectIntl","handleAccountClick","e","button","ctrlKey","metaKey","context","router","preventDefault","history","push","status","getIn","stopPropagation","handleOpenVideo","options","onOpenVideo","handleExpandedToggle","onToggleHidden","_measureHeight","handleModalLink","href","target","nodeName","parentNode","open","heightJustChanged","measureHeight","scheduleIdleTask","Math","ceil","scrollHeight","onHeightChange","componentDidUpdate","prevProps","prevState","get","outerStyle","boxSizing","intl","compact","pictureInPicture","media","reblogLink","reblogIcon","favouriteLink","size","attachment","src","alt","duration","poster","backgroundColor","foregroundColor","accentColor","preview","frameRate","blurhash","inline","sensitive","visible","showMedia","onToggleVisibility","onToggleMediaVisibility","standalone","onOpenMedia","length","card","visibilityIcon","icon","text","formatMessage","visibilityLink","Fragment","title","includes","Link","to","value","classNames","account","localDomain","domain","expanded","onExpandedToggle","rel","Date","hour12","year","month","day","hour","minute","ImmutablePureComponent","contextTypes","PropTypes","object","propTypes","ImmutablePropTypes","map","func","isRequired","bool","string","contains","inUse","available","deleteConfirm","deleteMessage","redraftConfirm","redraftMessage","replyConfirm","replyMessage","getStatus","makeGetStatus","getPictureInPicture","makeGetPictureInPicture","onReply","_","getState","trim","openModal","message","confirm","onConfirm","replyCompose","onModalReblog","privacy","reblog","onReblog","unreblog","shiftKey","boostModal","initBoostModal","onFavourite","unfavourite","favourite","onPin","unpin","pin","onEmbed","url","onError","error","showAlertForError","onDelete","withRedraft","deleteModal","deleteStatus","onDirect","directCompose","onMention","mentionCompose","index","onBlock","initBlockModal","onReport","initReport","onMute","initMuteModal","onMuteConversation","unmuteStatus","muteStatus","revealStatus","hideStatus","PublicTimeline","local","timeline","ImmutableMap","statusIds","ImmutableList","isLoading","hasMore","handleLoadMore","maxId","last","expandCommunityTimeline","expandPublicTimeline","masonry","handleHeightChange","forcePack","_connect","loader","isEmpty","undefined","loadMore","sizes","columns","gutter","mq","statusId","toArray","HashtagTimeline","hashtag","expandHashtagTimeline","defaultProps","getLocale","localeData","addLocaleData","store","configureStore","initialState","hydrateStore","TimelineContainer","locale","ReactDOM","createPortal","document","getElementById","settings","known_fediverse","Object","defineProperty","exports","default","_class","_temp2","_createClass","defineProperties","i","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_react","_react2","_interopRequireDefault","_propTypes2","_bricks2","_reactInfiniteScroller2","obj","__esModule","_classCallCheck","instance","TypeError","_possibleConstructorReturn","self","call","ReferenceError","MasonryInfiniteScroller","_Component","_ref","_temp","_this","_len","arguments","args","Array","_key","__proto__","getPrototypeOf","apply","concat","setContainerRef","component","masonryContainer","pack","forceUpdate","update","createNewInstance","_this$props","packed","children","position","container","resize","subClass","superClass","create","constructor","setPrototypeOf","_inherits","_props","keys","indexOf","hasOwnProperty","_objectWithoutProperties","createElement","Component","arrayOf","element","initialLoad","array","loaded","require","mountNode","JSON","parse","getAttribute","start","loadPolyfills","then","ready","catch","console","_extends","assign","source","knot","extended","events","on","name","handler","once","_once","off","splice","emit","cache","slice","forEach","persist","ticking","sizeIndex","sizeDetail","columnTarget","columnHeights","nodeTop","nodeLeft","nodeWidth","nodeHeight","nodes","nodesWidths","nodesHeights","reverse","nodeType","querySelector","selectors","all","new","filter","hasAttribute","setup","setSizeIndex","setSizeDetail","setColumns","run","setNodes","setNodesDimensions","setNodesStyles","setContainerStyles","runSeries","functions","input","fillArray","getSizeIndex","matchMedia","matches","clientWidth","clientHeight","min","top","left","transform","setAttribute","max","resizeFrame","requestAnimationFrame","resizeHandler","flag","action","module","InfiniteScroll","scrollListener","bind","eventListenerOptions","mousewheelListener","pageLoaded","pageStart","attachScrollListener","isReverse","parentElement","getParentElement","scrollComponent","scrollTop","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","testOptions","useCapture","isPassiveSupported","defaultLoader","scrollEl","useWindow","el","scrollParent","getScrollParent","deltaY","offset","doc","documentElement","body","pageYOffset","calculateOffset","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","_this2","renderProps","filterProps","childrenArray","unshift","number"],"mappings":"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","file":"js/about-49fcf521070781d238af.chunk.js","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Icon from 'brighteon/components/icon';\nimport { removePictureInPicture } from 'brighteon/actions/picture_in_picture';\nimport { connect } from 'react-redux';\nimport { debounce } from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\nexport default @connect()\nclass PictureInPicturePlaceholder extends React.PureComponent {\n\n static propTypes = {\n width: PropTypes.number,\n dispatch: PropTypes.func.isRequired,\n };\n\n state = {\n width: this.props.width,\n height: this.props.width && (this.props.width / (16 / 9)),\n };\n\n handleClick = () => {\n const { dispatch } = this.props;\n dispatch(removePictureInPicture());\n }\n\n setRef = c => {\n this.node = c;\n\n if (this.node) {\n this._setDimensions();\n }\n }\n\n _setDimensions() {\n const width = this.node.offsetWidth;\n const height = width / (16 / 9);\n\n this.setState({ width, height });\n }\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize, { passive: true });\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = debounce(() => {\n if (this.node) {\n this._setDimensions();\n }\n }, 250, {\n trailing: true,\n });\n\n render() {\n const { height } = this.state;\n\n return (\n
\n \n \n
\n );\n }\n\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport Avatar from '../../../components/avatar';\nimport DisplayName from '../../../components/display_name';\nimport StatusContent from '../../../components/status_content';\nimport MediaGallery from '../../../components/media_gallery';\nimport { Link } from 'react-router-dom';\nimport { injectIntl, defineMessages, FormattedDate } from 'react-intl';\nimport Card from './card';\nimport ImmutablePureComponent from 'react-immutable-pure-component';\nimport Video from '../../video';\nimport Audio from '../../audio';\nimport scheduleIdleTask from '../../ui/util/schedule_idle_task';\nimport classNames from 'classnames';\nimport Icon from 'brighteon/components/icon';\nimport AnimatedNumber from 'brighteon/components/animated_number';\nimport PictureInPicturePlaceholder from 'brighteon/components/picture_in_picture_placeholder';\n\nconst messages = defineMessages({\n public_short: { id: 'privacy.public.short', defaultMessage: 'Public' },\n unlisted_short: { id: 'privacy.unlisted.short', defaultMessage: 'Unlisted' },\n private_short: { id: 'privacy.private.short', defaultMessage: 'Followers-only' },\n direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },\n});\n\nexport default @injectIntl\nclass DetailedStatus extends ImmutablePureComponent {\n\n static contextTypes = {\n router: PropTypes.object,\n };\n\n static propTypes = {\n status: ImmutablePropTypes.map,\n onOpenMedia: PropTypes.func.isRequired,\n onOpenVideo: PropTypes.func.isRequired,\n onToggleHidden: PropTypes.func.isRequired,\n measureHeight: PropTypes.bool,\n onHeightChange: PropTypes.func,\n domain: PropTypes.string.isRequired,\n compact: PropTypes.bool,\n showMedia: PropTypes.bool,\n pictureInPicture: ImmutablePropTypes.contains({\n inUse: PropTypes.bool,\n available: PropTypes.bool,\n }),\n onToggleMediaVisibility: PropTypes.func,\n };\n\n state = {\n height: null,\n };\n\n handleAccountClick = (e) => {\n if (e.button === 0 && !(e.ctrlKey || e.metaKey) && this.context.router) {\n e.preventDefault();\n this.context.router.history.push(`/accounts/${this.props.status.getIn(['account', 'id'])}`);\n }\n\n e.stopPropagation();\n }\n\n handleOpenVideo = (options) => {\n this.props.onOpenVideo(this.props.status.getIn(['media_attachments', 0]), options);\n }\n\n handleExpandedToggle = () => {\n this.props.onToggleHidden(this.props.status);\n }\n\n _measureHeight(heightJustChanged) {\n if (this.props.measureHeight && this.node) {\n scheduleIdleTask(() => this.node && this.setState({ height: Math.ceil(this.node.scrollHeight) + 1 }));\n\n if (this.props.onHeightChange && heightJustChanged) {\n this.props.onHeightChange();\n }\n }\n }\n\n setRef = c => {\n this.node = c;\n this._measureHeight();\n }\n\n componentDidUpdate(prevProps, prevState) {\n this._measureHeight(prevState.height !== this.state.height);\n }\n\n handleModalLink = e => {\n e.preventDefault();\n\n let href;\n\n if (e.target.nodeName !== 'A') {\n href = e.target.parentNode.href;\n } else {\n href = e.target.href;\n }\n\n window.open(href, 'brighteon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes');\n }\n\n render() {\n const status = (this.props.status && this.props.status.get('reblog')) ? this.props.status.get('reblog') : this.props.status;\n const outerStyle = { boxSizing: 'border-box' };\n const { intl, compact, pictureInPicture } = this.props;\n\n if (!status) {\n return null;\n }\n\n let media = '';\n let reblogLink = '';\n let reblogIcon = 'retweet';\n let favouriteLink = '';\n\n if (this.props.measureHeight) {\n outerStyle.height = `${this.state.height}px`;\n }\n\n if (pictureInPicture.get('inUse')) {\n media = ;\n } else if (status.get('media_attachments').size > 0) {\n if (status.getIn(['media_attachments', 0, 'type']) === 'audio') {\n const attachment = status.getIn(['media_attachments', 0]);\n\n media = (\n \n );\n } else if (status.getIn(['media_attachments', 0, 'type']) === 'video') {\n const attachment = status.getIn(['media_attachments', 0]);\n\n media = (\n \n );\n } else {\n media = (\n \n );\n }\n } else if (status.get('spoiler_text').length === 0) {\n media = ;\n }\n\n const visibilityIconInfo = {\n 'public': { icon: 'globe', text: intl.formatMessage(messages.public_short) },\n 'unlisted': { icon: 'unlock', text: intl.formatMessage(messages.unlisted_short) },\n 'private': { icon: 'lock', text: intl.formatMessage(messages.private_short) },\n 'direct': { icon: 'envelope', text: intl.formatMessage(messages.direct_short) },\n };\n\n const visibilityIcon = visibilityIconInfo[status.get('visibility')];\n const visibilityLink = · ;\n\n if (['private', 'direct'].includes(status.get('visibility'))) {\n reblogLink = '';\n } else if (this.context.router) {\n reblogLink = (\n \n · \n \n \n \n \n \n \n \n );\n } else {\n reblogLink = (\n \n · \n \n \n \n \n \n \n \n );\n }\n\n if (this.context.router) {\n favouriteLink = (\n \n \n \n \n \n \n );\n } else {\n favouriteLink = (\n \n \n \n \n \n \n );\n }\n\n return (\n
\n
\n \n
\n \n
\n\n \n\n {media}\n\n
\n \n \n {visibilityLink}{reblogLink} · {favouriteLink}\n
\n
\n
\n );\n }\n\n}\n","import { connect } from 'react-redux';\nimport DetailedStatus from '../components/detailed_status';\nimport { makeGetStatus, makeGetPictureInPicture } from '../../../selectors';\nimport {\n replyCompose,\n mentionCompose,\n directCompose,\n} from '../../../actions/compose';\nimport {\n reblog,\n favourite,\n unreblog,\n unfavourite,\n pin,\n unpin,\n} from '../../../actions/interactions';\nimport {\n muteStatus,\n unmuteStatus,\n deleteStatus,\n hideStatus,\n revealStatus,\n} from '../../../actions/statuses';\nimport { initMuteModal } from '../../../actions/mutes';\nimport { initBlockModal } from '../../../actions/blocks';\nimport { initBoostModal } from '../../../actions/boosts';\nimport { initReport } from '../../../actions/reports';\nimport { openModal } from '../../../actions/modal';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { boostModal, deleteModal } from '../../../initial_state';\nimport { showAlertForError } from '../../../actions/alerts';\n\nconst messages = defineMessages({\n deleteConfirm: { id: 'confirmations.delete.confirm', defaultMessage: 'Delete' },\n deleteMessage: { id: 'confirmations.delete.message', defaultMessage: 'Are you sure you want to delete this status?' },\n redraftConfirm: { id: 'confirmations.redraft.confirm', defaultMessage: 'Delete & redraft' },\n redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },\n replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },\n replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },\n});\n\nconst makeMapStateToProps = () => {\n const getStatus = makeGetStatus();\n const getPictureInPicture = makeGetPictureInPicture();\n\n const mapStateToProps = (state, props) => ({\n status: getStatus(state, props),\n domain: state.getIn(['meta', 'domain']),\n pictureInPicture: getPictureInPicture(state, props),\n });\n\n return mapStateToProps;\n};\n\nconst mapDispatchToProps = (dispatch, { intl }) => ({\n\n onReply (status, router) {\n dispatch((_, getState) => {\n let state = getState();\n if (state.getIn(['compose', 'text']).trim().length !== 0) {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(messages.replyMessage),\n confirm: intl.formatMessage(messages.replyConfirm),\n onConfirm: () => dispatch(replyCompose(status, router)),\n }));\n } else {\n dispatch(replyCompose(status, router));\n }\n });\n },\n\n onModalReblog (status, privacy) {\n dispatch(reblog(status, privacy));\n },\n\n onReblog (status, e) {\n if (status.get('reblogged')) {\n dispatch(unreblog(status));\n } else {\n if (e.shiftKey || !boostModal) {\n this.onModalReblog(status);\n } else {\n dispatch(initBoostModal({ status, onReblog: this.onModalReblog }));\n }\n }\n },\n\n onFavourite (status) {\n if (status.get('favourited')) {\n dispatch(unfavourite(status));\n } else {\n dispatch(favourite(status));\n }\n },\n\n onPin (status) {\n if (status.get('pinned')) {\n dispatch(unpin(status));\n } else {\n dispatch(pin(status));\n }\n },\n\n onEmbed (status) {\n dispatch(openModal('EMBED', {\n url: status.get('url'),\n onError: error => dispatch(showAlertForError(error)),\n }));\n },\n\n onDelete (status, withRedraft = false) {\n if (!deleteModal) {\n dispatch(deleteStatus(status.get('id'), withRedraft));\n } else {\n dispatch(openModal('CONFIRM', {\n message: intl.formatMessage(withRedraft ? messages.redraftMessage : messages.deleteMessage),\n confirm: intl.formatMessage(withRedraft ? messages.redraftConfirm : messages.deleteConfirm),\n onConfirm: () => dispatch(deleteStatus(status.get('id'), withRedraft)),\n }));\n }\n },\n\n onDirect (account, router) {\n dispatch(directCompose(account, router));\n },\n\n onMention (account, router) {\n dispatch(mentionCompose(account, router));\n },\n\n onOpenMedia (media, index) {\n dispatch(openModal('MEDIA', { media, index }));\n },\n\n onOpenVideo (media, options) {\n dispatch(openModal('VIDEO', { media, options }));\n },\n\n onBlock (status) {\n const account = status.get('account');\n dispatch(initBlockModal(account));\n },\n\n onReport (status) {\n dispatch(initReport(status.get('account'), status));\n },\n\n onMute (account) {\n dispatch(initMuteModal(account));\n },\n\n onMuteConversation (status) {\n if (status.get('muted')) {\n dispatch(unmuteStatus(status.get('id')));\n } else {\n dispatch(muteStatus(status.get('id')));\n }\n },\n\n onToggleHidden (status) {\n if (status.get('hidden')) {\n dispatch(revealStatus(status.get('id')));\n } else {\n dispatch(hideStatus(status.get('id')));\n }\n },\n\n});\n\nexport default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(DetailedStatus));\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { expandPublicTimeline, expandCommunityTimeline } from 'brighteon/actions/timelines';\nimport Masonry from 'react-masonry-infinite';\nimport { List as ImmutableList, Map as ImmutableMap } from 'immutable';\nimport DetailedStatusContainer from 'brighteon/features/status/containers/detailed_status_container';\nimport { debounce } from 'lodash';\nimport LoadingIndicator from 'brighteon/components/loading_indicator';\n\nconst mapStateToProps = (state, { local }) => {\n const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap());\n\n return {\n statusIds: timeline.get('items', ImmutableList()),\n isLoading: timeline.get('isLoading', false),\n hasMore: timeline.get('hasMore', false),\n };\n};\n\nexport default @connect(mapStateToProps)\nclass PublicTimeline extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n statusIds: ImmutablePropTypes.list.isRequired,\n isLoading: PropTypes.bool.isRequired,\n hasMore: PropTypes.bool.isRequired,\n local: PropTypes.bool,\n };\n\n componentDidMount() {\n this._connect();\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.local !== this.props.local) {\n this._connect();\n }\n }\n\n _connect() {\n const { dispatch, local } = this.props;\n\n dispatch(local ? expandCommunityTimeline() : expandPublicTimeline());\n }\n\n handleLoadMore = () => {\n const { dispatch, statusIds, local } = this.props;\n const maxId = statusIds.last();\n\n if (maxId) {\n dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId }));\n }\n }\n\n setRef = c => {\n this.masonry = c;\n }\n\n handleHeightChange = debounce(() => {\n if (!this.masonry) {\n return;\n }\n\n this.masonry.forcePack();\n }, 50)\n\n render() {\n const { statusIds, hasMore, isLoading } = this.props;\n\n const sizes = [\n { columns: 1, gutter: 0 },\n { mq: '415px', columns: 1, gutter: 10 },\n { mq: '640px', columns: 2, gutter: 10 },\n { mq: '960px', columns: 3, gutter: 10 },\n { mq: '1255px', columns: 3, gutter: 10 },\n ];\n\n const loader = (isLoading && statusIds.isEmpty()) ? : undefined;\n\n return (\n \n {statusIds.map(statusId => (\n
\n \n
\n )).toArray()}\n
\n );\n }\n\n}\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport ImmutablePropTypes from 'react-immutable-proptypes';\nimport { expandHashtagTimeline } from 'brighteon/actions/timelines';\nimport Masonry from 'react-masonry-infinite';\nimport { List as ImmutableList } from 'immutable';\nimport DetailedStatusContainer from 'brighteon/features/status/containers/detailed_status_container';\nimport { debounce } from 'lodash';\nimport LoadingIndicator from 'brighteon/components/loading_indicator';\n\nconst mapStateToProps = (state, { hashtag }) => ({\n statusIds: state.getIn(['timelines', `hashtag:${hashtag}`, 'items'], ImmutableList()),\n isLoading: state.getIn(['timelines', `hashtag:${hashtag}`, 'isLoading'], false),\n hasMore: state.getIn(['timelines', `hashtag:${hashtag}`, 'hasMore'], false),\n});\n\nexport default @connect(mapStateToProps)\nclass HashtagTimeline extends React.PureComponent {\n\n static propTypes = {\n dispatch: PropTypes.func.isRequired,\n statusIds: ImmutablePropTypes.list.isRequired,\n isLoading: PropTypes.bool.isRequired,\n hasMore: PropTypes.bool.isRequired,\n hashtag: PropTypes.string.isRequired,\n local: PropTypes.bool.isRequired,\n };\n\n static defaultProps = {\n local: false,\n };\n\n componentDidMount() {\n const { dispatch, hashtag, local } = this.props;\n\n dispatch(expandHashtagTimeline(hashtag, { local }));\n }\n\n handleLoadMore = () => {\n const { dispatch, hashtag, local, statusIds } = this.props;\n const maxId = statusIds.last();\n\n if (maxId) {\n dispatch(expandHashtagTimeline(hashtag, { maxId, local }));\n }\n }\n\n setRef = c => {\n this.masonry = c;\n }\n\n handleHeightChange = debounce(() => {\n if (!this.masonry) {\n return;\n }\n\n this.masonry.forcePack();\n }, 50)\n\n render() {\n const { statusIds, hasMore, isLoading } = this.props;\n\n const sizes = [\n { columns: 1, gutter: 0 },\n { mq: '415px', columns: 1, gutter: 10 },\n { mq: '640px', columns: 2, gutter: 10 },\n { mq: '960px', columns: 3, gutter: 10 },\n { mq: '1255px', columns: 3, gutter: 10 },\n ];\n\n const loader = (isLoading && statusIds.isEmpty()) ? : undefined;\n\n return (\n \n {statusIds.map(statusId => (\n
\n \n
\n )).toArray()}\n
\n );\n }\n\n}\n","import React, { Fragment } from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport configureStore from '../store/configureStore';\nimport { hydrateStore } from '../actions/store';\nimport { IntlProvider, addLocaleData } from 'react-intl';\nimport { getLocale } from '../locales';\nimport PublicTimeline from '../features/standalone/public_timeline';\nimport HashtagTimeline from '../features/standalone/hashtag_timeline';\nimport ModalContainer from '../features/ui/containers/modal_container';\nimport initialState from '../initial_state';\n\nconst { localeData, messages } = getLocale();\naddLocaleData(localeData);\n\nconst store = configureStore();\n\nif (initialState) {\n store.dispatch(hydrateStore(initialState));\n}\n\nexport default class TimelineContainer extends React.PureComponent {\n\n static propTypes = {\n locale: PropTypes.string.isRequired,\n hashtag: PropTypes.string,\n local: PropTypes.bool,\n };\n\n static defaultProps = {\n local: !initialState.settings.known_fediverse,\n };\n\n render () {\n const { locale, hashtag, local } = this.props;\n\n let timeline;\n\n if (hashtag) {\n timeline = ;\n } else {\n timeline = ;\n }\n\n return (\n \n \n \n {timeline}\n\n {ReactDOM.createPortal(\n ,\n document.getElementById('modal-container'),\n )}\n \n \n \n );\n }\n\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = undefined;\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _class, _temp2;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _bricks = require('bricks.js');\n\nvar _bricks2 = _interopRequireDefault(_bricks);\n\nvar _reactInfiniteScroller = require('react-infinite-scroller');\n\nvar _reactInfiniteScroller2 = _interopRequireDefault(_reactInfiniteScroller);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MasonryInfiniteScroller = (_temp2 = _class = function (_Component) {\n _inherits(MasonryInfiniteScroller, _Component);\n\n function MasonryInfiniteScroller() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, MasonryInfiniteScroller);\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, (_ref = MasonryInfiniteScroller.__proto__ || Object.getPrototypeOf(MasonryInfiniteScroller)).call.apply(_ref, [this].concat(args))), _this), _this.setContainerRef = function (component) {\n _this.masonryContainer = component;\n }, _this.forcePack = function () {\n if (_this.masonryContainer) {\n _this.state.instance.pack();\n }\n }, _this.forceUpdate = function () {\n if (_this.masonryContainer) {\n _this.state.instance.update();\n }\n }, _this.createNewInstance = function () {\n var _this$props = _this.props,\n packed = _this$props.packed,\n sizes = _this$props.sizes,\n children = _this$props.children,\n position = _this$props.position;\n var instance = (0, _bricks2.default)({\n container: _this.masonryContainer,\n packed: packed,\n sizes: sizes,\n position: position\n });\n instance.resize(true);\n\n if (children.length > 0) {\n instance.pack();\n }\n\n _this.setState(function () {\n return {\n instance: instance\n };\n });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(MasonryInfiniteScroller, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.createNewInstance();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var children = this.props.children;\n var instance = this.state.instance;\n\n if (prevProps.children.length === 0 && children.length === 0) {\n return;\n }\n\n if (prevProps.children.length === 0 && children.length > 0) {\n return instance.pack();\n }\n\n if (prevProps.children.length !== children.length) {\n if (this.props.pack) {\n return instance.pack();\n } else {\n return instance.update();\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.state) {\n this.state.instance.resize(false);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n style = _props.style,\n pack = _props.pack,\n packed = _props.packed,\n position = _props.position,\n sizes = _props.sizes,\n props = _objectWithoutProperties(_props, ['children', 'className', 'style', 'pack', 'packed', 'position', 'sizes']);\n\n return _react2.default.createElement(_reactInfiniteScroller2.default, props, _react2.default.createElement('div', {\n ref: this.setContainerRef,\n className: className,\n style: style\n }, children));\n }\n }]);\n\n return MasonryInfiniteScroller;\n}(_react.Component), _class.propTypes = {\n children: _propTypes2.default.arrayOf(_propTypes2.default.element).isRequired,\n className: _propTypes2.default.string,\n initialLoad: _propTypes2.default.bool,\n pack: _propTypes2.default.bool,\n packed: _propTypes2.default.string,\n position: _propTypes2.default.bool,\n sizes: _propTypes2.default.array,\n style: _propTypes2.default.object\n}, _class.defaultProps = {\n className: '',\n initialLoad: true,\n pack: false,\n packed: 'data-packed',\n position: true,\n sizes: [{\n columns: 1,\n gutter: 20\n }, {\n mq: '768px',\n columns: 2,\n gutter: 20\n }, {\n mq: '1024px',\n columns: 3,\n gutter: 20\n }],\n style: {}\n}, _temp2);\nexports.default = MasonryInfiniteScroller;","import './public-path';\nimport loadPolyfills from '../brighteon/load_polyfills';\nimport { start } from '../brighteon/common';\n\nstart();\n\nfunction loaded() {\n const TimelineContainer = require('../brighteon/containers/timeline_container').default;\n const React = require('react');\n const ReactDOM = require('react-dom');\n const mountNode = document.getElementById('brighteon-timeline');\n\n if (mountNode !== null) {\n const props = JSON.parse(mountNode.getAttribute('data-props'));\n ReactDOM.render(, mountNode);\n }\n}\n\nfunction main() {\n const ready = require('../brighteon/ready').default;\n ready(loaded);\n}\n\nloadPolyfills().then(main).catch(error => {\n console.error(error);\n});\n","var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar knot = function knot() {\n var extended = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var events = Object.create(null);\n\n function on(name, handler) {\n events[name] = events[name] || [];\n events[name].push(handler);\n return this;\n }\n\n function once(name, handler) {\n handler._once = true;\n on(name, handler);\n return this;\n }\n\n function off(name) {\n var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n handler ? events[name].splice(events[name].indexOf(handler), 1) : delete events[name];\n return this;\n }\n\n function emit(name) {\n var _this = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n } // cache the events, to avoid consequences of mutation\n\n\n var cache = events[name] && events[name].slice(); // only fire handlers if they exist\n\n cache && cache.forEach(function (handler) {\n // remove handlers added with 'once'\n handler._once && off(name, handler); // set 'this' context, pass args to handlers\n\n handler.apply(_this, args);\n });\n return this;\n }\n\n return _extends({}, extended, {\n on: on,\n once: once,\n off: off,\n emit: emit\n });\n};\n\nvar bricks = function bricks() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // privates\n\n var persist = void 0; // packing new elements, or all elements?\n\n var ticking = void 0; // for debounced resize\n\n var sizeIndex = void 0;\n var sizeDetail = void 0;\n var columnTarget = void 0;\n var columnHeights = void 0;\n var nodeTop = void 0;\n var nodeLeft = void 0;\n var nodeWidth = void 0;\n var nodeHeight = void 0;\n var nodes = void 0;\n var nodesWidths = void 0;\n var nodesHeights = void 0; // resolve options\n\n var packed = options.packed.indexOf('data-') === 0 ? options.packed : 'data-' + options.packed;\n var sizes = options.sizes.slice().reverse();\n var position = options.position !== false;\n var container = options.container.nodeType ? options.container : document.querySelector(options.container);\n var selectors = {\n all: function all() {\n return toArray(container.children);\n },\n new: function _new() {\n return toArray(container.children).filter(function (node) {\n return !node.hasAttribute('' + packed);\n });\n }\n }; // series\n\n var setup = [setSizeIndex, setSizeDetail, setColumns];\n var run = [setNodes, setNodesDimensions, setNodesStyles, setContainerStyles]; // instance\n\n var instance = knot({\n pack: pack,\n update: update,\n resize: resize\n });\n return instance; // general helpers\n\n function runSeries(functions) {\n functions.forEach(function (func) {\n return func();\n });\n } // array helpers\n\n\n function toArray(input) {\n var scope = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n return Array.prototype.slice.call(input);\n }\n\n function fillArray(length) {\n return Array.apply(null, Array(length)).map(function () {\n return 0;\n });\n } // size helpers\n\n\n function getSizeIndex() {\n // find index of widest matching media query\n return sizes.map(function (size) {\n return size.mq && window.matchMedia('(min-width: ' + size.mq + ')').matches;\n }).indexOf(true);\n }\n\n function setSizeIndex() {\n sizeIndex = getSizeIndex();\n }\n\n function setSizeDetail() {\n // if no media queries matched, use the base case\n sizeDetail = sizeIndex === -1 ? sizes[sizes.length - 1] : sizes[sizeIndex];\n } // column helpers\n\n\n function setColumns() {\n columnHeights = fillArray(sizeDetail.columns);\n } // node helpers\n\n\n function setNodes() {\n nodes = selectors[persist ? 'new' : 'all']();\n }\n\n function setNodesDimensions() {\n // exit if empty container\n if (nodes.length === 0) {\n return;\n }\n\n nodesWidths = nodes.map(function (element) {\n return element.clientWidth;\n });\n nodesHeights = nodes.map(function (element) {\n return element.clientHeight;\n });\n }\n\n function setNodesStyles() {\n nodes.forEach(function (element, index) {\n columnTarget = columnHeights.indexOf(Math.min.apply(Math, columnHeights));\n element.style.position = 'absolute';\n nodeTop = columnHeights[columnTarget] + 'px';\n nodeLeft = columnTarget * nodesWidths[index] + columnTarget * sizeDetail.gutter + 'px'; // support positioned elements (default) or transformed elements\n\n if (position) {\n element.style.top = nodeTop;\n element.style.left = nodeLeft;\n } else {\n element.style.transform = 'translate3d(' + nodeLeft + ', ' + nodeTop + ', 0)';\n }\n\n element.setAttribute(packed, ''); // ignore nodes with no width and/or height\n\n nodeWidth = nodesWidths[index];\n nodeHeight = nodesHeights[index];\n\n if (nodeWidth && nodeHeight) {\n columnHeights[columnTarget] += nodeHeight + sizeDetail.gutter;\n }\n });\n } // container helpers\n\n\n function setContainerStyles() {\n container.style.position = 'relative';\n container.style.width = sizeDetail.columns * nodeWidth + (sizeDetail.columns - 1) * sizeDetail.gutter + 'px';\n container.style.height = Math.max.apply(Math, columnHeights) - sizeDetail.gutter + 'px';\n } // resize helpers\n\n\n function resizeFrame() {\n if (!ticking) {\n window.requestAnimationFrame(resizeHandler);\n ticking = true;\n }\n }\n\n function resizeHandler() {\n if (sizeIndex !== getSizeIndex()) {\n pack();\n instance.emit('resize', sizeDetail);\n }\n\n ticking = false;\n } // API\n\n\n function pack() {\n persist = false;\n runSeries(setup.concat(run));\n return instance.emit('pack');\n }\n\n function update() {\n persist = true;\n runSeries(run);\n return instance.emit('update');\n }\n\n function resize() {\n var flag = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var action = flag ? 'addEventListener' : 'removeEventListener';\n window[action]('resize', resizeFrame);\n return instance;\n }\n};\n\nexport default bricks;","module.exports = require('./dist/InfiniteScroll');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n } else {\n options = {\n passive: false\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];"],"sourceRoot":""}