{"version":3,"sources":["pages/signin.module.css","api/getHistoricalData.ts","api/getDeviceList.ts","pages/datagrid.tsx","util/logo_base64.ts","pages/graphReport.tsx","util/hooks.ts","components/header.tsx","util/noise_color_getter.ts","components/mapmarker.tsx","api/getANMSData.ts","pages/mapview.tsx","api/mocks/signin.ts","slices/user.slice.ts","pages/signin.tsx","assets/logo1.jpeg","components/PdfExport.tsx","App.tsx","reportWebVitals.ts","store.ts","index.tsx"],"names":["module","exports","getHistoricalData","props","data","qs","stringify","config","method","url","headers","axios","then","r","console","log","catch","e","err","message","response","getDeviceList","a","enableRipple","HistoryDatagrid","Devices","SelectedDevice","setSelectedDevice","StartDate","setStartDate","EndDate","setEndDate","Data","TotalData","rowIndexValue","onPdfExport","gridref","useRef","useState","district","setDistrict","label","value","selectedDistrict","setSelectedDistrict","DropDownListItems","setDropDownListItems","customStyles","useSelector","state","user","control","provided","border","isFocused","boxShadow","useEffect","filterdData","filter","k","deviceOptionArray","map","item","dev_id","location","street","districtOptionArray","Set","JSON","parse","className","classNamePrefix","styles","isSearchable","name","placeholder","onChange","options","find","i","d","id","Date","min","style","height","width","dataSource","ref","g","current","toolbar","filterSettings","type","toolbarClick","args","text","excelExport","fileName","moment","format","header","headerRows","rows","cells","colSpan","backColor","fontColor","fontSize","hAlign","bold","csvExport","allowExcelExport","allowPdfExport","allowFiltering","allowSorting","showColumnMenu","enableAltRow","dataBound","beforeDataBound","excelHeaderQueryCellInfo","excelExportModule","sheet","images","undefined","excelImage","image","row","column","lastRow","lastColumn","push","field","headerText","textAlign","services","Toolbar","ExcelExport","PdfExport","Filter","Sort","GraphReport","SelectedDataParam","setSelectedDataParam","enqueueSnackbar","useSnackbar","unused_parameters","timestamp","rssi","power_good","battery","createdAt","updatedAt","lat","long","tamper","solar_good","temperature","created_at","DownloadOptions","useMemo","length","Object","keys","chartRef","screenRef","React","ParamLabel","setParamLabel","title","refresh","primaryyaxis","items","select","properties","variant","exportModule","export","c","primaryXAxis","valueType","labelFormat","labelRotation","isInversed","primaryYAxis","tooltip","enable","marginTop","window","innerWidth","LineSeries","Legend","Tooltip","DataLabel","Category","Export","DateTimeCategory","reverse","xName","yName","toUpperCase","animation","duration","delay","marker","visible","enableTooltip","useAppDispatch","useDispatch","useAppSelector","Header","useHistory","pathname","path","setpath","s","username","backgroundImage","src","alt","to","onClick","getNoiseLevelColorCode","noiseLevel","zone","currentHour","getHours","isDay","isNoiseLevelDanger","MapMarker","selected","parseFloat","laeqt","data-tip","backgroundColor","getANMSData","MapView","TagItem","MapInstance","setMapInstance","mapref","setData","SearchQuery","setSearchQuery","setFilteredTags","useCallback","debounce","toLowerCase","includes","getNewData","result","scrollIntoView","block","behavior","setCenter","lng","bootstrapURLKeys","key","defaultCenter","defaultZoom","resetBoundsOnResize","fullscreenControl","zoomControl","onGoogleApiLoaded","maps","overflowX","las","lcs","lzs","lceqt","lapeakt","lcpeakt","lzpeakt","MockSignIn","userId","password","Promise","resolve","reject","setTimeout","validUserPasswordCombinations","token","logInTime","toDateString","initialState","UserSlice","createSlice","reducers","login","action","payload","updateLogStatus","reset","actions","SignIn","useForm","register","handleSubmit","watch","errors","formState","dispatch","onSubmit","flex","minWidth","required","signinbutton","forwardRef","heading","fontFamily","margin","padding","display","justifyContent","logo","gridTemplateColumns","borderWidth","borderColor","borderStyle","justifySelf","location_id","head","borderRightWidth","lzeqt","App","setDevices","setanimate","setTotalData","setDownload","SelectedDataParameter","setSelectedDataParameter","loading","setLoading","loadDevices","res","response_data","is_enabled_ext","getHistoryData","start_time","end_time","index","box_id","total","PropsToPass","addEventListener","keyCode","componentRef","handlePrint","useReactToPrint","content","size","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","rootReducer","combineReducers","UserReducer","persistConfig","storage","persistedReducer","persistReducer","store","configureStore","reducer","persistor","persistStore","ReactDOM","render","StrictMode","maxSnack","anchorOrigin","vertical","horizontal","document","getElementById"],"mappings":"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","file":"static/js/main.2c0ced19.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"signinbutton\":\"signin_signinbutton__tfYmz\"};","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport qs from \"qs\";\r\n\r\nexport interface getHistoricalDataProps {\r\n location_id: string | number;\r\n start_time: string;\r\n end_time: string;\r\n}\r\n\r\nexport interface getHistoricalDataReturnItemType extends Object {\r\n id: number;\r\n dev_id: string;\r\n timestamp: string;\r\n las: string;\r\n lcs: string;\r\n lzs: string;\r\n laeqt: string;\r\n lceqt: string;\r\n lzeqt: string;\r\n lapeakt: string;\r\n lcpeakt: string;\r\n lzpeakt: string;\r\n rssi: number;\r\n power_good: boolean;\r\n battery: number;\r\n createdAt: string;\r\n updatedAt: string;\r\n lat: null;\r\n long: null;\r\n tamper: null;\r\n temperature: null;\r\n location: string;\r\n}\r\n\r\nexport interface getHistoricalDataReturnType {\r\n status: string;\r\n total: number;\r\n data: getHistoricalDataReturnItemType[];\r\n}\r\n\r\nexport const getHistoricalData = async (\r\n props: getHistoricalDataProps\r\n): Promise> => {\r\n const data = qs.stringify({ ...props });\r\n const config: AxiosRequestConfig = {\r\n method: \"post\",\r\n url: \"https://noisedata.wbpcb.gov.in:2443/anms/sens/get_historical_data\",\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n data: data,\r\n };\r\n const response: AxiosResponse = await axios(\r\n config\r\n )\r\n .then((r) => {\r\n console.log(\"Response from getHistoricalData: \", r.data);\r\n return r;\r\n })\r\n .catch((e: any) => {\r\n const err: AxiosError = e;\r\n console.log(\"Error in getting getHistoricalData: \", err.message);\r\n return e;\r\n });\r\n return response;\r\n};\r\n","import axios, { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\n\r\nexport interface getDeviceListReturnItemType {\r\n id: number;\r\n dev_id: string;\r\n location: string;\r\n box_id: string;\r\n street: string;\r\n zone: string;\r\n createdAt: string;\r\n updatedAt: string;\r\n lat: string;\r\n long: string;\r\n is_enabled_int: boolean;\r\n district: string | null;\r\n is_enabled_ext: boolean;\r\n laeqt: string;\r\n}\r\n\r\nexport interface getDeviceListReturnType {\r\n status: string;\r\n data: getDeviceListReturnItemType[];\r\n}\r\n\r\nexport const getDeviceList = async (): Promise<\r\n AxiosResponse\r\n> => {\r\n const config: AxiosRequestConfig = {\r\n method: \"GET\",\r\n url: \"https://noisedata.wbpcb.gov.in:2443/anms/sens/get_device_list\",\r\n };\r\n const response: AxiosResponse = await axios(config);\r\n return response;\r\n};\r\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\r\nimport { enableRipple } from \"@syncfusion/ej2-base\";\r\nimport {\r\n DropDownButtonComponent,\r\n ItemModel,\r\n} from \"@syncfusion/ej2-react-splitbuttons\";\r\nimport { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport {\r\n ColumnDirective,\r\n ColumnsDirective,\r\n Grid,\r\n GridComponent,\r\n ToolbarItems,\r\n ExcelExport,\r\n Inject,\r\n Toolbar,\r\n PdfExport,\r\n Filter,\r\n Sort,\r\n FilterSettingsModel,\r\n excelHeaderQueryCellInfo,\r\n} from \"@syncfusion/ej2-react-grids\";\r\n// import Select from \"react-select\";\r\nimport { ClickEventArgs } from \"@syncfusion/ej2-navigations\";\r\nimport moment from \"moment\";\r\nimport { IBaseComponent } from \"./types\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { RootState } from \"../store\";\r\nimport Select from \"react-select\";\r\nimport { wbpcb_base64 } from \"../util/logo_base64\";\r\nenableRipple(true);\r\n\r\nexport interface IHistoryDatagridComponent extends IBaseComponent {\r\n rowIndexValue: React.MutableRefObject;\r\n onPdfExport: any;\r\n}\r\nexport const HistoryDatagrid: React.FC = ({\r\n Devices,\r\n SelectedDevice,\r\n setSelectedDevice,\r\n StartDate,\r\n setStartDate,\r\n EndDate,\r\n setEndDate,\r\n Data,\r\n TotalData,\r\n rowIndexValue,\r\n onPdfExport,\r\n}) => {\r\n const gridref = useRef(null);\r\n const toolbar: ToolbarItems[] = [\r\n \"ExcelExport\",\r\n \"PdfExport\",\r\n // \"CsvExport\",\r\n \"Search\",\r\n // \"Print\",\r\n ];\r\n const filterOptions: FilterSettingsModel = {\r\n type: \"Excel\",\r\n };\r\n const excelHeaderQueryCellInfo = (args: ClickEventArgs) => {\r\n if (\r\n (gridref.current?.excelExportModule as any).sheet.images === null ||\r\n (gridref.current?.excelExportModule as any).sheet.images === undefined\r\n ) {\r\n (gridref.current?.excelExportModule as any).sheet.images = [];\r\n }\r\n const excelImage: any = {\r\n image: wbpcb_base64,\r\n row: 1,\r\n column: 1,\r\n lastRow: 2,\r\n lastColumn: 3,\r\n };\r\n (gridref.current?.excelExportModule as any).sheet.images.push(excelImage);\r\n };\r\n const toolbarClick = (args: ClickEventArgs | undefined) => {\r\n if (gridref.current === null || !args) return;\r\n switch (args.item.text) {\r\n case \"Excel Export\":\r\n rowIndexValue.current = 0;\r\n gridref.current.excelExport({\r\n fileName: `${SelectedDevice?.location},${\r\n SelectedDevice?.street\r\n }-${moment(StartDate).format(\"ll\")}-${moment(EndDate).format(\r\n \"ll\"\r\n )}.xlsx`,\r\n header: {\r\n headerRows: 7,\r\n rows: [\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: \"WBPCB\",\r\n style: {\r\n backColor: \"#cde6f7\",\r\n fontColor: \"#000000\",\r\n fontSize: 18,\r\n hAlign: \"Right\",\r\n bold: true,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: \"West Bengal Pollution Control Board\",\r\n style: {\r\n backColor: \"#cde6f7\",\r\n fontColor: \"#000000\",\r\n fontSize: 16,\r\n hAlign: \"Right\",\r\n bold: true,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: `Device: ${\r\n DropDownListItems.find(\r\n (i) => i.value === SelectedDevice?.dev_id\r\n )?.label\r\n }`,\r\n style: {\r\n fontSize: 12,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value:\r\n \"Parameter: LA(s) |\tLC(s) |\tLZ(s) |\tLA(eqt) |\tLC(eqt) |\tLZ(eqt) |\tLA(peakt) |\tLC(peakt) |\tLZ(peakt)\",\r\n style: {\r\n fontSize: 12,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: `From ${moment(StartDate).format(\r\n \"DD/MM/YYYY hh:mm:ss\"\r\n )} To ${moment(EndDate).format(\"DD/MM/YYYY hh:mm:ss\")}`,\r\n style: {\r\n fontSize: 12,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: `Downloaded on ${moment().format(\r\n \"DD-MM-YYYY hh:mm:ss A\"\r\n )}`,\r\n style: {\r\n fontSize: 12,\r\n },\r\n },\r\n ],\r\n },\r\n {\r\n cells: [\r\n {\r\n colSpan: 12,\r\n value: DropDownListItems.find(\r\n (i) => i.value === SelectedDevice?.dev_id\r\n )?.label,\r\n style: {\r\n backColor: \"#204FAC\",\r\n fontColor: \"#ffffff\",\r\n fontSize: 13,\r\n hAlign: \"Center\",\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n });\r\n break;\r\n case \"PDF Export\":\r\n rowIndexValue.current = 0;\r\n onPdfExport(Data);\r\n //@ts-ignore\r\n // return ;\r\n // gridRef.current.pdfExport({\r\n // fileName: `${SelectedDevice?.location},${\r\n // SelectedDevice?.street\r\n // }-${moment(StartDate).format(\"ll\")}-${moment(EndDate).format(\r\n // \"ll\"\r\n // )}.pdf`,\r\n // theme: {\r\n // header: {\r\n // fontSize: 12,\r\n // bold: true,\r\n // },\r\n // record: {\r\n // fontSize: 11,\r\n // },\r\n // },\r\n // pageOrientation: \"Landscape\",\r\n // // header: {\r\n // // contents: [\r\n // // {\r\n // // type: \"Text\",\r\n // // value: `Device Location: ${SelectedDevice?.location}, ${\r\n // // SelectedDevice?.street\r\n // // } | Device Id: ${SelectedDevice?.dev_id} | Start Date: ${moment(\r\n // // StartDate\r\n // // ).format(\"ll\")} | EndDate: ${moment(EndDate).format(\"ll\")}`,\r\n // // },\r\n // // ],\r\n // // },\r\n // // footer: {\r\n // // contents: [\r\n // // {\r\n // // type: \"PageNumber\",\r\n // // pageNumberType: \"Arabic\",\r\n // // },\r\n // // ],\r\n // // },\r\n // });\r\n\r\n break;\r\n case \"CSV Export\":\r\n rowIndexValue.current = 0;\r\n gridref.current.csvExport({\r\n fileName: `${SelectedDevice?.location},${\r\n SelectedDevice?.street\r\n }-${moment(StartDate).format(\"ll\")}-${moment(EndDate).format(\r\n \"ll\"\r\n )}.csv`,\r\n });\r\n break;\r\n }\r\n };\r\n const [district, setDistrict] = useState([]);\r\n const [selectedDistrict, setSelectedDistrict] = useState({\r\n label: \"North 24 Pgs.\",\r\n value: \"North 24 Pgs.\",\r\n });\r\n const [DropDownListItems, setDropDownListItems] = useState([]);\r\n\r\n // const DropDownListItems: any[] = useMemo(\r\n // () =>\r\n // Devices.map((d) => {\r\n // const item: any = {\r\n // label: `${d.location}, ${d.street}`,\r\n // value: d.dev_id,\r\n // };\r\n // return item;\r\n // }),\r\n // [Devices]\r\n // );\r\n const { state } = useSelector((state: RootState) => state.user);\r\n\r\n const customStyles = {\r\n control: (provided: any, state: any) => ({\r\n ...provided,\r\n // This line disable the blue border\r\n\r\n border: state.isFocused ? \"1px solid #acacac\" : \"1px solid #acacac\",\r\n boxShadow: state.isFocused ? 0 : 0,\r\n \"&:hover\": {\r\n boxShadow: state.isFocused ? 0 : 0,\r\n },\r\n }),\r\n };\r\n\r\n useEffect(() => {\r\n const filterdData = Devices?.filter(\r\n (k) => k.district === selectedDistrict?.value\r\n );\r\n\r\n const deviceOptionArray = filterdData?.map((item) => ({\r\n value: item.dev_id,\r\n label: `${item.location}, ${item.street}`,\r\n }));\r\n\r\n setDropDownListItems(deviceOptionArray);\r\n }, [selectedDistrict, Devices]);\r\n\r\n useEffect(() => {\r\n const districtOptionArray = Devices?.map((item) => ({\r\n value: item.district,\r\n label: item.district,\r\n }));\r\n\r\n setDistrict(\r\n //@ts-ignore\r\n [...new Set(districtOptionArray.map((a) => JSON.stringify(a)))].map((a) =>\r\n JSON.parse(a)\r\n )\r\n );\r\n }, [Devices]);\r\n // if (state !== \"loggedIn\") return ;\r\n return (\r\n
\r\n
\r\n {\r\n setSelectedDistrict(e);\r\n }}\r\n options={district}\r\n />\r\n i.value === SelectedDevice?.dev_id)\r\n ?.label\r\n }\r\n onChange={(e: any) => {\r\n setSelectedDevice(Devices.find((d) => d.dev_id === e.value));\r\n }}\r\n options={DropDownListItems}\r\n />\r\n
\r\n
\r\n {\r\n setStartDate(new Date(e.value));\r\n }}\r\n />\r\n {\r\n setEndDate(new Date(e.value));\r\n }}\r\n />\r\n
\r\n
\r\n
Showing {TotalData} rows
\r\n
\r\n \r\n (gridref.current = g)}\r\n toolbar={toolbar}\r\n filterSettings={filterOptions}\r\n toolbarClick={toolbarClick}\r\n allowExcelExport\r\n allowPdfExport\r\n allowFiltering\r\n allowSorting\r\n showColumnMenu={false}\r\n enableAltRow\r\n dataBound={(e) => {\r\n rowIndexValue.current = 0;\r\n }}\r\n beforeDataBound={(e) => {\r\n rowIndexValue.current = 0;\r\n }}\r\n // @ts-ignore\r\n excelHeaderQueryCellInfo={excelHeaderQueryCellInfo}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n );\r\n};\r\n","export const wbpcb_base64 =\r\n \"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\";\r\n","import { DatePickerComponent } from \"@syncfusion/ej2-react-calendars\";\r\nimport {\r\n DropDownButtonComponent,\r\n ItemModel,\r\n} from \"@syncfusion/ej2-react-splitbuttons\";\r\nimport { enableRipple } from \"@syncfusion/ej2-base\";\r\nimport React, { useMemo, useRef, useState } from \"react\";\r\nimport { getHistoricalDataReturnItemType } from \"../api\";\r\nimport {\r\n Category,\r\n ChartComponent,\r\n DataLabel,\r\n LineSeries,\r\n Legend,\r\n Tooltip,\r\n Inject,\r\n SeriesCollectionDirective,\r\n SeriesDirective,\r\n DateTimeCategory,\r\n Export,\r\n} from \"@syncfusion/ej2-react-charts\";\r\nimport { IBaseComponent } from \"./types\";\r\nimport { useSnackbar } from \"notistack\";\r\nimport moment from \"moment\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { RootState } from \"../store\";\r\nimport { CommandColumnRenderer } from \"@syncfusion/ej2-react-grids\";\r\nimport Select from \"react-select\";\r\n\r\nexport interface IGraphReportComponent extends IBaseComponent {\r\n SelectedDataParam: string | undefined;\r\n setSelectedDataParam: React.Dispatch<\r\n React.SetStateAction\r\n >;\r\n}\r\nenableRipple(true);\r\nexport const GraphReport: React.FC = ({\r\n Devices,\r\n SelectedDevice,\r\n setSelectedDevice,\r\n StartDate,\r\n setStartDate,\r\n EndDate,\r\n setEndDate,\r\n Data,\r\n SelectedDataParam,\r\n setSelectedDataParam,\r\n TotalData,\r\n}) => {\r\n const { enqueueSnackbar } = useSnackbar();\r\n const unused_parameters = {\r\n id: null,\r\n dev_id: null,\r\n timestamp: null,\r\n rssi: null,\r\n power_good: null,\r\n battery: null,\r\n createdAt: null,\r\n updatedAt: null,\r\n lat: null,\r\n long: null,\r\n tamper: null,\r\n solar_good: null,\r\n temperature: null,\r\n location: null,\r\n created_at: null,\r\n };\r\n\r\n const DeviceDataParameters = useMemo(() => {\r\n if (Data.length === 0) {\r\n const DeviceParams: ItemModel[] = [];\r\n return DeviceParams;\r\n }\r\n let item: getHistoricalDataReturnItemType = Data[0];\r\n return Object.keys(item)\r\n .map(\r\n (i) =>\r\n ({\r\n text: i,\r\n id: i,\r\n } as ItemModel)\r\n )\r\n .filter((i) => !(!i?.id || i.id in unused_parameters));\r\n }, [Data]);\r\n\r\n const params = [\r\n { text: \"LA(s)\", id: \"las\" },\r\n { text: \"LC(s)\", id: \"lcs\" },\r\n { text: \"LZ(s)\", id: \"lzs\" },\r\n { text: \"LA(eqt)\", id: \"laeqt\" },\r\n { text: \"LC(eqt)\", id: \"lceqt\" },\r\n { text: \"LZ(eqt)\", id: \"lzeqt\" },\r\n { text: \"LA(peakt)\", id: \"lapeakt\" },\r\n { text: \"LC(peakt)\", id: \"lcpeakt\" },\r\n { text: \"LZ(peakt)\", id: \"lzpeakt\" },\r\n ];\r\n\r\n // const DeviceDropDownListItems: any[] = useMemo(\r\n // () =>\r\n // Devices.map((d) => {\r\n // const item: any = {\r\n // label: `${d.location}, ${d.street}`,\r\n // value: d.dev_id,\r\n // };\r\n // return item;\r\n // }),\r\n // [Devices]\r\n // );\r\n const DownloadOptions: ItemModel[] = useMemo(\r\n () =>\r\n [\"JPEG\", \"PNG\", \"PDF\", \"SVG\"].map(\r\n (i) =>\r\n ({\r\n text: i,\r\n id: i,\r\n } as ItemModel)\r\n ),\r\n []\r\n );\r\n const chartRef = useRef(null);\r\n const screenRef = useRef(null);\r\n const { state } = useSelector((state: RootState) => state.user);\r\n const [ParamLabel, setParamLabel] = React.useState(\"LA(eqt)\");\r\n const [district, setDistrict] = useState([]);\r\n const [selectedDistrict, setSelectedDistrict] = useState({\r\n label: \"North 24 Pgs.\",\r\n value: \"North 24 Pgs.\",\r\n });\r\n const [DropDownListItems, setDropDownListItems] = useState([]);\r\n\r\n const customStyles = {\r\n control: (provided: any, state: any) => ({\r\n ...provided,\r\n // This line disable the blue border\r\n\r\n border: state.isFocused ? \"1px solid #acacac\" : \"1px solid #acacac\",\r\n boxShadow: state.isFocused ? 0 : 0,\r\n \"&:hover\": {\r\n boxShadow: state.isFocused ? 0 : 0,\r\n },\r\n }),\r\n };\r\n\r\n React.useEffect(() => {\r\n if (chartRef.current) {\r\n chartRef.current.title = `ANMS ${\r\n DropDownListItems.find((i) => i.value === SelectedDevice?.dev_id)?.label\r\n } ${moment(StartDate).format(\"MM/DD/YYYY hh:mm:ss a\")} To ${moment(\r\n EndDate\r\n ).format(\"MM/DD/YYYY hh:mm:ss a\")}`;\r\n chartRef.current?.refresh();\r\n }\r\n }, [SelectedDataParam, SelectedDevice, StartDate, EndDate]);\r\n React.useEffect(() => {\r\n const filterdData = Devices?.filter(\r\n (k) => k.district === selectedDistrict?.value\r\n );\r\n\r\n const deviceOptionArray = filterdData?.map((item) => ({\r\n value: item.dev_id,\r\n label: `${item.location}, ${item.street}`,\r\n }));\r\n\r\n setDropDownListItems(deviceOptionArray);\r\n }, [selectedDistrict, Devices]);\r\n\r\n React.useEffect(() => {\r\n const districtOptionArray = Devices?.map((item) => ({\r\n value: item.district,\r\n label: item.district,\r\n }));\r\n\r\n setDistrict(\r\n //@ts-ignore\r\n [...new Set(districtOptionArray.map((a) => JSON.stringify(a)))].map((a) =>\r\n JSON.parse(a)\r\n )\r\n );\r\n }, [Devices]);\r\n\r\n // if (state !== \"loggedIn\") return ;\r\n\r\n const primaryyaxis = {\r\n title: ParamLabel,\r\n };\r\n return (\r\n (screenRef.current = r)}\r\n >\r\n
\r\n {\r\n setSelectedDistrict(e);\r\n }}\r\n options={district}\r\n />\r\n i.value === SelectedDevice?.dev_id)\r\n ?.label\r\n }\r\n onChange={(e: any) => {\r\n setSelectedDevice(Devices.find((d) => d.dev_id === e.value));\r\n }}\r\n options={DropDownListItems}\r\n />\r\n\r\n
\r\n
\r\n {\r\n setStartDate(new Date(e.value));\r\n }}\r\n />\r\n {\r\n setEndDate(new Date(e.value));\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n setSelectedDataParam(e.item.properties.id);\r\n setParamLabel(e.item.text);\r\n }}\r\n >\r\n {typeof SelectedDataParam === \"undefined\"\r\n ? \"Select Data Parameter\"\r\n : ParamLabel}\r\n \r\n
\r\n Showing {TotalData} points\r\n
\r\n
\r\n {\r\n console.log(\"Downloading \", e.item.properties.id);\r\n if (chartRef.current === null)\r\n enqueueSnackbar(`Chart is not loaded yet.`, {\r\n variant: \"error\",\r\n });\r\n else {\r\n chartRef.current.exportModule.export(\r\n e.item.properties.id,\r\n `${SelectedDevice?.location},${\r\n SelectedDevice?.street\r\n }-${moment(StartDate).format(\"ll\")}-${moment(EndDate).format(\r\n \"ll\"\r\n )}`\r\n );\r\n }\r\n }}\r\n >\r\n Download\r\n \r\n
\r\n
\r\n
\r\n {Data.length > 0 && !!SelectedDataParam && (\r\n (chartRef.current = c)}\r\n primaryXAxis={{\r\n title: `Date-Time`,\r\n valueType: \"DateTimeCategory\",\r\n labelFormat: \"d/M/y H:m\",\r\n labelRotation: 270,\r\n isInversed: true,\r\n }}\r\n primaryYAxis={primaryyaxis}\r\n tooltip={{ enable: true }}\r\n style={{\r\n marginTop: 20,\r\n }}\r\n width={`${window.innerWidth}`}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n","import { TypedUseSelectorHook, useDispatch, useSelector } from \"react-redux\";\r\nimport { AppDispatch, RootState } from \"../store\";\r\n\r\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\r\nexport const useAppDispatch = () => useDispatch();\r\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\r\n","import React, { useState } from \"react\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { reset } from \"../slices/user.slice\";\r\nimport { useAppDispatch, useAppSelector } from \"../util/hooks\";\r\n\r\nexport const Header = () => {\r\n const { location } = useHistory();\r\n const [path, setpath] = useState(location.pathname);\r\n const dispatch = useAppDispatch();\r\n const { username, state } = useAppSelector((s) => s.user);\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n CONTINUOUS NOISE MONITORING SYSTEM\r\n
\r\n
\r\n setpath(\"/map\")}\r\n className={`text-white border-2 p-2 font-sans text-xs hover:bg-white hover:text-blue-500 whitespace-nowrap ${\r\n path === \"/map\" ? \"border-b-8\" : \"text-white bg-transparent\"\r\n }`}\r\n >\r\n Map View\r\n \r\n setpath(\"/history\")}\r\n className={`text-white border-2 p-2 font-sans text-xs hover:bg-white hover:text-blue-500 ${\r\n path === \"/history\" ? \"border-b-8\" : \"text-white bg-transparent\"\r\n }`}\r\n >\r\n Grid\r\n \r\n setpath(\"/graph\")}\r\n className={`text-white border-2 p-2 font-sans text-xs hover:bg-white hover:text-blue-500 ${\r\n path === \"/graph\" ? \"border-b-8\" : \"text-white bg-transparent\"\r\n }`}\r\n >\r\n Charts\r\n \r\n
\r\n \r\n );\r\n};\r\n","export type NoiseLevelZoneType =\r\n | \"Commercial\"\r\n | \"Industrial zone\"\r\n | \"Residential zone\"\r\n | \"Silence zone\";\r\nexport const isNoiseLevelDanger = (\r\n noiseLevel: number,\r\n zone: NoiseLevelZoneType\r\n) => {\r\n const currentHour = new Date().getHours();\r\n const isDay = currentHour < 22 && currentHour >= 6;\r\n switch (zone) {\r\n case \"Commercial\":\r\n if (isDay) return noiseLevel < 65;\r\n return noiseLevel < 55;\r\n case \"Industrial zone\":\r\n if (isDay) return noiseLevel < 75;\r\n return noiseLevel < 70;\r\n case \"Residential zone\":\r\n if (isDay) return noiseLevel < 55;\r\n return noiseLevel < 45;\r\n case \"Silence zone\":\r\n if (isDay) return noiseLevel < 50;\r\n return noiseLevel < 40;\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const getNoiseLevelColorCode = (\r\n noiseLevel: number,\r\n zone: NoiseLevelZoneType\r\n) => {\r\n const isOk = isNoiseLevelDanger(noiseLevel, zone);\r\n return isOk ? \"#1d9927\" : \"red\";\r\n};\r\n","import React from \"react\";\r\nimport { getDeviceListReturnItemType } from \"../api\";\r\nimport {\r\n getNoiseLevelColorCode,\r\n NoiseLevelZoneType,\r\n} from \"../util/noise_color_getter\";\r\nimport ReactTooltip from \"react-tooltip\";\r\nexport interface MapMarker_props {\r\n lat: number;\r\n lng: number;\r\n text: string;\r\n data: getDeviceListReturnItemType;\r\n selected: boolean;\r\n onClick: () => void;\r\n}\r\nexport const MapMarker: React.FC = ({\r\n selected,\r\n data,\r\n onClick,\r\n}) => {\r\n const color = getNoiseLevelColorCode(\r\n parseFloat(data.laeqt),\r\n data.zone as NoiseLevelZoneType\r\n );\r\n\r\n return (\r\n <>\r\n
\r\n

{data.laeqt}

\r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n","import axios, { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport qs from \"qs\";\r\n\r\nexport interface getANMSData_Type {\r\n id: number;\r\n dev_id: string;\r\n timestamp: Date;\r\n las: string;\r\n lcs: string;\r\n lzs: string;\r\n laeqt: string;\r\n lceqt: string;\r\n lzeqt: string;\r\n lapeakt: string;\r\n lcpeakt: string;\r\n lzpeakt: string;\r\n rssi: number;\r\n power_good: boolean;\r\n battery: number;\r\n createdAt: Date;\r\n updatedAt: Date;\r\n lat?: number;\r\n long?: number;\r\n tamper?: boolean;\r\n temperature?: number;\r\n solar_good?: boolean;\r\n}\r\n\r\nexport interface getANMSData_Returns {\r\n status: string;\r\n data: getANMSData_Type;\r\n}\r\n\r\nexport const getANMSData = async (dev_id: string) => {\r\n const data = qs.stringify({\r\n dev_id: dev_id,\r\n });\r\n const config: AxiosRequestConfig = {\r\n method: \"post\",\r\n url: \"https://noisedata.wbpcb.gov.in:2443/anms/sens/get_latest_data\",\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\",\r\n },\r\n data: data,\r\n };\r\n const response: AxiosResponse = await axios(config);\r\n return response;\r\n};\r\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport { IBaseComponent } from \"./types\";\r\nimport { getDeviceListReturnItemType } from \"../api\";\r\nimport debounce from \"lodash.debounce\";\r\nimport { FaTimesCircle, FaTimes } from \"react-icons/fa\";\r\nimport {\r\n getNoiseLevelColorCode,\r\n NoiseLevelZoneType,\r\n} from \"../util/noise_color_getter\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../store\";\r\nimport { MapMarker } from \"../components/mapmarker\";\r\nimport moment from \"moment\";\r\nimport { getANMSData } from \"../api/getANMSData\";\r\nimport Select from \"react-select\";\r\n\r\nexport const MapView: React.FC = ({\r\n Devices,\r\n setSelectedDevice,\r\n SelectedDevice,\r\n}) => {\r\n const TagItem = useRef(null);\r\n const mapContainerRef = useRef(null);\r\n const [MapInstance, setMapInstance] =\r\n React.useState | null>(null);\r\n const mapref = useRef(null);\r\n const [data, setData] = useState();\r\n const [SearchQuery, setSearchQuery] = useState(\"\");\r\n const [district, setDistrict] = useState([]);\r\n const [selectedDistrict, setSelectedDistrict] = useState({\r\n label: \"North 24 Pgs.\",\r\n value: \"North 24 Pgs.\",\r\n });\r\n const [DropDownListItems, setDropDownListItems] = useState([]);\r\n const [FilteredTags, setFilteredTags] =\r\n useState(Devices);\r\n const handleSearch = useCallback(\r\n debounce(() => {\r\n if (SearchQuery === \"\") return Devices;\r\n setFilteredTags(\r\n Devices.filter((i) =>\r\n JSON.stringify(i).toLowerCase().includes(SearchQuery)\r\n )\r\n );\r\n }, 1000),\r\n [SearchQuery, Devices]\r\n );\r\n useEffect(() => {\r\n setFilteredTags(Devices);\r\n setSearchQuery(\"\");\r\n }, [Devices]);\r\n\r\n const getNewData = async () => {\r\n if (!!SelectedDevice?.dev_id) {\r\n const result = await getANMSData(SelectedDevice?.dev_id);\r\n setData(result.data.data);\r\n }\r\n };\r\n\r\n const customStyles = {\r\n control: (provided: any, state: any) => ({\r\n ...provided,\r\n // This line disable the blue border\r\n\r\n border: state.isFocused ? \"1px solid #acacac\" : \"1px solid #acacac\",\r\n boxShadow: state.isFocused ? 0 : 0,\r\n \"&:hover\": {\r\n boxShadow: state.isFocused ? 0 : 0,\r\n },\r\n }),\r\n };\r\n useEffect(() => {\r\n if (TagItem.current !== null)\r\n TagItem.current.scrollIntoView({ block: \"nearest\", behavior: \"smooth\" });\r\n if (!!SelectedDevice && !!MapInstance)\r\n MapInstance.setCenter({\r\n lat: parseFloat(SelectedDevice.lat),\r\n lng: parseFloat(SelectedDevice.long),\r\n });\r\n getNewData();\r\n }, [SelectedDevice, MapInstance]);\r\n const { state } = useSelector((state: RootState) => state.user);\r\n // const DropDownListItems: any[] = React.useMemo(\r\n // () =>\r\n // Devices.map((d) => {\r\n // const item: any = {\r\n // label: `${d.location}, ${d.street}`,\r\n // value: d.dev_id,\r\n // };\r\n // return item;\r\n // }),\r\n // [Devices]\r\n // );\r\n\r\n useEffect(() => {\r\n const filterdData = Devices?.filter(\r\n (k) => k.district === selectedDistrict?.value\r\n );\r\n\r\n const deviceOptionArray = filterdData?.map((item) => ({\r\n value: item.dev_id,\r\n label: `${item.location}, ${item.street}`,\r\n }));\r\n\r\n setDropDownListItems(deviceOptionArray);\r\n }, [selectedDistrict, Devices]);\r\n\r\n useEffect(() => {\r\n const districtOptionArray = Devices?.map((item) => ({\r\n value: item.district,\r\n label: item.district,\r\n }));\r\n\r\n setDistrict(\r\n //@ts-ignore\r\n [...new Set(districtOptionArray.map((a) => JSON.stringify(a)))].map((a) =>\r\n JSON.parse(a)\r\n )\r\n );\r\n }, [Devices]);\r\n\r\n return (\r\n
\r\n {\r\n mapref.current = ref;\r\n setMapInstance(map);\r\n }}\r\n >\r\n {Devices.map((d) => (\r\n {\r\n setSelectedDevice(d);\r\n }}\r\n />\r\n ))}\r\n \r\n {!!SelectedDevice ? (\r\n \r\n \r\n {\r\n setSelectedDistrict(e);\r\n }}\r\n options={district}\r\n />\r\n {\r\n setSelectedDevice(Devices.find((d) => d.dev_id === e.value));\r\n }}\r\n options={DropDownListItems}\r\n />\r\n
\r\n
Noise Level
\r\n
\r\n {SelectedDevice.laeqt} db(A)\r\n
\r\n
\r\n
\r\n
Device
\r\n
\r\n {SelectedDevice.location}\r\n
\r\n
\r\n
\r\n
Zone
\r\n
\r\n {SelectedDevice.zone}\r\n
\r\n
\r\n
\r\n
District
\r\n
\r\n {SelectedDevice.district}\r\n
\r\n
\r\n
\r\n
Timestamp
\r\n
\r\n {moment(data?.created_at).format(\"MMMM Do YYYY, h:mm a\")}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Parameter\r\n \r\n Value\r\n
LAs{data?.las}
LCs{data?.lcs}
LZs{data?.lzs}
LAeqt{data?.laeqt}
LCeqt{data?.lceqt}
LZeqt{data?.lceqt}
LApeakt{data?.lapeakt}
LCpeakt{data?.lcpeakt}
LZpeakt{data?.lzpeakt}
\r\n
\r\n\r\n {/* New Added By Dipprokash */}\r\n\r\n
\r\n
\r\n

\r\n National Noise Standard\r\n

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Noise Limit\r\n \r\n DAY (6 AM - 10 PM) in dB(A)\r\n \r\n NIGHT (10 PM - 6 AM) in dB(A)\r\n
Industrial7570
Commercial6555
Residential5545
Silence5040
\r\n
\r\n
\r\n
\r\n \r\n ) : null}\r\n \r\n );\r\n};\r\n\r\nexport default MapView;\r\n","import { UserInputCredentials, UserState } from \"../../slices/user.slice\";\r\n\r\nexport const MockSignIn = ({\r\n userId,\r\n password,\r\n}: UserInputCredentials): Promise>> => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n const result = validUserPasswordCombinations.find(\r\n (i) => i.userId === userId\r\n );\r\n if (typeof result === \"undefined\")\r\n reject(\"User Id does not exist. Please check or contact admin.\");\r\n else if (result.password === password)\r\n resolve({\r\n userId: result.userId,\r\n username: result.username,\r\n token: result.token,\r\n logInTime: new Date().toDateString(),\r\n });\r\n else reject(\"Password does not match. Please contact admin.\");\r\n }, 1000);\r\n });\r\n};\r\n\r\nexport interface IMockValidUserPasswordCombinations\r\n extends UserInputCredentials {\r\n username: string;\r\n token: string;\r\n}\r\n\r\nexport const validUserPasswordCombinations: IMockValidUserPasswordCombinations[] =\r\n [\r\n {\r\n userId: \"admin@wbpcb.gov.in\",\r\n username: \"WBPCB Administrater\",\r\n password: \"Paribesh@2021\",\r\n token: \"83ujdsjb2ie0qad';scKJDHFvLDNVR(FIEFflel;/ewfef\",\r\n },\r\n {\r\n userId: \"admin@distronix.in\",\r\n username: \"Distronix Administrater\",\r\n password: \"123456\",\r\n token: \"83ujdsjb2ie0qad';scKJDHFvLDNVR(FIEFflel;/ewfef\",\r\n },\r\n ];\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\nexport type logState = \"loggedIn\" | \"guest\" | \"loggingIn\";\r\n\r\nexport type UserInputCredentials = {\r\n userId: string;\r\n password: string;\r\n};\r\n\r\nexport interface UserState {\r\n userId?: string;\r\n username?: string;\r\n token?: string;\r\n state: logState;\r\n logInTime?: string;\r\n}\r\n\r\nexport const initialState: UserState = {\r\n state: \"guest\",\r\n};\r\n\r\nexport const UserSlice = createSlice({\r\n name: \"user\",\r\n initialState,\r\n reducers: {\r\n login: (\r\n state: UserState,\r\n action: PayloadAction, \"state\">>\r\n ) => {\r\n state.userId = action.payload.userId;\r\n state.username = action.payload.username;\r\n state.token = action.payload.token;\r\n state.logInTime = action.payload.logInTime;\r\n state.state = \"loggedIn\";\r\n return state;\r\n },\r\n updateLogStatus: (state: UserState, action: PayloadAction) => {\r\n state.state = action.payload;\r\n return state;\r\n },\r\n reset: (state: UserState, action: PayloadAction) => {\r\n state = initialState;\r\n return state;\r\n },\r\n },\r\n});\r\n\r\nexport const { login, reset, updateLogStatus } = UserSlice.actions;\r\nexport default UserSlice.reducer;\r\n","import React from \"react\";\r\nimport { SubmitHandler, useForm } from \"react-hook-form\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { Redirect } from \"react-router\";\r\nimport { MockSignIn } from \"../api/mocks/signin\";\r\nimport { UserInputCredentials, login, updateLogStatus } from \"../slices/user.slice\";\r\nimport { RootState } from \"../store\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport { useAppDispatch } from \"../util/hooks\";\r\nimport styles from './signin.module.css';\r\nimport { IBaseComponent } from \"./types\";\r\nimport { MapMarker } from \"../components/mapmarker\";\r\nexport const SignIn: React.FC = ({ Devices }) => {\r\n const {\r\n register,\r\n handleSubmit,\r\n watch,\r\n formState: { errors },\r\n } = useForm();\r\n const { state } = useSelector((state: RootState) => state.user);\r\n const dispatch = useAppDispatch();\r\n console.log(watch(\"userId\"));\r\n const onSubmit: SubmitHandler = async (data) => {\r\n await MockSignIn(data)\r\n .then((r) => {\r\n dispatch(login(r));\r\n })\r\n .catch((e) => {\r\n console.log(e);\r\n dispatch(updateLogStatus(\"guest\"));\r\n });\r\n };\r\n if (state === \"loggedIn\") return ;\r\n return (\r\n
\r\n \r\n {Devices.map((d) => (\r\n {}}\r\n />\r\n ))}\r\n \r\n \r\n
\r\n
User ID
\r\n \r\n \r\n {!!errors.userId ? errors.userId.message : \"\"}\r\n \r\n
\r\n
\r\n
Password
\r\n \r\n \r\n {!!errors.password ? errors.password.message : \"\"}\r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n","export default __webpack_public_path__ + \"static/media/logo1.6cba5343.jpeg\";","// import \" style={{borderRightWidth: '.5px'}}./styles.css\";\r\n// import Html from \" style={{borderRightWidth: '.5px'}}react-pdf-html\";\r\n// import ExportPdfComponent from \" style={{borderRightWidth: '.5px'}}./ExportPdfComponent\";\r\n// import \" style={{borderRightWidth: '.5px'}}../node_modules/bootstrap/dist/css/bootstrap.min.css\";\r\nimport { Document, Image, Page, Text, } from \"@react-pdf/renderer\";\r\nimport React, { useState } from \"react\";\r\n// import { Document, Page } from \" style={{borderRightWidth: '.5px'}}react-pdf\";\r\n// import { PDFdiver } from \" style={{borderRightWidth: '.5px'}}@react-pdf/renderer\";\r\n// import MyDocument from \" style={{borderRightWidth: '.5px'}}./MyDocument\";\r\n// import html2canvas from \" style={{borderRightWidth: '.5px'}}html2canvas\";\r\n// import jsPDF from \" style={{borderRightWidth: '.5px'}}jspdf\";\r\nimport logo from \"../assets/logo1.jpeg\";\r\n\r\ninterface Props {\r\n data: any;\r\n}\r\n\r\nconst PdfExport = React.forwardRef((props: Props,ref: any) => {\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n\r\n // function onDocumentLoadSuccess({ numPages }: any) {\r\n // setNumPages(numPages);\r\n // }\r\n const heading = ['Sl no.','TimeStamp','LA(s)','LC(s)','LZ(s)','LA(eqt)','LC(eqt)','LZ(eqt)','LA(peakt)','LC(peakt)','LZ(peakt)']\r\n console.log(props?.data)\r\n// const printDocument=()=> {\r\n// const input: any = document.getElementById(\"divToPrint\");\r\n// html2canvas(input).then((canvas: any) => {\r\n// const imgData = canvas.toDataURL(\"image/png\");\r\n// const pdf = new jsPDF();\r\n// pdf.addImage(imgData, \" style={{borderRightWidth: '.5px'}}JPEG\", 0, 0, 0, 0);\r\n// // pdf.output('dataurlnewwindow');\r\n// pdf.save(\"download.pdf\");\r\n// });\r\n// };\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n

\r\n REAL TIME NOISE MONITORING NETWORK REPORT\r\n

\r\n
\r\n\r\n
\r\n
\r\n STATION NAME\r\n
\r\n
\r\n {props?.data[0]?.location}\r\n
\r\n
\r\n LATITUDE\r\n
\r\n
\r\n {props?.data[0]?.lat}\r\n
\r\n
\r\n LONGITUDE\r\n
\r\n
\r\n {props?.data[0]?.long}\r\n
\r\n
\r\n STATION ID\r\n
\r\n
\r\n {props?.data[0]?.location_id}\r\n
\r\n
\r\n START DATE TIME\r\n
\r\n
\r\n {props?.data[props?.data?.length-1]?.timestamp}\r\n
\r\n
\r\n END DATE TIME\r\n
\r\n
\r\n {props?.data[0]?.timestamp}\r\n
\r\n
\r\n PARAMTERS\r\n
\r\n
\r\n {heading.map((item:any)=> {\r\n return(\r\n (item !== ('Sl no.') && item !== ('TimeStamp')) &&
{`${item}`}\r\n
\r\n
\r\n )}\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {heading.map((head:any)=>{\r\n return head !== 'TimeStamp' ? :\r\n \r\n }\r\n )}\r\n \r\n \r\n {props?.data?.map((item:any)=>{\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n
{head}{head}
{item?.id}{item?.timestamp}{item?.las}{item?.lcs}{item?.lzs}{item?.laeqt}{item?.lceqt}{item?.lzeqt}{item?.lapeakt}{item?.lcpeakt}{item?.lzpeakt}
\r\n
\r\n
\r\n )\r\n});\r\n\r\nexport default PdfExport;\r\n","import React, {\r\n createRef,\r\n useCallback,\r\n useEffect,\r\n useRef,\r\n useState,\r\n} from \"react\";\r\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\";\r\nimport { GraphReport, HistoryDatagrid } from \"./pages\";\r\nimport { Header } from \"./components\";\r\nimport {\r\n getDeviceList,\r\n getDeviceListReturnItemType,\r\n getDeviceListReturnType,\r\n getHistoricalData,\r\n getHistoricalDataReturnItemType,\r\n getHistoricalDataReturnType,\r\n} from \"./api\";\r\nimport { IBaseComponent } from \"./pages/types\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport moment from \"moment\";\r\nimport MapView from \"./pages/mapview\";\r\nimport { SignIn } from \"./pages/signin\";\r\nimport PdfExport from \"./components/PdfExport\";\r\n// import html2canvas from \"html2canvas\";\r\n// import jsPDF, { Html2CanvasOptions } from \"jspdf\";\r\nimport { saveAs } from \"file-saver\";\r\nimport ReactPDF, {\r\n Document,\r\n Page,\r\n pdf,\r\n PDFDownloadLink,\r\n Text,\r\n View,\r\n} from \"@react-pdf/renderer\";\r\n//@ts-ignore\r\nimport Pdf from \"react-to-pdf\";\r\nimport { useReactToPrint } from \"react-to-print\";\r\nimport { VscLoading } from \"react-icons/vsc\";\r\n\r\nexport const App: React.FC = () => {\r\n const [Devices, setDevices] = useState([]);\r\n const [SelectedDevice, setSelectedDevice] =\r\n useState();\r\n const [StartDate, setStartDate] = useState(new Date());\r\n const [animate, setanimate] = useState(\"Overlay\");\r\n const [EndDate, setEndDate] = useState(new Date());\r\n const [Data, setData] = useState([]);\r\n const [TotalData, setTotalData] = useState(0);\r\n // const [SelectedDataParameter, setSelectedDataParameter] = useState();\r\n const [download, setDownload] = useState(false);\r\n const [SelectedDataParameter, setSelectedDataParameter] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const loadDevices = useCallback(async () => {\r\n // enqueueSnackbar(`Fetching Device List.`, {\r\n // variant: \"info\",\r\n // });\r\n setLoading(true);\r\n try {\r\n const res: AxiosResponse = await getDeviceList();\r\n console.log({ res });\r\n if (typeof res?.data === \"undefined\") {\r\n // enqueueSnackbar(`Failed to fetch device list.`, {\r\n // variant: \"error\",\r\n // });\r\n setDevices([]);\r\n } else {\r\n // enqueueSnackbar(\r\n // `Device list fetched. ${res.data.data.length} devices fetched.`,\r\n // {\r\n // variant: \"success\",\r\n // }\r\n // );\r\n const response_data: getDeviceListReturnType = res.data;\r\n setDevices(response_data.data.filter((d) => d.is_enabled_ext));\r\n setSelectedDevice(response_data.data[response_data.data.length - 1]);\r\n }\r\n } catch (error) {\r\n setDevices([]);\r\n setLoading(false);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n loadDevices();\r\n }, []);\r\n let rowIndexValue = useRef(0);\r\n useEffect(() => {\r\n const getHistoryData = async () => {\r\n // enqueueSnackbar(`Fetching Historic ANMS data.`, {\r\n // variant: \"info\",\r\n // });\r\n const res: AxiosResponse =\r\n await getHistoricalData({\r\n location_id: SelectedDevice?.id || \"\",\r\n start_time: moment(StartDate).format(\"YYYY-MM-DD\") + \" 00:00:00\",\r\n end_time: moment(EndDate).format(\"YYYY-MM-DD\") + \" 23:59:59\",\r\n });\r\n // console.log({ res });\r\n if (typeof res?.data === \"undefined\") {\r\n // enqueueSnackbar(`Failed to fetch latest Historic ANMS data.`, {\r\n // variant: \"error\",\r\n // });\r\n setData([]);\r\n rowIndexValue.current = 0;\r\n setTotalData(0);\r\n } else {\r\n // enqueueSnackbar(\r\n // `Latest Historic ANMS data fetched. ${res.data.total} rows fetched.`,\r\n // {\r\n // variant: \"success\",\r\n // }\r\n // );\r\n const response_data: getHistoricalDataReturnType = res.data;\r\n\r\n setData(\r\n response_data.data.map((i, index) => ({\r\n ...i,\r\n timestamp: moment(i.timestamp).format(\"lll\"),\r\n id: index + 1,\r\n location: SelectedDevice ? SelectedDevice.location : \"N/A\",\r\n location_id: SelectedDevice ? SelectedDevice.box_id : \"N/A\",\r\n }))\r\n );\r\n setSelectedDataParameter(\"laeqt\");\r\n setTotalData(response_data.total);\r\n }\r\n };\r\n rowIndexValue.current = 0;\r\n console.log(\"Resetting rowIndexValue\");\r\n getHistoryData();\r\n }, [SelectedDevice, StartDate, EndDate]);\r\n const PropsToPass: IBaseComponent = {\r\n Data,\r\n setData,\r\n Devices,\r\n setDevices,\r\n StartDate,\r\n setStartDate,\r\n EndDate,\r\n setEndDate,\r\n SelectedDevice,\r\n setSelectedDevice,\r\n TotalData,\r\n setTotalData,\r\n };\r\n\r\n if (typeof window !== \"undefined\") {\r\n window.addEventListener(\"keydown\", (e: any) => {\r\n if (e.keyCode === 32 || e.keyCode === 13) {\r\n setanimate(\"animating\");\r\n }\r\n });\r\n }\r\n const pdfHandler = (args: any) => {\r\n console.log(args);\r\n // const input: any = document.getElementById(\"divToPrint\");\r\n // html2canvas(input).then((canvas) => {\r\n // const imgData = canvas.toDataURL(\"image/svg\");\r\n // const pdf = new jsPDF();\r\n // pdf.addImage(imgData,'png',20, 10, 160, 140);\r\n // // pdf.output('dataurlnewwindow');\r\n // pdf.save(\"download.pdf\");\r\n // });\r\n // ReactPDF.render(,`${__dirname}/example.pdf`)\r\n // const blob = await pdf(\r\n // \r\n // \r\n // {/* */}\r\n // {/* \r\n //

jdskncskjnkjds

\r\n //
*/}\r\n //
\r\n //
\r\n // ).toBlob();\r\n // saveAs(blob, 'document');\r\n handlePrint();\r\n setDownload(true);\r\n };\r\n const downloadRef: any = createRef();\r\n const componentRef = useRef();\r\n const handlePrint = useReactToPrint({\r\n //@ts-ignore\r\n content: () => componentRef.current,\r\n //onAfterPrint: () => setPrint(!print)\r\n });\r\n\r\n return (\r\n \r\n
\r\n {/* {download && \r\n {({toPdf}:any)=> toPdf}\r\n } */}\r\n
\r\n \r\n
\r\n {/* {download && } fileName=\"document\" style={{height: '50vh'}}>\r\n {({blob,url,loading,error})=> \r\n loading ? 'Loading document...' : 'Download now!'\r\n }\r\n } */}\r\n
\r\n\r\n {loading ? (\r\n
\r\n \r\n

Loading...

\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import {\r\n configureStore,\r\n ThunkAction,\r\n Action,\r\n combineReducers,\r\n} from \"@reduxjs/toolkit\";\r\nimport { persistStore, persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage\";\r\nimport UserReducer from './slices/user.slice';\r\n\r\n\r\nconst rootReducer = combineReducers({\r\n user: UserReducer,\r\n});\r\n\r\nconst persistConfig = {\r\n key: \"root\",\r\n storage,\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\r\n\r\nexport const store = configureStore({\r\n reducer: persistedReducer,\r\n});\r\n\r\nexport const persistor = persistStore(store);\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport type RootState = ReturnType;\r\nexport type AppThunk = ThunkAction<\r\n ReturnType,\r\n RootState,\r\n unknown,\r\n Action\r\n>;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport { App } from \"./App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport { SnackbarProvider } from \"notistack\";\r\nimport { persistor, store } from \"./store\";\r\nimport { Provider } from \"react-redux\";\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\" \"}\r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}