{"version":3,"sources":["lib/utils.ts","components/RenderData.tsx","App.tsx","index.tsx"],"names":["average","arr","reduce","p","c","length","RenderData","data","className","style","width","map","item","i","DataOra","format","Ping","Download","Upload","toFixed","App","useState","setData","useEffect","axios","get","process","then","res","response","addToResponse","isItemValid","push","tempItem","resetTempItem","undefined","match","forEach","row","startsWith","split","moment","sort","a","b","processRows","role","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"kOAKaA,G,MAAU,SAACC,GAAD,OAAmBA,EAAIC,QAAO,SAACC,EAAGC,GAAJ,OAAUD,EAAIC,IAAG,GAAKH,EAAII,S,OCyChEC,EAzCoC,SAAC,GAAc,IAAZC,EAAW,EAAXA,KACpD,OACE,qCACE,qBAAKC,UAAU,cAAf,SACE,oBAAG,cAAa,cAAhB,iBAAgCD,QAAhC,IAAgCA,OAAhC,EAAgCA,EAAMF,OAAtC,oBAGF,wBAAOI,MAAO,CAAEC,MAAO,QAAvB,UACE,gCACE,+BACE,sCACA,sCACA,0CACA,6CAGJ,uCACGH,QADH,IACGA,OADH,EACGA,EAAMI,KAAI,SAACC,EAAMC,GAAO,IAAD,EACtB,OACE,qBAAY,cAAa,eAAzB,UACE,uCAAKD,EAAKE,eAAV,aAAK,EAAcC,OAAO,oBAC1B,+BAAKH,EAAKI,KAAV,SACA,+BAAKJ,EAAKK,SAAV,aACA,+BAAKL,EAAKM,OAAV,eAJOL,QASf,gCACE,+BACE,sCACA,+BAAKN,GAAQP,EAAQO,EAAKI,KAAI,SAACC,GAAD,uBAAUA,EAAKI,YAAf,QAAuB,MAAIG,QAAQ,GAAjE,SACA,+BAAKZ,GAAQP,EAAQO,EAAKI,KAAI,SAACC,GAAD,uBAAUA,EAAKK,gBAAf,QAA2B,MAAIE,QAAQ,GAArE,aACA,+BAAKZ,GAAQP,EAAQO,EAAKI,KAAI,SAACC,GAAD,uBAAUA,EAAKM,cAAf,QAAyB,MAAIC,QAAQ,GAAnE,yBCdGC,MAjBf,WACE,MAAwBC,qBAAxB,mBAAOd,EAAP,KAAae,EAAb,KAOA,OANAC,qBAAU,WAAO,IAAD,EACdC,IAAMC,IAAN,UAAkBC,uDAAlB,EAAsD,KAAKC,MAAK,SAACC,GAC/DN,EFLqB,SAACf,GAAkB,IAAD,EACrCsB,EAAsB,GAGtBC,EAAgB,SAAClB,IADH,SAACA,GAAD,OAAmBA,EAAKI,MAAQJ,EAAKM,QAAUN,EAAKK,UAAYL,EAAKE,SAEvFiB,CAAYnB,IAASiB,EAASG,KAAKpB,GACnCqB,EAAWC,KAEPA,EAAgB,WACpB,MAAO,CACLlB,UAAMmB,EACNlB,cAAUkB,EACVjB,YAAQiB,EACRrB,aAASqB,IAITF,EAAWC,IAiBf,OAhBkB,UAAG3B,EAAK6B,MAAM,oBAAd,QAA8B,IACnCC,SAAQ,SAACC,GAChBA,EAAIC,WAAW,MACjBT,EAAcG,GACLK,EAAIC,WAAW,QACxBN,EAASjB,MAAQsB,EAAIE,MAAM,KAAK,GACvBF,EAAIC,WAAW,YACxBN,EAAShB,UAAYqB,EAAIE,MAAM,KAAK,GAC3BF,EAAIC,WAAW,UACxBN,EAASf,QAAUoB,EAAIE,MAAM,KAAK,GAElCP,EAASnB,QAAU2B,IAAOH,EAAK,kCAGnCR,EAAcG,GAEPJ,EAASa,MACd,SAACC,EAAGC,GAAJ,gBAAW,UAACA,EAAE9B,eAAH,QAAc2B,OAAU1B,OAAO,kBAAmB,UAAC4B,EAAE7B,eAAH,QAAc2B,OAAU1B,OAAO,mBE9BlF8B,CAAYjB,EAAIrB,YAEzB,IAGD,qBAAKC,UAAU,YAAf,SACE,sBAAMsC,KAAK,OAAOtC,UAAU,OAA5B,SACGD,EAAO,cAAC,EAAD,CAAYA,KAAMA,IAAW,kBCZ7CwC,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,W","file":"static/js/main.45df8f37.chunk.js","sourcesContent":["import moment from 'moment'\nimport 'moment/locale/it'\n\nimport { StatRow } from 'interfaces/StatRow'\n\nexport const average = (arr: number[]) => arr.reduce((p, c) => p + c, 0) / arr.length\nexport const processRows = (data: string) => {\n const response: StatRow[] = []\n\n const isItemValid = (item: StatRow) => item.Ping && item.Upload && item.Download && item.DataOra\n const addToResponse = (item: StatRow) => {\n isItemValid(item) && response.push(item)\n tempItem = resetTempItem()\n }\n const resetTempItem = (): StatRow => {\n return {\n Ping: undefined,\n Download: undefined,\n Upload: undefined,\n DataOra: undefined,\n }\n }\n\n let tempItem = resetTempItem()\n const arrayOfLines = data.match(/[^\\r\\n]+/g) ?? []\n arrayOfLines.forEach((row) => {\n if (row.startsWith('--')) {\n addToResponse(tempItem)\n } else if (row.startsWith('Ping')) {\n tempItem.Ping = +row.split(' ')[1]\n } else if (row.startsWith('Download')) {\n tempItem.Download = +row.split(' ')[1]\n } else if (row.startsWith('Upload')) {\n tempItem.Upload = +row.split(' ')[1]\n } else {\n tempItem.DataOra = moment(row, 'ddd D MMM YYYY, HH.mm.ss, Z')\n }\n })\n addToResponse(tempItem)\n\n return response.sort(\n (a, b) => +(b.DataOra ?? moment()).format('YYYYMMDDHHmm') - +(a.DataOra ?? moment()).format('YYYYMMDDHHmm')\n )\n}\n","import React from 'react'\n\nimport { average } from 'lib/utils'\nimport { StatRow } from 'interfaces/StatRow'\n\nconst RenderData: React.VFC<{ data: StatRow[] }> = ({ data }) => {\n return (\n <>\n
{data?.length} total count
\nTime | \nPing | \nDownload | \nUpload | \n
---|---|---|---|
{item.DataOra?.format('DD/MM/YY HH:mm')} | \n{item.Ping} ms | \n{item.Download} Mbit/s | \n{item.Upload} Mbit/s | \n
Avg. | \n{data && average(data.map((item) => item.Ping ?? 0)).toFixed(2)} ms | \n{data && average(data.map((item) => item.Download ?? 0)).toFixed(2)} Mbit/s | \n{data && average(data.map((item) => item.Upload ?? 0)).toFixed(2)} Mbit/s | \n