{"version":3,"sources":["components/Menu/index.module.scss","Pages/Classes/index.module.scss","Pages/ErrorPage/index.module.scss","components/Common/loader.js","components/Common/index.tsx","common/constants/routes.constants.js","Utilities/index.tsx","services/tokenService.ts","common/http.js","services/dashboard.ts","components/CustomTable/TableActions.tsx","components/CustomTable/index.tsx","components/Common/Modal/index.tsx","Pages/AdminForms/Menu.tsx","common/utils.js","components/Common/ExcelDownload/index.tsx","Pages/Dashboard/Jobs.tsx","Pages/Dashboard/Transactions.tsx","Pages/Dashboard/StudentIntiated.tsx","Pages/Dashboard/VugTransactions.tsx","Pages/Dashboard/Summary.tsx","Pages/Dashboard/index.tsx","Pages/Login/index.tsx","services/controltable.ts","common/AppProvider.js","components/Menu/index.tsx","components/Header/index.tsx","components/TopNav/index.tsx","layouts/index.tsx","components/ProtectedRoute/index.tsx","components/CustomTabs/index.tsx","Pages/AdminForms/IncrementalFields.tsx","Pages/AdminForms/CustomField.tsx","Pages/AdminForms/CustomModal.tsx","Pages/FunctionalAdmin/useSSIDData.tsx","Pages/FunctionalAdmin/SafiSsdControls.tsx","services/adminFileUploadService.ts","Pages/FunctionalAdmin/ManualFileUpload.tsx","services/safibarflagsTable.ts","Pages/FunctionalAdmin/SafiBarFlagsTable.tsx","Pages/FunctionalAdmin/AuditDataTable.tsx","Pages/FunctionalAdmin/index.tsx","Pages/FunctionalAdmin/UnexControls.tsx","Pages/AdvSearch/index.tsx","Pages/CloudWatchDashboard/index.tsx","services/controlflagtable.ts","Pages/AdminForms/index.tsx","Pages/AdminForms/ControlFlagsTable.tsx","Pages/Classes/index.tsx","Pages/ErrorPage/index.tsx","Pages/Home/index.tsx","services/coverageService.ts","Pages/Coverage/index.tsx","App.tsx","reportWebVitals.js","actions/types.ts","reducers/dashboard.ts","reducers/index.ts","store.js","index.tsx","Pages/AdminForms/index.module.scss","Pages/Dashboard/index.module.scss","Pages/Login/index.module.scss","Pages/FunctionalAdmin/index.module.scss","components/Header/index.module.scss","components/TopNav/index.module.scss","components/Common/Modal/index.module.scss","components/Common/ExcelDownload/index.module.scss","layouts/index.module.scss","Pages/AdvSearch/index.module.scss","Pages/Coverage/sort.js"],"names":["module","exports","Spinner","_ref","color","rest","_jsx","width","height","viewBox","xmlns","stroke","children","fill","fillRule","_jsxs","transform","strokeWidth","strokeOpacity","cx","cy","r","d","attributeName","type","from","to","dur","repeatCount","PageLoadepstyle","position","top","left","PageLoader","isLoading","style","background","opacity","NotFound","className","ROUTES","APP_ROOT","DASHBOARD","LOGIN","ADV_SEARCH","ADMIN_FORMS","FUNCTIONAL_ADMIN","MONITORING_DASHBOARDS","COVERAGE","ERROR","generateQueryString","payload","pairs","Object","entries","length","reduce","acc","item","key","value","concat","refetchToken","async","refreshToken","localStorage","getItem","Error","body","grant_type","client_id","process","client_secret","refresh_token","params","URLSearchParams","append","headers","data","http","post","error","status","access_token","setItem","err","console","clear","window","location","href","fetchToken","code","redirect_uri","id_token","fetch","originalFetch","_len","arguments","args","Array","_key","resource","config","response","log","includes","message","get","url","customHeaders","undefined","requestOptions","method","then","handleResponse","catch","put","delete","getXML","text","getXMLID","REACT_APP_API_KEY","JSON","parse","ok","statusText","Promise","reject","API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED","API_URL_JOBDETAILS_JSON","REACT_APP_API_URL_JOBDETAILS_JSON","getToken","DashboardService","getJobs","_response$resData","token","Authorization","resData","getTransactions","_response$resData2","getVocadoMessageXml","id","getStudentInitation","_response$resData4","getVugTransactions","_response$resData3","getJobDetails","_response$resData5","searchTransactions","query","advanceSearch","TableActions","hasAddRow","hasSearch","hasDownload","onSearch","onDownload","onAddRow","search","setSearch","useState","handleSearch","useCallback","event","Stack","gap","InputGroup","Form","Control","placeholder","onChange","e","target","onKeyDown","Text","onClick","SearchIcon","Button","title","variant","size","DownloadIcon","PlusIcon","SortType","sortFn","a","b","CustomTable","forwardRef","ref","columns","rows","showIndex","tableName","headerRowClass","rowClass","responsive","rowsPerPage","pagination","editable","hasTableActions","tableActionProps","parentClass","noRowsText","lineHeight","resizable","resizeOptions","pageRef","page","setPage","sortedCols","setSortedCols","useImperativeHandle","resize","setResize","newRows","useMemo","filter","row","stringify","values","slice","actionProps","handleColHeaderClick","col","sortable","sortType","name","ASC","DESC","colName","colType","sort","Number","moment","unix","split","String","getSortedData","prev","useEffect","current","enableResize","reset","currentWidths","map","_ref$current","_ref$current$classNam","resizeFn","ColumnResizer","replace","disable","commonClass","maxWidth","Row","Col","sm","md","handleDownload","workbook","Excel","Workbook","worksheet","addWorksheet","showInExcel","header","label","addRows","xlsx","writeBuffer","blob","Blob","saveAs","CreateExcel","Date","now","handleAddRow","Table","headerClass","styles","renderHeader","verticalAlign","SwitchVerticalIcon","ArrowDownIcon","ArrowUpIcon","index","isNewRow","modified","_ref2","cellClass","renderRow","whiteSpace","overflow","textOverflow","animation","role","PaginationControl","between","total","limit","changePage","ellipsis","Modal","props","_props$config","_props$config2","_props$config3","_Fragment","BModal","show","onHide","handleClose","centered","customDialog","scrollable","Header","closeButton","modalHeader","Title","Body","footer","Footer","Menu","trigger","Dropdown","Toggle","as","getUniqueTableColValuesMap","tableRowsData","cols","colMap","Map","res","setTimeout","forEach","has","Set","add","set","filterRowsDataInCols","filterObj","colNames","keys","push","every","isArray","cl","_row$col","ExcelDownload","isVisible","download_icon","download_btn","CSVLink","filename","multiSelectFilterColsNames","debounce","fn","timeoutId","ms","clearTimeout","apply","this","Jobs","passFilteredData","gridData","propData","setData","flagsAdvData","setFlagsAdvData","formError","setFormError","setIsLoading","showModal","setShowModal","showJobMessagesModal","setshowJobMessagesModal","colFilter","setColFilter","filteredData","setFilteredData","colValsMapData","setColValsMapData","useRef","renderSelColHeader","uniqId","uniqVals","right","toLowerCase","FilterIconFilled","FilterIcon","menu","Select","filerInput","options","colVal","isMulti","isClearable","val","trim","XIcon","filterFn","columns1","uid_col","message_class_col","message_id_col","error_col","created_at_col","job_status","job_id","message_status","fetchAdvFlags","fontWeight","created_at","valueOf","toISOString","fetchStudentJobs","getColVals","clearAllFilters","clear_all","clear_all_btn","fullTableWidth","bordered","striped","tableLayout","jobs_modal","Transactions","showVocadoMessagesModal","setshowVocadoMessagesModal","renderColHeader","uid1_col","message_id","isXML","uid","message_class","message_errors","display","fetchStudentTransactions","Modal_Body","StudentInitated","fetchStudentInitiated","VugTransactions","fetchVugTransactionsTable","Summary","fontSize","Dashboard","_map$excelData$data","_map$excelData","dashboard","useSelector","state","jobs","transactions","studentintiation","vugTransactions","excelData","setExcelData","setMap","fileName","student","vugtrans","saveFilteredData","outer_wrapper","Tabs","defaultActiveKey","onSelect","activeKey","Tab","eventKey","Boolean","page_text","pos_excel","Login","history","useHistory","login_page","login_wrapper","login_title","onSubmit","preventDefault","username","password","alert","login_btn","updateControlledClass","initialAppState","login","AppContext","createContext","AppProvider","_data$","getPermissions","dictionary","normalizedMap","dispatch","fetchPermissions","useReducer","appReducer","action","permissions","expiry","duration","availablePages","roles","accessRoles","decodeURIComponent","replaceAll","_state$permissions","_state$permissions2","_state$permissions3","Provider","update","list","link","CLASSES","useContext","k","Link","Container","header__wrapper","header__logo","TopNav","top_nav","top_nav__wrapper","top_nav__link","reload","HEADER_MAP","MainLayout","_HEADER_MAP$pathname","pathname","useLocation","fluid","main_layout","facet_headers","ProtectedRoute","route","Component","hasAccess","isLoggedIn","exp","_","tokenData","encodedToken","decoded","jwt_decode","fetchdecodeToken","checkAuthentication","CustomTabs","tabs","active","setActive","Comp","IncrementalFields","fields","max","hasDelete","fieldsNamesObj","field","rowsData","setRowsData","addNewRow","handleChange","rowId","evt","deleteRow","splice","Card","rowData","rowIdx","isLastRow","showAdd","lg","fieldIdx","_createElement","CustomField","ele","MinusIcon","xs","xl","labelProps","formControl","_props$options","opt","optIdx","Check","inline","checked","el","_props$defaultPlaceHo","_props$options2","_ref$current2","disabled","defaultPlaceHolder","_ref$current3","_ref$current4","_ref$current5","showLabel","Group","controlId","Label","Feedback","tooltip","valid","memo","CustomModal","setShow","onClose","secondaryBtnText","handleSave","onSave","primaryBtnText","SAFI_ACTIONS","useSSIDData","apiData","setApiData","loading","setLoading","fetchData","year","_data$resData","getsafissd","_data$resData2","_data$resData3","getProperRule","allowedCareers","allowedRegTypes","allowSummerCourses","excludedClassficationIds","excludedCollegeIds","excludeMajors","tableData","dicts","updated_at","updated_by","enable_safi_control","enable_ssd","enable_summer_ssd","enable_summer_ssd_md","description","control_value","control_name","_dictionary","objConst","dict","rule","rules","effectiveDate","reducer","ADD_RULE","newData","newDict","callBack","UPDATE_RULE","DELETE_RULE","FETCH_RULES","INIT_RULES","createUploadFile","bucketname","file","TOAST_CONFIG","SUCCESS","backgroundColor","FAILED","msgColor","files","setFiles","setValid","toast","setToast","ToastContainer","Toast","src","alt","validated","stopPropagation","validFile","some","startStr","startsWith","endsWith","_fileName$split","_fileName$split2","handleSubmit","accept","pos_error","SafiSSd","updateddate_col","academicyear_col","flagvalue_col","flagname_col","idx","rowActions","currAcdYear","format","modifiedDict","setModifiedDict","intialdata","currData","setCurrData","currIndex","setCurrIndex","setYear","safiEnabled","setSafiEnabled","safiEnabledSsd","setSafiEnabledSsd","safiEnabledSummerSsd","setSafiEnabledSummerSsd","safiEnabledSummerSsdMd","setSafiEnabledSummerSsdMd","handleCurrValChange","onEditRow","PencilIcon","onModalClose","onModalSave","createControlledClasses","academicYears","subtract","y","updateRules","academicYearDropDown","flex","fontFamily","required","fieldWrapper","Checkbox","icon","Icon","cursor","borderColor","ml1","hasDefault","UnexSSD","effDate","setEffDate","fetchUnexSafiData","getunexssd","postData","SafiBar","_TOAST_CONFIG$toast$m","_TOAST_CONFIG$toast$m2","mode","msg","barfunddata","setBarFundData","fetchSafiBarFundCodeTable","getSafiBarFundCodes","updateSafiBarFundCodes","BAR_SUB_CODE","resp","createSafiBarFundCodes","AuditData","new_image","setShowAuditModal","old_image","setShowAuditOldModal","auditData","setAuditData","showAuditModal","showAuditOldModal","getAuditData","FunctionalAdmin","AdvSearch","showUidModal","setShowUidModal","formRef","headerCellClass","_formRef$current","vocado_message_id","start_date","end_date","getFormFields","endDate","startDate","adv_modal","vocado_modal","CloudWatchDashboard","ControlFlags","createddate_col","updatedby_col","searchResults","setSearchResults","flagsdata","setFlagsData","searchKey","setSearchKey","updateFalgsTable","_res$resData","getControlledFlagTableUID","Updatedby","updateControlledFlagTable","createControlledFlagTable","_pageRef$current","Classes","setShowDictionaryModal","controldata","setControlData","showDictionaryModal","fetchControlTable","getControlledClasses","createControlledClass","AdminForms","ErrorPage","paper_shadow","Home","getCoverage","path","arrayBuffer","TextDecoder","decode","Uint8Array","Coverage","coverage","setCoverage","rootPath","setRootPath","fetchgetCoverageList","script","document","createElement","require","appendChild","removeChild","dangerouslySetInnerHTML","__html","origin","App","ThemeProvider","Router","Suspense","fallback","Switch","exact","Route","component","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","initialState","employeesReducer","newState","rootReducer","combineReducers","middleware","thunk","store","createStore","composeWithDevTools","applyMiddleware","ReactDOM","render","getElementById","sortColumn","sortup","table","parentNode","tBodies","colidx","element","pos","previousSibling","getNodePosition","c","tHead","firstChild","nextSibling","indexOf","resetSortedStyle","hash","sortedrows","i","parseInt","childNodes","ids","linkelementids","setHashOnAllLinks","setHash","tag","links","getElementsByTagName","hashpos","substring","m","match","charAt"],"mappings":"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","file":"static/js/main.2e149fc6.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"menu\":\"Menu_menu__1jnh0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"fullTableWidth\":\"Classes_fullTableWidth__23LNA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper_shadow\":\"ErrorPage_paper_shadow__q1jXc\"};","import React from 'react';\n\n// \nexport function Spinner({ color, ...rest }) {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React from \"react\";\nimport { Spinner } from \"./loader\";\n\nconst PageLoadepstyle = {\n width: \"48px\",\n height: \"40%\",\n position: \"fixed\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%,-50%)\",\n};\n\n/**\n * Page Loading spinner\n */\nexport const PageLoader = ({ isLoading = false, style = {} }) => (\n isLoading && \n \n \n);\n\n/**\n * 404 component\n */\nexport const NotFound = () => (\n
\n

404 Not Found!

\n
\n);\n","export const ROUTES = {\n APP_ROOT: '/',\n DASHBOARD: '/dashboard',\n LOGIN: '/login',\n // CLASSES: '/control-table',\n ADV_SEARCH: '/adv-search',\n ADMIN_FORMS: '/admin',\n FUNCTIONAL_ADMIN: '/functional-admin',\n MONITORING_DASHBOARDS: '/monitoring-dashboards',\n COVERAGE: '/coverage',\n ERROR: '/error',\n};\n"," \n export function generateQueryString(payload: any) {\n if (!!payload) {\n const pairs = Object.entries(payload);\n if (pairs.length) {\n return pairs.reduce((acc, item) => {\n const [key, value] = item;\n if (value) {\n acc = acc.concat(`${key}=${value}&`);\n return acc;\n } else {\n return acc;\n }\n }, \"\");\n } else return \"\";\n } else {\n return \"\";\n }\n }","import { encode } from \"querystring\";\nimport { http } from \"../common/http\";\nimport jwt_decode from \"jwt-decode\";\n\nexport const refetchToken = async () => {\n const refreshToken = localStorage.getItem(\"refresh-token\");\n // const refreshToken = sessionStorage.getItem(\"refresh-token\");\n try {\n if (!refreshToken) {\n throw new Error(\"No Refresh token available\");\n }\n const body = {\n grant_type: \"refresh_token\",\n client_id: process.env.REACT_APP_API_CLIENT_ID,\n client_secret: process.env.REACT_APP_API_CLIENT_SECERET,\n refresh_token: refreshToken\n };\n const params = new URLSearchParams();\n params.append(\"grant_type\", body[\"grant_type\"]);\n params.append(\"client_id\", body[\"client_id\"]);\n params.append(\"client_secret\", body[\"client_secret\"]);\n params.append(\"refresh_token\", body[\"refresh_token\"]);\n\n const headers = {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n };\n const data = await http.post(\n process.env.REACT_APP_API_FACETUSERPOOL_URL,\n headers,\n params\n );\n if (!data || data.error || data.status === 401) {\n throw new Error(\"Failed to fetch token\");\n }\n if (data.access_token) {\n localStorage.setItem(\"token\", data.access_token);\n // sessionStorage.setItem(\"token\", data.access_token);\n }\n return data;\n } catch (err) {\n console.error(\"Error occured in refetch token:\", err);\n // sessionStorage.clear();\n localStorage.clear();\n window.location.href = process.env.REACT_APP_API_SHIBBOLETH_URL;\n }\n};\n\nexport const fetchToken = async (code) => {\n const body = {\n grant_type: \"authorization_code\",\n client_id: process.env.REACT_APP_API_CLIENT_ID,\n client_secret: process.env.REACT_APP_API_CLIENT_SECERET,\n code,\n redirect_uri: process.env.REACT_APP_API_REDIRECT_URI\n };\n const params = new URLSearchParams();\n params.append(\"grant_type\", body[\"grant_type\"]);\n params.append(\"client_id\", body[\"client_id\"]);\n params.append(\"client_secret\", body[\"client_secret\"]);\n params.append(\"code\", body[\"code\"]);\n params.append(\"redirect_uri\", body[\"redirect_uri\"]);\n // params.append('scope', body['scope'])\n\n const headers = {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n };\n const data = await http.post(\n process.env.REACT_APP_API_FACETUSERPOOL_URL,\n headers,\n params\n );\n if (data.access_token) {\n localStorage.setItem(\"token\", data.access_token);\n localStorage.setItem(\"refresh-token\", data.refresh_token);\n localStorage.setItem(\"id-token\", data.id_token);\n // sessionStorage.setItem(\"token\", data.access_token);\n // sessionStorage.setItem(\"refresh-token\", data.refresh_token);\n // sessionStorage.setItem(\"id-token\", data.id_token);\n }\n return data;\n // return await http.post('https://up-users-non-shib.auth.us-west-2.amazoncognito.com/oauth2/token',headers,params)\n};\nexport const fetchdecodeToken = (token = null) => {\n let encodedToken = token;\n if (!encodedToken) {\n encodedToken = localStorage.getItem(\"id-token\");\n // encodedToken = sessionStorage.getItem(\"id-token\");\n }\n const decoded = jwt_decode(encodedToken);\n console.log(decoded);\n return decoded;\n};\n","import { refetchToken } from \"../services/tokenService\";\n\n\nconst { fetch: originalFetch } = window;\n\nwindow.fetch = async (...args) => {\n let [resource, config ] = args;\n try {\n const response = await originalFetch(resource, config);\n // response interceptor here\n console.log('response ==> ', response);\n if ([400, 401, 403].includes(response.status)) {\n refetchToken()\n } else\n return response;\n } catch(err) {\n if (err.message === \"Failed to fetch\") {\n refetchToken()\n }\n }\n // request interceptor here\n const response = await originalFetch(resource, config);\n // response interceptor here\n console.log('response ==> ', response);\n if (response.status === 401 || response.status === 400) {\n refetchToken()\n } else\n return response;\n};\n\nexport const http = {\n get,\n post,\n put,\n delete: _delete,\n getXML,\n getXMLID,\n};\n\nconst headers = {\n \"x-api-key\": process.env.REACT_APP_API_KEY,\n \"Content-Type\": \"application/json\",\n // \"Access-Control-Allow-Credentials\": true,\n // \"Access-Control-Allow-Origin\": window.location.origin\n};\n\nfunction get(url, customHeaders = {}) {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...headers,\n ...customHeaders,\n },\n };\n return fetch(url, requestOptions)\n .then(handleResponse)\n .catch((err) => ({ data: null, error: new Error(err) }));\n // return fetch(url, requestOptions).then(handleResponse);\n}\n\nfunction getXML(url, customHeaders = {}) {\n const requestOptions = {\n method: \"GET\",\n headers: {\n ...headers,\n ...customHeaders,\n \"Content-Type\": \"application/text\",\n },\n };\n return fetch(url, requestOptions).then((response) => response.text())\n .catch((err) => ({ data: null, error: new Error(err) }));\n //.then(text => new window.DOMParser().parseFromString(text, \"text/xml\"));\n}\n\nfunction getXMLID(url, customHeaders = {},body) {\n const requestOptions = {\n method: \"POST\",\n headers: {\n ...headers,\n ...customHeaders,\n \"Content-Type\": \"application/text\",\n },\n };\n return fetch(url, requestOptions).then((handleResponse) => handleResponse.text())\n .catch((err) => ({ data: null, error: new Error(err) }));\n //.then(text => new window.DOMParser().parseFromString(text, \"text/xml\"));\n}\n\nfunction post(url, customHeaders = {}, body) {\n const requestOptions = {\n method: \"POST\",\n headers: { ...headers, ...customHeaders },\n body: body, //JSON.stringify(body),\n };\n return fetch(url, requestOptions)\n .then(handleResponse)\n .catch((err) => ({ data: null, error: new Error(err) }));\n}\n\nfunction put(url, customHeaders = {}, body) {\n const requestOptions = {\n method: \"PUT\",\n headers: { ...headers, ...customHeaders },\n body: body,\n };\n return fetch(url, requestOptions)\n .then(handleResponse)\n .catch((err) => ({ data: null, error: new Error(err) }));\n}\n\n// prefixed with underscored because delete is a reserved word in javascript\nfunction _delete(url) {\n const requestOptions = {\n method: \"DELETE\",\n };\n return fetch(url, requestOptions).then(handleResponse)\n .catch((err) => ({ data: null, error: new Error(err) }));\n}\n\n// helper functions\n\nfunction handleResponse(response) {\n return response.text().then((text) => {\n const data = text && JSON.parse(text);\n\n if (!response.ok) {\n const error = (data && data.message) || response.statusText;\n return Promise.reject(error);\n }\n\n return data;\n });\n}\n","import { generateQueryString } from \"../Utilities\";\nimport { http } from \"../common/http\";\nconst API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED = process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED;\n// const API_URL_MESSAGEDETAILS_JSON = process.env.REACT_APP_API_URL_MESSAGEDETAILS_JSON;\nconst API_URL_MESSAGEDETAILS_XML =process.env.REACT_APP_API_URL_MESSAGEDETAILS_XML;\nconst API_URL_JOBDETAILS_JSON = process.env.REACT_APP_API_URL_JOBDETAILS_JSON;\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\nconst getJobs = async () => {\n const token = getToken();\n const response = await http.get(\n `${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}jobs`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response?.resData?.data || [];\n};\n\nconst advanceSearch = async (payload: any) => {\n const query = generateQueryString(payload);\n const token = getToken();\n const data = await http.get(\n `${process.env.REACT_APP_API_ADV_SEARCH}?${query}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return data;\n};\n\nconst searchTransactions = async (payload: any) => {\n const query = generateQueryString(payload);\n const token = getToken();\n const {\n resData: { data },\n } = await http.get(\n `${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}searchTransactions?${query}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return [...data];\n};\n\nconst getTransactions = async () => {\n const token = getToken();\n const response = await http.get(\n `${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}searchTransactions`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response?.resData?.data || [];\n};\n\nconst getVugTransactions = async () => {\n const token = getToken();\n const response = await http.get(\n `${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}vugs`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response?.resData?.data || [];\n // console.log(\"REsponse\", response);\n // return Response.data;\n};\n\nconst getStudentInitation = async () => {\n const token = getToken();\n const response = await http.get(\n `${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}sis`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response?.resData?.data || [];\n};\n\n// const getVocadoMessage = async (id) => {\n// const response = await http.get(`${ API_URL_MESSAGEDETAILS_JSON}messages/${id}`);\n// return response?.resData?.data || [];\n// };\n\nconst getVocadoMessageXml = async (id) => {\n const token = getToken();\n const response = await http.getXMLID(\n `${API_URL_MESSAGEDETAILS_XML}?messageId=${id}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response;\n};\n\n// export const postSIFAdminForm = (body) => {\n// const token =getToken()\n// return fetch(`${API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}studentadmincreate`, {\n// method: 'POST',\n// headers : {\n// Authorization: `Bearer ${token}`\n// },\n// body: JSON.stringify(body)\n// }).then(res => res.json())\n// .then(res => res)\n// }\nconst getJobDetails = async (id) => {\n const token = getToken();\n const response = await http.get(\n `${API_URL_JOBDETAILS_JSON}jobdetails/${id}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n return response?.resData?.data || [];\n};\n\n// export const searchStudent = (id) => {\n// const token = getToken();\n// return fetch(`https://api.dev.facet.it.ucla.edu/transactions/student/${id}`, {\n// headers: {\n// Authorization: `Bearer ${token}`\n// },\n// }).then(res => res.json()).then(res => res)\n// }\n\nconst DashboardService = {\n getJobs,\n getTransactions,\n // getVocadoMessage,\n getVocadoMessageXml,\n getStudentInitation,\n getVugTransactions,\n getJobDetails,\n searchTransactions,\n advanceSearch,\n};\n\nexport default DashboardService;\n","// import {\n// ArrowDownTrayIcon,\n// MagnifyingGlassIcon,\n// PlusIcon,\n// } from \"@heroicons/react/solid\";\n import { DownloadIcon, PlusIcon, SearchIcon } from \"@heroicons/react/outline\";\nimport React, { useCallback, useState } from \"react\";\n import { Button, Col, Form, InputGroup, Row, Stack } from \"react-bootstrap\";\n \n export interface TableActionsProps {\n hasSearch: boolean;\n hasAddRow: boolean;\n hasDownload: boolean;\n onAddRow?: () => void;\n onDownload?: () => void;\n onSearch?: (search: String) => void;\n children?: React.ReactElement\n }\n \n export default function TableActions({\n hasAddRow,\n hasSearch,\n hasDownload,\n onSearch,\n onDownload,\n onAddRow,\n children,\n }: TableActionsProps) {\n const [search, setSearch] = useState(\"\");\n \n const handleChange = (e: React.ChangeEvent) => {\n setSearch(e.target.value);\n };\n \n const handleSearch = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === \"Enter\" && onSearch) {\n onSearch(search);\n }\n },\n [search, onSearch]\n );\n return (\n \n {hasSearch && (\n \n \n onSearch && onSearch(search)}\n >\n \n \n \n )}\n {hasDownload && (\n \n \n {/* */}\n \n )}\n {hasAddRow && (\n \n )}\n {children}\n \n );\n }","import {\n ReactNode,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from \"react\";\nimport { Col, Row, Spinner, Stack } from \"react-bootstrap\";\nimport { PaginationControl } from \"react-bootstrap-pagination-control\";\nimport Table, { TableProps } from \"react-bootstrap/Table\";\nimport TableActions, { TableActionsProps } from \"./TableActions\";\nimport { saveAs } from \"file-saver\";\nimport Excel from \"exceljs\";\nimport ColumnResizer from \"column-resizer\";\nimport moment from \"moment\";\nimport { ArrowDownIcon, ArrowUpIcon, SwitchVerticalIcon } from \"@heroicons/react/solid\";\n\nexport interface CustomColumn {\n name: string;\n label: React.ReactNode;\n width?: number | string;\n showInExcel?: boolean;\n cellClass?: string;\n headerClass?: string;\n styles?: React.CSSProperties;\n resizable?: boolean;\n renderHeader?: (label: React.ReactNode, col: CustomColumn) => React.ReactNode;\n renderRow?: (value: any, row: CustomRow, index: number) => React.ReactNode;\n type?: ColType;\n sortable?: boolean;\n}\n\nexport interface CustomRow {\n [name: string]: unknown;\n}\n\nexport interface CustomTableProps extends TableProps {\n columns: CustomColumn[];\n rows: CustomRow[];\n showIndex?: boolean;\n tableName?: string;\n selectable?: boolean;\n expandable?: boolean;\n headerRowClass?: string;\n rowClass?: string;\n responsive?: boolean;\n rowsPerPage?: number;\n editable?: boolean;\n pagination?: \"default\" | false | ReactNode;\n title?: string;\n hasTableActions?: boolean;\n tableActionProps?: TableActionsProps;\n bordered?: boolean;\n striped?: boolean;\n className?: string;\n parentClass?: string;\n isLoading?: boolean;\n lineHeight?: string;\n resizable?: boolean;\n resizeOptions?: any;\n noRowsText?:string;\n}\n\nasync function CreateExcel(\n name: string,\n columns: CustomColumn[],\n rows: CustomRow[]\n) {\n const workbook = new Excel.Workbook();\n const worksheet = workbook.addWorksheet(name);\n worksheet.columns = columns\n .filter((col) => col.showInExcel)\n .map((col) => ({ header: col.label as string, key: col.name as string }));\n worksheet.addRows(rows);\n await workbook.xlsx.writeBuffer().then((data) => {\n const blob = new Blob([data], {\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\",\n });\n saveAs(blob, `${name}.xlsx`);\n });\n}\n\nenum SortType {\n ASC,\n DESC,\n}\n\ntype ColType = \"number\" | \"string\" | \"object\" | \"date\";\n\nexport const sortFn = (a, b) => {\n if (a > b) return 1;\n if (a < b) return -1;\n return 0;\n};\n\nconst getSortedData = (\n data: CustomRow[],\n colName: string,\n sortType: SortType = SortType.ASC,\n colType?: ColType\n) => {\n if (colType === \"number\") {\n return data.sort((a, b) => {\n if (sortType === SortType.ASC)\n return sortFn(Number(a[colName]), Number(b[colName]));\n return sortFn(Number(b[colName]), Number(a[colName]));\n });\n } else if (colType === \"date\") {\n return data.sort((a, b) => {\n if (sortType === SortType.ASC)\n return sortFn(moment(a[colName]).unix(), moment(b[colName]).unix());\n return sortFn(moment(b[colName]).unix(), moment(a[colName]).unix());\n });\n } else if (colType === \"object\") {\n const [col, key] = colName.split(\".\");\n return data.sort((a, b) => {\n if (sortType === SortType.ASC) return sortFn(a[col][key], b[col][key]);\n return sortFn(b[col][key], a[col][key]);\n });\n }\n return data.sort((a, b) => {\n if (sortType === SortType.ASC)\n return sortFn(String(a[colName]), String(b[colName]));\n return sortFn(String(b[colName]), String(a[colName]));\n });\n};\n\nconst CustomTable = forwardRef(\n (\n {\n columns,\n rows,\n showIndex = false,\n tableName = \"custom_table\",\n headerRowClass = \"\",\n rowClass = \"\",\n responsive = true,\n rowsPerPage = 10,\n pagination = false,\n editable = false,\n title = \"Table title\",\n hasTableActions,\n tableActionProps = {},\n parentClass = \"\",\n noRowsText = \"\",\n isLoading = false,\n lineHeight = \"12px\",\n resizable = true,\n resizeOptions = {},\n pageRef,\n ...rest\n },\n ref\n ) => {\n const [page, setPage] = useState(1);\n const [sortedCols, setSortedCols] = useState<{ [name: string]: SortType }>(\n {}\n );\n\n useImperativeHandle(\n pageRef,\n () => ({\n setPage: setPage,\n }),\n []\n );\n\n const [search, setSearch] = useState(\"\");\n const [resize, setResize] = useState();\n let newRows = useMemo(() => {\n const searchedRows = rows.filter((row) =>\n JSON.stringify(Object.values(row)).includes(search)\n );\n return searchedRows.slice((page - 1) * rowsPerPage, rowsPerPage * page);\n }, [page, rows, rowsPerPage, search]);\n const { onSearch, onDownload, onAddRow, ...actionProps } = tableActionProps;\n\n const handleColHeaderClick = (col) => {\n if (col.sortable) {\n const sortType =\n sortedCols[col.name] === SortType.ASC ? SortType.DESC : SortType.ASC;\n newRows = getSortedData(newRows, col.name, sortType, col.type);\n setSortedCols((prev) => ({ ...prev, [col.name]: sortType }));\n }\n };\n\n const handleSearch = (search: string) => {\n onSearch ? onSearch(search) : setSearch(search);\n };\n const handleDownload = () => {\n // add default download logic\n if (onDownload) onDownload();\n else {\n CreateExcel(`${title.replace(/ /g, \"_\")}_${Date.now()}`, columns, rows);\n }\n };\n const handleAddRow = () => {\n if (onAddRow) onAddRow();\n };\n\n const enableResize = () => {\n if (!resize) {\n const resizeFn = new ColumnResizer((ref as any).current, {currentWidths: columns.map(col => col.width || 150), ...resizeOptions});\n\n //@ts-ignore\n ref.current.className = ref.current?.className?.replace(\n \"grip-padding\",\n \"\"\n );\n\n setResize(resizeFn);\n } else {\n resize?.reset({currentWidths: columns.map(col => col.width || 150), ...resizeOptions});\n }\n };\n\n const disableResize = () => {\n if (!!resize) {\n resize?.reset({ disable: true });\n }\n };\n\n useEffect(() => {\n if ((ref as any)?.current && resizable) {\n enableResize();\n }\n return () => disableResize();\n }, [ref, resizable]);\n\n const commonClass = \"d-flex justify-content-center align-items-center\";\n return (\n \n {(title || hasTableActions) && (\n \n \n {title}\n \n \n \n \n \n )}\n \n \n \n \n \n {showIndex && }\n {columns.map((col) => (\n handleColHeaderClick(col)}\n style={{\n width: col.width || `${100 / columns.length}%`,\n resize:\n resizable &&\n (col.resizable === undefined ||\n col.resizable === true)\n ? \"horizontal\"\n : \"none\",\n ...col.styles,\n }}\n key={col.name}\n title={col.label}\n >\n {col.renderHeader\n ? col.renderHeader(col.label, col)\n : col.label}\n {col.sortable && \n {sortedCols[col.name] === undefined && ()}\n {sortedCols[col.name] !== undefined ? (\n sortedCols[col.name] === SortType.ASC ? (\n \n ) : (\n \n )\n ) : null}\n }\n \n ))}\n \n \n \n {newRows.length > 0 && !isLoading &&\n newRows.map((row, index) => {\n return (\n \n {showIndex && (\n \n {index + 1 + (page - 1) * rowsPerPage}\n \n )}\n {columns.map(\n ({ name, width, cellClass, renderRow }) => {\n return (\n \n {renderRow\n ? renderRow(\n row[name],\n row,\n index + (page - 1) * rowsPerPage\n )\n : row[name]}\n \n );\n }\n )}\n \n );\n })}\n \n
#
\n {isLoading && (\n
\n
\n \n Loading...\n \n
\n
\n )}\n {!isLoading && !newRows.length && (\n
\n
\n {noRowsText ? noRowsText : 'No data to show table rows'}\n
\n
\n )}\n\n {pagination === \"default\" ? (\n {\n setPage(page);\n }}\n ellipsis={2}\n />\n ) : (\n pagination || null\n )}\n
\n
\n
\n );\n }\n);\n\nexport default CustomTable;\n","import { Button, Modal as BModal } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\n\nconst Modal = (props) => {\n return (\n <>\n \n \n \n {props?.config?.title || \"Modal\"}\n \n \n {props?.config?.body || \"No data found!\"}\n {props?.config?.footer && (\n \n \n \n \n )}\n \n \n );\n};\n\nexport default Modal;\n","import { Dropdown } from 'react-bootstrap';\n\nexport interface MenuPorps {\n id?: string;\n children: React.ReactElement;\n trigger: string | React.ReactElement;\n className?: string;\n}\n\nexport default function Menu({ id = '', children = null, trigger = null, className= '' }) {\n return (\n <>\n \n \n {trigger}\n \n\n \n {children}\n \n \n \n );\n}","export function getUniqueTableColValuesMap(tableRowsData = [], cols = []) {\n const colMap = new Map();\n return new Promise((res) => {\n tableRowsData.reduce((acc, row, index) => {\n if (index === tableRowsData.length - 1) {\n setTimeout(() => res(colMap), 200);\n }\n cols.forEach((col) => {\n let value = null;\n if (acc.has(col)) {\n value = acc.get(col);\n } else {\n value = new Set();\n }\n value.add(row[col]);\n acc.set(col, value);\n });\n return acc;\n }, colMap);\n });\n}\n\nexport function filterRowsDataInCols(filterObj = {}, tableRowsData = []) {\n const colNames = Object.keys(filterObj).reduce((acc, colName) => {\n if (!!filterObj[colName] && filterObj[colName].length) {\n acc.push(colName);\n }\n return acc;\n }, []);\n return new Promise((res) => {\n let data = tableRowsData;\n if (colNames.length) {\n data = tableRowsData.filter((row, index) => {\n if (index === tableRowsData.length - 1) {\n setTimeout(() => res(data), 100);\n }\n return !!colNames.every((col) => {\n if (Array.isArray(filterObj[col])) {\n return filterObj[col].map(cl => cl.value).includes(row[col]);\n } else {\n return row[col]?.includes(filterObj[col]);\n }\n });\n });\n } else {\n res(data);\n }\n });\n}\n","import { CSVLink } from \"react-csv\";\nimport { Button } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { DownloadIcon} from \"@heroicons/react/outline\";\n\nconst ExcelDownload = (props: any) => {\n\n console.log(\"props==> \", props)\n // ${props.iconClassName || ''}\n return (\n <>\n {props.isVisible ? (\n
\n \n
\n ) : null}\n \n );\n};\n\nexport default ExcelDownload;\n","import { Button, Row, Col, InputGroup, Dropdown } from \"react-bootstrap\";\nimport { Form } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\nimport DashboardService from \"../../services/dashboard\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport Modal from \"../../components/Common/Modal\";\nimport Menu from \"../AdminForms/Menu\";\nimport Select from \"react-select\";\nimport {\n FilterIcon,\n LockClosedIcon,\n SearchIcon,\n XCircleIcon,\n XIcon,\n} from \"@heroicons/react/outline\";\nimport { FilterIcon as FilterIconFilled } from \"@heroicons/react/solid\";\nimport {\n filterRowsDataInCols,\n getUniqueTableColValuesMap,\n} from \"../../common/utils\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\n\nconst multiSelectFilterColsNames = [\n \"uid\",\n \"message_status\",\n \"message_class\",\n \"job_type\",\n];\n\nconst debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nconst Jobs = (props) => {\n const { passFilteredData, gridData: propData, ...rest } = props;\n // console.log(\"advsearch ==> \", rest, props);\n const [gridData, setData] = useState([]);\n const [flagsAdvData, setFlagsAdvData] = useState({});\n const [formError, setFormError] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n // const [showFilterModal, setShowFilterModal] = useState(false);\n const [showModal, setShowModal] = useState(null);\n const [showJobMessagesModal, setshowJobMessagesModal] = useState(null);\n const [colFilter, setColFilter] = useState({});\n const [filteredData, setFilteredData] = useState([]);\n const [colValsMapData, setColValsMapData] = useState(new Map());\n const formRef = useRef(null);\n const ref = useRef();\n\n const renderSelColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n const uniqVals = colValsMapData.get(uniqId);\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n // trigger={}\n className={styles.menu}\n >\n ({\n value: colVal,\n label: colVal,\n }))}\n isMulti\n isClearable\n onChange={(val) => {\n if (val.length) {\n setColFilter((prev) => ({ ...prev, [uniqId]: val }));\n } else {\n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n });\n }\n }}\n value={colFilter[uniqId]}\n />\n \n \n \n );\n },\n [colFilter, colValsMapData]\n );\n\n const renderColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n className={styles.menu}\n >\n \n \n \n \n \n setColFilter((prev) => ({\n ...prev,\n [uniqId]: value.trim(),\n }))\n )}\n value={colFilter[uniqId]}\n />\n \n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n })\n }\n >\n \n \n \n \n \n \n );\n },\n [colFilter]\n );\n\n useEffect(() => {\n const filterFn = async () => {\n const data = await filterRowsDataInCols(colFilter, gridData);\n setFilteredData(data);\n };\n filterFn();\n }, [gridData, colFilter]);\n\n async function fetchAdvFlags(title) {\n const jobId = \"STUINIT_SIS_ALL_20230616212341585\";\n const data = await DashboardService.searchTransactions({\n job_id: jobId,\n message_status: \"Failed\",\n });\n console.log(data);\n if (data) {\n setshowJobMessagesModal({\n title,\n data,\n });\n }\n }\n\n const columns1: Array = [\n { name: \"uid\", label: \"UID\", cellClass: `${styles.uid_col}` },\n {\n name: \"message_class\",\n label: \"Transaction Message Class\",\n cellClass: `${styles.message_class_col}`,\n },\n {\n name: \"message_id\",\n label: \"Transaction Message ID\",\n cellClass: `${styles.message_id_col}`,\n },\n {\n name: \"message_errors\",\n label: \"Transaction Message Errors\",\n cellClass: `${styles.error_col}`,\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n cellClass: `${styles.created_at_col}`,\n },\n ];\n\n const columns: Array = [\n {\n name: \"job_id\",\n label: \"Job ID\",\n // headerClass: `${styles.text_ellipsis}`,\n width: 120,\n showInExcel: true,\n },\n {\n name: \"job_type\",\n label: \"Job Type\",\n width: 90,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n },\n {\n name: \"sis_records_loaded\",\n label: \"SIS Records\",\n // headerClass: `${styles.text_ellipsis}`,\n width: 50,\n showInExcel: true,\n },\n {\n name: \"job_status\",\n label: \"Job Status\",\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n width: 50,\n renderRow: (value, row, index) => {\n return row.job_status == \"Failed\" ? (\n {\n if (row.job_status == \"Failed\") {\n fetchAdvFlags(`Job Details for : ${row.job_id}`);\n }\n }}\n style={{\n color: \"red\",\n fontWeight: \"bold\",\n }}\n >\n {value}\n \n \n ) : (\n <>{value}\n );\n },\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n width: 90,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n type: 'date',\n sortable: true,\n },\n ];\n\n useEffect(() => {\n async function fetchStudentJobs() {\n setIsLoading(true);\n const data = await DashboardService.getJobs();\n setIsLoading(false);\n setData(\n data\n .map((d) => ({ ...d, created_at: new Date(d.created_at).valueOf() }))\n .sort((a, b) => b.created_at - a.created_at)\n .map((d) => ({\n ...d,\n created_at: new Date(d.created_at).toISOString(),\n }))\n );\n }\n fetchStudentJobs();\n const data = [];\n }, []);\n\n useEffect(() => {\n const getColVals = async () => {\n const data = await getUniqueTableColValuesMap(\n gridData,\n multiSelectFilterColsNames\n );\n console.log(\"data ==> \", data);\n setColValsMapData(data);\n };\n getColVals();\n }, [gridData, multiSelectFilterColsNames]);\n\n const clearAllFilters = useCallback(() => {\n // setData([]);\n setColFilter({});\n setFilteredData([]);\n // setColValsMapData(new Map());\n }, []);\n\n return (\n
\n
\n \n Clear All Filters\n \n
\n
\n \n
\n\n
\n \n
\n {!!showJobMessagesModal && (\n setshowJobMessagesModal(false)}\n className={styles.jobs_modal}\n size='xl'\n config={{\n title: showJobMessagesModal.title,\n footer: false,\n body: (\n \n ),\n }}\n />\n )}\n
\n );\n};\nexport default Jobs;\n","import { Button, Row, Col, InputGroup, Dropdown } from \"react-bootstrap\";\nimport { Form } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\nimport DashboardService from \"../../services/dashboard\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport Modal from \"../../components/Common/Modal\";\nimport Menu from \"../AdminForms/Menu\";\nimport Select from \"react-select\";\nimport {\n FilterIcon,\n LockClosedIcon,\n SearchIcon,\n XCircleIcon,\n XIcon,\n} from \"@heroicons/react/outline\";\nimport { FilterIcon as FilterIconFilled } from \"@heroicons/react/solid\";\nimport {\n filterRowsDataInCols,\n getUniqueTableColValuesMap,\n} from \"../../common/utils\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\n\nconst multiSelectFilterColsNames = [\n \"uid\",\n \"message_status\",\n \"message_class\",\n \"job_type\",\n];\n\nconst debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nconst Transactions = (props) => {\n const { passFilteredData, gridData: propData, ...rest } = props;\n // console.log(\"advsearch ==> \", rest, props);\n const ref = useRef();\n const [gridData, setData] = useState([]);\n const [flagsAdvData, setFlagsAdvData] = useState({});\n const [formError, setFormError] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n // const [showFilterModal, setShowFilterModal] = useState(false);\n const [showModal, setShowModal] = useState(null);\n const [showVocadoMessagesModal, setshowVocadoMessagesModal] = useState(null);\n const [colFilter, setColFilter] = useState({});\n const [filteredData, setFilteredData] = useState([]);\n const [colValsMapData, setColValsMapData] = useState(new Map());\n const formRef = useRef(null);\n\n const renderSelColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n const uniqVals = colValsMapData.get(uniqId);\n console.log(\"uniq\", colValsMapData, uniqVals);\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n // trigger={}\n className={styles.menu}\n >\n ({\n value: colVal,\n label: colVal,\n }))}\n isMulti\n isClearable\n onChange={(val) => {\n if (val.length) {\n setColFilter((prev) => ({ ...prev, [uniqId]: val }));\n } else {\n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n });\n }\n }}\n value={colFilter[uniqId]}\n />\n \n \n \n );\n },\n [colFilter, colValsMapData]\n );\n\n const renderColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n className={styles.menu}\n >\n \n \n \n \n \n setColFilter((prev) => ({\n ...prev,\n [uniqId]: value.trim(),\n }))\n }\n value={colFilter[uniqId]}\n />\n \n setColFilter({\n ...colFilter,\n [uniqId]: \"\",\n })\n }\n >\n \n \n \n \n \n \n );\n },\n [colFilter]\n );\n\n useEffect(() => {\n const filterFn = async () => {\n const data = await filterRowsDataInCols(colFilter, gridData);\n setFilteredData(data);\n };\n filterFn();\n }, [gridData, colFilter]);\n\n async function fetchAdvFlags(id, title, isXML = false) {\n const data = await DashboardService.getVocadoMessageXml(id);\n console.log(data);\n if (data) {\n setshowVocadoMessagesModal({\n title,\n data,\n isXML,\n });\n }\n else {\n setshowVocadoMessagesModal({\n title,\n });\n }\n }\n\n const columns: Array = [\n {\n name: \"uid\",\n label: \"UID\",\n width: 90,\n styles: {maxWidth:'10%'},\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: `text-turncate`,\n showInExcel: true,\n renderHeader: renderColHeader,\n // renderRow: (value, row, index) => {\n // return row.message ? (\n // <>\n // {\n // if (row.message) {\n // console.log(\n // // `${value} - ${(row.message as any)?.message_class}`\n // `${value} - ${row.message_class}`\n // );\n // setShowModal({\n // title: `${value} - ${row.message_class}`,\n // data: row.message,\n // });\n // }\n // }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"150px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n // >\n // {value}\n // \n // ) : (\n // <>{value}\n // );\n // },\n },\n {\n name: \"message_id\",\n label: \"Vocado Message ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderRow: (value, row, index) => {\n return row.message_id ? (\n {\n if (row.message_id) {\n fetchAdvFlags(\n row.message_id,\n `${row.uid} - ${row.message_class} : ${row.job_id}`\n );\n }\n }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"120px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n >\n {value}\n \n ) : (\n <>{value}\n );\n },\n },\n {\n name: \"message_status\",\n label: \"Message Status\",\n // width: 130,\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n renderRow: (value, row, index) => {\n return row.message_status == \"Failed\" ? (\n {\n if (row.message_status == \"Failed\") {\n console.log(\n // `${value} - ${(row.message as any)?.message_class}`\n `${value} - ${row.message_class}`\n );\n setShowModal({\n title: `Vocado Message Errors`,\n data: row.message_errors,\n });\n }\n }}\n style={{\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n color: \"red\",\n fontWeight: \"bold\"\n }}\n >\n {value}\n \n ) : (\n <>{value}\n );\n },\n },\n {\n name: \"message_class\",\n label: \"Message Class\",\n width: 200,\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n },\n {\n name: \"job_type\",\n label: \"Job Type\",\n width: 100,\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n sortable: true,\n },\n {\n name: \"updated_at\",\n label: \"Updated At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n sortable: true,\n },\n {\n name: \"job_id\",\n label: \"Job ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n renderHeader: renderColHeader,\n },\n ];\n\n useEffect(() => {\n async function fetchStudentTransactions() {\n setIsLoading(true);\n const data = await DashboardService.getTransactions();\n setIsLoading(false);\n setData(\n data\n .map((d) => ({ ...d, created_at: new Date(d.created_at).valueOf() }))\n .sort((a, b) => b.created_at - a.created_at)\n .map((d) => ({\n ...d,\n created_at: new Date(d.created_at).toISOString(),\n }))\n );\n }\n fetchStudentTransactions();\n const data = [];\n }, []);\n\n useEffect(() => {\n const getColVals = async () => {\n const data = await getUniqueTableColValuesMap(\n gridData,\n multiSelectFilterColsNames\n );\n console.log(\"data ==> \", data);\n setColValsMapData(data);\n };\n getColVals();\n }, [gridData, multiSelectFilterColsNames]);\n\n const clearAllFilters = useCallback(() => {\n // setData([]);\n setColFilter({});\n setFilteredData([]);\n // setColValsMapData(new Map());\n }, []);\n\n return (\n
\n
\n \n Clear All Filters\n \n
\n
\n \n
\n\n
\n \n
\n {!!showModal && (\n setShowModal(false)}\n className={styles.jobs_modal}\n size='lg'\n config={{\n title: showModal.title,\n footer: false,\n body: (\n
\n {showModal.data}\n
\n ),\n }}\n />\n )}\n {!!showVocadoMessagesModal && (\n setshowVocadoMessagesModal(false)}\n config={{\n title: showVocadoMessagesModal.title,\n footer: false,\n body: (\n
\n {showVocadoMessagesModal.data ? (\n
{showVocadoMessagesModal.data}
\n ) : (\n \"Message not found\"\n )}\n
\n ),\n }}\n />\n )}\n
\n );\n};\nexport default Transactions;\n","import { Button, Row, Col, InputGroup, Dropdown } from \"react-bootstrap\";\nimport { Form } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\nimport DashboardService from \"../../services/dashboard\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport Modal from \"../../components/Common/Modal\";\nimport Menu from \"../AdminForms/Menu\";\nimport Select from \"react-select\";\nimport {\n FilterIcon,\n LockClosedIcon,\n SearchIcon,\n XCircleIcon,\n XIcon,\n} from \"@heroicons/react/outline\";\nimport { FilterIcon as FilterIconFilled } from \"@heroicons/react/solid\";\nimport {\n filterRowsDataInCols,\n getUniqueTableColValuesMap,\n} from \"../../common/utils\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\n\nconst multiSelectFilterColsNames = [\n \"uid\",\n \"message_status\",\n \"message_class\",\n \"job_type\",\n];\n\nconst debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nconst StudentInitated = (props) => {\n const { passFilteredData, gridData: propData, ...rest } = props;\n // console.log(\"advsearch ==> \", rest, props);\n const ref = useRef();\n const [gridData, setData] = useState([]);\n const [flagsAdvData, setFlagsAdvData] = useState({});\n const [formError, setFormError] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n // const [showFilterModal, setShowFilterModal] = useState(false);\n const [showModal, setShowModal] = useState(null);\n const [showVocadoMessagesModal, setshowVocadoMessagesModal] = useState(null);\n const [colFilter, setColFilter] = useState({});\n const [filteredData, setFilteredData] = useState([]);\n const [colValsMapData, setColValsMapData] = useState(new Map());\n const formRef = useRef(null);\n\n const renderSelColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n const uniqVals = colValsMapData.get(uniqId);\n console.log(\"uniq\", colValsMapData, uniqVals);\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n // trigger={}\n className={styles.menu}\n >\n ({\n value: colVal,\n label: colVal,\n }))}\n isMulti\n isClearable\n onChange={(val) => {\n if (val.length) {\n setColFilter((prev) => ({ ...prev, [uniqId]: val }));\n } else {\n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n });\n }\n }}\n value={colFilter[uniqId]}\n />\n \n \n \n );\n },\n [colFilter, colValsMapData]\n );\n\n const renderColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n className={styles.menu}\n >\n \n \n \n \n \n setColFilter((prev) => ({\n ...prev,\n [uniqId]: value.trim(),\n }))\n }\n value={colFilter[uniqId]}\n />\n \n setColFilter({\n ...colFilter,\n [uniqId]: \"\",\n })\n }\n >\n \n \n \n \n \n \n );\n },\n [colFilter]\n );\n\n useEffect(() => {\n const filterFn = async () => {\n const data = await filterRowsDataInCols(colFilter, gridData);\n setFilteredData(data);\n };\n filterFn();\n }, [gridData, colFilter]);\n\n const columns: Array = [\n {\n name: \"job_id\",\n label: \"Job ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n // renderHeader: renderColHeader,\n },\n {\n name: \"uid\",\n label: \"UID\",\n width: 90,\n styles: {maxWidth:'10%'},\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: `text-turncate`,\n showInExcel: true,\n renderHeader: renderColHeader,\n // renderRow: (value, row, index) => {\n // return row.message ? (\n // <>\n // {\n // if (row.message) {\n // console.log(\n // // `${value} - ${(row.message as any)?.message_class}`\n // `${value} - ${row.message_class}`\n // );\n // setShowModal({\n // title: `${value} - ${row.message_class}`,\n // data: row.message,\n // });\n // }\n // }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"150px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n // >\n // {value}\n // \n // ) : (\n // <>{value}\n // );\n // },\n },\n {\n name: \"message_id\",\n label: \"Vocado Message ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true\n },\n {\n name: \"message_class\",\n label: \"Message Class\",\n width: 200,\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n // renderHeader: renderSelColHeader,\n },\n {\n name: \"job_type\",\n label: \"Job Type\",\n width: 100,\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n // renderHeader: renderSelColHeader,\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n sortable: true,\n },\n {\n name: \"updated_at\",\n label: \"Updated At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n sortable: true,\n }\n ];\n\n useEffect(() => {\n async function fetchStudentInitiated() {\n setIsLoading(true);\n const data = await DashboardService.getStudentInitation();\n setIsLoading(false);\n setData(\n data\n .map((d) => ({ ...d, created_at: new Date(d.created_at).valueOf() }))\n .sort((a, b) => b.created_at - a.created_at)\n .map((d) => ({\n ...d,\n created_at: new Date(d.created_at).toISOString(),\n }))\n );\n }\n fetchStudentInitiated();\n const data = [];\n }, []);\n\n useEffect(() => {\n const getColVals = async () => {\n const data = await getUniqueTableColValuesMap(\n gridData,\n multiSelectFilterColsNames\n );\n console.log(\"data ==> \", data);\n setColValsMapData(data);\n };\n getColVals();\n }, [gridData, multiSelectFilterColsNames]);\n\n const clearAllFilters = useCallback(() => {\n // setData([]);\n setColFilter({});\n setFilteredData([]);\n // setColValsMapData(new Map());\n }, []);\n\n return (\n
\n
\n \n Clear All Filters\n \n
\n
\n \n
\n\n
\n \n
\n
\n );\n};\nexport default StudentInitated;\n","import { Button, Row, Col, InputGroup, Dropdown } from \"react-bootstrap\";\nimport { Form } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\nimport DashboardService from \"../../services/dashboard\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport Menu from \"../AdminForms/Menu\";\nimport Select from \"react-select\";\nimport { FilterIcon, SearchIcon, XIcon } from \"@heroicons/react/outline\";\nimport { FilterIcon as FilterIconFilled } from \"@heroicons/react/solid\";\nimport {\n filterRowsDataInCols,\n getUniqueTableColValuesMap,\n} from \"../../common/utils\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\n\nconst debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nconst VugTransactions = (props) => {\n const { passFilteredData, gridData: propData, ...rest } = props;\n const [gridData, setData] = useState([]);\n const [formError, setFormError] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n const [showModal, setShowModal] = useState(null);\n const [showVocadoMessagesModal, setshowVocadoMessagesModal] = useState(null);\n const [colFilter, setColFilter] = useState({});\n const [filteredData, setFilteredData] = useState([]);\n const [colValsMapData, setColValsMapData] = useState(new Map());\n const formRef = useRef(null);\n const ref = useRef();\n\n const renderSelColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n const uniqVals = colValsMapData.get(uniqId);\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n // trigger={}\n className={styles.menu}\n >\n ({\n value: colVal,\n label: colVal,\n }))}\n isMulti\n isClearable\n onChange={(val) => {\n if (val.length) {\n setColFilter((prev) => ({ ...prev, [uniqId]: val }));\n } else {\n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n });\n }\n }}\n value={colFilter[uniqId]}\n />\n \n \n \n );\n },\n [colFilter, colValsMapData]\n );\n\n const renderColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n className={styles.menu}\n >\n \n \n \n \n \n setColFilter((prev) => ({\n ...prev,\n [uniqId]: value.trim(),\n }))\n )}\n value={colFilter[uniqId]}\n />\n \n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n })\n }\n >\n \n \n \n \n \n \n );\n },\n [colFilter]\n );\n\n useEffect(() => {\n const filterFn = async () => {\n const data = await filterRowsDataInCols(colFilter, gridData);\n setFilteredData(data);\n };\n filterFn();\n }, [gridData, colFilter]);\n\n const columns: Array = [\n {\n name: \"filename\",\n label: \"FileName\",\n showInExcel: true,\n headerClass: `text-nowrap`,\n width:70\n },\n {\n name: \"aidYear\",\n label: \"AidYear\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:55\n },\n {\n name: \"message_status\",\n label: \"Message Status\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:90\n },\n {\n name: \"error_count\",\n label: \"ErrorCount\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:70\n },\n {\n name: \"matched_count\",\n label: \"MatchedCount\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:90\n },\n {\n name: \"numberOfRecords\",\n label: \"NumberOfRecords\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:110\n },\n {\n name: \"success_count\",\n label: \"SuccessCount\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:95\n },\n {\n name: \"unmatched_count\",\n label: \"UnmatchedCount\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:90\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:90,\n sortable: true\n },\n {\n name: \"updated_at\",\n label: \"Updated At\",\n headerClass: `text-nowrap`,\n showInExcel: true,\n width:90,\n sortable: true\n },\n ];\n useEffect(() => {\n async function fetchVugTransactionsTable() {\n setIsLoading(true);\n const data = await DashboardService.getVugTransactions();\n setIsLoading(false);\n setData(\n data\n .map((d) => ({ ...d, created_at: new Date(d.created_at).valueOf() }))\n .sort((a, b) => b.created_at - a.created_at)\n .map((d) => ({\n ...d,\n created_at: new Date(d.created_at).toISOString(),\n }))\n );\n }\n fetchVugTransactionsTable();\n const data = [];\n }, []);\n\n // useEffect(() => {\n // const getColVals = async () => {\n // const data = await getUniqueTableColValuesMap(\n // gridData,\n // multiSelectFilterColsNames\n // );\n // console.log(\"data ==> \", data);\n // setColValsMapData(data);\n // };\n // getColVals();\n // }, [gridData, multiSelectFilterColsNames]);\n\n // const clearAllFilters = useCallback(() => {\n // setData([]);\n // setColFilter({});\n // setFilteredData([]);\n // setColValsMapData(new Map());\n // }, []);\n\n return (\n
\n {/*
\n \n Clear All Filters\n \n
*/}\n
\n \n
\n\n
\n \n
\n
\n );\n};\nexport default VugTransactions;\n","const Summary = () => {\n return (\n \n Welcome to Facet Dashboard Summary Page\n

\n );\n};\nexport default Summary;\n","import Tabs from \"react-bootstrap/Tabs\";\nimport { Button, Tab } from \"react-bootstrap\";\nimport { useEffect, useState } from \"react\";\nimport { RootState } from \"../../reducers\";\nimport { useSelector } from \"react-redux\";\nimport Jobs from \"./Jobs\";\nimport Transactions from \"./Transactions\";\nimport StudentInitated from \"./StudentIntiated\";\nimport VugTransactions from \"./VugTransactions\";\nimport styles from \"./index.module.scss\";\nimport \"./index.module.scss\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\nimport { Link } from \"react-router-dom\";\nimport Summary from \"./Summary\";\nconst Dashboard = () => {\n const dashboard = useSelector((state: RootState) => state.dashboard);\n const {jobs, transactions, studentintiation, vugTransactions } = dashboard;\n console.log('jobs', jobs)\n const [excelData, setExcelData] = useState(\"summary\");\n const [map, setMap] = useState({});\n useEffect(() => {\n // console.log(dashboard);\n }, [dashboard]);\n\n useEffect(() => {\n if (\n vugTransactions.length ||\n studentintiation.length ||\n transactions.length ||\n jobs.length\n )\n setMap({\n jobs: {\n data: jobs,\n fileName: \"Jobs\",\n isVisible: true,\n },\n transactions: {\n data: transactions,\n fileName: \"Transactions\",\n isVisible: true,\n },\n student: {\n data: studentintiation,\n fileName: \"Student Initiation\",\n isVisible: true,\n },\n vugtrans: {\n data: vugTransactions,\n fileName: \"Vug Transactions\",\n isVisible: true,\n },\n });\n }, [vugTransactions, transactions, studentintiation, jobs]);\n\n const saveFilteredData = (data) => {\n setMap({\n ...map,\n [excelData]: {\n ...map[excelData],\n data,\n },\n });\n };\n console.log('map', map)\n const [data, setData] = useState([]);\n\n return (\n <>\n
\n setExcelData(key)}\n activeKey={excelData}\n >\n \n \n \n \n {Boolean(jobs?.length > 1000) ? (\n

\n The results are limited the first 1000 records, Please revise\n your search ceriteria to narrow your search, if needed.\n

\n ) : null}\n\n {excelData === 'jobs' && }\n
\n \n {Boolean(transactions?.length > 1000) ? (\n

\n The results are limited the first 1000 records, Please revise\n your search ceriteria to narrow your search, if needed.\n

\n ) : null}\n {excelData === 'transactions' && }\n
\n \n {Boolean(studentintiation?.length > 1000) ? (\n

\n The results are limited the first 1000 records, Please revise\n your search ceriteria to narrow your search, if needed.\n

\n ) : null}\n {excelData === 'student' && }\n
\n \n {console.log(vugTransactions, excelData, \"test vug\")}\n {Boolean(vugTransactions?.length > 1000) ? (\n

\n The results are limited the first 1000 records, Please revise\n your search ceriteria to narrow your search, if needed.\n

\n ) : null}\n {excelData === 'vugtrans' && }\n
\n \n {/* {
\n Adv Search\n
} */}\n
\n \n
\n
\n \n );\n};\n\nexport default Dashboard;\n","import { useHistory } from \"react-router-dom\";\nimport styles from \"./index.module.scss\";\nimport UCLA from \"../Assets/UCLA.jpg\";\nimport { fetchToken } from \"../../services/tokenService\";\n\nconst AUTHORISED_USERS = [\n // {\n // username: \"rrbqa056a15s19mmru0p04lhs\",\n // password: \"1613mnnrvjtp4af2hnpi4fp8ca2asp934vb2g8212rotch6k6do0\"\n // }\n];\n\n//const isUserAuthorised = ({username,password})=>{\n//return !!AUTHORISED_USERS.filter(user => user.username === username && user.password === password).length;\n//}\nconst Login = () => {\n const history = useHistory();\n\n const redirectUser = () => {\n history.push(\"/\");\n };\n\n const submitForm = async (e) => {\n e.preventDefault();\n console.log(\"===Here\");\n const username = e.target.username.value;\n const password = e.target.password.value;\n try {\n const response = await fetchToken({\n client_id: username,\n client_secret: password,\n });\n if (response?.error) {\n window.alert(\n \"Invalid username password combination. Please try again !\"\n );\n } else {\n if (response.access_token) {\n localStorage.setItem(\"token\", response.access_token);\n // sessionStorage.setItem(\"token\", response.access_token);\n }\n redirectUser();\n }\n } catch (e) {\n console.log(e);\n }\n\n // if (isUserAuthorised({username,password})) {\n\n //} else {\n //window.alert(\"Invalid username/password combination\");\n //}\n };\n return (\n
\n
\n
\n FACET Dashboard - Temp Login\n
\n {/* \"UCLA\" */}\n
\n
\n \n \n
\n
\n \n \n
\n \n \n
\n
\n );\n};\n\nexport default Login;\n","\nimport { http } from \"../common/http\";\nimport { fetchToken, refetchToken } from \"./tokenService\";\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\n\nexport const getControlledClasses = async () => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}controls`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\nexport const createControlledClasses = async (body) => {\n const token = getToken();\n try {\n return await http.post(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/create`,\n {\n Authorization: `Bearer ${token}`,\n },\n JSON.stringify(body)\n // body\n );\n } catch (err) {\n console.error(err);\n }\n};\n\nexport const createControlledClass = async (body) => {\n const token = getToken();\n try {\n return await http.post(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/create`,\n {\n Authorization: `Bearer ${token}`,\n },\n // JSON.stringify(body)\n body\n );\n } catch (err) {\n console.error(err);\n }\n};\n\nexport const getPermissions = async () => {\n const token = getToken();\n if(!token){\n await refetchToken()\n }\n try {\n return await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/GROUPER_ROLES/FUNCTIONS`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n};\n\nexport const updateControlledClass = async (body) => {\n const token = getToken();\n try {\n return await http.put(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/update`,\n {\n Authorization: `Bearer ${token}`,\n },\n JSON.stringify(body)\n );\n } catch (err) {\n console.error(err);\n }\n};\n\nexport const getsafissd = async (year) => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/SAFI_SSD_CONTROLS/${year||'2024-2025'}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\nexport const getunexssd = async (year) => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}control/SAFI_SSD_CONTROLS_UNEX/${year||'2024-2025'}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\n","import React, { createContext, useEffect, useMemo, useReducer } from \"react\";\nimport RolesAndPermissions from './constants/rolesAndPermissions.json';\nimport moment from \"moment\";\nimport { getPermissions } from \"../services/controltable\";\n\n// console.log('path ==> ', process.env);\n\n\nconst initialAppState = JSON.parse(\n localStorage.getItem(\"app-provider\") || \"null\"\n) || {\n login: null,\n};\n\nexport const AppContext = createContext(initialAppState);\n\nexport default function AppProvider({ children }) {\n const appReducer = (state, action) => {\n switch (action.type) {\n case \"SET_PERMISSIONS\": \n return {\n ...state,\n permissions: action.payload\n }\n case \"UPDATE_LOGIN\": {\n return {\n ...state,\n login: { ...(state.login || {}), ...action.payload },\n expiry: moment().add(moment.duration(3, 'h')).unix()\n };\n }\n case \"CLEAR_LOGIN\": {\n return {\n ...state,\n login: null,\n expiry: null,\n permissions: {}\n };\n }\n default:\n return state;\n }\n };\n\n useEffect(() => {\n async function fetchPermissions(){\n const {resData} = await getPermissions();\n const {data} = resData || {data: []}\n const map = data?.[0]?.dictionary;\n const normalizedMap = {}\n for (let key in map){\n normalizedMap[key] = map[key].map(url => `/${url}`)\n }\n dispatch({type: 'SET_PERMISSIONS', payload: normalizedMap})\n // console.log('per', normalizedMap)\n }\n fetchPermissions();\n },[])\n const [state, dispatch] = useReducer(appReducer, initialAppState);\n\n const availablePages = useMemo(() => {\n let roles = [];\n const accessRoles = decodeURIComponent(\n (state.login && state.login[\"custom:UclaPersonRole\"]) || \"\"\n )\n .replaceAll(\"urn:mace:ucla.edu:role:facet-integ-dashboard:\", \"\")\n .replaceAll(\"[\", '')\n .replaceAll(\"]\", '')\n .split(\", \");\n\n \n // const accessPermissions = envRolesNPermissions\n // .replaceAll(\"[\", '')\n // .replaceAll(\"]\", '')\n // .split(\", \").map(key => `/${key}`);\n\n if (accessRoles.length > 0 ) {\n roles = roles.concat([\"\", \"/\"])\n accessRoles.forEach((role) => {\n if(role){\n roles = roles.concat({ [role]: state.permissions?.[role] || []})\n if(state.permissions?.[role])\n roles = roles.concat(state.permissions?.[role] )\n }\n });\n }\n return [...new Set(roles)];\n }, [state.login,state.permissions]);\n\n useEffect(() => {\n localStorage.setItem(\"app-provider\", JSON.stringify(state));\n }, [state]);\n\n return (\n \n {children}\n \n );\n}\n","import { Link } from \"react-router-dom\";\nimport { ROUTES } from \"../../common/constants\";\nimport styles from \"./index.module.scss\";\nimport { useContext } from \"react\";\nimport { AppContext } from \"../../common/AppProvider\";\n\nconst list = [\n {\n name: \"DASHBOARD\",\n link: ROUTES.DASHBOARD,\n },\n {\n name: \"ADVANCED SEARCH\",\n link: ROUTES.ADV_SEARCH,\n },\n {\n name: \"ADMIN\",\n link: ROUTES.ADMIN_FORMS,\n },\n {\n name: \"FUNCTIONAL ADMIN\",\n link: ROUTES.FUNCTIONAL_ADMIN,\n },\n {\n name: \"CONTROL TABLE\",\n link: ROUTES.CLASSES,\n },\n {\n name: \"MONITORING DASHBOARDS\",\n link: ROUTES.MONITORING_DASHBOARDS,\n },\n {\n name: \"COVERAGE\",\n link: ROUTES.COVERAGE,\n },\n // {\n // name: \"STAFF\",\n // link: ROUTES.APP_ROOT,\n // },\n // {\n // name: \"FINANCE AND JOBS\",\n // link: ROUTES.APP_ROOT,\n // },\n // {\n // name: \"CAMPUS LIFE\",\n // link: ROUTES.APP_ROOT,\n // },\n // {\n // name: \"OTHER STUDENT SERVICES\",\n // link: ROUTES.APP_ROOT,\n // },\n];\n\nconst Menu = () => {\n const { availablePages } = useContext(AppContext);\n return (\n
\n
    \n {list\n .filter((item) => availablePages.includes(item.link))\n .map((item, k) => (\n
  • \n {item.name}\n | \n
  • \n ))}\n
