File: /disk001/machen/public_html/a1b2c3d4/static/js/4.0665940c.chunk.js.map
{"version":3,"sources":["components/Dashboards/Widgets/TaskDoneBarMonthENEVAAAAA.jsx"],"names":["TaskDoneBarMonth","props","db","reduxStore","getState","_useState","useState","index","showQuantity","number","finalIndex","dataStructure","_useState2","_slicedToArray","filter","setFilter","_useState3","moment","startOf","format","_useState4","data","setData","keysRef","useRef","keysColors","keysLabel","label","color","filterRef","hashs","window","location","hash","split","replace","generateColor","name","i","length","charCodeAt","toString","slice","useEffect","Object","keys","console","log","tags","current","_toConsumableArray","key","forEach","item","concat","timeTasks","keysColorsArr","keysRefArr","keysLabelArr","planCards","month","add","_objectSpread","_defineProperty","planCard","_filter$users","_db$cards$planCard","_db$cards$planCard2","result","users","cards","_users","values","user","filterUser","_id","_db$cards$planCard$co","dateCard","date","completed_at","low","_tags","isBetween","endOf","_filter$tags","monthKey","translate","tagsByText","includes","toLowerCase","indexOf","_timeTasks$monthKey","_timeTasks$monthKey2","total","updateTaskInfo","finalArr","load","React","createElement","className","style","width","height","alignSelf","borderRadius","backgroundColor","display","flexFlow","overflow","Header","handleSetSelected","value","handleSetFilter","id","tittle","icon","styles","filterConfig","filterItems","datafilter","indicators","handleRemoveObject","edit","handleSetoption","borderBottom","position","flex","fontSize","fontWeight","justifyContent","ResponsiveBar","colors","indexBy","margin","top","right","bottom","left","padding","valueScale","type","indexScale","round","enableLabel","yScale","max","minValue","theme","background","axis","fill","match","borderColor","from","modifiers","axisTop","axisRight","axisBottom","preview","tickSize","tickPadding","tickRotation","legendPosition","legendOffset","axisLeft","role","maxHeight","Legend","legend","map","a"],"mappings":"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","file":"static/js/4.0665940c.chunk.js","sourcesContent":["import React, { useEffect, useState, useRef } from 'react'\n//COMPONENTS\nimport Legend from '../Legend';\nimport { ResponsiveBar } from '@nivo/bar'\nimport Header from 'components/Dashboards/Header'\nimport './Loader.css';\n\n//REDUX\nimport reduxStore from \"store/\"\nimport moment from \"moment-timezone\"\nimport { translate } from 'functions';\n\n\n//https://codesandbox.io/s/m4ro13jjn8?file=/src/index.js\n\n\nconst TaskDoneBarMonth = (props) => {\n\n const { db } = reduxStore.getState()\n const [filter, setFilter] = useState({\n index: 0,\n showQuantity: 12,\n number: 12,\n finalIndex: 12,\n dataStructure: 'month',\n })\n const [data, setData] = useState({\n 'total': {\n \"total\": 0,\n \"month\": moment().startOf('month').format('MMMM'),\n }\n })\n const keysRef = useRef(['total'])\n const keysColors = useRef([])\n const keysLabel = useRef([{ label: 'Concluidas', color: '#5A7F71' }])\n const filterRef = useRef([])\n\n\n let hashs = window.location.hash.split(\"/\")\n hashs[0] = hashs[0].replace('#', '')\n\n // number: filter?.users ? filter?.users?.length : 10,\n\n const generateColor = (name) => {\n let hash = 0;\n for (let i = 0; i < name.length; i++) {\n hash += name.charCodeAt(i);\n }\n const hexColor = \"#\" + ((hash % 0xFFFFFF) + 0x1000000).toString(16).slice(1, 7);\n return hexColor;\n }\n\n useEffect(() => {\n if (Object.keys(props.filter).length > 0) {\n setFilter(props.filter)\n }\n }, [props.filter]);\n\n useEffect(() => {\n console.log(filter)\n if (filter.tags) {\n filterRef.current = []\n if (filter.tags.length === 0) {\n keysRef.current = []\n keysColors.current = []\n keysLabel.current = []\n }\n keysRef.current = [...keysRef.current.filter(key => key !== 'total')];\n filter.tags.forEach((item) => {\n filterRef.current = [...filterRef.current, item.label];\n })\n }\n }, [filter]);\n\n\n useEffect(() => {\n let timeTasks = {};\n let keysColorsArr = []\n let keysRefArr = []\n let keysLabelArr = []\n\n const updateTaskInfo = (dateCard, item) => {\n const monthKey = dateCard.date.format('MMMM');\n const label = item.label\n timeTasks = {\n ...timeTasks,\n [monthKey]: {\n ...timeTasks[monthKey] || {},\n total: (timeTasks[monthKey]?.total || 0) + 1,\n month: dateCard.date.format('MMMM'),\n [label]: (timeTasks[monthKey]?.[label] || 0) + 1,\n }\n };\n\n if (!keysRef.current.includes(label)) {\n keysColorsArr = keysColorsArr.filter((color) => color !== \"#5A7F71\")\n keysColorsArr = [...keysColorsArr, item?.color || generateColor(label)]\n keysRefArr = [...keysRefArr, label];\n keysLabelArr = keysLabelArr.filter((item) => item.label !== \"Concluidas\")\n keysLabelArr = [...keysLabelArr,\n {\n label: label,\n color: item?.color || generateColor(label)\n }\n ]\n }\n };\n\n if (props.planCards) {\n for (let i = 0; i < 12; i++) {\n const month = moment().startOf('year').add(i, 'month').format('MMMM');\n timeTasks = {\n ...timeTasks,\n [month]: {}\n }\n }\n console.log(timeTasks)\n Object.keys(props.planCards).forEach(planCard => {\n let result = filter?.users?.length > 0 ? false : true\n if (filter.users && Object.keys(db.cards[planCard]?._users).length > 0) {\n Object.values(db.cards[planCard]?._users).forEach((user) => {\n filter.users.forEach((filterUser) => {\n if (user._id === filterUser)\n result = true\n })\n })\n }\n if (result) {\n const dateCard = {\n date: moment(db.cards[planCard].completed_at?.low * 1000),\n tags: db.cards[planCard]._tags\n };\n if (dateCard.date.isBetween(moment().startOf('year'), moment().endOf('year'))) {\n const monthKey = dateCard.date.format('MMMM');\n timeTasks = {\n ...timeTasks,\n [monthKey]: {\n ...timeTasks[monthKey] || {},\n \"total\": timeTasks && timeTasks[monthKey] && timeTasks[monthKey][\"total\"] ? timeTasks[monthKey][\"total\"] + 1 : 1,\n \"month\": translate(`$__${monthKey}`),\n }\n }\n if (filter?.tags?.length > 0 || filter.tagsByText) {\n dateCard.tags\n .filter(item =>\n (\n filter.tags\n && filter.tags.length > 0\n && item.label\n && filterRef.current.includes(item.label)\n )\n ||\n (\n filter.tagsByText\n && item.label\n && item.label.toLowerCase().indexOf(filter.tagsByText.toLowerCase()) > -1\n )\n )\n .forEach(item => {\n updateTaskInfo(dateCard, item);\n });\n keysRef.current = keysRefArr\n keysColors.current = keysColorsArr\n keysLabel.current = keysLabelArr\n\n } else {\n keysLabel.current = [{ label: 'Concluidas', color: '#5A7F71' }]\n keysRef.current = [\"total\"];\n keysColors.current = [\"#5A7F71\"]\n }\n\n }\n }\n })\n let finalArr = Object.values(timeTasks).filter((item) => {\n return Object.keys(item).length !== 0;\n });\n setData(finalArr);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.planCards, props.load, filter]);\n\n console.log(data)\n\n return (\n <div className='box' style={{ width: '100%', height: '100%', alignSelf: 'center', borderRadius: '5px', backgroundColor: 'transparent', display: 'flex', flexFlow: 'column', overflow: 'visible' }}>\n <Header\n handleSetSelected={(value) => {\n setFilter({ ...filter, ...value })\n props.handleSetFilter({ ...filter, ...value, id: props.id })\n }}\n tittle={translate(\"$__\" + props.tittle)}\n icon={props.icon}\n styles={props.styles}\n filterConfig={{ filterItems: ['users', 'tags', 'tagsByText'] }}\n datafilter={true}\n indicators={filter ? filter : null}\n handleRemoveObject={() => props.handleRemoveObject(props.id)}\n edit={props.edit}\n handleSetoption={(value) => {\n setFilter({ ...value })\n props.handleSetFilter({ ...filter, ...value, id: props.id })\n }}\n />\n <div style={{ borderBottom: '1px solid #D3D3D3', width: '100%' }}></div>\n <div style={{}} >\n </div>\n <div style={{ position: 'relative', flex: '1 1 auto', fontSize: '16px' }}>\n <div style={{ width: '100%', height: '100%', position: 'absolute', fontWeight: 'lighter', backgroundColor: '#f5f5f5' }}>\n {(!props.load) ?\n <div className='component' style={{ width: '100%', height: '100%' }}>\n <ResponsiveBar\n data={data}\n // layers={[\"grid\", \"axes\", \"bars\", Line, \"markers\", \"legends\"]}\n keys={keysRef.current} // data\n colors={keysColors.current}\n indexBy={\"month\"} //data\n margin={{ top: 40, right: 20, bottom: 30, left: 40 }}\n padding={0.3}\n valueScale={{ type: 'linear' }}\n indexScale={{ type: 'band', round: false }}\n enableLabel={false}\n yScale={{\n max: 100,\n }}\n minValue={0}\n theme={{\n fontSize: '14px',\n color: 'white',\n background: '#f5f5f5',\n axis: {\n \"ticks\": {\n \"text\": {\n fill: 'rgba(0, 0, 0, 0.50)',\n \"fontSize\": 14,\n //cor dos numeros\n },\n }\n },\n }}\n\n fill={[\n {\n match: {\n id: 'fries'\n },\n id: 'dots'\n },\n {\n match: {\n id: 'sandwich'\n },\n id: 'lines'\n }\n ]}\n borderColor={{\n from: 'color',\n modifiers: [\n [\n 'darker',\n 1.6\n ]\n ]\n }}\n axisTop={null}\n axisRight={null}\n axisBottom={!props.preview ? {\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legendPosition: 'middle',\n legendOffset: 32,\n } : null}\n axisLeft={!props.preview ? {\n tickSize: 5,\n tickPadding: 5,\n tickRotation: 0,\n legendPosition: 'middle',\n legendOffset: -40\n } : null}\n role=\"application\"\n /> </div> : <div style={{ width: '100%', height: '100%', display: 'flex', justifyContent: 'center' }}>\n <div style={{ alignSelf: 'center' }}> <div className=\"loader\"></div></div>\n </div>}\n </div>\n </div>\n <div style={{ height: '15%', maxHeight: '60px', display: 'flex', backgroundColor: 'white' }}>\n <Legend\n legend={[...keysLabel.current.map((a, i) => {\n return {\n key: i,\n color: a.color,\n label: a.label\n }\n })]} />\n </div>\n </div >\n )\n}\n\nexport default TaskDoneBarMonth\n"],"sourceRoot":""}