![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /opt/mattermost/client/ |
Upload File : |
{"version":3,"file":"452.36403c6be03b8aa72071.js","mappings":"wTAQe,SAASA,EAAaC,GACjC,MAAM,cAACC,IAAiBC,EAAAA,EAAAA,WAExB,OACIC,IAAAA,cAAA,OAAUH,EACNG,IAAAA,cAAA,OACIC,MAAM,KACNC,OAAO,KACPC,QAAQ,YACRC,KAAK,OACLC,KAAK,MACL,aAAYP,EAAc,CAACQ,GAAI,8BAA+BC,eAAgB,0BAE9EP,IAAAA,cAAA,QACIQ,EAAE,i/CACFJ,KAAK,8CACLK,YAAY,UAKhC,C,4bCCe,MAAMC,UAA4BV,IAAAA,cAE7CW,WAAAA,CAAYd,GACRe,MAAMf,GAAOgB,EAAA,wBA2JS,KACtB,MAAMC,EAAoBC,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,qBAC5DC,EAAAA,EAAAA,IAAW,KAAM,gBAAFC,OAAkBN,EAAkBR,IAAK,IAC3DO,EAAA,yBAqB0B,KACvB,MAAMC,EAAoBC,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,oBACtDG,EAAcN,KAAKC,MAAMC,YAAYK,OAC3C,GAAoB,IAAhBD,GAAqBP,EAAkBS,WACvCR,KAAKS,kBACLC,OAAOC,KAAKZ,EAAkBa,YAAa,eACxC,GAAIZ,KAAKC,MAAME,mBAAqB,EAAIG,EAAa,CACxD,MAAMO,EAAiBb,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,mBAAqB,GAE9EH,KAAKlB,MAAMgC,QAAQC,sBAAsB,CAACF,EAAetB,KAEzDS,KAAKgB,SAAS,CACVb,mBAAoBH,KAAKC,MAAME,mBAAqB,GAE5D,KACHL,EAAA,6BAE8B,KACW,IAAlCE,KAAKC,MAAME,oBACXH,KAAKgB,SAAS,CACVb,mBAAoBH,KAAKC,MAAME,mBAAqB,GAE5D,IACHL,EAAA,uBAEgB,KACbE,KAAKiB,eAAiBP,OAAOQ,YAAW,KACpClB,KAAKgB,SAAS,CACVd,YAAa,GACbC,mBAAoB,GACtB,GACH,IAAK,IAjNRH,KAAKC,MAAQ,CACTE,mBAAoB,EACpBD,YAAa,IAEjBF,KAAKiB,oBAAiBE,CAC1B,CAEOC,iBAAAA,GACHpB,KAAKqB,kBACT,CAEOC,kBAAAA,CAAmBC,GACtB,MAAMC,EAAqBxB,KAAKlB,MAAM2C,aAChCC,EAAkBH,EAAUE,aAClC,GAAID,EAAmBG,YAAcD,EAAgBC,WAAaD,EAAgBE,cAAe,CAC7F,MAAMC,EAAcC,KAAKC,MACnBC,EAA4B,IAAIF,KAAKJ,EAAgBE,eAAeK,UACtD,IAAIH,KAAKD,GAAaI,YACtBD,GAA6BH,EAAcH,EAAgBE,eAC3E5B,KAAKqB,kBAEb,CACKE,EAAUW,eACXlC,KAAKqB,kBAEb,CAEOc,oBAAAA,GACHC,aAAapC,KAAKiB,eACtB,CAEA,sBAAcI,GACV,MAAM,QAACgB,EAAO,cAAEH,GAAiBlC,KAAKlB,MACtC,IAAKoD,EACD,OAEJ,IAAII,EAAS,MACTC,EAAgBF,GAChBG,EAAAA,EAAAA,QACAF,EAAS,UACTC,GAAgBE,EAAAA,EAAAA,OAGpB,MAAM,KAACC,SAAc1C,KAAKlB,MAAMgC,QAAQ6B,oBAAoBT,EAAeI,EAAQC,GACnF,GAAIG,IACA1C,KAAKgB,SAAS,CACVd,YAAawC,IAEbA,EAAKnC,QAAQ,CACb,MAAMR,EAAoBC,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,oBAC5DH,KAAKlB,MAAMgC,QAAQC,sBAAsB,CAAChB,EAAkBR,IAChE,CAER,CAEQqD,iBAAAA,CAAkB7C,GACtB,MAAMO,EAAcN,KAAKC,MAAMC,YAAYK,OAE3C,OAAoB,IAAhBD,GAAqBP,EAAkBS,WAEnCvB,IAAAA,cAAA,YACKc,EAAkBS,YAGpBF,IAAgBN,KAAKC,MAAME,mBAAqB,EAEnDlB,IAAAA,cAAC4D,EAAAA,iBAAgB,CACbtD,GAAI,eACJC,eAAe,SAKvBP,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC4D,EAAAA,iBAAgB,CACbtD,GAAI,eACJC,eAAe,SAEnBP,IAAAA,cAAC6D,EAAAA,EAAQ,MAGrB,CAEQC,gBAAAA,GACJ,OAAsC,IAAlC/C,KAAKC,MAAME,mBAEPlB,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAAC+D,EAAAA,EAAY,MACb/D,IAAAA,cAAC4D,EAAAA,iBAAgB,CACbtD,GAAI,mBACJC,eAAe,cAKxB,IACX,CAEQyD,sBAAAA,GACJ,MAAM3C,EAAcN,KAAKC,MAAMC,YAAYK,OAC3C,GAAoB,IAAhBD,EACA,OAAO,KAGX,MAAM4C,EAAa,GACnB,IAAK,IAAIC,EAAI,EAAGA,EAAI7C,EAAa6C,IAAK,CAClC,IAAIC,EAAY,SACZD,IAAMnD,KAAKC,MAAME,qBACjBiD,GAAa,WAGjBF,EAAWG,KACPpE,IAAAA,cAAA,QACIM,GAAI,sBAAwB4D,EAC5BG,IAAK,SAAWH,EAChBC,UAAWA,EACX,cAAaD,IAGzB,CACA,OACIlE,IAAAA,cAAA,QAAMmE,UAAU,qBACXF,EAGb,CAEQK,mBAAAA,GACJ,OAAIvD,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,oBAAoBqD,aAElDvE,IAAAA,cAAAA,IAAAA,SAAA,KACIA,IAAAA,cAACJ,EAAY,MACbI,IAAAA,cAAC4D,EAAAA,iBAAgB,CACbtD,GAAI,qCACJC,eAAe,4BAKxB,IACX,CAEQiE,WAAAA,CAAYC,GAChB,OAAIA,EAEIzE,IAAAA,cAAA,OACImE,UAAU,sBACVO,IAAKD,IAIV,IACX,CAOQE,kBAAAA,CAAmB7D,GAGvB,OAAoB,IAFAC,KAAKC,MAAMC,YAAYK,QAElBR,EAAkBS,WAEnCvB,IAAAA,cAAC4E,EAAAA,EAAY,CACTtE,GAAG,eACH6D,UAAU,oCACVU,SAAS,wBACTC,KAAMhE,EAAkBa,aAAe,GACvCoD,QAAShE,KAAKS,iBAEbV,EAAkBS,YAIxB,IACX,CAoCAyD,MAAAA,GACI,IAAKjE,KAAKC,MAAMC,YAAYK,OACxB,OAAO,KAGX,MAAMR,EAAoBC,KAAKC,MAAMC,YAAYF,KAAKC,MAAME,oBACtD+D,EAAyD,IAAlClE,KAAKC,MAAME,wBAA2BgB,EAAYnB,KAAKkE,qBAC9EC,EAA2BnE,KAAKC,MAAME,qBAAuBH,KAAKC,MAAMC,YAAYK,OAAS,EAEnG,OACItB,IAAAA,cAACmF,EAAAA,GAAY,CACTC,eAAe,EACfC,SAAUtE,KAAKuE,eACfC,cAAexE,KAAKyE,iBACpBC,oBAAqB1E,KAAKyE,iBAC1BE,aAAcT,EACdU,gBACI3F,IAAAA,cAAA,YACKc,EAAkB8E,OAG3BjC,kBAAmB5C,KAAK4C,kBAAkB7C,GAC1CgD,iBAAkB/C,KAAK+C,mBACvBK,UAAU,iBACVe,yBAA0BA,EAC1BW,yBAAyB,GAEzB7F,IAAAA,cAAA,QAAMmE,UAAU,4BACZnE,IAAAA,cAAC8F,EAAAA,EAAQ,CACLC,QAASjF,EAAkBkF,eAGlCjF,KAAK4D,mBAAmB7D,GACzBd,IAAAA,cAAA,OAAKmE,UAAU,4BACVpD,KAAKyD,YAAY1D,EAAkB2D,QAExCzE,IAAAA,cAAA,OAAKmE,UAAU,wBACVpD,KAAKiD,yBACLjD,KAAKuD,uBAItB,ECvPJ,MAIA,GAJkB2B,EAAAA,EAAAA,UArBlB,SAAyBjF,GACrB,MACMoC,GADgC8C,EAAAA,EAAAA,IAAUlF,GACjBmF,SAAW,GACpC3D,GAAe4D,EAAAA,EAAAA,GAAgBpF,GAErC,MAAO,CACHiC,eAAeoD,EAAAA,EAAAA,IAAiBrF,GAChCoC,UACAZ,eAER,IAEA,SAA4B8D,GACxB,MAAO,CACHzE,SAAS0E,EAAAA,EAAAA,oBAAmB,CACxB7C,oBAAmB,KACnB5B,sBAAqBA,EAAAA,IACtBwE,GAEX,GAMA,CAAyB5F,E,6GClCzB,MAAMmD,EAAW2C,IAAkC,IAAjC,oBAACC,GAA2BD,EAC1C,MAAM,cAAC1G,IAAiBC,EAAAA,EAAAA,WAExB,OACIC,IAAAA,cAAA,KACImE,UAAWuC,IAAW,0BAA2BD,GACjDb,MAAO9F,EAAc,CACjBQ,GAAI,qBACJC,eAAgB,eAEtB,EAERsD,EAAA8C,UAAA,CAfEF,oBAAmBG,IAAAA,QAiBvB,QAAe5G,IAAAA,KAAW6D,E,8GCd1B,MAAME,EAAeyC,IAAkC,IAAjC,oBAACC,GAA2BD,EAC9C,MAAM,cAAC1G,IAAiBC,EAAAA,EAAAA,WAExB,OACIC,IAAAA,cAAA,KACImE,UAAWuC,IAAW,yBAA0BD,GAChDb,MAAO9F,EAAc,CAACQ,GAAI,yBAA0BC,eAAgB,mBACtE,EAERwD,EAAA4C,UAAA,CAZEF,oBAAmBG,IAAAA,QAcvB,QAAe5G,IAAAA,KAAW+D,E","sources":["webpack://mattermost-webapp/./src/components/widgets/icons/admin_eye_icon.tsx","webpack://mattermost-webapp/./src/components/product_notices_modal/product_notices_modal.tsx","webpack://mattermost-webapp/./src/components/product_notices_modal/index.tsx","webpack://mattermost-webapp/./src/components/widgets/icons/fa_next_icon.tsx","webpack://mattermost-webapp/./src/components/widgets/icons/fa_previous_icon.tsx"],"sourcesContent":["// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport React from 'react';\nimport {useIntl} from 'react-intl';\n\ntype Props = React.HTMLAttributes<HTMLSpanElement>;\n\nexport default function AdminEyeIcon(props: Props): JSX.Element {\n const {formatMessage} = useIntl();\n\n return (\n <span {...props}>\n <svg\n width='14'\n height='10'\n viewBox='0 0 14 10'\n fill='none'\n role='img'\n aria-label={formatMessage({id: 'generic_icons.adminOnlyIcon', defaultMessage: 'Admin View Only Icon'})}\n >\n <path\n d='M7 3.21005C7.3264 3.21005 7.624 3.29165 7.8928 3.45485C8.1712 3.61805 8.392 3.83885 8.5552 4.11725C8.7184 4.38605 8.8 4.68365 8.8 5.01005C8.8 5.33645 8.7184 5.63885 8.5552 5.91725C8.392 6.18605 8.1712 6.40205 7.8928 6.56525C7.624 6.72845 7.3264 6.81005 7 6.81005C6.6736 6.81005 6.3712 6.72845 6.0928 6.56525C5.824 6.40205 5.608 6.18605 5.4448 5.91725C5.2816 5.63885 5.2 5.33645 5.2 5.01005C5.2 4.68365 5.2816 4.38605 5.4448 4.11725C5.608 3.83885 5.824 3.61805 6.0928 3.45485C6.3712 3.29165 6.6736 3.21005 7 3.21005ZM7 0.502848C7.9792 0.502848 8.9152 0.694848 9.808 1.07885C10.672 1.46285 11.4304 1.99565 12.0832 2.67725C12.7456 3.35885 13.2496 4.13645 13.5952 5.01005C13.2496 5.88365 12.7456 6.66125 12.0832 7.34285C11.4304 8.02445 10.672 8.55245 9.808 8.92685C8.9152 9.31085 7.9792 9.50285 7 9.50285C6.0208 9.50285 5.0848 9.31085 4.192 8.92685C3.328 8.55245 2.5648 8.02445 1.9024 7.34285C1.2496 6.66125 0.7504 5.88365 0.4048 5.01005C0.7504 4.13645 1.2496 3.35885 1.9024 2.67725C2.5648 1.99565 3.328 1.46285 4.192 1.07885C5.0848 0.694848 6.0208 0.502848 7 0.502848ZM1.7152 5.01005C2.0416 5.67245 2.4736 6.25325 3.0112 6.75245C3.5488 7.25165 4.1584 7.63565 4.84 7.90445C5.5312 8.17325 6.2512 8.30765 7 8.30765C8.1328 8.30765 9.1744 8.01005 10.1248 7.41485C11.0752 6.81965 11.8 6.01805 12.2992 5.01005C11.8 4.00205 11.0752 3.20045 10.1248 2.60525C9.1744 2.01005 8.1328 1.71245 7 1.71245C6.2512 1.71245 5.5312 1.84685 4.84 2.11565C4.1584 2.38445 3.5488 2.76845 3.0112 3.26765C2.4736 3.76685 2.0416 4.34765 1.7152 5.01005Z'\n fill='rgba(var(--center-channel-color-rgb), 0.75)'\n fillOpacity='0.48'\n />\n </svg>\n </span>\n );\n}\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport React from 'react';\nimport {FormattedMessage} from 'react-intl';\n\nimport {GenericModal} from '@mattermost/components';\nimport type {ProductNotices, ProductNotice} from '@mattermost/types/product_notices';\n\nimport {trackEvent} from 'actions/telemetry_actions.jsx';\n\nimport ExternalLink from 'components/external_link';\nimport Markdown from 'components/markdown';\nimport AdminEyeIcon from 'components/widgets/icons/admin_eye_icon';\nimport NextIcon from 'components/widgets/icons/fa_next_icon';\nimport PreviousIcon from 'components/widgets/icons/fa_previous_icon';\n\nimport {isDesktopApp, getDesktopVersion} from 'utils/user_agent';\n\nimport type {PropsFromRedux} from './index';\n\nimport './product_notices_modal.scss';\n\ntype Props = PropsFromRedux;\n\ntype State = {\n presentNoticeIndex: number;\n noticesData: ProductNotices;\n}\n\nexport default class ProductNoticesModal extends React.PureComponent<Props, State> {\n clearDataTimer?: number;\n constructor(props: Props) {\n super(props);\n this.state = {\n presentNoticeIndex: 0,\n noticesData: [],\n };\n this.clearDataTimer = undefined;\n }\n\n public componentDidMount() {\n this.fetchNoticesData();\n }\n\n public componentDidUpdate(prevProps: Props) {\n const presentSocketState = this.props.socketStatus;\n const prevSocketState = prevProps.socketStatus;\n if (presentSocketState.connected && !prevSocketState.connected && prevSocketState.lastConnectAt) {\n const presentTime = Date.now();\n const previousSocketConnectDate = new Date(prevSocketState.lastConnectAt).getDate();\n const presentDate = new Date(presentTime).getDate();\n if (presentDate !== previousSocketConnectDate && presentTime > prevSocketState.lastConnectAt) {\n this.fetchNoticesData();\n }\n }\n if (!prevProps.currentTeamId) {\n this.fetchNoticesData();\n }\n }\n\n public componentWillUnmount() {\n clearTimeout(this.clearDataTimer);\n }\n\n private async fetchNoticesData() {\n const {version, currentTeamId} = this.props;\n if (!currentTeamId) {\n return;\n }\n let client = 'web';\n let clientVersion = version;\n if (isDesktopApp()) {\n client = 'desktop';\n clientVersion = getDesktopVersion();\n }\n\n const {data} = await this.props.actions.getInProductNotices(currentTeamId, client, clientVersion);\n if (data) {\n this.setState({\n noticesData: data,\n });\n if (data.length) {\n const presentNoticeInfo = this.state.noticesData[this.state.presentNoticeIndex];\n this.props.actions.updateNoticesAsViewed([presentNoticeInfo.id]);\n }\n }\n }\n\n private confirmButtonText(presentNoticeInfo: ProductNotice) {\n const noOfNotices = this.state.noticesData.length;\n\n if (noOfNotices === 1 && presentNoticeInfo.actionText) {\n return (\n <span>\n {presentNoticeInfo.actionText}\n </span>\n );\n } else if (noOfNotices === this.state.presentNoticeIndex + 1) {\n return (\n <FormattedMessage\n id={'generic.done'}\n defaultMessage='Done'\n />\n );\n }\n return (\n <>\n <FormattedMessage\n id={'generic.next'}\n defaultMessage='Next'\n />\n <NextIcon/>\n </>\n );\n }\n\n private cancelButtonText() {\n if (this.state.presentNoticeIndex !== 0) {\n return (\n <>\n <PreviousIcon/>\n <FormattedMessage\n id={'generic.previous'}\n defaultMessage='Previous'\n />\n </>\n );\n }\n return null;\n }\n\n private renderCicrleIndicators() {\n const noOfNotices = this.state.noticesData.length;\n if (noOfNotices === 1) {\n return null;\n }\n\n const indicators = [];\n for (let i = 0; i < noOfNotices; i++) {\n let className = 'circle';\n if (i === this.state.presentNoticeIndex) {\n className += ' active';\n }\n\n indicators.push(\n <span\n id={'tutorialIntroCircle' + i}\n key={'circle' + i}\n className={className}\n data-screen={i}\n />,\n );\n }\n return (\n <span className='tutorial__circles'>\n {indicators}\n </span>\n );\n }\n\n private renderAdminOnlyText() {\n if (this.state.noticesData[this.state.presentNoticeIndex].sysAdminOnly) {\n return (\n <>\n <AdminEyeIcon/>\n <FormattedMessage\n id={'inProduct_notices.adminOnlyMessage'}\n defaultMessage='Visible to Admins only'\n />\n </>\n );\n }\n return null;\n }\n\n private renderImage(image: string | undefined) {\n if (image) {\n return (\n <img\n className='productNotices__img'\n src={image}\n />\n );\n }\n return null;\n }\n\n private trackClickEvent = () => {\n const presentNoticeInfo = this.state.noticesData[this.state.presentNoticeIndex];\n trackEvent('ui', `notice_click_${presentNoticeInfo.id}`);\n };\n\n private renderActionButton(presentNoticeInfo: ProductNotice) {\n const noOfNotices = this.state.noticesData.length;\n\n if (noOfNotices !== 1 && presentNoticeInfo.actionText) {\n return (\n <ExternalLink\n id='actionButton'\n className='GenericModal__button actionButton'\n location='product_notices_modal'\n href={presentNoticeInfo.actionParam || ''}\n onClick={this.trackClickEvent}\n >\n {presentNoticeInfo.actionText}\n </ExternalLink>\n );\n }\n return null;\n }\n\n private handleNextButton = () => {\n const presentNoticeInfo = this.state.noticesData[this.state.presentNoticeIndex];\n const noOfNotices = this.state.noticesData.length;\n if (noOfNotices === 1 && presentNoticeInfo.actionText) {\n this.trackClickEvent();\n window.open(presentNoticeInfo.actionParam, '_blank');\n } else if (this.state.presentNoticeIndex + 1 < noOfNotices) {\n const nextNoticeInfo = this.state.noticesData[this.state.presentNoticeIndex + 1];\n\n this.props.actions.updateNoticesAsViewed([nextNoticeInfo.id]);\n\n this.setState({\n presentNoticeIndex: this.state.presentNoticeIndex + 1,\n });\n }\n };\n\n private handlePreviousButton = () => {\n if (this.state.presentNoticeIndex !== 0) {\n this.setState({\n presentNoticeIndex: this.state.presentNoticeIndex - 1,\n });\n }\n };\n\n onModalDismiss = () => {\n this.clearDataTimer = window.setTimeout(() => {\n this.setState({\n noticesData: [],\n presentNoticeIndex: 0,\n });\n }, 3000);\n };\n\n render() {\n if (!this.state.noticesData.length) {\n return null;\n }\n\n const presentNoticeInfo = this.state.noticesData[this.state.presentNoticeIndex];\n const handlePreviousButton = this.state.presentNoticeIndex === 0 ? undefined : this.handlePreviousButton;\n const autoCloseOnConfirmButton = this.state.presentNoticeIndex === this.state.noticesData.length - 1;\n\n return (\n <GenericModal\n compassDesign={true}\n onExited={this.onModalDismiss}\n handleConfirm={this.handleNextButton}\n handleEnterKeyPress={this.handleNextButton}\n handleCancel={handlePreviousButton}\n modalHeaderText={(\n <span>\n {presentNoticeInfo.title}\n </span>\n )}\n confirmButtonText={this.confirmButtonText(presentNoticeInfo)}\n cancelButtonText={this.cancelButtonText()}\n className='productNotices'\n autoCloseOnConfirmButton={autoCloseOnConfirmButton}\n autoCloseOnCancelButton={false}\n >\n <span className='productNotices__helpText'>\n <Markdown\n message={presentNoticeInfo.description}\n />\n </span>\n {this.renderActionButton(presentNoticeInfo)}\n <div className='productNotices__imageDiv'>\n {this.renderImage(presentNoticeInfo.image)}\n </div>\n <div className='productNotices__info'>\n {this.renderCicrleIndicators()}\n {this.renderAdminOnlyText()}\n </div>\n </GenericModal>\n );\n }\n}\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport {connect} from 'react-redux';\nimport type {ConnectedProps} from 'react-redux';\nimport {bindActionCreators} from 'redux';\nimport type {Dispatch} from 'redux';\n\nimport type {ClientConfig} from '@mattermost/types/config';\n\nimport {getInProductNotices, updateNoticesAsViewed} from 'mattermost-redux/actions/teams';\nimport {getConfig} from 'mattermost-redux/selectors/entities/general';\nimport {getCurrentTeamId} from 'mattermost-redux/selectors/entities/teams';\n\nimport {getSocketStatus} from 'selectors/views/websocket';\n\nimport type {GlobalState} from 'types/store';\n\nimport ProductNoticesModal from './product_notices_modal';\n\nfunction mapStateToProps(state: GlobalState) {\n const config: Partial<ClientConfig> = getConfig(state);\n const version: string = config.Version || ''; //this should always exist but TS throws error\n const socketStatus = getSocketStatus(state);\n\n return {\n currentTeamId: getCurrentTeamId(state),\n version,\n socketStatus,\n };\n}\n\nfunction mapDispatchToProps(dispatch: Dispatch) {\n return {\n actions: bindActionCreators({\n getInProductNotices,\n updateNoticesAsViewed,\n }, dispatch),\n };\n}\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport type PropsFromRedux = ConnectedProps<typeof connector>;\n\nexport default connector(ProductNoticesModal);\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport {useIntl} from 'react-intl';\n\ntype Props = {\n additionalClassName?: string;\n}\n\nconst NextIcon = ({additionalClassName}: Props) => {\n const {formatMessage} = useIntl();\n\n return (\n <i\n className={classNames('icon icon-chevron-right', additionalClassName)}\n title={formatMessage({\n id: 'generic_icons.next',\n defaultMessage: 'Next Icon',\n })}\n />\n );\n};\n\nexport default React.memo(NextIcon);\n","// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.\n// See LICENSE.txt for license information.\n\nimport classNames from 'classnames';\nimport React from 'react';\nimport {useIntl} from 'react-intl';\n\ntype Props = {\n additionalClassName?: string;\n}\n\nconst PreviousIcon = ({additionalClassName}: Props) => {\n const {formatMessage} = useIntl();\n\n return (\n <i\n className={classNames('icon icon-chevron-left', additionalClassName)}\n title={formatMessage({id: 'generic_icons.previous', defaultMessage: 'Previous Icon'})}\n />\n );\n};\n\nexport default React.memo(PreviousIcon);\n"],"names":["AdminEyeIcon","props","formatMessage","useIntl","React","width","height","viewBox","fill","role","id","defaultMessage","d","fillOpacity","ProductNoticesModal","constructor","super","_defineProperty","presentNoticeInfo","this","state","noticesData","presentNoticeIndex","trackEvent","concat","noOfNotices","length","actionText","trackClickEvent","window","open","actionParam","nextNoticeInfo","actions","updateNoticesAsViewed","setState","clearDataTimer","setTimeout","undefined","componentDidMount","fetchNoticesData","componentDidUpdate","prevProps","presentSocketState","socketStatus","prevSocketState","connected","lastConnectAt","presentTime","Date","now","previousSocketConnectDate","getDate","currentTeamId","componentWillUnmount","clearTimeout","version","client","clientVersion","isDesktopApp","getDesktopVersion","data","getInProductNotices","confirmButtonText","FormattedMessage","NextIcon","cancelButtonText","PreviousIcon","renderCicrleIndicators","indicators","i","className","push","key","renderAdminOnlyText","sysAdminOnly","renderImage","image","src","renderActionButton","ExternalLink","location","href","onClick","render","handlePreviousButton","autoCloseOnConfirmButton","GenericModal","compassDesign","onExited","onModalDismiss","handleConfirm","handleNextButton","handleEnterKeyPress","handleCancel","modalHeaderText","title","autoCloseOnCancelButton","Markdown","message","description","connect","getConfig","Version","getSocketStatus","getCurrentTeamId","dispatch","bindActionCreators","_ref","additionalClassName","classNames","propTypes","_pt"],"sourceRoot":""}