\n
\n );\n};\n\nexport default Menu;\n","import { Container } from \"react-bootstrap\";\nimport Menu from \"../Menu\";\nimport styles from \"./index.module.scss\";\n\nconst Header = () => {\n return (\n
\n \n
\n

UCLA

\n \n
\n
\n
\n );\n};\n\nexport default Header;\n","import { Container, Row } from \"react-bootstrap\";\nimport { Link } from \"react-router-dom\";\nimport { useHistory } from \"react-router-dom\";\nimport { ROUTES } from \"../../common/constants\";\nimport styles from \"./index.module.scss\";\nimport { useContext, useEffect } from \"react\";\nimport { AppContext } from \"../../common/AppProvider\";\n\nconst TopNav = () => {\n const {update, data } = useContext(AppContext);\n\n const history = useHistory();\n\n // const getToken = () => {\n // return localStorage.getItem(\"token\");\n // };\n\n const logout = async () => {\n update({ type: \"CLEAR_LOGIN\" });\n localStorage.clear()\n window.location.reload();\n };\n\n useEffect(() => {\n // getToken();\n });\n\n // console.log(data.login, \"login data\");\n\n return (\n \n );\n};\n\nexport default TopNav;\n","import React, { Component } from \"react\";\nimport { Container, Row } from \"react-bootstrap\";\nimport { useLocation } from \"react-router-dom\";\nimport Header from \"../components/Header\";\nimport TopNav from \"../components/TopNav\";\nimport styles from \"./index.module.scss\";\n\nconst HEADER_MAP = {\n '/':'Home',\n '/dashboard': 'Dashboard',\n '/adv-search': 'Advanced Search',\n // '/control-table': 'Control Table',\n '/admin': 'Admin',\n '/functional-admin': 'Functional Admin',\n '/monitoring-dashboards': 'Monitoring Dashboards',\n '/coverage':'Coverage'\n};\n\nconst MainLayout = ({children}) => {\n const {pathname} = useLocation();\n return (\n \n \n \n
\n \n\n \n
\n
\n

