File: /disk001/machen/public_html/WC/static/js/3.9f7263dc.chunk.js.map
{"version":3,"sources":["components/Dashboards/Widgets/Timesheet copy.jsx"],"names":["connect","store","cards","db","timeline","dispatch","bindActionCreators","reduxActions","props","reduxStore","getState","startDate","setStartDate","React","useState","moment","Date","tz","subtract","format","endDate","setEndDate","exportTimers","setExport","selectedUsers","setSelectedUsers","setCards","loading","setLoading","timeSheetData","setTimeSheetData","totalSecondsRef","useRef","usersRef","hashs","window","location","hash","split","replace","nodeId","useEffect","init","iniCards","planCards","async","ncards","getChildrens","loadTimeline","fnIdentification","ids","type","reqChildrens","e","timeSheet","users","timeSheetTotal","totalSeconds","Object","keys","filter","a","tm","length","forEach","deleted","ts","_toUser","userId","user","_id","su","parseInt","ini","unix","fin","time","totalTimer","diff","diffText","diffTextMini","translate","hours","Math","trunc","minutes","seconds","timerText","timerTextMini","_times","cardId","current","convertSecondsToText","mini","arguments","undefined","TimeSheetData","createElement","style","width","marginBottom","display","alignItems","data","name","Fragment","Tooltip","title","Avatar","alt","src","image","height","substr","marginLeft","fontWeight","color","customApp","minWidth","ViewportChecker","inViewport","UiCard","marginTop","overflow","edit","borderBottom","backgroundColor","styles","Icon","size","alignSelf","margin","fontSize","onMouseEnter","target","onMouseLeave","onClick","handleRemoveObject","id","cursor","position","right","top","border","padding","className","HeaderWithIcon","icon","background","borderRadius","customButtons","left","bottom","justifyContent","zIndex","PreLoader","TextField","label","variant","marginRight","InputLabelProps","shrink","inputProps","max","InputProps","autoComplete","onChange","d","value","min","Accordion","AccordionSummary","expandIcon","aria-controls","AvatarGroup","map","i","key","AccordionDetails","FormGroup","pr","FormControlLabel","control","Checkbox","checked","selectUser","ExportTimer","CustomButton","text","textColor","UiCardHeader","ResponsivePie","sort","b","textMini","valueFormat","enableArcLabels","colors","scheme","activeOuterRadiusOffset","arcLabelsTextColor","from","modifiers","borderWidth","cornerRadius","enableArcLinkLabels","innerRadius","leavesOnly","theme","padAngle","sortByValue","wordWrap","textAlign","UiCardBody","GridContainer"],"mappings":"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","file":"static/js/3.9f7263dc.chunk.js","sourcesContent":["import React, { useState, useEffect, useRef } from \"react\";\nimport moment from \"moment-timezone\";\nimport { ResponsivePie } from \"@nivo/pie\";\n\n//REDUX\nimport { connect } from \"react-redux\"\nimport { bindActionCreators } from \"redux\"\nimport * as reduxActions from \"store/actions\"\nimport reduxStore from \"store/\"\n\n//COMPONENTS\nimport Checkbox from \"components/Checkbox\"\nimport CustomButton from \"components/Buttons/custom\"\nimport ExportTimer from \"components/Timer/exportAll\"\nimport GridContainer from \"components/Grid/GridContainer\"\nimport HeaderWithIcon from \"components/Header/withIcon\"\nimport Icon from \"components/Icon\"\nimport TextField from \"components/TextField\"\nimport UiCard from \"components/Card/Card\"\nimport UiCardBody from \"components/Card/CardBody\"\nimport UiCardHeader from \"components/Card/CardHeader\"\nimport PreLoader from \"components/PreLoader\"\nimport ViewportChecker from \"componentsV3/ViewerportCheck/ViewrportCheck\";\n\n//@MATERIAL\nimport Accordion from \"@material-ui/core/Accordion\"\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\"\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\"\nimport Avatar from \"@material-ui/core/Avatar\"\nimport AvatarGroup from \"@material-ui/lab/AvatarGroup\"\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\"\nimport FormGroup from \"@material-ui/core/FormGroup\"\nimport Tooltip from \"@material-ui/core/Tooltip\"\n\n//FUNCTIONS\nimport { translate, customApp } from \"functions\"\nimport { loadTimeline } from \"functions/chat\"\nimport { getChildrens } from \"functions/cards\"\n\n\n\nfunction Timesheet(props) {\n const { db, timeline } = reduxStore.getState()\n const [startDate, setStartDate] = React.useState(moment(new Date()).tz(\"America/Sao_Paulo\").subtract(8000, \"d\").format(\"YYYY-MM-DD\"))\n const [endDate, setEndDate] = React.useState(moment(new Date()).tz(\"America/Sao_Paulo\").format(\"YYYY-MM-DD\"))\n const [exportTimers, setExport] = React.useState(false)\n const [selectedUsers, setSelectedUsers] = React.useState({})\n const [cards, setCards] = React.useState({})\n const [loading, setLoading] = React.useState(true)\n const [timeSheetData, setTimeSheetData] = useState({})\n\n const totalSecondsRef = useRef(0)\n const usersRef = useRef({})\n\n\n let hashs = window.location.hash.split(\"/\")\n hashs[0] = hashs[0].replace('#', '')\n let nodeId = hashs[0]\n\n React.useEffect(() => {\n init()\n return () => {\n\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n React.useEffect(() => {\n iniCards()\n }, [props.planCards])// eslint-disable-line react-hooks/exhaustive-deps\n\n const iniCards = async () => {\n let ncards = await getChildrens(nodeId)\n setCards(ncards)\n }\n\n const init = async () => {\n try {\n let lt = await loadTimeline(\n {\n ...props,\n fnIdentification: \"StrategyAndPlans/Dashboard/Widgers/timeSheet/init()\"\n },\n {\n ids: [nodeId],\n db: \"cards\",\n type: \"timer\",\n reqChildrens: true\n })\n if (lt) {\n setLoading(false)\n }\n } catch (e) {\n setLoading(false)\n }\n }\n\n\n\n useEffect(() => {\n\n let timeSheet = {}\n let users = {}\n let timeSheetTotal = 0\n let totalSeconds = 0\n\n Object.keys(cards).filter(a =>\n timeline[a]\n && (\n Object.keys(timeline[a]).filter(tm => timeline[a][tm].type === \"timer\").length > 0\n )\n ).forEach(a => {\n Object.keys(timeline[a]).filter(tm =>\n timeline[a][tm].type === \"timer\"\n && !timeline[a][tm].deleted\n ).forEach(ts => {\n\n if (timeline[a][ts]._toUser && Object.keys(timeline[a][ts]._toUser).length > 0) {\n Object.keys(timeline[a][ts]._toUser).forEach(userId => {\n users = {\n ...users,\n [userId]: {\n ...timeline[a][ts]._toUser[userId] ? timeline[a][ts]._toUser[userId] : {},\n }\n }\n })\n } else {\n users = {\n ...users,\n [timeline[a][ts].user._id]: {\n ...timeline[a][ts].user,\n }\n }\n }\n\n })\n\n Object.keys(timeline[a]).filter(tm =>\n timeline[a]\n && timeline[a][tm]\n && timeline[a][tm].type === \"timer\"\n && !timeline[a][tm].deleted\n &&\n (\n Object.keys(selectedUsers).length === 0\n ||\n (\n Object.keys(selectedUsers).length > 0\n && Object.keys(selectedUsers).filter(su =>\n timeline[a]\n && timeline[a][tm]\n && timeline[a][tm].type\n && timeline[a][tm].type === \"timer\"\n && selectedUsers[su]\n && timeline[a][tm].user\n &&\n (\n (\n timeline[a]\n && timeline[a][tm]\n && timeline[a][tm].user\n && (\n !timeline[a][tm]._toUser\n || (\n timeline[a][tm]._toUser\n && !timeline[a][tm]._toUser[su]\n )\n )\n && timeline[a][tm].user._id === su\n )\n ||\n (\n timeline[a]\n && timeline[a][tm]\n && timeline[a][tm]._toUser\n && timeline[a][tm]._toUser[su]\n && timeline[a][tm]._toUser[su] !== timeline[a][tm].user._id\n )\n )\n ).length > 0\n )\n )\n ).forEach(ts => {\n Object.keys(users).forEach(userId => {\n if (\n userId\n && timeline[a]\n && timeline[a][ts]\n && timeline[a][ts].type === \"timer\"\n && !timeline[a][ts].deleted\n && (\n parseInt(timeline[a][ts].ini) >= moment(`${startDate} 00:00:01`).unix(\"X\")\n || parseInt(timeline[a][ts].ini) === 0\n )\n &&\n (\n parseInt(timeline[a][ts].fin) <= moment(`${endDate} 23:59:59`).unix(\"X\")\n )\n && (\n (\n timeline[a][ts].user\n && (\n timeline[a][ts].user._id === userId\n && (\n timeline[a][ts]._toUser\n && Object.keys(timeline[a][ts]._toUser).length === 0\n )\n )\n )\n || (\n timeline[a][ts]._toUser\n && Object.keys(timeline[a][ts]._toUser).length > 0\n && timeline[a][ts]._toUser[userId]\n )\n )\n // && (\n // !timeline[a][ts]._toUser\n // || timeline[a][ts]._toUser && Object.keys(timeline[a][ts]._toUser).length === 0\n // || (\n // timeline[a][ts]._toUser\n // && timeline[a][ts]._toUser[userId]\n // )\n // )\n ) {\n totalSeconds = totalSeconds + (parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini))\n let time = (parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini))\n\n if (timeSheet && timeSheet[userId] && timeSheet[userId].totalTimer) {\n time = parseInt(timeSheet[userId].totalTimer) + (parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini))\n } else {\n time = parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini)\n }\n\n let diff = time\n let diffText = ``\n let diffTextMini = ``\n if (time < 60) {\n diffText = `${diff} ${translate(\"$__seconds\", 1)}`\n diffText = `${diff}s`\n } else if (time > 3600) {\n let hours = Math.trunc(diff / 3600)\n diff = diff - (hours * 3600)\n let minutes = Math.trunc(diff / 60) > 0 ? Math.trunc(diff / 60) : 0\n diff = diff - (minutes * 60)\n let seconds = diff > 0 ? diff : 0\n diffText = `${hours} ${translate(\"$__hour\", 1)}${hours > 1 ? \"s\" : \"\"} ${minutes} ${translate(\"$__minutes\", 1)} ${seconds > 0 ? `${seconds} ${translate(\"$__seconds\", 1)}` : ``}`\n diffTextMini = `${hours}H ${minutes}M ${seconds} S`\n } else {\n let minutes = Math.trunc(diff / 60) > 0 ? Math.trunc(diff / 60) : 0\n diff = diff - (minutes * 60)\n let seconds = diff > 0 ? diff : 0\n diffText = `${minutes} ${translate(\"$__minutes\", 1)} ${seconds > 0 ? `${seconds} ${translate(\"$__seconds\", 1)}` : ``}`\n diffTextMini = `${minutes}M ${seconds} S`\n }\n\n timeSheet = {\n ...timeSheet,\n [userId]: {\n ...timeSheet[userId] ? timeSheet[userId] : {},\n ...users[userId] ? users[userId] : {},\n ...timeSheet && timeSheet[userId] && timeSheet[userId].totalTimer ?\n { totalTimer: parseInt(timeSheet[userId].totalTimer) + (parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini)) }\n : { totalTimer: parseInt(timeline[a][ts].fin) - parseInt(timeline[a][ts].ini) },\n timerText: diffText,\n timerTextMini: diffTextMini,\n _times: {\n ...timeSheet[userId] && timeSheet[userId]._times ? timeSheet[userId]._times : {},\n [ts]: {\n ...timeline[a][ts],\n cardId: a\n }\n }\n }\n // }\n }\n\n\n }\n\n totalSecondsRef.current = totalSeconds\n timeSheetTotal = timeSheetTotal + 1\n })\n })\n })\n\n usersRef.current = users\n setTimeSheetData(timeSheet)\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cards, loading, selectedUsers]);\n\n\n const convertSecondsToText = (diff, mini = false) => {\n let diffText = ``\n let diffTextMini = ``\n if (diff < 60) {\n diffText = `${diff} ${translate(\"$__seconds\", 1)}`\n diffText = `${diff}s`\n } else if (diff > 3600) {\n let hours = Math.trunc(diff / 3600)\n diff = diff - (hours * 3600)\n let minutes = Math.trunc(diff / 60) > 0 ? Math.trunc(diff / 60) : 0\n diff = diff - (minutes * 60)\n let seconds = diff > 0 ? diff : 0\n diffText = `${hours} ${translate(\"$__hour\", 1)}${hours > 1 ? \"s\" : \"\"} ${minutes} ${translate(\"$__minutes\", 1)} ${seconds > 0 ? `${seconds} ${translate(\"$__seconds\", 1)}` : ``}`\n diffTextMini = `${hours}H ${minutes}M ${seconds} S`\n } else {\n let minutes = Math.trunc(diff / 60) > 0 ? Math.trunc(diff / 60) : 0\n diff = diff - (minutes * 60)\n let seconds = diff > 0 ? diff : 0\n diffText = `${minutes} ${translate(\"$__minutes\", 1)} ${seconds > 0 ? `${seconds} ${translate(\"$__seconds\", 1)}` : ``}`\n diffTextMini = `${minutes}M ${seconds} S`\n }\n if (mini) return diffTextMini\n return diffText\n }\n\n\n\n\n\n const TimeSheetData = (props) => {\n return (\n <div style={{ width: \"100%\", marginBottom: \"10px\", display: \"flex\", alignItems: \"center\" }}>\n {props.data && props.data.name &&\n <React.Fragment>\n <div\n style={{ width: \"33px\" }}\n >\n <Tooltip\n title={props.data.name}\n >\n <Avatar alt={props.data.name} src={props.data.image || null} style={{ width: \"33px\", height: \"33px\" }}>\n {props.data.name.substr(0, 1)}\n </Avatar>\n </Tooltip>\n </div>\n <div style={{ marginLeft: \"10px\", fontWeight: \"bold\", color: customApp(\"menu\"), width: \"33%\", minWidth: \"150px\" }}>{props.data.name}</div>\n </React.Fragment>\n }\n <div style={{ marginLeft: \"10px\", fontWeight: \"bold\", color: customApp(\"menu\") }}>{props.data.timerText}</div>\n </div>\n )\n }\n\n const selectUser = (pr) => {\n if (selectedUsers[pr] && Object.keys(selectedUsers).filter(a => selectedUsers[a]).length <= 1) {\n setSelectedUsers({})\n } else {\n setSelectedUsers({\n ...selectedUsers,\n [pr]: !selectedUsers[pr],\n })\n }\n }\n\n return (\n <div style={{ height: '100%', width: '100%' }}>\n <ViewportChecker>\n {(inViewport) => (\n <UiCard style={{ width: '100%', height: '100%', marginTop: '0px', overflow: \"scroll\" }}>\n {(props.edit && inViewport) ? <div style={{ width: '100%', height: '52px', display: 'flex', borderBottom: '1px solid #D3D3D3', backgroundColor: props.styles.backgroundColor ? props.styles.backgroundColor : 'white' }}>\n <Icon size={24} style={{ alignSelf: 'center', marginLeft: '20px', color: props.styles.color ? props.styles.color : 'grey', marginTop: '3px' }}>update</Icon>\n <p style={{ margin: '0px', marginLeft: '7px', alignSelf: 'center', fontWeight: 'bold', marginTop: '2px', color: props.styles.color ? props.styles.color : 'grey', fontSize: '16px' }}>{translate(`$__timeSheet`, 1)}</p>\n <div onMouseEnter={(e) => { e.target.style.backgroundColor = 'rgba(0, 0, 0, 0.12)' }}\n onMouseLeave={(e) => { e.target.style.backgroundColor = 'rgba(0, 0, 0, 0)' }}>\n <Icon onClick={() => props.handleRemoveObject(props.id)} style={{ height: '25px', color: props.styles.color ? props.styles.color : 'rgba(0, 0, 0, 0.67)', cursor: 'pointer', position: 'absolute', right: '20px', top: '8px', border: '1px solid #D3D3D3', padding: '14px' }}>\n close\n </Icon>\n </div>\n <div onMouseEnter={(e) => { e.target.style.backgroundColor = 'rgba(0, 0, 0, 0.12)' }}\n onMouseLeave={(e) => { e.target.style.backgroundColor = 'rgba(0, 0, 0, 0)' }}>\n <Icon className='drag-handle' style={{ height: '25px', cursor: 'move', color: props.styles.color ? props.styles.color : 'rgba(0, 0, 0, 0.67)', position: 'absolute', right: '62px', top: '8px', border: '1px solid #D3D3D3', padding: '14px' }}>\n open_with\n </Icon>\n </div>\n </div> :\n <HeaderWithIcon\n title={translate(`$__timeSheet`, 1)}\n icon={\"update\"}\n color={props.styles.color ? props.styles.color : 'grey'}\n style={{\n background: props.styles.backgroundColor ? props.styles.backgroundColor : 'white',\n padding: '12.4px',\n borderRadius: '5px 5px 0px 0px ',\n fontWeight: 'normal',\n borderBottom: '1px solid #D3D3D3'\n }}\n customButtons={[\n !exportTimers &&\n {\n title: \"$__timeSheetExport\",\n icon: \"file_download\",\n color: customApp(\"colorText\"),\n onClick: () => {\n setExport(!exportTimers)\n },\n },\n ]}\n />}\n {loading ?\n <div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: \"rgba(250,250,250,0.7)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 10\n }}\n >\n <PreLoader />\n </div>\n : <React.Fragment></React.Fragment>\n }\n {(exportTimers && inViewport) &&\n <div style={{ padding: \"15px\", border: '1px solid black' }}>\n <fieldset style={{ position: \"relative\", width: \"100%\", marginLeft: \"7px\", display: \"flex\", justifyContent: \"space-between\", marginBottom: \"14px\", marginTop: \"7px\" }}>\n <legend>{translate(\"$__timeCourse\", 1)}</legend>\n <TextField\n label={translate(\"$__initialDate\", 1)}\n variant={customApp(\"fieldVariant\", 1)}\n name=\"startDate\"\n style={{ marginRight: \"15px\" }}\n InputLabelProps={{\n shrink: true,\n }}\n type=\"date\"\n inputProps={{\n max: endDate ? endDate : null,\n }}\n InputProps={{\n autoComplete: \"new-password\",\n onChange: (d) => {\n setStartDate(d.target.value)\n },\n }}\n value={startDate}\n />\n <TextField\n label={translate(\"$__endDate\", 1)}\n variant={customApp(\"fieldVariant\")}\n name=\"endDate\"\n type=\"date\"\n min={startDate ? startDate : null}\n InputLabelProps={{\n shrink: true,\n }}\n inputProps={{\n min: startDate ? startDate : null,\n }}\n InputProps={{\n autoComplete: \"new-password\",\n onChange: (d) => {\n setEndDate(d.target.value)\n },\n }}\n value={endDate}\n />\n\n </fieldset>\n {/* FILTER BY USER */}\n {(db.users && Object.keys(db.users).length > 0 && inViewport) &&\n <Accordion style={{ width: \"100%\" }}>\n <AccordionSummary\n style={{ minWidth: \"100%\" }}\n expandIcon={\n <Icon>expand_more</Icon>\n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n ><div style={{ color: customApp(\"color\"), fontSize: \"12px\" }}>\n {translate(\"$__users\")}\n <AvatarGroup max={6}>\n {Object.keys(selectedUsers).length > 0 && Object.keys(selectedUsers).map((a, i) => (\n <Tooltip\n title={db.users[a].name}\n key={i}\n >\n <Avatar alt={db.users[a].name} src={db.users[a].image || null} >\n {db.users[a].name.substr(0, 1)}\n </Avatar>\n </Tooltip>\n ))}\n </AvatarGroup>\n </div>\n </AccordionSummary>\n <AccordionDetails\n style={{ minWidth: \"100%\" }}\n >\n <FormGroup>\n {Object.keys(usersRef.current).map(pr => {\n return (\n db.users && db.users[pr] && db.users[pr]._id &&\n <React.Fragment key={pr}>\n <FormControlLabel\n key={pr}\n style={{ minWidth: \"100%\" }}\n control={\n <React.Fragment>\n <Avatar alt={db.users[pr].name.substr(0, 1)} src={db.users[pr].image || null} >\n {db.users[pr].name.substr(0, 1)}\n </Avatar>\n <Checkbox\n checked={selectedUsers && selectedUsers[pr] ? true : false}\n onChange={() => {\n selectUser(pr)\n }}\n color=\"default\"\n />\n </React.Fragment>\n }\n label={db.users[pr].name || db.users[pr].name}\n />\n </React.Fragment>\n )\n }\n )}\n </FormGroup>\n </AccordionDetails>\n </Accordion>\n }\n <div style={{ display: \"flex\", justifyContent: \"center\", marginTop: \"7px\" }}>\n <ExportTimer data={timeSheetData} />\n <CustomButton\n title={translate(\"$__closeFilter\")}\n text={translate(\"$__closeFilter\")}\n color={\"lightgrey\"}\n textColor={\"lightgrey\"}\n icon={\"cancel\"}\n onClick={() => { setExport(!exportTimers) }}\n size={\"25px\"}\n />\n </div>\n </div>\n }\n <UiCardHeader style={{ height: \"333px\", position: 'relative', backgroundColor: '#f5f5f5' }}>\n {inViewport && <ResponsivePie\n data={[\n ...Object.keys(timeSheetData).sort((a, b) => {\n if (parseInt(timeSheetData[a].totalTimer) > parseInt(timeSheetData[b].totalTimer)) {\n return -1\n } else if (parseInt(timeSheetData[a].totalTimer) < parseInt(timeSheetData[b].totalTimer)) {\n return 1\n } else {\n return 0\n }\n }).map((ts, i) => {\n return {\n id: timeSheetData[ts].name,\n label: timeSheetData[ts].name,\n value: timeSheetData[ts].totalTimer,\n color: \"#929497\",\n textMini: timeSheetData[ts].timerText,\n }\n }\n )\n ]}\n valueFormat={value => {\n convertSecondsToText(value, true)\n return convertSecondsToText(value)\n }}\n enableArcLabels={false}\n colors={{ scheme: \"purpleRed_green\" }}\n activeOuterRadiusOffset={8}\n arcLabelsTextColor={{ from: \"color\", modifiers: [[\"brighter\", 3]] }}\n borderWidth={1}\n cornerRadius={3}\n enableArcLinkLabels={false}\n innerRadius={0.5}\n leavesOnly={true}\n theme={{\n background: 'transparent'\n }}\n margin={{ top: 10, right: 0, bottom: 10, left: 0 }}\n padAngle={1.3}\n sortByValue={true}\n />}\n <div style={{\n width: \"100px\",\n wordWrap: \"break-word\",\n position: \"absolute\",\n top: \"50%\",\n left: \"calc(50% - 50px)\",\n fontWeight: \"bold\",\n color: customApp(\"menu\"),\n textAlign: \"center\",\n }}>\n {convertSecondsToText(totalSecondsRef.current, true)}\n </div>\n </UiCardHeader>\n {inViewport && <UiCardBody>\n <GridContainer>\n {Object.keys(timeSheetData).sort((a, b) => {\n if (parseInt(timeSheetData[a].totalTimer) > parseInt(timeSheetData[b].totalTimer)) {\n return -1\n } else if (parseInt(timeSheetData[a].totalTimer) < parseInt(timeSheetData[b].totalTimer)) {\n return 1\n } else {\n return 0\n }\n }).map((ts, i) =>\n <TimeSheetData data={timeSheetData[ts]} key={ts} />\n )}\n <TimeSheetData data={{ name: translate(\"$__total\"), timerText: convertSecondsToText(totalSecondsRef.current) }} />\n </GridContainer>\n </UiCardBody>}\n <div style={{\n color: \"#CCCCCC\",\n fontSize: \"12px\",\n padding: \"15px\",\n textAlign: \"center\"\n }}>\n {db.cards[nodeId] && db.cards[nodeId].type === 'plan' ?\n translate(\"$__timeSheetShowingAllTimesRegisteredInAllActivitiesOfPlan\")\n :\n translate(\"$__timeSheetShowingAllTimesRegisteredInActivityAndLinkedActivities\")\n }\n </div>\n </UiCard>\n )}\n </ViewportChecker>\n </div>\n );\n}\n\nconst mapStateToProps = (store) => ({\n cards: store.db.cards,\n timeline: store.timeline\n})\n\nconst mapDispatchToProps = dispatch =>\n bindActionCreators(reduxActions, dispatch);\n\nexport default connect(mapStateToProps,\n mapDispatchToProps\n)(Timesheet);"],"sourceRoot":""}