\n {HEADER_MAP[pathname] ?? 'Faled To Load Name'}\n

\n

\n {process.env.REACT_APP_ENV}\n

\n
\n
\n {children}\n
\n
\n \n );\n}\n\n\nexport default MainLayout;\n","import { useEffect, useMemo } from \"react\";\nimport { Route, useHistory, useLocation } from \"react-router-dom\";\nimport MainLayout from \"../../layouts\";\nimport { fetchToken, fetchdecodeToken } from \"../../services/tokenService\";\nimport { useContext } from \"react\";\nimport { AppContext } from \"../../common/AppProvider\";\n\nimport TopNav from \"../TopNav\";\nimport { Spinner } from \"react-bootstrap\";\nimport moment from \"moment\";\n// import { logoutIfTokenFails } from \"../../actions/dashboard\";\n\nconst ProtectedRoute = ({ route: Component, ...props }) => {\n const {\n update,\n data: { login, expiry },\n availablePages,\n } = useContext(AppContext);\n const history = useHistory();\n const url = process.env.REACT_APP_API_SHIBBOLETH_URL;\n // const url = \"https://up-users-non-shib.auth.us-west-2.amazoncognito.com/login?client_id=65ee6596ba267mn74uuchvdbja&response_type=code&scope=email+openid+phone&redirect_uri=http%3A%2F%2Flocalhost%3A3000\";\n // const url = \"https://facet-userpool.auth.us-west-2.amazoncognito.com/login?client_id=3c501ijsel3702ima8ce8rhppj&response_type=code&scope=api.dev.facet.it.ucla.edu%2Ftransactions&redirect_uri=http%3A%2F%2Flocalhost%3A3000\";\n\n const location = useLocation();\n\n useEffect(() => {\n const hasAccess =\n availablePages.length > 0 && availablePages.includes(location.pathname);\n // console.log(\"location ==> \", location, availablePages);\n if (login && !hasAccess) {\n history.push(\"/error\");\n }\n }, [availablePages, location, login]);\n\n useEffect(() => {\n async function checkAuthentication() {\n const isLoggedIn = localStorage.getItem(\"isLoggedIn\") === \"true\" && login?.exp && moment().unix() < login.exp;\n // const isLoggedIn = sessionStorage.getItem(\"isLoggedIn\") === \"true\";\n const search = window.location.search;\n if (search.length === 0 && !isLoggedIn) {\n window.location.href = url;\n } else {\n if (search.includes(\"error\")) {\n localStorage.setItem(\"isLoggedIn\", \"false\");\n // sessionStorage.setItem(\"isLoggedIn\", \"false\");\n history.push(`/error${search}`);\n // history.push(\"/\")\n } else if (search.includes(\"code=\")) {\n const [_, code] = search.split(\"code=\");\n const response = await fetchToken(code);\n const tokenData = fetchdecodeToken(response.id_token);\n // console.log(tokenData, \"login data Response\");\n if (tokenData) {\n update({ type: \"UPDATE_LOGIN\", payload: tokenData });\n }\n localStorage.setItem(\"isLoggedIn\", \"true\");\n // sessionStorage.setItem(\"isLoggedIn\", \"true\");\n }\n }\n }\n checkAuthentication();\n }, [history]);\n\n return (\n \n {login ? (\n \n ) : (\n
\n \n Loading...\n \n
\n )}\n
\n );\n};\nexport default ProtectedRoute;\n","import { useState } from \"react\";\nimport { Tab, TabProps, TabsProps } from \"react-bootstrap\";\nimport Tabs from \"react-bootstrap/Tabs\";\n\ninterface ITabProps extends TabProps {\n Component: React.FunctionComponent;\n}\ninterface ICustomTabs extends TabsProps {\n tabs: ITabProps[];\n}\nconst CustomTabs = ({ tabs, defaultActiveKey='' }: ICustomTabs) => {\n const [active, setActive] = useState(defaultActiveKey as string)\n return (\n \n {tabs.map(({ title, Component: Comp, eventKey }) => (\n \n {active === eventKey && }\n \n ))}\n \n );\n};\n\nexport default CustomTabs;\n","import { Row, Card, Button, Stack, Col } from \"react-bootstrap\";\nimport CustomField from \"./CustomField\";\nimport { forwardRef, useCallback, useEffect, useMemo, useState } from \"react\";\nimport { MinusIcon, PlusIcon } from \"@heroicons/react/outline\";\n\nconst IncrementalFields = forwardRef(\n ({ fields, onChange, name, max = 10, hasDelete = false, ...props }:any, ref:any) => {\n const fieldsNamesObj = useMemo(() => {\n if (fields && Array.isArray(fields)) {\n return fields.reduce((acc, field) => {\n if (field?.name) {\n acc[field?.name] = null;\n }\n return acc;\n }, {});\n }\n return {};\n }, [fields]);\n\n const [rowsData, setRowsData] = useState([{ ...fieldsNamesObj }]);\n\n const addNewRow = useCallback(() => {\n if (rowsData.length < max) {\n setRowsData((prev) => [...prev, { ...fieldsNamesObj }]);\n }\n }, [max, rowsData, fieldsNamesObj]);\n\n useEffect(() => {\n if (onChange) {\n onChange({ target: { name: name, value: rowsData } });\n }\n }, [rowsData]);\n\n const handleChange = useCallback(\n (rowId, evt) => {\n if (rowsData.length > rowId) {\n rowsData[rowId][evt.target.name] = evt.target.value;\n setRowsData([...rowsData]);\n }\n },\n [rowsData]\n );\n\n const deleteRow = useCallback(\n (index) => {\n if (rowsData.length - 1 > index) {\n console.log(\"rowsData ==> \", rowsData, index);\n rowsData.splice(index, 1);\n console.log(\"after delete rowsData ==> \", rowsData, index);\n setRowsData([...rowsData]);\n }\n },\n [rowsData]\n );\n\n return (\n \n \n {rowsData.map((rowData, rowIdx) => {\n const isLastRow = rowIdx === rowsData.length - 1;\n const showAdd = isLastRow && rowsData.length !== max;\n return (\n \n \n \n {fields?.map((field, fieldIdx) => (\n \n ref?.current?.push(ele)}\n {...field}\n key={`meta_field_${rowIdx}${fieldIdx}_${field.name}`}\n onChange={(evt) => handleChange(rowIdx, evt)}\n value={rowData[field.name]}\n />\n \n ))}\n \n \n \n \n {showAdd && (\n \n \n \n )}\n {rowsData.length > 1 && hasDelete && (\n deleteRow(rowIdx)}\n >\n \n \n )}\n \n \n \n );\n })}\n \n \n );\n }\n);\n\nexport default IncrementalFields;","import { forwardRef, memo, useMemo } from \"react\";\nimport { Form, Col, Stack, Card } from \"react-bootstrap\";\nimport IncrementalFields from \"./IncrementalFields\";\nimport CustomTable from \"../../components/CustomTable\";\n\nconst CustomField = forwardRef(\n (\n { xs, sm, md, lg, xl, onChange, labelProps, type, value, ...props }: any,\n ref: any\n ) => {\n const formControl = useMemo(() => {\n switch (type) {\n case \"repeat\": {\n return ;\n }\n case \"table\": {\n return (\n \n \n \n );\n }\n case \"switch\":\n case \"checkbox\":\n case \"radio\": {\n return (\n \n {props?.options?.map((opt, optIdx) => (\n ref?.current?.push(el)}\n id={`inline-${type}-${props.name}-${optIdx}`}\n key={`inline-${type}-${props.name}-${optIdx}-${opt.label}`}\n onChange={onChange}\n />\n ))}\n \n );\n }\n case \"select\": {\n return (\n ref?.current?.push(el)}\n value={value || \" \"}\n >\n \n {props?.options?.map((opt, optIdx) => (\n \n {opt.label}\n \n ))}\n \n );\n }\n case \"textarea\": {\n return (\n ref?.current?.push(el)}\n onChange={onChange}\n type={type}\n as={type}\n value={value}\n {...props}\n />\n );\n }\n case \"file\":\n return (\n ref?.current?.push(el)}\n onChange={onChange}\n type={type}\n value={value?.map ? value?.map((val) => val?.name) : undefined}\n {...props}\n />\n );\n case \"tel\":\n case \"date\":\n case \"number\":\n case \"email\":\n case \"text\":\n default:\n return (\n ref?.current?.push(el)}\n onChange={onChange}\n type={type}\n value={value}\n {...props}\n />\n );\n }\n }, [onChange, props, type, ref, value]);\n\n const showLabel = useMemo(() => {\n const typesWithoutLabel = [\"table\"];\n return !typesWithoutLabel.includes(type) && props.label;\n }, [type, props.label]);\n\n return (\n \n {[\"repeat\", \"table\"].includes(type) ? (\n <>\n {showLabel && props.label.trim() && (\n \n {props.label}\n \n )}\n {formControl}\n \n ) : (\n \n {showLabel && props.label.trim() && (\n \n \n {props.label}\n \n \n )}\n \n {formControl}\n \n \n )}\n \n {`Please enter proper ${props.label}`}\n \n \n );\n }\n);\n\nexport default memo(CustomField);\n","import { useEffect, useState } from \"react\";\nimport { Button, Modal } from \"react-bootstrap\";\n\ninterface CustomModalProps {\n show: boolean;\n title: string;\n onClose: () => void;\n onSave: () => void;\n children: React.ReactNode;\n primaryBtnText?: string;\n secondaryBtnText?: string;\n}\n\nfunction CustomModal(props: CustomModalProps) {\n const [show, setShow] = useState(props.show);\n const handleClose = () => {\n setShow(false);\n if (props.onClose) props.onClose();\n };\n const handleSave = () => {\n setShow(false);\n if (props.onSave) props.onSave();\n };\n useEffect(() => {\n setShow(props.show);\n }, [props.show]);\n return (\n \n \n {props.title}\n \n {props.children}\n \n \n \n \n \n );\n}\n\nexport default CustomModal;\n","import { useReducer, useState, useEffect, useMemo } from \"react\";\nimport { getsafissd } from \"../../services/controltable\";\nimport { sortFn } from \"../../components/CustomTable\";\nimport moment from \"moment\";\n\nexport enum SAFI_ACTIONS {\n INIT_RULES = \"INIT_RULES\",\n ADD_RULE = \"ADD_RULE\",\n UPDATE_RULE = \"UPDATE_RULE\",\n DELETE_RULE = \"DELETE_RULE\",\n FETCH_RULES = \"FETCH_RULES\",\n}\n\nexport default function useSSIDData() {\n const [apiData, setApiData] = useState({});\n const [loading, setLoading] = useState(false);\n\n async function fetchData(year) {\n setLoading(true);\n const data = await getsafissd(year);\n if (data.resData?.data) {\n setApiData(data.resData?.data[0] || []);\n console.log(\"fecthed ==> \", data.resData?.data[0]);\n }\n setLoading(false);\n }\n\n const getProperRule = (data) => {\n return {\n allowedCareers: data.allowedCareers,\n allowedRegTypes: data.allowedRegTypes,\n // allowSSD: data.allowSSD,\n allowSummerCourses: data.allowSummerCourses,\n excludedClassficationIds: data.excludedClassficationIds,\n excludedCollegeIds: data.excludedCollegeIds,\n excludeMajors: data.excludeMajors\n }\n }\n\n const {\n tableData,\n dicts,\n created_at,\n updated_at,\n updated_by,\n enable_safi_control,\n enable_ssd,\n enable_summer_ssd,\n enable_summer_ssd_md,\n description,\n control_value,\n control_name,\n } = useMemo(() => {\n const objConst = {\n created_at: (apiData as any).created_at,\n updated_at: (apiData as any).updated_at,\n updated_by: (apiData as any).updated_by,\n enable_safi_control: (apiData as any).enable_safi_control,\n enable_ssd: (apiData as any).enable_ssd,\n enable_summer_ssd: (apiData as any).enable_summer_ssd,\n enable_summer_ssd_md: (apiData as any).enable_summer_ssd_md,\n control_value: (apiData as any).control_value,\n control_name: (apiData as any).control_name,\n description: (apiData as any).description,\n };\n const tableData = (apiData as any).dictionary?.reduce((acc, dict) => {\n const rule = dict?.rules[0];\n acc.push({ ...rule, effectiveDate: dict.effectiveDate, ...objConst });\n return acc;\n }, []).sort((a, b) => {\n return sortFn(moment(a.effectiveDate).unix(), moment(b.effectiveDate).unix());\n });\n return { tableData, ...objConst, dicts: (apiData as any).dictionary };\n }, [apiData]);\n\n const reducer = (state, action) => {\n console.log(\"action ==> \", action)\n switch (action.type) {\n case SAFI_ACTIONS.ADD_RULE: {\n const tableData = state.tableData || []\n const dicts = state.dicts || []\n const newData = action.payload\n const newDict = {\n effectiveDate: action.payload.effectiveDate,\n rules: [{\n ...getProperRule(action.payload)\n }]\n }\n tableData?.push(newData)\n dicts?.push(newDict)\n setTimeout(() => {\n action.callBack(tableData, dicts)\n }, 1500)\n return ({ ...state, tableData, dicts })\n }\n case SAFI_ACTIONS.UPDATE_RULE: {\n tableData[action.payload.index] = action.payload.data\n const dicts = state.dicts\n dicts[action.payload.index].effectiveDate = action.payload.data.effectiveDate\n dicts[action.payload.index].rules[0] = getProperRule(action.payload.data)\n return { ...state, tableData: [...tableData], dicts }\n }\n case SAFI_ACTIONS.DELETE_RULE:\n break;\n case SAFI_ACTIONS.FETCH_RULES: {\n fetchData(action.payload.value)\n return { ...state }\n }\n case SAFI_ACTIONS.INIT_RULES: \n return { ...state, ...action.payload }\n default:\n return { ...state };\n }\n };\n\n \n\n const [state, dispatch] = useReducer(reducer, {\n tableData,\n dicts,\n });\n\n useEffect(() => {\n dispatch({ type:SAFI_ACTIONS.INIT_RULES, payload: {tableData, dicts} })\n }, [tableData, dicts, dispatch])\n\n return {\n ...state,\n dispatch,\n created_at,\n updated_at,\n updated_by,\n enable_safi_control,\n enable_ssd,\n enable_summer_ssd,\n enable_summer_ssd_md,\n description,\n control_value,\n control_name,\n loading,\n };\n}\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/outline\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport styles from \"./index.module.scss\";\nimport {\n Button,\n Card,\n Col,\n Form,\n Row,\n Stack,\n Toast,\n ToastContainer,\n} from \"react-bootstrap\";\nimport CustomField from \"../AdminForms/CustomField\";\nimport CustomModal from \"../AdminForms/CustomModal\";\nimport { AppContext } from \"../../common/AppProvider\";\nimport CustomForm from \"../AdminForms/CustomForm\";\nimport {\n updateControlledClass,\n getsafissd,\n createControlledClasses,\n} from \"../../services/controltable\";\nimport moment from \"moment\";\nimport Select, { Options } from \"react-select\";\nimport useSSIDData, { SAFI_ACTIONS } from \"./useSSIDData\";\nimport Checkbox from \"react-custom-checkbox\";\nimport * as Icon from \"react-icons/fi\";\nimport { table } from \"console\";\nimport { getEnabledCategories } from \"trace_events\";\n\ntype YearOption = { label: string; value: string };\n\nexport const SafiSSd = () => {\n const { data } = useContext(AppContext);\n\n const {\n tableData,\n loading,\n dispatch,\n dicts,\n control_name,\n control_value,\n description,\n created_at,\n updated_at,\n updated_by,\n enable_safi_control,\n enable_ssd,\n enable_summer_ssd,\n enable_summer_ssd_md,\n } = useSSIDData();\n\n const columns: Array = [\n {\n name: \"effectiveDate\",\n label: \"Effective Date\",\n cellClass: `${styles.uid1_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 85\n },\n {\n name: \"allowedCareers\",\n label: \"Allowed Careers\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 88\n },\n {\n name: \"allowedRegTypes\",\n label: \"Allowed Reg Types\",\n cellClass: `${styles.academicyear_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 120\n },\n {\n name: \"excludeMajors\",\n label: \"Exclude Majors\",\n cellClass: `${styles.flagvalue_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 90\n },\n {\n name: \"allowSummerCourses\",\n label: \"Allow Summer Courses\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 120\n },\n // {\n // name: \"allowSSD\",\n // label: \"Allow SSD\",\n // cellClass: `${styles.updatedby_col}`,\n // showInExcel: true,\n // width: 65,\n // headerClass: `text-nowrap`,\n // },\n {\n name: \"excludedCollegeIds\",\n label: \"Excluded College Ids\",\n cellClass: `${styles.uid1_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 110\n },\n {\n name: \"excludedClassficationIds\",\n label: \"Excluded Classfication Ids\",\n cellClass: `${styles.flagname_col}`,\n showInExcel: true,\n width: 130,\n headerClass: `text-nowrap`,\n },\n {\n name: \"Actions\",\n label: \"Actions\",\n headerClass: `text-center`,\n renderRow: (_, row, idx) => rowActions(row, idx),\n width: 70,\n },\n ];\n\n const ref = useRef();\n const currAcdYear = `${moment().format(\"YYYY\")}-${moment()\n .add(1, \"years\")\n .format(\"YYYY\")}`;\n\n const [showModal, setShowModal] = useState(null);\n const [modifiedDict, setModifiedDict] = useState(false);\n const intialdata = {\n effectiveDate: moment().format(\"YYYY-MM-DD\"),\n allowedCareers: \"D,M,U,L,G\",\n allowedRegTypes: \"NEW, APP, NIT, blank\",\n // allowSSD: \"Y\",\n allowSummerCourses: \"Y\",\n excludedClassficationIds: \"0246,0728\",\n excludedCollegeIds: \"0246,0728\",\n excludeMajors: \"0246,0728\",\n };\n const [currData, setCurrData] = useState({});\n const [currIndex, setCurrIndex] = useState(null);\n const [year, setYear] = useState({\n label: currAcdYear,\n value: currAcdYear,\n });\n // const [safiEnabled, setSafiEnabled] = useState(null);\n const [safiEnabled, setSafiEnabled] = useState(false);\n const [safiEnabledSsd, setSafiEnabledSsd] = useState(false);\n const [safiEnabledSummerSsd, setSafiEnabledSummerSsd] = useState(false);\n const [safiEnabledSummerSsdMd, setSafiEnabledSummerSsdMd] = useState(false);\n const [toast, setToast] = useState(null);\n\n useEffect(() => {\n console.log(\"test ==> \", enable_safi_control);\n setTimeout(() => {\n setSafiEnabled(enable_safi_control === \"Y\");\n setSafiEnabledSummerSsdMd(enable_summer_ssd_md === \"Y\");\n setSafiEnabledSsd(enable_ssd === \"Y\");\n setSafiEnabledSummerSsd(enable_summer_ssd === \"Y\");\n }, 1000);\n }, [tableData]);\n\n console.log(\"safiEnabled ==>\", safiEnabled);\n\n useEffect(() => {\n if (year) {\n dispatch({ type: SAFI_ACTIONS.FETCH_RULES, payload: year });\n }\n }, [year, dispatch]);\n\n const handleCurrValChange = (e) => {\n setCurrData((prev) => {\n prev[e.target.name] = e.target.value;\n return { ...prev };\n });\n };\n\n const onEditRow = (index, row) => {\n setCurrData((prev) => ({\n ...prev,\n ...row,\n effectiveDate: moment(row.effectiveDate).format(\"YYYY-MM-DD\"),\n }));\n setCurrIndex(index);\n setShowModal(\"Edit\");\n };\n\n // const onDeleteRow = (index) => {\n // setFlagsData((prev) => {\n // prev.splice(index, 1);\n // return [...prev];\n // });\n // };\n\n const handleAddRow = () => {\n setCurrData(() => ({\n ...intialdata,\n }));\n\n setShowModal(\"Add\");\n };\n\n const rowActions = useCallback((row, index) => {\n return ( \n \n onEditRow(index, row)}\n className=\"bg-transparent border-0\"\n // disabled={moment(row.effectiveDate).isBefore(moment().format('MM-DD-YYYY'), 'day')}\n >\n \n \n {/* {(row.isNewRow || row.modified) && (\n onDeleteRow(index)}\n className=\"bg-transparent border-0\"\n >\n \n \n )} */}\n \n );\n }, []);\n\n //toDo: add all logic here to make update and add calls.\n const onModalClose = () => {\n setCurrData({ effectiveDate: moment().format(\"YYYY-MM-DD\") });\n setCurrIndex(null);\n setShowModal(null);\n };\n\n const onModalSave = useCallback(async () => {\n if (showModal === \"Edit\") {\n if (currIndex === null) {\n throw new Error(\"Missing edited row index!\");\n }\n setModifiedDict(true);\n dispatch({\n type: SAFI_ACTIONS.UPDATE_RULE,\n payload: { data: { ...currData }, index: currIndex },\n });\n } else {\n setShowModal(null);\n dispatch({\n type: SAFI_ACTIONS.ADD_RULE,\n payload: { ...currData },\n callBack: async (tableData, dicts) => {\n try {\n await createControlledClasses({\n updated_by: data?.login[\"custom:displayName\"],\n dictionary: dicts,\n control_name: \"SAFI_SSD_CONTROLS\",\n control_value: year.label,\n description: \"Dictionary for SAFI COntrols\",\n created_at: moment().toISOString(),\n updated_at: moment().toISOString(),\n enable_safi_control: safiEnabled ? \"Y\" : \"N\",\n enable_ssd: safiEnabledSsd ? \"Y\" : \"N\",\n enable_summer_ssd: safiEnabledSummerSsd ? \"Y\" : \"N\",\n enable_summer_ssd_md: safiEnabledSummerSsdMd ? \"Y\" : \"N\",\n });\n if (safiEnabled) {\n setToast(`SAFI/SSD controls created successfully!`);\n }\n } catch (err) {\n setToast(`Flag disabled`);\n }\n dispatch({ type: SAFI_ACTIONS.FETCH_RULES, payload: year });\n },\n });\n }\n onModalClose();\n }, [currData, currIndex, showModal]);\n\n const academicYears: YearOption[] = [\n // `${moment().subtract(3, \"years\").format(\"YYYY\")}-${moment()\n // .subtract(2, \"years\")\n // .format(\"YYYY\")}`,\n // `${moment().subtract(2, \"years\").format(\"YYYY\")}-${moment()\n // .subtract(1, \"years\")\n // .format(\"YYYY\")}`,\n `${moment().subtract(1, \"years\").format(\"YYYY\")}-${moment().format(\n \"YYYY\"\n )}`,\n `${moment().format(\"YYYY\")}-${moment().add(1, \"years\").format(\"YYYY\")}`,\n `${moment().add(1, \"years\").format(\"YYYY\")}-${moment()\n .add(2, \"years\")\n .format(\"YYYY\")}`,\n `${moment().add(2, \"years\").format(\"YYYY\")}-${moment()\n .add(3, \"years\")\n .format(\"YYYY\")}`,\n `${moment().add(3, \"years\").format(\"YYYY\")}-${moment()\n .add(4, \"years\")\n .format(\"YYYY\")}`,\n `${moment().add(4, \"years\").format(\"YYYY\")}-${moment()\n .add(5, \"years\")\n .format(\"YYYY\")}`,\n `${moment().add(5, \"years\").format(\"YYYY\")}-${moment()\n .add(6, \"years\")\n .format(\"YYYY\")}`,\n ].map((y) => ({\n value: y,\n label: y,\n }));\n\n const updateRules = async () => {\n try {\n await updateControlledClass({\n updated_by: data?.login[\"custom:displayName\"],\n dictionary: dicts,\n updated_at: moment().toISOString(),\n control_name,\n control_value,\n description,\n created_at,\n enable_safi_control: safiEnabled ? \"Y\" : \"N\",\n enable_ssd: safiEnabledSsd ? \"Y\" : \"N\",\n enable_summer_ssd: safiEnabledSummerSsd ? \"Y\" : \"N\",\n enable_summer_ssd_md: safiEnabledSummerSsdMd ? \"Y\" : \"N\",\n });\n setModifiedDict(false);\n if (safiEnabled) {\n setToast(`SAFI/SSD controls saved successfully!`);\n }\n } catch (err) {\n setToast(`Flag disabled`);\n }\n dispatch({ type: SAFI_ACTIONS.FETCH_RULES, payload: year });\n };\n\n const academicYearDropDown = useMemo(() => {\n return (\n \n \n Academic Year :\n \n \n
\n \n Enable Safi Control?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabled}\n />\n
\n
\n
\n \n Enable SSD?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabledSsd}\n />\n
\n
\n
\n \n Enable Summer SSD?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabledSummerSsd}\n />\n
\n
\n
\n \n Enable Summer SSD for M&D?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabledSummerSsdMd}\n />\n {/*
*/}\n
\n
\n );\n }, [\n year,\n modifiedDict,\n safiEnabled,\n safiEnabledSsd,\n safiEnabledSummerSsd,\n safiEnabledSummerSsdMd,\n ]);\n\n return (\n
\n \n {academicYearDropDown}\n \n \n \n \n \n \n \n Last updated by:\n \n \n {\" \"}\n {updated_by}{\" \"}\n \n\n \n at:\n \n \n {updated_at}\n \n
\n \n {modifiedDict && (\n \n )}\n {!modifiedDict && (\n \n )}\n \n \n
\n \n \n {/* */}\n\n \n \n \n \n \n \n \n
\n \n
\n \n setToast(null)}>\n \n \n Successful\n \n \n {toast}\n \n \n
\n \n );\n};\n","import { http } from \"../common/http\";\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\n\nexport const createUploadFile = async (bucketname, file, body) => {\n const token = getToken();\n try {\n return await http.put(\n // `${process.env.REACT_APP_API_ADMIN_UPLOAD}${bucketname}/${filename}`,\n `${process.env.REACT_APP_API_ADMIN_UPLOAD}inbound/${file}`,\n {\n // \"x-api-key\": process.env.REACT_APP_API_KEY,\n Authorization: `Bearer ${token}`,\n \"Content-Type\": 'multipart/form-data'\n },\n body\n );\n } catch (err) {\n console.error(err);\n }\n};\n\n\n\n\n","import { createUploadFile } from \"../../services/adminFileUploadService\";\nimport { useEffect, useState } from \"react\";\nimport styles from \"./index.module.scss\";\nimport CustomForm from \"../AdminForms/CustomForm\";\nimport {\n Button,\n Card,\n Col,\n Form,\n Row,\n Stack,\n ThemeProvider,\n Toast,\n ToastContainer,\n} from \"react-bootstrap\";\nimport CustomField from \"../AdminForms/CustomField\";\n\nconst fields = [\n // {\n // label: \"File Type\",\n // name: \"filetype\",\n // type: \"select\",\n // options: [\n // { label: \"StudentInitiation\", value: \"SI\" },\n // { label: \"StudentSupplementaData\", value: \"SSD\" },\n // { label: \"safi\", value: \"SAFI\" },\n // ],\n // },\n {\n label: \"File Upload\",\n name: \"fileUpload\",\n type: \"file\",\n placeholder: \"Choose a file\",\n },\n];\n\nfunction ManualFileUpload() {\n const [files, setFiles] = useState([]);\n const [valid, setValid] = useState(false);\n const [formError, setFormError] = useState(false);\n const [toast, setToast] = useState(null);\n\n\n\n const handleSubmit = async (file) => {\n if (file) {\n const { name: fileName } = file;\n console.log('sd', fileName)\n console.log('sdsdc' , files[0].name)\n try {\n await createUploadFile(\"facet-uploadfiles-dev\", fileName, file);\n console.log('true');\n setToast(`File ${fileName.split('.')?.[0] || \"\"} uploaded successfully!`);\n } catch (err) {\n setToast(`Failed to upload ${fileName.split('.')?.[0] || \"\"}`);\n }\n }\n };\n\n const onChange = (event) => {\n setFiles(event.target.files);\n };\n\n return (\n
\n \n \n setToast(null)}>\n \n \"\"\n Successful\n \n \n {toast}\n \n \n \n \n \n \n
Manual Upload for SI, SSD, SAFI Files
\n

Please select the file formats Ex: SIS_STUINIT, SIS_SSD,SIS_SAFI

\n \n
\n {\n e.preventDefault();\n e.stopPropagation();\n let validFile = false;\n let validFileExtension = false;\n if (files[0] && files[0].name) {\n validFile = [\"SIS_STUINIT\", \"SIS_SSD\", \"SIS_SAFI\"].some(\n (startStr) => files[0].name.startsWith(startStr) && (files[0].name.endsWith('.csv') || files[0].name.endsWith('.txt'))\n );\n \n }\n if (validFile) {\n setValid(false);\n setFormError(false);\n handleSubmit(files[0]);\n setFiles([])\n } else {\n setValid(false);\n setFormError(true);\n }\n }}\n className=\"mt-5\"\n >\n \n file?.name) : undefined\n }\n />\n \n \n \n \n {formError && (\n

\n Please select/choose the .csv or .txt files\n

\n )}\n \n
\n \n \n \n \n
\n
\n
\n );\n}\n\nexport default ManualFileUpload;\n","\nimport { http } from \"../common/http\";\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\n\nexport const getSafiBarFundCodes = async () => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}barsfpfundcode`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\nexport const getAuditData = async () => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}auditdata`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\n\nexport const createSafiBarFundCodes = async (body) => {\n const token = getToken();\n return http.post(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}barsfpfundcode/create`,\n {\n Authorization: `Bearer ${token}`,\n },\n body\n );\n};\n\nexport const updateSafiBarFundCodes = async (body) => {\n const token = getToken();\n try {\n return await http.put(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}barsfpfundcode/update`,\n {\n Authorization: `Bearer ${token}`,\n },\n JSON.stringify(body)\n );\n } catch (err) {\n console.error(err);\n }\n};\n\n\n\n\n\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/outline\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport styles from \"./index.module.scss\";\nimport {\n Button,\n Card,\n Col,\n Form,\n Row,\n Stack,\n Toast,\n ToastContainer,\n} from \"react-bootstrap\";\nimport CustomField from \"../AdminForms/CustomField\";\nimport CustomModal from \"../AdminForms/CustomModal\";\nimport { AppContext } from \"../../common/AppProvider\";\nimport {\n createSafiBarFundCodes,\n getSafiBarFundCodes,\n updateSafiBarFundCodes,\n} from \"../../services/safibarflagsTable\";\nimport moment from \"moment\";\n\nconst TOAST_CONFIG = {\n SUCCESS: {\n title: \"Success\",\n backgroundColor: \"#274f82\",\n color: \"white\",\n },\n FAILED: {\n title: \"Failed\",\n backgroundColor: \"#274f82\",\n color: \"white\",\n msgColor: \"red\",\n },\n};\n\nexport const SafiBar = () => {\n const { data } = useContext(AppContext);\n\n const columns: Array = [\n {\n name: \"BAR_SUB_CODE\",\n label: \"Bar Sub Code\",\n cellClass: `${styles.uid1_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 40,\n },\n {\n name: \"SFP_FUND_CODE\",\n label: \"SFP Fund Code\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 40,\n },\n {\n name: \"SFP_FUND_NAME\",\n label: \"Bar Sub Code Description\",\n cellClass: `${styles.academicyear_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 120,\n },\n {\n name: \"ACTIVE\",\n label: \"Active\",\n cellClass: `${styles.flagvalue_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 40,\n },\n {\n name: \"updated_at\",\n label: \"Last Updated\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 100,\n },\n {\n name: \"updated_by\",\n label: \"Updated by\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 100,\n },\n {\n name: \"Actions\",\n label: \"Actions\",\n headerClass: `text-center`,\n renderRow: (_, row, idx) => rowActions(row, idx),\n width: 70,\n },\n ];\n\n const ref = useRef();\n\n const [showModal, setShowModal] = useState(null);\n const intialdata = {\n BAR_SUB_CODE: \"57660\",\n SFP_FUND_NAME: \"California Department\",\n ACTIVE: \"Y\",\n SFP_FUND_CODE: \"60020\",\n };\n const [currData, setCurrData] = useState({});\n const [currIndex, setCurrIndex] = useState(null);\n const [toast, setToast] = useState({\n mode: \"\",\n msg: \"\",\n });\n const [barfunddata, setBarFundData] = useState([]);\n const [isLoading, setIsLoading] = useState(true);\n\n async function fetchSafiBarFundCodeTable() {\n setIsLoading(true);\n const data = await getSafiBarFundCodes();\n if (data.resData?.data) {\n setBarFundData(data.resData.data);\n }\n setIsLoading(false);\n }\n\n useEffect(() => {\n fetchSafiBarFundCodeTable();\n const data = [];\n }, []);\n\n const handleCurrValChange = (e) => {\n setCurrData((prev) => {\n prev[e.target.name] = e.target.value;\n return { ...prev };\n });\n };\n\n const onEditRow = (index, row) => {\n setCurrData((prev) => ({\n ...prev,\n ...row,\n index,\n }));\n setCurrIndex(index);\n setShowModal(\"Edit\");\n };\n\n const handleAddRow = () => {\n // setCurrData(() => ({\n // ...intialdata,\n // }));\n\n setShowModal(\"Add\");\n };\n\n const rowActions = useCallback((row, index) => {\n return (\n \n onEditRow(index, row)}\n className=\"bg-transparent border-0\"\n >\n \n \n \n );\n }, []);\n\n //toDo: add all logic here to make update and add calls.\n const onModalClose = () => {\n setCurrIndex(null);\n setShowModal(null);\n setCurrData({})\n };\n\n const onModalSave = useCallback(async () => {\n try{\n console.log(currData);\n if (showModal === \"Edit\") {\n if (currIndex === null) {\n throw new Error(\"Missing edited row index!\");\n }\n // setBarFundData(\n // barfunddata.map((data, index) => {\n // if (index === currData.index) {\n // return currData;\n // }\n // return data;\n // })\n // );\n const payload: any = {\n ...currData,\n updated_by: data?.login[\"custom:displayName\"],\n updated_at: moment().toISOString(),\n };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n \n await updateSafiBarFundCodes(payload);\n setBarFundData((prev) => {\n prev[currIndex] = { ...currData, modified: true } as any;\n return [...prev];\n });\n await fetchSafiBarFundCodeTable();\n console.log(currData.BAR_SUB_CODE);\n setToast({\n mode: \"SUCCESS\",\n msg: `SAFI Bar sub code ${currData.BAR_SUB_CODE} saved successfully!`,\n });\n } else {\n setShowModal(null);\n const payload: any = {\n ...currData,\n created_at: moment().toISOString(),\n updated_at: moment().toISOString(),\n };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n const resp = await createSafiBarFundCodes(JSON.stringify(payload));\n setBarFundData((prev: any) => {\n return [{ ...currData, isNewRow: true }, ...prev];\n });\n setToast({\n msg: resp.error ? resp.error.message : `SAFI Bar sub code ${currData.BAR_SUB_CODE} created successfully!`,\n mode: resp.error ? \"FAILED\" :\"SUCCESS\",\n });\n \n await fetchSafiBarFundCodeTable();\n }\n onModalClose();\n } catch (err) {\n console.error(err);\n onModalClose();\n }\n }, [currData, currIndex, showModal]);\n\n // const updateRules = async () => {\n // const { index, ...payload } = currData;\n // try {\n // await updateSafiBarFundCodes({\n // updated_by: data?.login[\"custom:displayName\"],\n // updated_at: moment().toISOString(),\n // ...payload,\n // });\n // setToast(`SAFI Bar Fund codes saved successfully!`);\n // await fetchSafiBarFundCodeTable();\n // } catch (err) {\n // setToast(`Error occured`);\n // }\n // };\n\n return (\n
\n \n \n \n \n \n \n {/* */}\n {/* */}\n
\n \n
\n \n \n \n \n \n \n
\n \n
\n \n setToast(null)}>\n \n \n \n {TOAST_CONFIG?.[toast?.mode]?.title || \"TITLE\"}\n \n {/* Failed */}\n \n \n \n {toast?.msg}\n \n \n \n
\n \n );\n};\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/outline\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport styles from \"./index.module.scss\";\nimport {\n Button,\n Card,\n Col,\n Form,\n Row,\n Stack,\n Toast,\n ToastContainer,\n} from \"react-bootstrap\";\nimport { AppContext } from \"../../common/AppProvider\";\nimport { getAuditData } from \"../../services/safibarflagsTable\";\nimport Modal from \"../../components/Common/Modal\";\n\nconst TOAST_CONFIG = {\n SUCCESS: {\n title: \"Success\",\n backgroundColor: \"#274f82\",\n color: \"white\",\n },\n FAILED: {\n title: \"Failed\",\n backgroundColor: \"#274f82\",\n color: \"white\",\n msgColor: \"red\",\n },\n};\n\nexport const AuditData = () => {\n const { data } = useContext(AppContext);\n\n const columns: Array = [\n {\n name: \"username\",\n label: \"User\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 75,\n },\n {\n name: \"table_name\",\n label: \"Table Name\",\n cellClass: `${styles.uid1_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 200,\n },\n // {\n // name: \"event_id\",\n // label: \"Event ID\",\n // cellClass: `${styles.updateddate_col}`,\n // showInExcel: true,\n // headerClass: `text-nowrap`,\n // width: 230,\n // },\n {\n name: \"event_id_new\",\n label: \"After\",\n cellClass: `${styles.academicyear_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n // width: 120,\n // renderRow: (value, row, index) => {\n // return (\n // {\n // if(value.length > 25){\n // setShowAuditModal(value)\n // console.log(JSON.stringify(value) )\n // console.log(\"JSON\", JSON.parse(JSON.stringify(value, null,2)))\n // }else{\n // setShowAuditModal(null)\n // }\n // }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"150px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n // >\n // {value}\n // \n // );\n // },\n renderRow: (value, row, index) => {\n return row.new_image ? (\n {\n if (row.new_image) {\n setShowAuditModal({\n title: `New Image details`,\n data: row.new_image,\n });\n }\n }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"120px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n >\n {value}\n \n ) : (\n <>{value}\n );\n },\n },\n {\n name: \"event_id_old\",\n label: \"Before\",\n cellClass: `${styles.flagvalue_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n renderRow: (value, row, index) => {\n return row.old_image && Object.keys(row.old_image).length ? (\n {\n if (row.old_image) {\n setShowAuditOldModal({\n title: `Old Image details`,\n data: row.old_image,\n });\n }\n }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"120px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n >\n {value}\n \n ) : (\n <>{value}\n );\n },\n // width: 40,\n // renderRow: (value, row, index) => {\n // return (\n // {\n // if(value.length > 25){\n // setShowAuditOldModal(value)\n // console.log(JSON.stringify(value) )\n // console.log(\"JSON\", JSON.parse(JSON.stringify(value, null,2)))\n // }else{\n // setShowAuditOldModal(null)\n // }\n // }}\n // style={{\n // display: \"inline-block\",\n // whiteSpace: \"nowrap\",\n // width: \"150px\",\n // textOverflow: \"ellipsis\",\n // overflow: \"hidden\",\n // }}\n // >\n // {value}\n // \n // );\n // },\n },\n {\n name: \"operation\",\n label: \"Operation\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n width: 75,\n },\n // {\n // name: \"updated_by\",\n // label: \"Updated By\",\n // cellClass: `${styles.updateddate_col}`,\n // showInExcel: true,\n // headerClass: `text-nowrap`,\n // width: 75,\n // },\n {\n name: \"timestamp\",\n label: \"Last Updated\",\n cellClass: `${styles.updateddate_col}`,\n showInExcel: true,\n headerClass: `text-nowrap`,\n // width: 100,\n },\n ];\n\n const ref = useRef();\n const [toast, setToast] = useState({\n mode: \"\",\n msg: \"\",\n });\n const [auditData, setAuditData] = useState([]);\n const [showAuditModal, setShowAuditModal] = useState(null);\n const [showAuditOldModal, setShowAuditOldModal] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n\n async function fetchSafiBarFundCodeTable() {\n setIsLoading(true);\n const data = await getAuditData();\n if (data.resData?.data) {\n setAuditData(data.resData.data);\n }\n setIsLoading(false);\n }\n\n useEffect(() => {\n fetchSafiBarFundCodeTable();\n const data = [];\n }, []);\n\n return (\n
\n \n \n \n \n \n {showAuditModal && (\n setShowAuditModal(false)}\n config={{\n footer: false,\n title: showAuditModal.title,\n body: (\n
\n {/*
{showAuditModal}
*/}\n
{JSON.stringify(showAuditModal.data, undefined, 2)}
\n
\n ) \n }}\n />\n )}\n {showAuditOldModal && (\n setShowAuditOldModal(false)}\n config={{\n footer: false,\n title: showAuditOldModal.title,\n body: (\n
\n {/*
{showAuditOldModal}
*/}\n
{JSON.stringify(showAuditOldModal.data, undefined, 2)}
\n
\n ) \n }}\n />\n )}\n
\n \n setToast(null)}>\n \n \n \n {TOAST_CONFIG?.[toast?.mode]?.title || \"TITLE\"}\n \n {/* Failed */}\n \n \n \n {toast?.msg}\n \n \n \n
\n
\n );\n};\n","import CustomTabs from \"../../components/CustomTabs\";\nimport { SafiSSd } from \"./SafiSsdControls\";\nimport { UnexSSD } from \"./UnexControls\";\nimport ManualFileUpload from \"./ManualFileUpload\";\nimport { SafiBar } from \"./SafiBarFlagsTable\";\nimport { AuditData } from \"./AuditDataTable\";\n\nconst tabs = [\n {\n title: \"Manual File Upload\",\n eventKey: \"file uploads\",\n Component: ManualFileUpload,\n },\n {title: 'SAFI SSD Controls', eventKey: 'safi ssd',Component: SafiSSd},\n {title: 'UNEX SAFI/SSD Controls', eventKey: 'unex ssd',Component: UnexSSD},\n {title: 'BAR to SFP Fund Code Mapping', eventKey: 'Safi Bar table',Component: SafiBar},\n {title: 'Audit Data Table', eventKey: 'audit table',Component: AuditData},\n];\n\nconst FunctionalAdmin = ({}) => {\n return ;\n};\nexport default FunctionalAdmin;\n","import React, {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styles from \"./index.module.scss\";\nimport {\n Button,\n Card,\n Col,\n Form,\n Row,\n Stack,\n Toast,\n ToastContainer,\n} from \"react-bootstrap\";\nimport CustomField from \"../AdminForms/CustomField\";\nimport CustomModal from \"../AdminForms/CustomModal\";\nimport { AppContext } from \"../../common/AppProvider\";\nimport CustomForm from \"../AdminForms/CustomForm\";\nimport {\n updateControlledClass,\n getsafissd,\n createControlledClasses,\n getunexssd,\n} from \"../../services/controltable\";\nimport moment from \"moment\";\nimport Select, { Options } from \"react-select\";\nimport useSSIDData, { SAFI_ACTIONS } from \"./useSSIDData\";\nimport Checkbox from \"react-custom-checkbox\";\nimport * as Icon from \"react-icons/fi\";\n\n\ntype YearOption = { label: string; value: string };\n\nexport const UnexSSD = () => {\n const { data } = useContext(AppContext);\n\n\n\n\n\n const ref = useRef();\n const currAcdYear = `${moment().format(\"YYYY\")}-${moment()\n .add(1, \"years\")\n .format(\"YYYY\")}`;\n\n \n const [modifiedDict, setModifiedDict] = useState(false);\n const [year, setYear] = useState({\n label: currAcdYear,\n value: currAcdYear,\n });\n const [effDate, setEffDate] = useState(undefined);\n // const [safiEnabled, setSafiEnabled] = useState(null);\n const [safiEnabled, setSafiEnabled] = useState(false);\n const [safiEnabledSsd, setSafiEnabledSsd] = useState(false);\n // const [clearUnexSafiData, setclearUnexSafiData] = useState(false);\n const [toast, setToast] = useState(null);\n const [loading, setLoading] = useState(false);\n const [apiData, setApiData] = useState({});\n useEffect(() => {\n if (Object.keys(apiData).length) {\n setSafiEnabled(apiData.enable_safi_control === \"Y\");\n setSafiEnabledSsd(apiData.enable_ssd === \"Y\");\n setEffDate(apiData.dictionary.effectiveDate)\n }\n }, [apiData]);\n\n console.log(\"safiEnabled ==>\", safiEnabled);\n\n\n function clearUnexSafiData() {\n setSafiEnabled(false);\n setSafiEnabledSsd(false);\n setEffDate(\" \");\n }\n\n useEffect(() => {\n if (year) {\n clearUnexSafiData();\n fetchUnexSafiData(year.value)\n }\n }, [year]);\n\n\n const onEditRow = () => {\n try{\n const postData = {\n ...apiData,\n dictionary: { effectiveDate: effDate },\n updated_at: moment().toISOString(),\n updated_by: data?.login[\"custom:displayName\"],\n enable_safi_control: safiEnabled ? \"Y\" : \"N\",\n enable_ssd: safiEnabledSsd ? \"Y\" : \"N\"\n };\n updateControlledClass(postData).then((() => {\n fetchUnexSafiData(year.value)\n }))\n if (safiEnabled) {\n setToast(`Unex controls saved successfully!`);\n }\n }\n catch (err) {\n setToast(`Flag disabled`);\n }\n };\n\n const academicYears: YearOption[] = [\n `${moment().subtract(1, \"years\").format(\"YYYY\")}-${moment().format(\n \"YYYY\"\n )}`,\n `${moment().format(\"YYYY\")}-${moment().add(1, \"years\").format(\"YYYY\")}`,\n `${moment().add(1, \"years\").format(\"YYYY\")}-${moment()\n .add(2, \"years\")\n .format(\"YYYY\")}`,\n ].map((y) => ({\n value: y,\n label: y,\n }));\n\n\n async function fetchUnexSafiData(year) {\n setLoading(true);\n const data = await getunexssd(year);\n if (data.resData?.data) {\n setApiData(data.resData?.data[0] || []);\n console.log(\"fecthed ==> \", data.resData?.data[0]);\n }\n setLoading(false);\n }\n\n const academicYearDropDown = useMemo(() => {\n return (\n \n \n Academic Year :\n \n \n
\n \n Enable Safi Control?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabled}\n />\n
\n
\n
\n \n Enable SSD?\n \n }\n style={{ cursor: \"pointer\" }}\n borderColor=\"#5b8cb2\"\n onChange={setSafiEnabledSsd}\n />\n
\n
\n );\n }, [\n year,\n modifiedDict,\n safiEnabled,\n safiEnabledSsd\n ]);\n\n const effectiveDate = useMemo(() => {\n return (\n \n \n SAFI Effective Date :\n \n setEffDate(moment(e.target.value).format('YYYY-MM-DD'))} value={effDate && effDate!== \" \" ? moment(effDate).format('YYYY-MM-DD') : effDate} />\n \n );\n }, [\n effDate\n ]);\n\n return (\n
\n \n \n setToast(null)}>\n \n \n Successful\n \n \n {toast}\n \n \n \n \n \n \n {academicYearDropDown}\n {effectiveDate}\n \n \n \n \n \n \n Last updated by:\n \n \n {\" \"}\n {apiData.updated_by}\n \n\n \n at:\n \n \n {apiData.updated_at}\n \n
\n \n {/* {modifiedDict && (\n \n )}\n {!modifiedDict && (\n \n )} */}\n \n \n \n \n \n );\n}\n\n ","import { Button, Row, Col, InputGroup, Dropdown } from \"react-bootstrap\";\nimport { Form } from \"react-bootstrap\";\nimport styles from \"./index.module.scss\";\nimport { useState, useEffect, useMemo, useCallback, useRef } from \"react\";\nimport DashboardService from \"../../services/dashboard\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport Modal from \"../../components/Common/Modal\";\nimport Menu from \"../AdminForms/Menu\";\nimport Select from \"react-select\";\nimport {\n FilterIcon,\n LockClosedIcon,\n SearchIcon,\n XCircleIcon,\n XIcon,\n} from \"@heroicons/react/outline\";\nimport { FilterIcon as FilterIconFilled } from \"@heroicons/react/solid\";\nimport {\n filterRowsDataInCols,\n getUniqueTableColValuesMap,\n} from \"../../common/utils\";\nimport ExcelDownload from \"../../components/Common/ExcelDownload\";\n\nconst multiSelectFilterColsNames = [\n \"message_status\",\n \"message_class\",\n \"job_type\",\n];\n\nfunction getFormFields(e) {\n return {\n job_id: e.target.job_id.value,\n uid: e.target.uid.value,\n message_id: e.target.vocado_message_id.value,\n message_class: e.target.message_class.value,\n message_status: e.target.message_status.value,\n start_date: e.target.start_date.value,\n end_date: e.target.end_date.value,\n };\n}\n\nconst debounce = (fn: Function, ms = 500) => {\n let timeoutId: ReturnType;\n return function (this: any, ...args: any[]) {\n clearTimeout(timeoutId);\n timeoutId = setTimeout(() => fn.apply(this, args), ms);\n };\n};\n\nconst AdvSearch = (props) => {\n const { passFilteredData, gridData: propData, ...rest } = props;\n // console.log(\"advsearch ==> \", rest, props);\n const [gridData, setData] = useState([]);\n const [flagsAdvData, setFlagsAdvData] = useState({});\n const [formError, setFormError] = useState(false);\n const [isLoading, setIsLoading] = useState(true);\n // const [showFilterModal, setShowFilterModal] = useState(false);\n const [showModal, setShowModal] = useState(null);\n const [showUidModal, setShowUidModal] = useState(null);\n const [showVocadoMessagesModal, setshowVocadoMessagesModal] = useState(null);\n const [colFilter, setColFilter] = useState({});\n const [filteredData, setFilteredData] = useState([]);\n const [colValsMapData, setColValsMapData] = useState(new Map());\n const formRef = useRef(null);\n const ref = useRef();\n\n const renderSelColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n const uniqVals = colValsMapData.get(uniqId);\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n // trigger={}\n className={styles.menu}\n >\n ({\n value: colVal,\n label: colVal,\n }))}\n isMulti\n isClearable\n onChange={(val) => {\n if (val.length) {\n setColFilter((prev) => ({ ...prev, [uniqId]: val }));\n } else {\n setColFilter((prev) => {\n delete prev[uniqId];\n return { ...prev };\n });\n }\n }}\n value={colFilter[uniqId]}\n />\n \n \n \n );\n },\n [colFilter, colValsMapData]\n );\n\n const renderColHeader = useCallback(\n (colName, col) => {\n const uniqId = col?.name;\n return (\n \n {colName}\n \n \n ) : (\n \n )\n }\n className={styles.menu}\n >\n \n \n \n \n \n setColFilter((prev) => ({\n ...prev,\n [uniqId]: value.trim(),\n }))\n }\n value={colFilter[uniqId]}\n />\n \n setColFilter({\n ...colFilter,\n [uniqId]: \"\",\n })\n }\n >\n \n \n \n \n \n \n );\n },\n [colFilter]\n );\n\n useEffect(() => {\n const filterFn = async () => {\n const data = await filterRowsDataInCols(colFilter, gridData);\n setFilteredData(data);\n };\n filterFn();\n }, [gridData, colFilter]);\n\n async function fetchAdvFlags(id, title, isXML = false) {\n const data = await DashboardService.getVocadoMessageXml(id)\n // const { data } = res;\n console.log(data);\n if (data) {\n setshowVocadoMessagesModal({\n title,\n data,\n isXML,\n });\n } else {\n setshowVocadoMessagesModal({\n title,\n });\n }\n }\n\n const columns: Array = [\n {\n name: \"job_id\",\n label: \"Job ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderHeader: renderColHeader,\n },\n {\n name: \"uid\",\n label: \"UID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderHeader: renderColHeader,\n renderRow: (value, row, index) => {\n return row.message ? (\n {\n if (row.message) {\n console.log(\n // `${value} - ${(row.message as any)?.message_class}`\n `${value} - ${row.message_class}`\n );\n setShowUidModal({\n title: `${value} - ${row.message_class}`,\n data: row.message,\n });\n }\n }}\n style={{\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n width: \"150px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n \n ) : (\n value\n );\n },\n },\n {\n name: \"message_status\",\n label: \"Message Status\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n renderRow: (value, row, index) => {\n return row.message_status == \"Failed\" ||\n row.message_status == \"Validation_Error\" ||\n row.message_status == \"Hold\" ? (\n {\n if (\n row.message_status == \"Failed\" ||\n row.message_status == \"Validation_Error\" ||\n row.message_status == \"Hold\"\n ) {\n console.log(\n // `${value} - ${(row.message as any)?.message_class}`\n `${value} - ${row.message_class}`\n );\n setShowModal({\n title: `Vocado Message Errors`,\n data: row.message_errors,\n });\n }\n }}\n style={{\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n width: \"150px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n color: \"red\",\n fontWeight: \"bold\",\n }}\n >\n {value}\n \n ) : (\n value\n );\n },\n },\n {\n name: \"message_class\",\n label: \"Message Class\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n },\n {\n name: \"job_type\",\n label: \"Job Type\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderHeader: renderSelColHeader,\n },\n {\n name: \"message_id\",\n label: \"Vocado Message ID\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n renderRow: (value, row, index) => {\n return row.message_id ? (\n {\n if (row.message_id) {\n fetchAdvFlags(\n row.message_id,\n `${row.uid} - ${row.message_class} : ${row.job_id}`\n );\n }\n }}\n style={{\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n width: \"150px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n \n ) : (\n value\n );\n },\n },\n {\n name: \"created_at\",\n label: \"Created At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n sortable: true,\n },\n {\n name: \"updated_at\",\n label: \"Updated At\",\n cellClass: `${styles.uid1_col} ${styles.cellClass}`,\n headerClass: styles.headerCellClass,\n showInExcel: true,\n sortable: true,\n },\n ];\n\n useEffect(() => {\n const getColVals = async () => {\n const data = await getUniqueTableColValuesMap(\n gridData,\n multiSelectFilterColsNames\n );\n console.log(\"data ==> \", data);\n setColValsMapData(data);\n };\n getColVals();\n }, [gridData, multiSelectFilterColsNames]);\n\n useEffect(() => {\n if (propData) {\n // setData(propData);\n setData(\n props.gridData\n .map((d) => ({ ...d, created_at: new Date(d.created_at).valueOf() }))\n .sort((a, b) => b.created_at - a.created_at)\n .map((d) => ({\n ...d,\n created_at: new Date(d.created_at).toISOString(),\n }))\n );\n }\n }, [propData]);\n // }, []);\n\n const clearAllFilters = useCallback(() => {\n formRef?.current?.reset();\n setData([]);\n setColFilter({});\n setFilteredData([]);\n setColValsMapData(new Map());\n }, []);\n\n const handleSearch = async (e) => {\n (ref.current as any)?.setPage(1);\n };\n\n const onFormSubmit = async (e) => {\n e.preventDefault();\n const fields = getFormFields(e);\n const nonFilledLength = Object.values(fields).filter(\n (field) => field === \"\" || field === \"-1\"\n ).length;\n if (nonFilledLength === Object.values(fields).length) {\n setFormError(true);\n return;\n }\n setFormError(false);\n\n const {\n job_id,\n uid,\n message_id,\n message_class,\n message_status,\n end_date,\n start_date,\n } = fields;\n const payload = {\n job_id,\n uid,\n message_id,\n message_class: message_class === \"-1\" ? \"\" : message_class,\n message_status: message_status === \"-1\" ? \"\" : message_status,\n endDate: end_date ? end_date : \"\",\n startDate: start_date ? start_date : \"\",\n };\n setIsLoading(true);\n const data = await DashboardService.advanceSearch(payload);\n setIsLoading(false);\n setData(data?.resData.data);\n };\n\n return (\n
\n
\n \n *Please apply filters to get the\n table data.\n \n
\n {formError && (\n

Please select any search criteria

\n )}\n
\n \n \n \n \n UID\n {/* * */}\n \n \n \n \n \n \n Message Class\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Message Status\n \n \n \n \n \n \n \n \n \n \n \n \n \n Vocado Message ID\n \n \n \n \n \n Job ID\n \n \n \n \n \n Start Date\n \n \n \n \n \n End Date\n \n \n \n \n
\n \n \n { filteredData && filteredData.length >0 ? : \"\" }\n
\n
\n
\n {!isLoading ? (\n \n ) : (\n \"\"\n )}\n
\n {!!showUidModal && (\n setShowUidModal(false)}\n className={styles.adv_modal}\n size=\"lg\"\n config={{\n title: showUidModal.title,\n footer: false,\n body: (\n
\n
{JSON.stringify(showUidModal.data, undefined, 2)}
\n
\n ),\n }}\n />\n )}\n {!!showModal && (\n setShowModal(false)}\n className={styles.adv_modal}\n size=\"lg\"\n config={{\n title: showModal.title,\n footer: false,\n body: (\n
\n {showModal.data ? (\n

{showModal.data}

\n ) : (\n \"Message Errors are not found\"\n )}\n
\n ),\n }}\n />\n )}\n {!!showVocadoMessagesModal && (\n setshowVocadoMessagesModal(false)}\n className={styles.vocado_modal}\n config={{\n title: showVocadoMessagesModal.title,\n footer: false,\n body: (\n
\n {showVocadoMessagesModal.data ? (\n
{showVocadoMessagesModal.data}
\n ) : (\n \"Message not found\"\n )}\n
\n ),\n }}\n />\n )}\n
\n );\n};\nexport default AdvSearch;\n","\nconst CloudWatchDashboard = ({ }) => {\n \n \n return (\n \n Go to Monitoring Dashboards\n \n \n );\n }; \nexport default CloudWatchDashboard;\n","\nimport { http } from \"../common/http\";\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\n\n// export const getControlledFlagTable = async () => {\n// const token = getToken();\n// let response;\n// try {\n// response = await http.get(\n// `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}controlflags`,\n// {\n// Authorization: `Bearer ${token}`,\n// }\n// );\n// } catch (err) {\n// console.error(err);\n// }\n// return response;\n// };\n\nexport const getControlledFlagTableUID = async (id) => {\n const token = getToken();\n let response;\n try {\n response = await http.get(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}controlflags/${id}`,\n {\n Authorization: `Bearer ${token}`,\n }\n );\n } catch (err) {\n console.error(err);\n }\n return response;\n};\n\nexport const createControlledFlagTable = async (body) => {\n const token = getToken();\n try {\n return await http.post(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}controlflags/create`,\n {\n Authorization: `Bearer ${token}`,\n },\n body\n );\n } catch (err) {\n console.error(err);\n }\n};\n\nexport const updateControlledFlagTable = async (body) => {\n const token = getToken();\n try {\n return await http.put(\n `${process.env.REACT_APP_API_URL_JOBS_TRANSACTIONS_STUDENTINITIATED}controlflags/update`,\n {\n Authorization: `Bearer ${token}`,\n },\n JSON.stringify(body)\n );\n } catch (err) {\n console.error(err);\n }\n};\n\n","\nimport CustomTabs from \"../../components/CustomTabs\";\nimport StudentInitation from \"./StudentInitation\";\nimport { ControlFlags } from \"./ControlFlagsTable\";\nimport SSD from \"./SSD\";\nimport Classes from \"../Classes\";\nimport { SafiBar } from \"../FunctionalAdmin/SafiBarFlagsTable\";\n\n\n\n\n\nconst SAFI = () => {\n console.log(123)\n return

SAFI TAB

\n}\n\n\n\nconst tabs = [\n // {title: 'SI', eventKey: 'si', Component: StudentInitation},\n // {title: 'SSD', eventKey: 'ssd', Component: SSD},\n // {title: 'SAFI', eventKey: 'safi',Component: SAFI},\n {title: 'Control Flags Table', eventKey: 'control flag table',Component: ControlFlags},\n {title: 'Control Table', eventKey: 'control table',Component: Classes},\n // {title: 'BAR to SFP Fund Code Mapping', eventKey: 'Safi Bar table',Component: SafiBar},\n]\n\nconst AdminForms = ({ }) => {\n return (\n \n );\n}; \nexport default AdminForms","import React, { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport {\n createControlledFlagTable,\n // getControlledFlagTable,\n getControlledFlagTableUID,\n updateControlledFlagTable,\n} from \"../../services/controlflagtable\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/outline\";\nimport CustomTable, { CustomColumn } from \"../../components/CustomTable\";\nimport styles from \"./index.module.scss\";\nimport { Button, Form, Stack } from \"react-bootstrap\";\nimport CustomField from \"./CustomField\";\nimport CustomModal from \"./CustomModal\";\nimport { AppContext } from \"../../common/AppProvider\";\nimport { PageLoader } from \"../../components/Common\";\n\n\nexport const ControlFlags = () => {\n const { data } = useContext(AppContext);\n // const columns: any = [\n\n // ];\n const columns: Array = [\n {\n name: \"UID\",\n label: \"UID\",\n cellClass: `${styles.uid1_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n width: 90\n },\n {\n name: \"FLAG_NAME\",\n label: \"Flag Name\",\n cellClass: `${styles.flagname_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n },\n {\n name: \"FLAG_VALUE\",\n label: \"Flag Value\",\n cellClass: `${styles.flagvalue_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n width:90\n },\n {\n name: \"Academic_Year\",\n label: \"Academic Year\",\n cellClass: `${styles.academicyear_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n width:100\n },\n {\n name: \"Createddate\",\n label: \"Created Date\",\n cellClass: `${styles.createddate_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n },\n {\n name: \"Updatedby\",\n label: \"Updated by\",\n cellClass: `${styles.updatedby_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n },\n {\n name: \"Updateddate\",\n label: \"Updated Date\",\n cellClass: `${styles.updateddate_col}`,\n // headerClass: `${styles.text_ellipsis}`,\n showInExcel: true,\n },\n {\n name: \"Actions\",\n label: \"Actions\",\n // headerClass: `${styles.text_ellipsis}`,\n headerClass: \"text-center\",\n renderRow: (_, row, idx) => rowActions(row, idx),\n width: 70\n },\n ];\n const ref = useRef();\n const pageRef = useRef();\n\nconst [searchResults, setSearchResults] = useState<[]>();\nconsole.log('search', searchResults)\n const [flagsdata, setFlagsData] = useState([]);\n const [showModal, setShowModal] = useState(null);\n const [currData, setCurrData] = useState({});\n const [currIndex, setCurrIndex] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const [searchKey, setSearchKey] = useState(null);\n\n // async function fetchFlags() {\n // setIsLoading(true);\n // const data = await getControlledFlagTable();\n // if (data.resData?.data) {\n // setFlagsData(data.resData.data);\n // }\n // setIsLoading(false);\n // }\n\n // useEffect(async () => {\n // await getControlledFlagTableUID(searchKey)\n // }, []);\n\n // const createRow = async(payload) => {\n // const data = await createControlledFlagTable(JSON.stringify(payload))\n // console.log(data)\n // }\n // const updateRow = async (payload) => {\n // const data = await updateControlledFlagTable(payload)\n // console.log('RES',data)\n // }\n\n const handleCurrValChange = (e) => {\n setCurrData((prev) => {\n prev[e.target.name] = e.target.value;\n return { ...prev };\n });\n };\n const handleSearch = async(e) => {\n // https://api.dev.facet.it.ucla.edu/transactions/controlflags/999380302\n setSearchKey(e ? e: null)\n if(e){\n setIsLoading(true);\n setTimeout(() => {\n (pageRef.current as any)?.setPage(1)\n });\n // const res = await getControlledFlagTableUID(e);\n // const data = res.resData?.data\n // setSearchResults(data)\n updateFalgsTable(e)\n }else{\n setSearchResults([])\n setSearchKey(null)\n }\n }\n\n\n // const onDeleteRow = (index) => {\n // setFlagsData((prev) => {\n // prev.splice(index, 1);\n // return [...prev];\n // });\n // };\n\n const onEditRow = (index, row) => {\n setCurrData({ ...row });\n setCurrIndex(index);\n setShowModal(\"Edit\");\n };\n\n const handleAddRow = () => {\n setShowModal(\"Add\");\n };\n\n const rowActions = useCallback((row, index) => {\n return (\n \n onEditRow(index, row)}\n className=\"bg-transparent border-0\"\n >\n \n \n {/* {row.isNewRow && ( */}\n {/* onDeleteRow(index)}\n className=\"bg-transparent border-0\"\n >\n \n */}\n {/* )} */}\n \n );\n }, []);\n\n const onModalClose = () => {\n setCurrData({});\n setCurrIndex(null);\n setShowModal(null);\n };\n\n const updateFalgsTable = useCallback(async (key:string = searchKey) => {\n const res = await getControlledFlagTableUID(key)\n setIsLoading(false);\n const data = res.resData?.data\n setSearchResults(data)\n }, [searchKey])\n\n const onModalSave = useCallback(async () => {\n try {\n if (showModal === \"Edit\") {\n if (currIndex === null) {\n throw new Error(\"Missing edited row index!\");\n }\n let Updatedby = data?.login[\"custom:displayName\"]\n const payload: any = { ...currData, Updatedby };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n await updateControlledFlagTable(payload);\n setFlagsData((prev) => {\n prev[currIndex] = { ...currData, modified: true } as any;\n return [...prev];\n });\n // await fetchFlags();\n updateFalgsTable()\n \n } else {\n const payload: any = { ...currData };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n await createControlledFlagTable(JSON.stringify(payload));\n // console.log(\"\", data);\n setFlagsData((prev: any) => {\n return [{ ...currData, isNewRow: true }, ...prev];\n });\n // await fetchFlags();\n updateFalgsTable()\n }\n onModalClose();\n } catch (err) {\n console.error(err);\n onModalClose();\n }\n }, [currData, currIndex, showModal]);\n\n return (\n
\n \n \n
\n \n {showModal !== \"Edit\" && (\n \n )}\n {showModal !== \"Edit\" && (\n \n )}\n \n {showModal !== \"Edit\" && (\n \n )}\n \n
\n \n {/* */}\n
\n );\n};\n","import React, { useCallback, useContext, useEffect, useRef, useState } from \"react\";\nimport { createControlledClass,getControlledClasses,updateControlledClass } from \"../../services/controltable\";\nimport { PencilIcon, TrashIcon } from \"@heroicons/react/outline\";\nimport CustomTable , { CustomColumn } from \"../../components/CustomTable\";\nimport { Button, Form, Stack } from \"react-bootstrap\";\nimport CustomField from \"../AdminForms/CustomField\"\nimport CustomModal from \"../AdminForms/CustomModal\";\nimport Modal from \"../../components/Common/Modal\"\nimport styles from \"./index.module.scss\";\nimport moment from \"moment\";\nimport { AppContext } from \"../../common/AppProvider\";\n\n\n\n\n// const getParsedValue = (value) =>{\n// try {\n// const parsedValue = JSON.stringify(value);\n// return parsedValue;\n// }catch(e){\n// return value.toString();\n// }\n// }\nconst Classes = () => {\n\n const { data } = useContext(AppContext);\n // const columns: any = [\n // cellClass: `${styles.control_name_col}`,\n // cellClass: `${styles.control_value_col}`,\n // ,cellClass: `${styles.dictionary_col}`,\n // cellClass: `${styles.description_col}`,\n // cellClass: `${styles.created_at_col}`,\n // cellClass: `${styles.updated_at_col}`,\n // ];\n const columns: Array = [\n { name: \"control_name\", label: \"Control Name\", showInExcel: true},\n { name: \"control_value\", label: \"Control Value\", showInExcel: true},\n { name: \"dictionary\", label: \"Dictionary\", showInExcel: true, renderRow: (value, row, index) => {\n return ( {\n if(value.length > 25){\n setShowDictionaryModal(value)\n }else{\n setShowDictionaryModal(null)\n }\n }}\n style={{\n display: \"inline-block\",\n whiteSpace: \"nowrap\",\n width: \"150px\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n }}\n >\n {value}\n )\n } },\n { name: \"description\", label: \"Description\", showInExcel: true },\n { name: \"created_at\", label: \"Created At\", showInExcel: true },\n { name: \"updated_at\", label: \"Updated At\", showInExcel: true },\n {\n name: \"Actions\",\n label: \"Actions\",\n // headerClass: `${styles.text_ellipsis}`,\n headerClass: \"text-center\",\n renderRow: (_, row, idx) => rowActions(row, idx),\n }\n ];\n const ref = useRef();\n const [controldata, setControlData] = useState([]);\n const [showModal, setShowModal] = useState(null);\n const [showDictionaryModal, setShowDictionaryModal] = useState(false);\n const [currData, setCurrData] = useState({});\n const [currIndex, setCurrIndex] = useState(null);\n const [isLoading, setIsLoading] = useState(true);\n\n\n async function fetchControlTable() {\n setIsLoading(true);\n const data = await getControlledClasses();\n if (data.resData?.data) {\n setControlData(data.resData.data);\n }\n setIsLoading(false);\n }\n\n\n useEffect(() => {\n fetchControlTable();\n const data = [];\n }, []);\n \n\n const handleCurrValChange = (e) => {\n setCurrData((prev) => {\n prev[e.target.name] = e.target.value;\n return { ...prev };\n });\n };\n\n const onDeleteRow = (index) => {\n setControlData((prev) => {\n prev.splice(index, 1);\n return [...prev];\n });\n };\n\n const onEditRow = (index, row) => {\n setCurrData({ ...row });\n setCurrIndex(index);\n setShowModal(\"Edit\");\n };\n\n const handleAddRow = () => {\n setShowModal(\"Add\");\n };\n\n\n\n \n const rowActions = useCallback((row, index) => {\n return (\n \n onEditRow(index, row)}\n className=\"bg-transparent border-0\"\n disabled={(row.control_name == \"SAFI_SSD_CONTROLS\" || row.control_name == \"SAFI_SSD_CONTROLS_UNEX\" \n || row.control_name == \"GROUPER_ROLES\" || row.control_name == \"SAFI_TERM_DATES\")}\n >\n \n \n {/* {row.isNewRow && ( */}\n {/* onDeleteRow(index)}\n className=\"bg-transparent border-0\"\n >\n \n */}\n {/* )} */}\n \n );\n }, []);\n\n const onModalClose = () => {\n setCurrData({});\n setCurrIndex(null);\n setShowModal(null);\n };\n\n // const onModalSave = useCallback(async () => {\n // if (currIndex) {\n // await updateControlledClass(currData)\n // setControlData((prev) => {\n // prev[currIndex] = { ...currData, modified: true } as any;\n // return [...prev];\n // });\n // } else {\n // await createControlledClass(JSON.stringify(currData))\n // // console.log(\"\", data);\n // setControlData((prev: any) => {\n // return [{ ...currData, isNewRow: true }, ...prev];\n // });\n // }\n // onModalClose();\n // }, [currData, currIndex]);\n\n const onModalSave = useCallback(async () => {\n try {\n if (showModal === \"Edit\") {\n if (currIndex === null) {\n throw new Error(\"Missing edited row index!\");\n }\n // const payload: any = { ...currData };\n const payload: any = {\n ...currData,\n updated_by: data?.login[\"custom:displayName\"],\n updated_at: moment().toISOString(),\n };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n await updateControlledClass(payload)\n setControlData((prev) => {\n prev[currIndex] = { ...currData, modified: true } as any;\n return [...prev];\n });\n await fetchControlTable();\n } else {\n const payload: any = { ...currData };\n console.log(payload);\n delete payload.modified;\n delete payload.isNewRow;\n await createControlledClass(JSON.stringify(payload))\n // console.log(\"\", data);\n setControlData((prev: any) => {\n return [{ ...currData, isNewRow: true }, ...prev];\n });\n await fetchControlTable();\n }\n onModalClose();\n } catch (err) {\n console.error(err);\n onModalClose();\n }\n }, [currData, currIndex, showModal]);\n \n\n\n \n\n\n return (\n
\n \n \n
\n \n {showModal !== \"Edit\" && (\n )}\n {showModal !== \"Edit\" && (\n )}\n \n \n \n
\n \n { showDictionaryModal && setShowDictionaryModal(false)}\n config={{\n footer: false,\n title:\"Dictionary Details\",\n body: (\n
{showDictionaryModal}
\n ),\n }}\n />}\n
\n );\n\n};\n\nexport default Classes;\n","import React from \"react\";\nimport styles from \"./index.module.scss\";\nimport { Button, Container, Row, Stack } from \"react-bootstrap\";\nimport { useHistory } from \"react-router-dom\";\nimport TopNav from \"../../components/TopNav\";\n\nexport default function ErrorPage() {\n const history = useHistory();\n\n return (\n <>\n \n \n \n \n \n

Something went wrong !

\n
Please Contact FACET Administrator at: facetintegration@it.ucla.edu
\n {/* */}\n \n
\n \n );\n}\n","const Home = () => {\n return (\n \n Welcome to Facet Integrations Dashboard Application.\n
Please Contact IT Services - Facet Integration at: facetintegration@it.ucla.edu
\n

\n );\n};\nexport default Home;","import { http } from \"../common/http\";\n\nconst getToken = () => {\n return localStorage.getItem(\"token\");\n // return sessionStorage.getItem(\"token\");\n};\n\nexport const getCoverage = (path) => {\n const token = getToken();\n return fetch(`https://api.dev.facet.it.ucla.edu/coverage${path}`, {\n method: \"GET\",\n headers: {\n Authorization: `Bearer ${token}`,\n \"Content-Type\": \"text/html\",\n },\n }).then(async (res) => {\n const data = await res.arrayBuffer();\n const html = await new TextDecoder(\"utf-8\").decode(new Uint8Array(data))\n return html;\n });\n};\n\n","import { useEffect, useState } from \"react\";\nimport { getCoverage } from \"../../services/coverageService\";\nimport './sort.js';\n// import './prettify.js';\nimport \"./index.scss\";\n\nconst Coverage = () => {\n\n const [coverage, setCoverage] = useState();\n const [rootPath, setRootPath] = useState();\n\n async function fetchgetCoverageList(path = \"/index.html\") {\n try {\n const data = await getCoverage(path);\n // if (data) {\n setCoverage(data);\n // }\n } catch (e) {\n console.error(\"Something went wrong!\", e)\n }\n }\n\n useEffect(() => {\n const script = document.createElement('script');\n script.src = require(\"./sort.js\");\n // script.src = require(\"./prettify.js\")\n script.async = true;\n document.body.appendChild(script);\n fetchgetCoverageList();\n return() => {\n document.body.removeChild(script);\n }\n }, []);\n\n const handleClick = (e) => {\n e.preventDefault()\n e.stopPropagation()\n if (e.target.href) {\n let path = e.target.href.replace(window.location.origin, '')\n console.log(\"url ==> \", path, \"\\n\", e.target.href)\n if (path) {\n if (path.toLowerCase().includes(\"/index.html\")) {\n setRootPath(path.toLowerCase().replace(\"/index.html\", \"\"));\n } else if (path !== \"/jacoco-sessions.html\"){\n path = rootPath + path;\n }\n console.log(path);\n fetchgetCoverageList(path)\n }\n }\n }\n\n\n return (\n
\n
\n
\n );\n};\nexport default Coverage;\n","import React, { Component, Suspense } from \"react\";\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\nimport { PageLoader, NotFound } from \"./components/Common\";\nimport { ROUTES } from \"./common/constants\";\nimport Dashboard from \"./Pages/Dashboard\";\n\nimport \"./styles/styles.scss\"; // global styles\nimport Login from \"./Pages/Login\";\nimport ProtectedRoute from \"./components/ProtectedRoute\";\nimport Classes from \"./Pages/Classes\";\nimport FunctionalAdmin from \"./Pages/FunctionalAdmin\";\nimport AdvSearch from \"./Pages/AdvSearch\";\nimport CloudWatchDashboard from \"./Pages/CloudWatchDashboard\";\nimport AdminForms from \"./Pages/AdminForms\";\nimport \"bootstrap/dist/css/bootstrap.css\";\nimport ErrorPage from \"./Pages/ErrorPage\";\nimport Home from \"./Pages/Home\";\nimport TopNav from \"./components/TopNav\";\nimport AppProvider from \"./common/AppProvider\";\nimport { ThemeProvider } from \"react-bootstrap\";\nimport Coverage from \"./Pages/Coverage\";\n\nconst App = () => {\n return (\n \n \n \n }>\n \n \n {/* */}\n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n );\n};\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","export const GET_JOBS = \"GET_JOBS\";\nexport const GET_TRANSACTIONS = \"GET_TRANSACTIONS\";\nexport const GET_STUDENTINTIATION = \"GET_STUDENTINTIATION\";\nexport const GET_VUGTRANSACTIONS = \"GET_VUGTRANSACTIONS\";\n","import { GET_JOBS, GET_TRANSACTIONS , GET_STUDENTINTIATION, GET_VUGTRANSACTIONS } from \"../actions/types\";\n\nconst initialState = {\n jobs: [],\n transactions: [],\n studentintiation: [],\n vugTransactions: []\n};\n\nconst employeesReducer = (state = initialState, action: any) => {\n const { type, payload } = action;\n switch (type) {\n case GET_JOBS: {\n const newState = { jobs: payload };\n return { ...state, ...newState };\n }\n case GET_TRANSACTIONS: {\n const newState = { transactions: payload };\n return { ...state, ...newState };\n }\n case GET_STUDENTINTIATION: {\n const newState = { studentintiation: payload };\n return { ...state, ...newState };\n }\n case GET_VUGTRANSACTIONS : {\n const newState = { vugTransactions: payload };\n return { ...state, ...newState };\n }\n default:\n return state;\n }\n};\n\nexport default employeesReducer;\n","import { combineReducers } from \"redux\";\nimport dashboard from \"./dashboard\";\n\nexport const rootReducer = combineReducers({\n dashboard\n});\n\nexport type RootState = ReturnType;\n","import { createStore, applyMiddleware } from \"redux\";\nimport { composeWithDevTools } from \"redux-devtools-extension\";\nimport thunk from \"redux-thunk\";\nimport { rootReducer } from \"./reducers\";\n\n/**\n * https://github.com/Sunnysit/react-redux-hooks-example\n */\n\nconst initialState = {};\n\nconst middleware = [thunk];\n\nconst store = createStore(\n rootReducer,\n initialState,\n composeWithDevTools(applyMiddleware(...middleware))\n);\n\nexport default store;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport App from \"./App\";\nimport \"./styles/styles.scss\"; // global styles\nimport reportWebVitals from \"./reportWebVitals\";\nimport { Provider } from \"react-redux\";\nimport store from \"./store\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table1_header_cell\":\"AdminForms_table1_header_cell__FrOFv\",\"fullTableWidth\":\"AdminForms_fullTableWidth__2wpST\",\"uid1_col\":\"AdminForms_uid1_col__3mfjp\",\"flagname_col\":\"AdminForms_flagname_col__zo16P\",\"academicyear_col\":\"AdminForms_academicyear_col__1yPWi\",\"updatedby_col\":\"AdminForms_updatedby_col__2QMN1\",\"createddate_col\":\"AdminForms_createddate_col__3i4Bz\",\"updateddate_col\":\"AdminForms_updateddate_col__1GikS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dashboard_filter\":\"Dashboard_dashboard_filter__2Byym\",\"page_text\":\"Dashboard_page_text__1PKEE\",\"align_end\":\"Dashboard_align_end__3N4jh\",\"Modal_Body\":\"Dashboard_Modal_Body__3nd6r\",\"column_grid\":\"Dashboard_column_grid__2nc2C\",\"column_grid_position\":\"Dashboard_column_grid_position__32tXA\",\"column_grid_value\":\"Dashboard_column_grid_value__2davH\",\"column_label\":\"Dashboard_column_label__1Y701\",\"column_label_class\":\"Dashboard_column_label_class__1u-nB\",\"column_label_class_message\":\"Dashboard_column_label_class_message__6kv7e\",\"outer_wrapper\":\"Dashboard_outer_wrapper__3Pvrr\",\"pos_excel\":\"Dashboard_pos_excel__2Xo3G\",\"pos_adv_search\":\"Dashboard_pos_adv_search__3VC0m\",\"clear_all\":\"Dashboard_clear_all__3nJkA\",\"excel_download\":\"Dashboard_excel_download__zfCDh\",\"download_btn\":\"Dashboard_download_btn__31uzA\",\"clear_all_btn\":\"Dashboard_clear_all_btn__3Zr-q\",\"table_header_cell\":\"Dashboard_table_header_cell__2u9fa\",\"fullTableWidth\":\"Dashboard_fullTableWidth__1XOPz\",\"icon_class_name\":\"Dashboard_icon_class_name__1aabR\",\"error_col\":\"Dashboard_error_col__A9OXU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"login_wrapper\":\"Login_login_wrapper__1rIMU\",\"login_title\":\"Login_login_title__3-0MA\",\"logo\":\"Login_logo__c_ABT\",\"login_btn\":\"Login_login_btn__UXyxD\",\"login_page\":\"Login_login_page__Fu5I5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"pos_error\":\"FunctionalAdmin_pos_error__3qL-I\",\"table1_header_cell\":\"FunctionalAdmin_table1_header_cell__3mfEq\",\"fullTableWidth\":\"FunctionalAdmin_fullTableWidth__2o9gm\",\"uid1_col\":\"FunctionalAdmin_uid1_col__32ks2\",\"flagname_col\":\"FunctionalAdmin_flagname_col__2kE3Q\",\"academicyear_col\":\"FunctionalAdmin_academicyear_col__Rdwd4\",\"updatedby_col\":\"FunctionalAdmin_updatedby_col__3aje0\",\"createddate_col\":\"FunctionalAdmin_createddate_col__mNu73\",\"updateddate_col\":\"FunctionalAdmin_updateddate_col__39TA9\",\"text_ellipsis\":\"FunctionalAdmin_text_ellipsis__3GZEq\",\"toastheader\":\"FunctionalAdmin_toastheader__HPEdf\",\"fieldWrapper\":\"FunctionalAdmin_fieldWrapper__2lwua\",\"ml1\":\"FunctionalAdmin_ml1__3XD_c\",\"json_body\":\"FunctionalAdmin_json_body__ZyIkN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"Header_header__MbTxY\",\"header_logo\":\"Header_header_logo__2Xarw\",\"header__wrapper\":\"Header_header__wrapper__1C3Y5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"top_nav\":\"TopNav_top_nav__3YMVK\",\"top_nav__link\":\"TopNav_top_nav__link__16FZ2\",\"top_nav__wrapper\":\"TopNav_top_nav__wrapper__DLvGo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customDialog\":\"Modal_customDialog__tTXvJ\",\"modalHeader\":\"Modal_modalHeader__2hBTe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"download_icon\":\"ExcelDownload_download_icon__1EZzN\",\"download_btn\":\"ExcelDownload_download_btn__BzJK-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main_layout\":\"layouts_main_layout__27Xsk\",\"facet_headers\":\"layouts_facet_headers__QRODP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"label\":\"AdvSearch_label__1VRGn\",\"Modal_Body\":\"AdvSearch_Modal_Body__1DoPj\",\"filerInput\":\"AdvSearch_filerInput__3R2uY\",\"headerCellClass\":\"AdvSearch_headerCellClass__30bgv\",\"fullTableWidth\":\"AdvSearch_fullTableWidth__cjptQ\",\"cellClass\":\"AdvSearch_cellClass__Ik7rC\",\"fieldWrapper\":\"AdvSearch_fieldWrapper__1PKLu\",\"pos_applyfilters\":\"AdvSearch_pos_applyfilters__1Ynm5\",\"clear_all\":\"AdvSearch_clear_all__1h1K3\",\"clear_all_btn\":\"AdvSearch_clear_all_btn__2-vhL\",\"pos_error\":\"AdvSearch_pos_error__MZqiv\",\"menu\":\"AdvSearch_menu__3IcJl\"};","/*******************************************************************************\n * Copyright (c) 2009, 2023 Mountainminds GmbH & Co. KG and Contributors\n * This program and the accompanying materials are made available under\n * the terms of the Eclipse Public License 2.0 which is available at\n * http://www.eclipse.org/legal/epl-2.0\n *\n * SPDX-License-Identifier: EPL-2.0\n *\n * Contributors:\n * Marc R. Hoffmann - initial API and implementation\n *\n *******************************************************************************/\n\n(function () {\n\n /**\n * Sets the initial sorting derived from the hash.\n *\n * @param linkelementids\n * list of element ids to search for links to add sort inidcator\n * hash links\n */\n function initialSort(linkelementids) {\n window.linkelementids = linkelementids;\n var hash = window.location.hash;\n if (hash) {\n var m = hash.match(/up-./);\n if (m) {\n var header = window.document.getElementById(m[0].charAt(3));\n if (header) {\n sortColumn(header, true);\n }\n return;\n }\n var m = hash.match(/dn-./);\n if (m) {\n var header = window.document.getElementById(m[0].charAt(3));\n if (header) {\n sortColumn(header, false);\n }\n return\n }\n }\n }\n \n /**\n * Sorts the columns with the given header dependening on the current sort state.\n */\n function toggleSort(header) {\n var sortup = header.className.indexOf('down ') == 0;\n sortColumn(header, sortup);\n }\n \n /**\n * Sorts the columns with the given header in the given direction.\n */\n function sortColumn(header, sortup) {\n var table = header.parentNode.parentNode.parentNode;\n var body = table.tBodies[0];\n var colidx = getNodePosition(header);\n \n resetSortedStyle(table);\n \n var rows = body.rows;\n var sortedrows = [];\n for (var i = 0; i < rows.length; i++) {\n const r = rows[i];\n sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;\n }\n \n var hash;\n \n if (sortup) {\n for (var i = sortedrows.length - 1; i >= 0; i--) {\n body.appendChild(sortedrows[i]);\n }\n header.className = 'up ' + header.className;\n hash = 'up-' + header.id;\n } else {\n for (var i = 0; i < sortedrows.length; i++) {\n body.appendChild(sortedrows[i]);\n }\n header.className = 'down ' + header.className;\n hash = 'dn-' + header.id;\n }\n \n setHash(hash);\n }\n \n /**\n * Adds the sort indicator as a hash to the document URL and all links.\n */\n function setHash(hash) {\n window.document.location.hash = hash;\n const ids = window.linkelementids || [];\n for (var i = 0; i < ids.length; i++) {\n setHashOnAllLinks(document.getElementById(ids[i]), hash);\n }\n }\n \n /**\n * Extend all links within the given tag with the given hash.\n */\n function setHashOnAllLinks(tag, hash) {\n const links = tag.getElementsByTagName(\"a\");\n for (var i = 0; i < links.length; i++) {\n var a = links[i];\n var href = a.href;\n var hashpos = href.indexOf(\"#\");\n if (hashpos != -1) {\n href = href.substring(0, hashpos);\n }\n a.href = href + \"#\" + hash;\n }\n }\n \n /**\n * Calculates the position of a element within its parent.\n */\n function getNodePosition(element) {\n var pos = -1;\n while (element) {\n element = element.previousSibling;\n pos++;\n }\n return pos;\n }\n \n /**\n * Remove the sorting indicator style from all headers.\n */\n function resetSortedStyle(table) {\n for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {\n if (c.className) {\n if (c.className.indexOf('down ') == 0) {\n c.className = c.className.slice(5);\n }\n if (c.className.indexOf('up ') == 0) {\n c.className = c.className.slice(3);\n }\n }\n }\n }\n \n window['initialSort'] = initialSort;\n window['toggleSort'] = toggleSort;\n \n })();\n "],"sourceRoot":""}