{"version":3,"sources":["state/pageBaseStatus.js","api/api_helper.js","state/state-helpers/actionTypeNameCreator.js","pages/form-attendance/FormAttendancePage.module.css","api/tsDictionaryApi.js","contexts/common.js","app-const.js","api/hocsinh_api.js","api/formRegisterApi.js","pages/form/Editor/FormCoverImgEditor.module.css","hooks/use-language.js","api/formEditorApi.js","utils/media-query.js","pages/form/Editor/FormTagbox.js","state/reducers/truongReducer.js","pages/form-register/FormRegisterPage.js","components/loadable/index.js","components/loader-page/index.js","components/editor/button.js","helpers/toast.js","api/truongApi.js","api/chienDichApi.js","api/uploadApi.js","api/dm_khoi_api.js","api/dm_he_api.js","api/formItemApi.js","api/formApi.js","state/reducers/authReducer.js","state/reducers/coSoReducer.js","state/reducers/namHocReducer.js","pages/form/Editor/FormCobobox.js","components/file-upload/UploadImg.js","pages/form/Editor/FormCoverImgEditor.js","app-info.js","pages/form-attendance/FormAttendancePage.js","api/phuHuynhApi.js","components/editor/button.module.css","pages/form-register/FormRegisterPage.module.css","serviceWorker.js","state/reducers/index.js","state/store.js","index.js"],"names":["pageBaseStatus","is_loading","is_completed","is_saving","is_not_initial","refreshToken","Promise","resolve","setTimeout","a","axios","post","app_config","home_url","access_token","localStorage","refresh_token","catch","res","data","is_success","message","refreshTokenRequest","CheckIsTokenExpired","jwt_decode","exp","parseInt","Math","floor","Date","now","error","handleRefreshToken","newTokens","window","location","reload","new_access_token","split","new_refresh_token","handleGetConfig","headers","Authorization","call_post_api","url","post_data","config","response","status","includes","call_get_api","get","GETWITHHEADER","request","Request","method","fetch","then","json","GET","isCheckToken","POST","mess","PUT","put","DELETE","delete","apiHelper","path","appInfo","api_url","getCustomHeader","header","getWithoutCheckToken","postWithoutCheckToken","putWithoutCheckToken","deleteWithoutCheckToken","actionNameCreator","AUTH","actionName","actionNameCreatorStatus","TRUONG","COSO","NAMHOC","START","toUpperCase","SUCCESS","ERROR","module","exports","tsDictionaryApi","CommonContext","createContext","HttpMethod","useCommonContext","children","dispatch","useDispatch","user","useSelector","x","auth","useState","Map","dictionary","setDictionary","useLanguage","language","translate","key","defaultLanguage","has","mapMenu","item","test","name","name_en","items","length","map","menuItems","useMemo","menus","useEffect","id","handleReloadTruong","dm_truong_ids","campus","truongApi","SelectAll","dm_truongs","filter","type","truongActionTypes","LOAD","payload","handleReloadDictionary","dictionaryMap","reduce","element","set","vn","en","store","showNotify","text","time","notify","canAccessTo","api","httpMethod","apis","find","Provider","value","useContext","appConst","formEditorType","text_box","combobox","date_box","tagbox","label","text_label","formEditorFixed","ho_ten","dien_thoai","email","gioi_tinh","ho_ten_hs","gioi_tinh_hs","truong_dang_hoc","ngay_sinh_hs","khoi_lop","select_all","nam_hoc","dm_trangthaihocsinh_ids","searchText","dm_truong_id","select_by_id","hoc_sinh_select_by_id","insert","update","remove","approve","HOCSINH_API_ENDPOINT","HOCSINH_API_EDIT_MA_ENDPOINT","hocSinhApi","SelectByParent","ts_phuhuynh_id","SelectParents","Search","Select","SelectToExport","Detail","Insert","Update","UpdateStatus","UpdateNgayNhapHoc","Deletes","Import","dm_coso_id","ValidateImport","SelectSuggestEmail","ts_hocsinh_id","SelectByMaHs","ma_hs","ImportLenLop","ValidateImportLenLop","SelectPhuHuynh","dm_quanhe_id","formRegisterApi","SendEmail","dm_chiendich_id","InsertDetail","UpdateDetail","SelecDetailListByResult","UpdateResult","UpdateHocSinh","UpdateInvite","SelecDetailList","SelecDetailListByPhone","phone_number","Attendance","SendEmailInvidate","ts_register_result_ids","thoi_gian","dia_diem","SendEmailMoiGhiDanh","SelectInformation","ReportLead","tu_van_vien_id","from_date","to_date","createInitialLanguage","initialLanguage","getItem","setLanguage","setItem","formEditorApi","SelectByCoSo","SelectByIdTruong","SelectDataSource","parent_id","Delete","useScreenSize","getScreenSize","screenSize","setScreenSize","onSizeChanged","useCallback","subscribe","unsubscribe","useScreenSizeClass","isLarge","isMedium","isSmall","handlers","xSmallMedia","matchMedia","smallMedia","mediumMedia","largeMedia","forEach","media","addListener","e","matches","handler","push","isXSmall","FormTagBox","ts_form_editor_id","onValueChanged","disabled","dataSource","setDataSource","handleReload","displayExpr","valueExpr","stylingMode","width","showSelectionControls","event","iniState","CHANGE_SELECTED_ID","truongReducer","state","action","undefined","FormRegisterPage","isAttendance","dmChienDichId","tsFormId","screenSizeClass","params","useLocation","pathname","replace","ts_form_id","ts_form","set_ts_form","ts_form_items","set_ts_form_items","ts_form_register_result_id","set_ts_form_register_result_id","chienDich","setChienDich","useForm","register","trigger","errors","coSo","namHoc","isSaving","setIsSaving","readOnly","formData","setFormData","tsHocSinhId","setTsHocSinhId","mssError","setMssError","color","setColor","handleReloadForm","handleReloadChienDich","handleReloadFormItems","result","ts_form_item_id","phone_number_result","hanleAutoFill","chienDichApi","formApi","formItemApi","datas","val","is_show","loadValueHS","res2","phCha","phMe","hs","console","log","dm_gioitinh_id","toString","date","moment","ngay_sinh","format","dm_quoctich_id","dm_khoi_id","dm_he_id","truong_hoc_cu","dm_nguonbiettoi_id","dia_chi_tt","dia_chi_noi_sinh","que_quan","ma_dinh_danh","trim","ma_so_bhxh","doi_tuong_chinh_sach","nghe_nghiep","noi_lam_viec","chung_minh_thu","handleValueChanged","handleSubmit","isValid","rs","is_attendanced","ngay_sinh_timestamp","_data","toDate","getTime","dien_thoai_cha","dien_thoai_me","dien_thoai_giam_ho","insertHS","hocSinh","isNaN","isInsert","coso_id","khoiApi","resKhoi","heApi","resHe","formDataSubmit","nam_nhap_hoc","ngay_nhap_hoc_timestamp","NaN","dm_dantoc_id","dm_tongiao_id","so_dien_thoai_bo","so_dien_thoai_me","existedData","y","className","styles","container","form_container","form","style","paddingLeft","paddingRight","cover_img_title","src","cover_img","form_area","form_group","caption","is_active","top_description_html","top_description","dangerouslySetInnerHTML","__html","thank_caption","noti_description_html","description","parentId","khoiData","form_label","is_required","ts_form_editor_type_id","placeholder","help_text","marginTop","onClick","btnSubmit","JSON","parse","stringify","displayFormat","defaultValue","ref","required","basic","pointing","bottom_description_html","bottom_description","form_actions","Loadable","importFunc","fallback","LazyComponent","lazy","props","LoaderPage","height","innerHeight","display","alignItems","background","flexDirection","justifyContent","LoaderApp","alt","PrimaryButton","isLoading","icon","tooltipText","isShowTooltip","setisShowTooltip","btnId","uuidv4","clsx","btn","btn_primary","btn_disabled","hasIcon","onMouseOver","onMouseOut","active","inline","inverted","size","target","visible","hideOnOutsideClick","DefaultButton","DangerButton","btn_danger","LinkButton","btn_none","btn_link","TRUONG_API_ENDPOIT","SelectAllByCoSo","SelectTruongKhoiHe","selectKhoiByTruong","update_khoi_by_truong_id","delete_khoi_by_truong_id","CHIEN_DICH_API_END_POINT","Lock","UnLock","SelectTruongByChienDich","uploadApi","UploadImg","ReadUploadedExcelFile","dm_khoi_select_by_truong","SelectByTruong","HE_API_ENDPOIT","SelectByKhoi","Inserts","UpdateMultiple","FORM_API_ENDPOINT","authActionTypes","LOGIN","GET_INFO","LOGOUT","authReducer","authLocalStorageHeper","add","token","reducer","user_info","clear","removeItem","dm_cosos","coSoActionTypes","coSoReducer","nam_hocs","namHocActionTypes","namHocReducer","FormCobobox","vl","onSuccess","onError","file","set_file","file_name","set_file_name","set_is_loading","upload_file","form_data","FormData","append","Fragment","onChange","files","FormCoverImgEditor","onUploaded","isReadonly","remove_img_container","cursor","add_img_container","title","process","sub_system_id","AttendanceSuccess","cover","thank_img","content","status_caption","question","FormAttendancePage","setIsLoading","isSuccess","setIsSuccess","cachedData","handeleAttendance","PHU_HUYNH_API_END_POINT","PHU_HUYNH_UPATE_STATS_API_END_POINT","phuHuynhApi","ts_phuhuynh_adm_status_id","SelectFamily","SelectLichSuDangKy","SelectStatusSummary","SelectStatus","UpdateTuVanVien","UpdateInfo","SelectByHocSinhQuanHeGiaDinh","ts_quanhegiadinh_id","Boolean","hostname","match","reducers","combineReducers","truong","configureStore","devTools","AppContent","pMinDelay","FormAttendancePageContent","App","ReactDOM","render","StrictMode","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.b2d2a9b0.chunk.js","sourcesContent":["export const pageBaseStatus = {\r\n is_loading: 'is_loading',\r\n is_completed: 'is_completed',\r\n is_saving: 'is_saving',\r\n is_not_initial: 'is_not_ini',\r\n}","import axios from 'axios';\r\nimport app_config from '../app-info';\r\nimport jwt_decode from 'jwt-decode'\r\nimport appInfo from '../app-info';\r\n\r\nconst refreshToken = () => {\r\n return new Promise(resolve => {\r\n setTimeout(async () => {\r\n const res = await axios.post(`${app_config.home_url}/api/login/refresh_new_token`, {\r\n access_token: localStorage.access_token,\r\n refresh_token: localStorage.refresh_token\r\n }).catch(() => {\r\n resolve(\"\");\r\n });\r\n\r\n if (res.data.is_success) {\r\n resolve(res.data.message)\r\n } else {\r\n resolve(\"\");\r\n }\r\n\r\n }, 1000);\r\n });\r\n};\r\n\r\n\r\nlet refreshTokenRequest = null;\r\nconst CheckIsTokenExpired = () => {\r\n try {\r\n const data = jwt_decode(localStorage.access_token)\r\n if (localStorage.access_token && data) {\r\n const exp = data.exp;\r\n if (parseInt(exp) > Math.floor(Date.now() / 1000)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n } catch (error) {\r\n return false;\r\n }\r\n}\r\nconst handleRefreshToken = async () => {\r\n refreshTokenRequest = refreshTokenRequest\r\n ? refreshTokenRequest\r\n : refreshToken();\r\n\r\n const newTokens = await refreshTokenRequest;\r\n refreshTokenRequest = null;\r\n if (newTokens == \"\") {\r\n window.location.reload();\r\n }\r\n const new_access_token = newTokens.split(' ')[0];\r\n const new_refresh_token = newTokens.split(' ')[1];\r\n localStorage.access_token = new_access_token;\r\n localStorage.refresh_token = new_refresh_token;\r\n}\r\nconst handleGetConfig = () => {\r\n const config = {\r\n headers: { Authorization: `Bearer ${localStorage.access_token}` }\r\n }\r\n return config;\r\n}\r\n\r\n\r\nexport async function call_post_api(url, post_data) {\r\n try {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n refreshTokenRequest = refreshTokenRequest\r\n ? refreshTokenRequest\r\n : refreshToken(url);\r\n\r\n const newTokens = await refreshTokenRequest;\r\n refreshTokenRequest = null;\r\n if (newTokens == \"\") {\r\n window.location.reload();\r\n }\r\n const new_access_token = newTokens.split(' ')[0];\r\n const new_refresh_token = newTokens.split(' ')[1];\r\n localStorage.access_token = new_access_token;\r\n localStorage.refresh_token = new_refresh_token;\r\n\r\n }\r\n\r\n const config = {\r\n\r\n headers: { Authorization: `Bearer ${localStorage.access_token}` }\r\n }\r\n const res = await axios.post(url, post_data, config).catch((error) => {\r\n if (error.response.status == 401 && !url.includes('api/login/detail')) {\r\n window.location.reload();\r\n }\r\n });\r\n if (res.status === 200) return res.data;\r\n return {\r\n is_success: false,\r\n message: res.status\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: error\r\n }\r\n }\r\n}\r\n\r\nexport async function call_get_api(url) {\r\n try {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n refreshTokenRequest = refreshTokenRequest\r\n ? refreshTokenRequest\r\n : refreshToken(url);\r\n\r\n const newTokens = await refreshTokenRequest;\r\n refreshTokenRequest = null;\r\n if (newTokens == \"\") {\r\n return {\r\n is_success: false,\r\n message: \"Token expired.\"\r\n }\r\n }\r\n const new_access_token = newTokens.split(' ')[0];\r\n const new_refresh_token = newTokens.split(' ')[1];\r\n localStorage.access_token = new_access_token;\r\n localStorage.refresh_token = new_refresh_token;\r\n\r\n }\r\n\r\n const config = {\r\n headers: { Authorization: `Bearer ${localStorage.access_token}` }\r\n }\r\n const res = await axios.get(url, config);\r\n if (res.status === 200) {\r\n let data = res.data;\r\n return data;\r\n }\r\n else {\r\n\r\n return {\r\n is_success: false,\r\n message: res.status\r\n }\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: error\r\n }\r\n }\r\n}\r\nconst GETWITHHEADER = async (url, headers) => {\r\n const request = new Request(url, {\r\n method: \"GET\",\r\n headers: headers,\r\n });\r\n\r\n return fetch(request)\r\n .then(response => response.json())\r\n .catch(error => {\r\n return null;\r\n });\r\n}\r\nconst GET = async (url, isCheckToken) => {\r\n try {\r\n if (isCheckToken) {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n await handleRefreshToken();\r\n }\r\n }\r\n const config = handleGetConfig();\r\n const res = await axios.get(url, config);\r\n if (res.status === 200) return res.data;\r\n return {\r\n is_success: false,\r\n message: res.status\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: error\r\n }\r\n }\r\n}\r\nconst POST = async (url, data, isCheckToken) => {\r\n var mess = \"\";\r\n try {\r\n if (isCheckToken) {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n await handleRefreshToken();\r\n }\r\n }\r\n const config = handleGetConfig();\r\n const res = await axios.post(url, data, config).catch((error) => {\r\n if (error.response.status == 401 && !url.includes('api/account/detail')) {\r\n window.location.reload();\r\n } else {\r\n mess = error.response.data.message;\r\n }\r\n });\r\n if (res && res.status === 200) return res.data;\r\n return {\r\n is_success: false,\r\n message: res.status ? res.status : \"\"\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: mess\r\n }\r\n }\r\n}\r\nconst PUT = async (url, data, isCheckToken) => {\r\n var mess = \"\";\r\n try {\r\n if (isCheckToken) {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n await handleRefreshToken();\r\n }\r\n }\r\n const config = handleGetConfig();\r\n const res = await axios.put(url, data, config).catch((error) => {\r\n mess = error.response.data.message;\r\n });\r\n if (res.status === 200) return res.data;\r\n return {\r\n is_success: false,\r\n message: res.status\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: mess\r\n }\r\n }\r\n}\r\nconst DELETE = async (url, isCheckToken) => {\r\n try {\r\n if (isCheckToken) {\r\n const isTokenExpired = CheckIsTokenExpired();\r\n if (isTokenExpired) {\r\n await handleRefreshToken();\r\n }\r\n }\r\n const config = handleGetConfig();\r\n const res = await axios.delete(url, config);\r\n if (res.status === 200) return res.data;\r\n return {\r\n is_success: false,\r\n message: res.status\r\n }\r\n } catch (error) {\r\n return {\r\n is_success: false,\r\n message: error\r\n }\r\n }\r\n}\r\n\r\n\r\nexport const apiHelper = {\r\n get: (path) => GET(appInfo.api_url + '/' + path),\r\n getCustomHeader: (url,header) => GETWITHHEADER(url,header),\r\n post: (path, data) => POST(appInfo.api_url + '/' + path, data),\r\n put: (path, data) => PUT(appInfo.api_url + '/' + path, data),\r\n delete: (path) => DELETE(appInfo.api_url + '/' + path),\r\n getWithoutCheckToken: (path) => GET(appInfo.api_url + '/' + path, false),\r\n postWithoutCheckToken: (path, data) => POST(appInfo.api_url + '/' + path, data, false),\r\n putWithoutCheckToken: (path, data) => PUT(appInfo.api_url + '/' + path, data, false),\r\n deleteWithoutCheckToken: (path) => DELETE(appInfo.api_url + '/' + path, false),\r\n}\r\n","\r\nexport const actionNameCreator = {\r\n AUTH: (actionName) => {\r\n return actionNameCreatorStatus(`AUTH_${actionName}`)\r\n },\r\n TRUONG: (actionName) => {\r\n return actionNameCreatorStatus(`TRUONG_${actionName}`)\r\n },\r\n COSO: (actionName) => {\r\n return actionNameCreatorStatus(`COSO_${actionName}`)\r\n },\r\n NAMHOC: (actionName) => {\r\n return actionNameCreatorStatus(`NAMHOC_${actionName}`)\r\n }\r\n}\r\nconst actionNameCreatorStatus = (actionName) => {\r\n return {\r\n START: actionName.toUpperCase() + \"_START\",\r\n SUCCESS: actionName.toUpperCase() + \"_SUCCESS\",\r\n ERROR: actionName.toUpperCase() + \"_ERROR\"\r\n };\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"FormAttendancePage_container__vRXRs\",\"form_container\":\"FormAttendancePage_form_container__t0vd-\",\"form\":\"FormAttendancePage_form__1pAev\",\"cover\":\"FormAttendancePage_cover__2YbnD\",\"caption\":\"FormAttendancePage_caption__2bi5p\",\"thank_img\":\"FormAttendancePage_thank_img__3X4U8\",\"result\":\"FormAttendancePage_result__1mh8s\",\"status_caption\":\"FormAttendancePage_status_caption__2XWB2\",\"content\":\"FormAttendancePage_content__36Oz7\"};","import appInfo from \"../app-info\";\r\nimport { apiHelper } from \"./api_helper\";\r\n\r\nexport const tsDictionaryApi = {\r\n selectAll: () => apiHelper.get(`dictionary`),\r\n}","import React, { createContext, useContext, useEffect, useMemo, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { truongApi } from '../api/truongApi';\r\nimport { truongActionTypes } from '../state/reducers/truongReducer';\r\nimport { tsDictionaryApi } from '../api/tsDictionaryApi';\r\nimport notify from 'devextreme/ui/notify';\r\nimport useLanguage, { defaultLanguage } from '../hooks/use-language';\r\n\r\nexport const CommonContext = createContext(null);\r\n\r\nexport const HttpMethod = {\r\n\tGET: 'GET',\r\n\tPOST: 'POST',\r\n\tPUT: 'PUT',\r\n\tDELETE: 'DELETE',\r\n};\r\n\r\nexport default ({ children }) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst { user } = useSelector((x) => x.auth);\r\n\tconst [dictionary, setDictionary] = useState(new Map());\r\n\tconst [language] = useLanguage();\r\n\r\n\tconst translate = (key) => {\r\n\t\tif (language !== defaultLanguage && dictionary.has(key)) {\r\n\t\t\treturn dictionary.get(key);\r\n\t\t}\r\n\t\treturn key;\r\n\t};\r\n\r\n\tconst mapMenu = (item) => {\r\n\t\treturn {\r\n\t\t\t...item,\r\n\t\t\tpath: item.path && !/^\\//.test(item.path) ? `/${item.path}` : item.path,\r\n\t\t\tname: language !== defaultLanguage && item.name_en ? item.name_en : item.name,\r\n\t\t\titems: item.items && item.items.length ? item.items.map(mapMenu) : item.items,\r\n\t\t};\r\n\t};\r\n\r\n\tconst menuItems = useMemo(() => {\r\n\t\tif (user && user.menus) {\r\n\t\t\treturn user.menus.map(mapMenu);\r\n\t\t} else {\r\n\t\t\treturn [];\r\n\t\t}\r\n\t}, [user]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (user && user.id > 0) {\r\n\t\t\thandleReloadTruong();\r\n\t\t}\r\n\t}, [user]);\r\n\r\n\tconst handleReloadTruong = async () => {\r\n\t\tconst dm_truong_ids = user.campus ? user.campus.map((x) => x.id) : [];\r\n\t\tconst res = await truongApi.SelectAll();\r\n\t\tif (res.is_success) {\r\n\t\t\tconst dm_truongs = res.data.filter((x) => dm_truong_ids.includes(x.id));\r\n\t\t\tdispatch({ type: truongActionTypes.LOAD.SUCCESS, payload: dm_truongs });\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (user && user.id > 0) {\r\n\t\t\thandleReloadDictionary();\r\n\t\t}\r\n\t}, [user]);\r\n\r\n\tconst handleReloadDictionary = async () => {\r\n\t\tconst res = await tsDictionaryApi.selectAll();\r\n\t\tif (res.is_success) {\r\n\t\t\tconst dictionaryMap = res.data.reduce((dictionaryMap, element) => {\r\n\t\t\t\tdictionaryMap.set(element.vn, element.en);\r\n\t\t\t\treturn dictionaryMap;\r\n\t\t\t}, new Map());\r\n\t\t\tsetDictionary(dictionaryMap);\r\n\t\t}\r\n\t};\r\n\r\n\tconst canAccessTo = (api, httpMethod) => {\r\n\t\t// return true;\r\n\t\treturn user.apis\r\n\t\t\t.filter((x) => x.method == httpMethod)\r\n\t\t\t.find((x) => x.url.toUpperCase() === api.toUpperCase() || x.url.toUpperCase() === ('api/' + api).toUpperCase());\r\n\t};\r\n\r\n\tconst showNotify = ({ text, type = 'info' | 'warning' | 'success' | 'error' | 'default', time = 3000 }) => {\r\n\t\tnotify(translate(text), type, time);\r\n\t};\r\n\r\n\tconst store = {\r\n\t\tmenuItems,\r\n\t\ttranslate,\r\n\t\tshowNotify,\r\n\t\tcanAccessTo,\r\n\t};\r\n\r\n\treturn {children};\r\n};\r\n\r\nexport const useCommonContext = () => useContext(CommonContext);\r\n","export const appConst = {\r\n formEditorType: {\r\n text_box: 1,\r\n combobox: 2,\r\n date_box: 3,\r\n tagbox: 4,\r\n label: 5,\r\n text_label: 6\r\n },\r\n formEditorFixed: {\r\n ho_ten: 1,\r\n dien_thoai: 2,\r\n email: 3,\r\n gioi_tinh: 4,\r\n ho_ten_hs: 8,\r\n gioi_tinh_hs: 9,\r\n truong_dang_hoc: 10,\r\n ngay_sinh_hs: 11,\r\n khoi_lop: 20\r\n\r\n }\r\n}\r\n\r\n","import appInfo from '../app-info';\r\nimport { apiHelper, call_post_api } from './api_helper';\r\nexport async function select_all(nam_hoc, dm_trangthaihocsinh_ids, searchText, dm_truong_id) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/select_all', {\r\n\t\tnam_hoc,\r\n\t\tdm_trangthaihocsinh_ids,\r\n\t\tsearchText,\r\n\t\tdm_truong_id: dm_truong_id || 0,\r\n\t});\r\n}\r\n\r\nexport async function select_not_in_ace_chi_tiet(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/select_not_in_ace_chi_tiet', data);\r\n}\r\n\r\nexport async function select_by_id(id) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/select_by_id', id);\r\n}\r\n\r\nexport async function hoc_sinh_select_by_id(id) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/select_by_id', id);\r\n}\r\n\r\nexport async function hoc_sinh_select_ace_by_id(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/select_ace_by_id', data);\r\n}\r\nexport async function insert(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/insert', data);\r\n}\r\n\r\nexport async function update(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/update', data);\r\n}\r\n\r\nexport async function remove(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/delete', data);\r\n}\r\nexport async function approve(data) {\r\n\treturn call_post_api(appInfo.api_url + '/hocsinh/approve', data);\r\n}\r\n\r\nexport const HOCSINH_API_ENDPOINT = 'hoc-sinh';\r\nexport const API_HOCSINH_SELECT_ENDPOINT = 'hoc-sinh/select';\r\nexport const API_HOCSINH_SELECT_EXPORT_ENDPOINT = 'hoc-sinh/select-export';\r\nexport const API_HOCSINH_CHANGE_STATUS_ENDPOINT = 'hoc-sinh';\r\nexport const HOCSINH_API_EDIT_MA_ENDPOINT ='api/hoc-sinh/ma/{ma}/co-so/{dm_coso_id}';\r\nexport const hocSinhApi = {\r\n\tSelectByParent: (ts_phuhuynh_id) => apiHelper.get(`phu-huynh/${ts_phuhuynh_id}/hoc-sinh`),\r\n\tSelectParents: (data) => apiHelper.post(`hoc-sinh/phu-huynh/select`,data),\r\n\tSearch: (data) => apiHelper.post(`${HOCSINH_API_ENDPOINT}/search`, data),\r\n\tSelect: (data) => apiHelper.post(API_HOCSINH_SELECT_ENDPOINT, data),\r\n\tSelectToExport: (data) => apiHelper.post(API_HOCSINH_SELECT_EXPORT_ENDPOINT, data),\r\n\tDetail: (id, nam_hoc) => apiHelper.get(`${HOCSINH_API_ENDPOINT}/${id}/nam-hoc/${nam_hoc}`),\r\n\tInsert: (data) => apiHelper.post(`${HOCSINH_API_ENDPOINT}`, data),\r\n\tUpdate: (data) => apiHelper.put(`${HOCSINH_API_ENDPOINT}`, data),\r\n\tUpdateStatus: (data) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/status`, data),\r\n\tUpdateNgayNhapHoc: (data) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/ngay-nhap-hoc`, data),\r\n\tDeletes: (data) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/deletes`, data),\r\n\tImport: (data,nam_hoc, dm_coso_id) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/import/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n\tValidateImport: (data, nam_hoc, dm_coso_id) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/validate-import/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n\tSelectSuggestEmail: (ts_hocsinh_id) => apiHelper.get(`hoc-sinh/select_suggest_email/${ts_hocsinh_id}`),\r\n\tSelectByMaHs: (ma_hs, dm_coso_id) => apiHelper.get(`${HOCSINH_API_ENDPOINT}/ma/${ma_hs}/co-so/${(dm_coso_id ?? 0)}`),\r\n\tImportLenLop: (data,nam_hoc, dm_coso_id) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/import-len-lop/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n\tValidateImportLenLop: (data, nam_hoc, dm_coso_id) => apiHelper.put(`${HOCSINH_API_ENDPOINT}/validate-import-len-lop/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n\tSelectPhuHuynh: (id, dm_quanhe_id) => apiHelper.get(`${HOCSINH_API_ENDPOINT}/id/${id}/quanhe/${dm_quanhe_id}`),\r\n};","import { apiHelper } from \"./api_helper\";\r\n\r\nexport const FORM_REGISTER_API_END_POINT = \"form-result\";\r\nexport const FORM_REGISTER_DETAIL_END_POINT = \"form-result-detail\";\r\nexport const FORM_REPORT_END_POINT = \"report-lead\";\r\n\r\n\r\nexport const formRegisterApi = {\r\n Insert: (data) => apiHelper.postWithoutCheckToken(`${FORM_REGISTER_API_END_POINT}`, data),\r\n SendEmail: (data) => apiHelper.postWithoutCheckToken(`${FORM_REGISTER_API_END_POINT}/send-email`, data),\r\n Select: (dm_coso_id, dm_chiendich_id, nam_hoc) => \r\n apiHelper.get(`${FORM_REGISTER_API_END_POINT}/co-so/${dm_coso_id}/chien-dich/${dm_chiendich_id}/nam-hoc/${nam_hoc}`),\r\n InsertDetail: (data) => apiHelper.post(`${FORM_REGISTER_DETAIL_END_POINT}`, data),\r\n UpdateDetail: (data) => apiHelper.put(`${FORM_REGISTER_DETAIL_END_POINT}`, data),\r\n SelecDetailListByResult: (data) => apiHelper.post(`${FORM_REGISTER_DETAIL_END_POINT}/results`, data),\r\n UpdateResult: (data) => apiHelper.put(`${FORM_REGISTER_API_END_POINT}/update-result`, data),\r\n UpdateHocSinh: (data) => apiHelper.put(`${FORM_REGISTER_API_END_POINT}/update-hocsinh`, data),\r\n UpdateInvite: (data) => apiHelper.put(`${FORM_REGISTER_API_END_POINT}/update-invite`, data),\r\n SelecDetailList: (dm_coso_id, dm_chiendich_id) => apiHelper.get(`${FORM_REGISTER_DETAIL_END_POINT}/co-so/${dm_coso_id ?? 0}/chien-dich/${dm_chiendich_id ?? 0}`),\r\n SelecDetailListByPhone: (dm_coso_id, dm_chiendich_id, phone_number) =>\r\n apiHelper.getWithoutCheckToken(`${FORM_REGISTER_DETAIL_END_POINT}/co-so/${dm_coso_id ?? 0}/chien-dich/${dm_chiendich_id ?? 0}/phone/${phone_number}`),\r\n Attendance: (data) => apiHelper.postWithoutCheckToken(`${FORM_REGISTER_API_END_POINT}/attendance`, data),\r\n ValidateImport: (data, nam_hoc, dm_coso_id) => apiHelper.put(`${FORM_REGISTER_API_END_POINT}/validate-import/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n Import: (data, nam_hoc, dm_coso_id) => apiHelper.put(`${FORM_REGISTER_API_END_POINT}/import/nam-hoc/${nam_hoc}/co-so/${(dm_coso_id ?? 0)}`, data),\r\n SendEmailInvidate: ({ dm_coso_id, ts_register_result_ids, thoi_gian, dia_diem, dm_chiendich_id }) => apiHelper.post(`${FORM_REGISTER_API_END_POINT}/send-invite`, {\r\n ts_register_result_ids,\r\n thoi_gian,\r\n dia_diem,\r\n dm_chiendich_id,\r\n dm_coso_id\r\n }),\r\n SendEmailMoiGhiDanh: ({ dm_coso_id, ts_register_result_ids, dm_chiendich_id }) => apiHelper.post(`${FORM_REGISTER_API_END_POINT}/send-moi-ghi-danh`, {\r\n ts_register_result_ids,\r\n dm_chiendich_id,\r\n dm_coso_id\r\n }),\r\n SelectInformation: (dm_coso_id, nam_hoc) => apiHelper.get(`${FORM_REGISTER_DETAIL_END_POINT}/nam-hoc/${nam_hoc}/co-so/${dm_coso_id}`),\r\n ReportLead: (dm_coso_id, tu_van_vien_id, from_date, to_date) =>\r\n apiHelper.post(`${FORM_REPORT_END_POINT}`, {\r\n dm_coso_id,\r\n tu_van_vien_id,\r\n from_date,\r\n to_date\r\n }),\r\n\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"cover_img\":\"FormCoverImgEditor_cover_img__2WOpf\",\"add_img_container\":\"FormCoverImgEditor_add_img_container__DxH2s\",\"remove_img_container\":\"FormCoverImgEditor_remove_img_container__3fARM\"};","import { useEffect, useState } from 'react';\r\n\r\nconst keyName = 'language';\r\nexport const defaultLanguage = 'vn';\r\n\r\nconst createInitialLanguage = () => {\r\n\tlet initialLanguage = defaultLanguage;\r\n\tconst language = localStorage.getItem(keyName);\r\n\tif (language) {\r\n\t\tinitialLanguage = language;\r\n\t}\r\n\treturn initialLanguage;\r\n};\r\n\r\nconst useLanguage = () => {\r\n\tconst [language, setLanguage] = useState(createInitialLanguage);\r\n\r\n\tuseEffect(() => {\r\n\t\tconst language = localStorage.getItem(keyName);\r\n\t\tif (language) {\r\n\t\t\tsetLanguage(language);\r\n\t\t}\r\n\t}, []);\r\n\r\n\tuseEffect(() => {\r\n\t\tlocalStorage.setItem(keyName, language);\r\n\t}, [language]);\r\n\r\n\treturn [language, setLanguage];\r\n};\r\n\r\nexport default useLanguage;\r\n","import appInfo from \"../app-info\";\r\nimport { apiHelper, call_post_api } from \"./api_helper\";\r\n\r\nexport const FORMEDITORAPI_ENDPOINT = \"form-editor\";\r\n\r\n\r\nexport const formEditorApi = {\r\n SelectAll: () => apiHelper.get(`${FORMEDITORAPI_ENDPOINT}`),\r\n SelectByCoSo: (dm_coso_id) => apiHelper.get(`${FORMEDITORAPI_ENDPOINT}/coso/${dm_coso_id}`),\r\n SelectByIdTruong: (dm_truong_id) => apiHelper.get(`${FORMEDITORAPI_ENDPOINT}/dm_truong_id/${dm_truong_id}`),\r\n SelectDataSource: (id, dm_coso_id, parent_id) => apiHelper.getWithoutCheckToken(`${FORMEDITORAPI_ENDPOINT}/datasource/${id}/coso/${dm_coso_id}/parentid/${parent_id}`),\r\n Insert: (data) => apiHelper.post(`${FORMEDITORAPI_ENDPOINT}`, data),\r\n Update: (data) => apiHelper.put(`${FORMEDITORAPI_ENDPOINT}`, data),\r\n Delete: (id) => apiHelper.delete(`${FORMEDITORAPI_ENDPOINT}/${id}`),\r\n Detail: (id) => apiHelper.get(`${FORMEDITORAPI_ENDPOINT}/${id}`),\r\n}","import { useState, useCallback, useEffect } from 'react';\r\n\r\nexport const useScreenSize = () => {\r\n const [screenSize, setScreenSize] = useState(getScreenSize());\r\n const onSizeChanged = useCallback(() => {\r\n setScreenSize(getScreenSize());\r\n }, []);\r\n\r\n useEffect(() => {\r\n subscribe(onSizeChanged);\r\n\r\n return () => {\r\n unsubscribe(onSizeChanged);\r\n };\r\n }, [onSizeChanged]);\r\n\r\n return screenSize;\r\n};\r\n\r\nexport const useScreenSizeClass = () => {\r\n const screenSize = useScreenSize();\r\n\r\n if (screenSize.isLarge) {\r\n return 'screen-large';\r\n }\r\n\r\n if (screenSize.isMedium) {\r\n return 'screen-medium';\r\n }\r\n\r\n if (screenSize.isSmall) {\r\n return 'screen-small';\r\n }\r\n\r\n return 'screen-x-small';\r\n}\r\n\r\nlet handlers = [];\r\nconst xSmallMedia = window.matchMedia('(max-width: 599.99px)');\r\nconst smallMedia = window.matchMedia('(min-width: 600px) and (max-width: 959.99px)');\r\nconst mediumMedia = window.matchMedia('(min-width: 960px) and (max-width: 1279.99px)');\r\nconst largeMedia = window.matchMedia('(min-width: 1280px)');\r\n\r\n[xSmallMedia, smallMedia, mediumMedia, largeMedia].forEach(media => {\r\n media.addListener((e) => {\r\n e.matches && handlers.forEach(handler => handler());\r\n });\r\n});\r\n\r\nconst subscribe = handler => handlers.push(handler);\r\n\r\nconst unsubscribe = handler => {\r\n handlers = handlers.filter(item => item !== handler);\r\n};\r\n\r\nfunction getScreenSize() {\r\n return {\r\n isXSmall: xSmallMedia.matches,\r\n isSmall: smallMedia.matches,\r\n isMedium: mediumMedia.matches,\r\n isLarge: largeMedia.matches\r\n };\r\n};\r\n","import TagBox from 'devextreme-react/tag-box';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { formEditorApi } from '../../../api/formEditorApi';\r\nconst FormTagBox = ({ value, ts_form_editor_id, dm_coso_id, onValueChanged, disabled }) => {\r\n const [dataSource, setDataSource] = useState([]);\r\n useEffect(() => {\r\n handleReload();\r\n }, []);\r\n const handleReload = async () => {\r\n const res = await formEditorApi.SelectDataSource(ts_form_editor_id, dm_coso_id, 0);\r\n if (res.is_success) {\r\n setDataSource(res.data);\r\n }\r\n };\r\n return (\r\n {\r\n if (e.event && onValueChanged) {\r\n onValueChanged(e.value);\r\n }\r\n }}\r\n // ref={cmb}\r\n // onValueChanged={(e) => {\r\n // onValueChanged(e.value);\r\n // }}\r\n />\r\n );\r\n};\r\n\r\nexport default FormTagBox;\r\n","import { pageBaseStatus } from \"../pageBaseStatus\";\r\nimport { actionNameCreator } from \"../state-helpers/actionTypeNameCreator\";\r\nexport const iniState = {\r\n status: pageBaseStatus,\r\n dm_truongs: [],\r\n dm_truong_id: localStorage.getItem(\"header_dm_truong_id\") ? parseInt(localStorage.getItem(\"header_dm_truong_id\")) : 0\r\n}\r\nexport const truongActionTypes = {\r\n LOAD: actionNameCreator.TRUONG(\"LOAD\"),\r\n CHANGE_SELECTED_ID: \"CHANGE_SELECTED_ID\",\r\n}\r\nexport const truongReducer = (state = iniState, action) => {\r\n switch (action.type) {\r\n case truongActionTypes.LOAD.START:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_loading,\r\n dm_truongs: undefined\r\n }\r\n case truongActionTypes.LOAD.SUCCESS:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n dm_truongs: action.payload\r\n }\r\n case truongActionTypes.LOAD.ERROR:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n dm_truongs: []\r\n }\r\n case truongActionTypes.CHANGE_SELECTED_ID:\r\n // console.log(action.payload);\r\n localStorage.setItem(\"header_dm_truong_id\", action.payload)\r\n return {\r\n ...state,\r\n dm_truong_id: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import TextBox from 'devextreme-react/text-box';\r\nimport DateBox from 'devextreme-react/date-box';\r\n\r\nimport moment from 'moment';\r\nimport React, { useEffect, useMemo, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Label } from 'semantic-ui-react';\r\nimport { chienDichApi } from '../../api/chienDichApi';\r\nimport { formApi } from '../../api/formApi';\r\nimport { formItemApi } from '../../api/formItemApi';\r\nimport { formRegisterApi } from '../../api/formRegisterApi';\r\nimport { appConst } from '../../app-const';\r\nimport { useScreenSizeClass } from '../../utils/media-query';\r\nimport { AttendanceSuccess } from '../form-attendance/FormAttendancePage';\r\nimport { FormCobobox } from '../form/Editor';\r\nimport FormTagBox from '../form/Editor/FormTagbox';\r\nimport styles from './FormRegisterPage.module.css';\r\nimport { khoiApi } from '../../api/dm_khoi_api';\r\nimport { heApi } from '../../api/dm_he_api';\r\nimport { phuHuynhApi } from '../../api/phuHuynhApi';\r\nimport { useCommonContext } from '../../contexts/common';\r\nimport { hocSinhApi } from '../../api/hocsinh_api';\r\nimport { showNotify } from '../../helpers/toast';\r\nconst FormRegisterPage = ({ isAttendance, dmChienDichId, tsFormId }) => {\r\n const screenSizeClass = useScreenSizeClass();\r\n const location = useLocation();\r\n const params = location.pathname.replace('/form-register/', '').split('/');\r\n const dm_chiendich_id = dmChienDichId || (params.length > 0 ? parseInt(params[0]) : 0);\r\n const ts_form_id = tsFormId || (params.length > 1 ? parseInt(params[1]) : 0);\r\n\r\n const [ts_form, set_ts_form] = useState({});\r\n const [ts_form_items, set_ts_form_items] = useState([]);\r\n const [ts_form_register_result_id, set_ts_form_register_result_id] =\r\n useState(0);\r\n const [chienDich, setChienDich] = useState();\r\n const { register, trigger, errors } = useForm();\r\n const { dm_coso_id } = useSelector(x => x.coSo)\r\n const { nam_hoc } = useSelector(x => x.namHoc)\r\n const [isSaving, setIsSaving] = useState(false);\r\n const [formData, setFormData] = useState({\r\n dm_chiendich_id: dm_chiendich_id,\r\n readOnly: false\r\n });\r\n const [tsHocSinhId, setTsHocSinhId] = useState(0);\r\n const [mssError, setMssError] = useState();\r\n const [color, setColor] = useState();\r\n\r\n useEffect(() => {\r\n if (dm_chiendich_id > 0 && ts_form_id > 0 && ts_form_register_result_id > 0) {\r\n //lưu cache để điểm danh\r\n localStorage.setItem(`${dm_chiendich_id}-${ts_form_id}`, ts_form_register_result_id);\r\n }\r\n }, [ts_form_register_result_id, ts_form_id, dm_chiendich_id])\r\n\r\n useEffect(() => {\r\n handleReloadForm();\r\n }, [ts_form_id]);\r\n useEffect(() => {\r\n handleReloadChienDich();\r\n }, [dm_chiendich_id])\r\n useEffect(() => {\r\n if (ts_form && ts_form.id > 0) {\r\n setFormData({\r\n ...formData,\r\n ts_form_id: ts_form.id,\r\n });\r\n handleReloadFormItems();\r\n }\r\n }, [ts_form]);\r\n useEffect(() => {\r\n setFormData({\r\n ...formData,\r\n result: ts_form_items.map((x) => {\r\n return {\r\n ts_form_item_id: x.id,\r\n ts_form_editor_id: x.ts_form_editor_id,\r\n value: '',\r\n };\r\n }),\r\n });\r\n }, [ts_form_items]);\r\n const phone_number = useMemo(() => {\r\n if (formData.result) {\r\n const phone_number_result = formData.result.find(\r\n (x) => x.ts_form_editor_id == appConst.formEditorFixed.dien_thoai\r\n );\r\n if (phone_number_result) return phone_number_result.value;\r\n }\r\n\r\n return '';\r\n }, [formData]);\r\n useEffect(() => {\r\n if (isAttendance) {\r\n hanleAutoFill();\r\n }\r\n\r\n }, [phone_number, isAttendance])\r\n const handleReloadChienDich = async () => {\r\n const res = await chienDichApi.Detail(dm_chiendich_id)\r\n if (res.is_success) {\r\n setChienDich(res.data)\r\n\r\n }\r\n }\r\n const handleReloadForm = async () => {\r\n const res = await formApi.Detail(ts_form_id);\r\n if (res.is_success) {\r\n set_ts_form(res.data);\r\n }\r\n };\r\n const handleReloadFormItems = async () => {\r\n const res = await formItemApi.Select(ts_form.id);\r\n if (res.is_success) {\r\n const datas = res.data.filter((val) => val.is_show === true);\r\n set_ts_form_items(datas);\r\n\r\n }\r\n };\r\n const loadValueHS = async (value) => {\r\n var res = await hocSinhApi.SelectByMaHs(value, chienDich.dm_coso_id);\r\n if (res && res.data) {\r\n var res2 = await hocSinhApi.Detail(res.data.id, chienDich.nam_hoc);\r\n if (res2) {\r\n var phCha = await hocSinhApi.SelectPhuHuynh(res.data.id, 1);\r\n var phMe = await hocSinhApi.SelectPhuHuynh(res.data.id, 2);\r\n var hs = res2.data;\r\n console.log(hs);\r\n setTsHocSinhId(hs.id);\r\n setFormData({\r\n ...formData,\r\n result: formData.result.map((x) => {\r\n switch (x.ts_form_editor_id) {\r\n case 2000:\r\n return {\r\n ...x,\r\n value: hs.ho_ten,\r\n readOnly: true\r\n };\r\n case 2001:\r\n return {\r\n ...x,\r\n value: hs.dm_gioitinh_id.toString(),\r\n readOnly: true\r\n };\r\n case 2002:\r\n const date = moment(hs.ngay_sinh).format('DD/MM/YYYY');\r\n return {\r\n ...x,\r\n value: date,\r\n readOnly: true\r\n };\r\n case 2003:\r\n return {\r\n ...x,\r\n value: hs.dm_quoctich_id.toString(),\r\n readOnly: true\r\n };\r\n case 2004:\r\n return {\r\n ...x,\r\n value: hs.dm_truong_id.toString(),\r\n readOnly: true\r\n };\r\n case 2005:\r\n return {\r\n ...x,\r\n value: hs.dm_khoi_id.toString(),\r\n readOnly: true\r\n };\r\n case 2006:\r\n return {\r\n ...x,\r\n value: hs.dm_he_id.toString(),\r\n readOnly: true\r\n };\r\n case 2007:\r\n return {\r\n ...x,\r\n value: hs.truong_hoc_cu,\r\n readOnly: hs.truong_hoc_cu ? true : false\r\n };\r\n case 2008:\r\n return {\r\n ...x,\r\n value: hs.dm_nguonbiettoi_id,\r\n readOnly: hs.dm_nguonbiettoi_id == '' ? true : false\r\n };\r\n case 2009:\r\n return {\r\n ...x,\r\n value: hs.nam_hoc,\r\n readOnly: true\r\n };\r\n case 2010:\r\n return {\r\n ...x,\r\n value: hs.dia_chi_tt,\r\n readOnly: (hs.dia_chi_tt !== null && hs.dia_chi_tt !== '') ? true : false\r\n };\r\n case 2011:\r\n return {\r\n ...x,\r\n value: hs.dia_chi_noi_sinh,\r\n readOnly: (hs.dia_chi_noi_sinh !== null && hs.dia_chi_noi_sinh !== '') ? true : false\r\n };\r\n case 2012:\r\n return {\r\n ...x,\r\n value: hs.que_quan,\r\n readOnly: (hs.que_quan !== null && hs.que_quan !== '') ? true : false\r\n };\r\n case 2033:\r\n return {\r\n ...x,\r\n value: hs.ma_dinh_danh,\r\n readOnly: (hs.ma_dinh_danh !== null && hs.ma_dinh_danh.trim().toString() !== '')?true:false\r\n };\r\n case 2034:\r\n return {\r\n ...x,\r\n value: hs.ma_so_bhxh,\r\n readOnly: (hs.ma_so_bhxh !== null && hs.ma_so_bhxh.trim().toString() !== '')?true:false\r\n };\r\n case 2035:\r\n return {\r\n ...x,\r\n value: hs.doi_tuong_chinh_sach,\r\n readOnly: (hs.doi_tuong_chinh_sach !== null && hs.doi_tuong_chinh_sach.trim().toString() !== '')?true:false\r\n };\r\n case 2013:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.ho_ten : \"\",\r\n readOnly: (phCha && phCha.data) ? true : false\r\n };\r\n case 2014:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.email : \"\",\r\n readOnly: (phCha && phCha.data && phCha.data.email) ? true : false\r\n };\r\n case 2015:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.dien_thoai : \"\",\r\n readOnly: (phCha && phCha.data) ? true : false\r\n };\r\n case 2016:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.nghe_nghiep : \"\",\r\n readOnly: (phCha && phCha.data && phCha.data.nghe_nghiep) ? true : false\r\n };\r\n case 2017:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.noi_lam_viec : \"\",\r\n readOnly: (phCha && phCha.data && phCha.data.noi_lam_viec) ? true : false\r\n };\r\n case 2018:\r\n return {\r\n ...x,\r\n value: (phCha && phCha.data) ? phCha.data.chung_minh_thu : \"\",\r\n readOnly: (phCha && phCha.data && phCha.data.chung_minh_thu) ? true : false\r\n };\r\n case 2019:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.ho_ten : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.ho_ten) ? true : false\r\n };\r\n case 2020:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.email : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.email) ? true : false\r\n };\r\n case 2021:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.dien_thoai : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.dien_thoai) ? true : false\r\n };\r\n case 2022:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.nghe_nghiep : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.nghe_nghiep) ? true : false\r\n };\r\n case 2023:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.noi_lam_viec : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.noi_lam_viec) ? true : false\r\n };\r\n case 2024:\r\n return {\r\n ...x,\r\n value: (phMe && phMe.data) ? phMe.data.chung_minh_thu : \"\",\r\n readOnly: (phMe && phMe.data && phMe.data.chung_minh_thu) ? true : false\r\n };\r\n case 2032:\r\n return {\r\n ...x,\r\n value: value\r\n };\r\n\r\n default:\r\n return { ...x };\r\n }\r\n }),\r\n });\r\n }\r\n setMssError(\"Mã học sinh đã khớp với hệ thống\");\r\n setColor(\"#8bc34a\");\r\n }else{\r\n setMssError(\"Mã học sinh không đúng\");\r\n setColor(\"red\");\r\n // showNotify({\r\n // text: 'Mã học sinh không đúng',\r\n // type: 'error',\r\n // });\r\n }\r\n \r\n }\r\n const handleValueChanged = async (ts_form_editor_id, ts_form_item_id, value) => {\r\n \r\n setFormData({\r\n ...formData,\r\n result: formData.result.map((x) => {\r\n if (x.ts_form_item_id == ts_form_item_id) {\r\n return {\r\n ...x,\r\n ts_form_item_id: x.ts_form_item_id,\r\n value: value,\r\n };\r\n } else {\r\n return { ...x };\r\n }\r\n }),\r\n });\r\n };\r\n const handleSubmit = async () => {\r\n trigger().then(async (isValid) => {\r\n if (isValid) {\r\n setIsSaving(true);\r\n var rs = formData.result.map((x) => {\r\n return {\r\n ts_form_item_id: x.ts_form_item_id,\r\n value: x.value,\r\n ts_form_editor_id: x.ts_form_editor_id,\r\n };\r\n });\r\n const res = await formRegisterApi.Insert({\r\n dm_chiendich_id: dm_chiendich_id,\r\n ts_form_id: formData.ts_form_id,\r\n phone_number: phone_number,\r\n is_attendanced: isAttendance || false,\r\n result: rs,\r\n });\r\n setIsSaving(false);\r\n if (res.is_success) {\r\n set_ts_form_register_result_id(res.data);\r\n try {\r\n let _data = {\r\n nam_hoc: null,\r\n ho_ten: null,\r\n ngay_sinh_timestamp: null,\r\n dm_gioitinh_id: null,\r\n dm_he_id: null,\r\n dm_khoi_id: null,\r\n dm_truong_id: null,\r\n truong_hoc_cu: null,\r\n dm_nguonbiettoi_id: null,\r\n dm_quoctich_id: null,\r\n nam_hoc: null,\r\n dia_chi_tt: null,\r\n dia_chi_noi_sinh: null,\r\n que_quan: null,\r\n ts_form_register_result_id: null,\r\n dien_thoai_cha: null,\r\n dien_thoai_me: null,\r\n dien_thoai_giam_ho: null,\r\n ma_dinh_danh: null,\r\n ma_so_bhxh: null,\r\n doi_tuong_chinh_sach: null\r\n };\r\n rs.forEach(element => {\r\n _data.ts_form_register_result_id = res.data;\r\n switch (element.ts_form_editor_id) {\r\n case 2000:\r\n _data.ho_ten = element.value;\r\n break;\r\n case 2001:\r\n _data.dm_gioitinh_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2002:\r\n _data.ngay_sinh_timestamp = element.value ? moment(element.value, 'DD/MM/YYYY').toDate().getTime() : 0;\r\n break;\r\n case 2003:\r\n _data.dm_quoctich_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2004:\r\n _data.dm_truong_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2005:\r\n _data.dm_khoi_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2006:\r\n _data.dm_he_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2007:\r\n _data.truong_hoc_cu = element.value;\r\n break;\r\n case 2008:\r\n _data.dm_nguonbiettoi_id = element.value != null ? parseInt(element.value) : 0;\r\n break;\r\n case 2009:\r\n _data.nam_hoc = element.value;\r\n break;\r\n case 2010:\r\n _data.dia_chi_tt = element.value;\r\n break;\r\n case 2011:\r\n _data.dia_chi_noi_sinh = element.value;\r\n break;\r\n case 2012:\r\n _data.que_quan = element.value;\r\n break;\r\n case 2033:\r\n _data.ma_dinh_danh = element.value;\r\n break;\r\n case 2034:\r\n _data.ma_so_bhxh = element.value;\r\n break;\r\n case 2035:\r\n _data.doi_tuong_chinh_sach = element.value;\r\n break;\r\n case 2015:\r\n _data.dien_thoai_cha = element.value;\r\n break;\r\n case 2021:\r\n _data.dien_thoai_me = element.value;\r\n break;\r\n case 2030:\r\n _data.dien_thoai_giam_ho = element.value;\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n const hocSinh = await insertHS(_data);\r\n console.log(hocSinh);\r\n var ts_hocsinh_id = 0;\r\n if (hocSinh) {\r\n ts_hocsinh_id = hocSinh.data;\r\n }\r\n await formRegisterApi.SendEmail({\r\n dm_chiendich_id: dm_chiendich_id,\r\n ts_form_id: formData.ts_form_id,\r\n phone_number: phone_number,\r\n ts_hocsinh_id: ts_hocsinh_id,\r\n is_attendanced: isAttendance || false,\r\n result: rs,\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }else{\r\n showNotify({ text: res.message, type: \"error\" })\r\n }\r\n }\r\n });\r\n\r\n };\r\n\r\n const insertHS = async (value) => {\r\n if (tsHocSinhId > 0) {\r\n var res2 = await hocSinhApi.Detail(tsHocSinhId, chienDich.nam_hoc);\r\n if (value.dm_khoi_id == null || isNaN(value.dm_khoi_id)) {\r\n value.dm_khoi_id = res2.data.dm_khoi_id;\r\n }\r\n if (value.dm_he_id == null) {\r\n value.dm_he_id = res2.data.dm_he_id;\r\n }\r\n if (value.ngay_sinh_timestamp == null) {\r\n value.ngay_sinh_timestamp = res2.data.ngay_sinh_timestamp;\r\n }\r\n }\r\n var isInsert = true;\r\n if (value.ho_ten == null) {\r\n isInsert = false;\r\n }\r\n if (value.dm_khoi_id == null || isNaN(value.dm_khoi_id)) {\r\n isInsert = false;\r\n }\r\n if (value.dm_he_id == null) {\r\n isInsert = false;\r\n }\r\n if (value.ngay_sinh_timestamp == null) {\r\n isInsert = false;\r\n }\r\n var coso_id = dm_coso_id;\r\n if (isInsert) {\r\n const resKhoi = await khoiApi.Detail(value.dm_khoi_id);\r\n const resHe = await heApi.Detail(value.dm_he_id);\r\n var dm_truong_id = value.dm_truong_id != null ? value.dm_truong_id : 0;\r\n if (resKhoi.is_success) {\r\n dm_truong_id = resKhoi.data.dm_truong_id;\r\n }\r\n if (resHe.is_success) {\r\n coso_id = resHe.data.dm_coso_id;\r\n }\r\n var namHoc = value.nam_hoc != null ? value.nam_hoc : nam_hoc;\r\n var formDataSubmit = {\r\n id: tsHocSinhId,\r\n nam_hoc: namHoc,\r\n nam_nhap_hoc: namHoc,\r\n ho_ten: value.ho_ten,\r\n ngay_sinh_timestamp: value.ngay_sinh_timestamp,\r\n ngay_nhap_hoc_timestamp: new Date().getTime(),\r\n dm_gioitinh_id: (value.dm_gioitinh_id && value.dm_gioitinh_id != null && value.dm_gioitinh_id != NaN) ? value.dm_gioitinh_id : 1,\r\n dm_he_id: value.dm_he_id,\r\n dm_coso_id: coso_id,\r\n dm_dantoc_id: 1,\r\n dm_tongiao_id: 1,\r\n dm_chiendich_id: dm_chiendich_id,\r\n dm_khoi_id: value.dm_khoi_id,\r\n dm_truong_id: dm_truong_id,\r\n truong_hoc_cu: value.truong_hoc_cu,\r\n dm_nguonbiettoi_id: (value.dm_nguonbiettoi_id && value.dm_nguonbiettoi_id != null && value.dm_nguonbiettoi_id != NaN\r\n && value.dm_nguonbiettoi_id != undefined && value.dm_nguonbiettoi_id != 'NaN') ? value.dm_nguonbiettoi_id : 0,\r\n dm_quoctich_id: value.dm_quoctich_id ? value.dm_quoctich_id : 1,\r\n dia_chi_tt: value.dia_chi_tt,\r\n dia_chi_noi_sinh: value.dia_chi_noi_sinh,\r\n que_quan: value.que_quan,\r\n ma_dinh_danh: value.ma_dinh_danh,\r\n ma_so_bhxh: value.ma_so_bhxh,\r\n doi_tuong_chinh_sach: value.doi_tuong_chinh_sach,\r\n so_dien_thoai_bo: value.dien_thoai_cha,\r\n so_dien_thoai_me: value.dien_thoai_me\r\n };\r\n var res = await hocSinhApi.Insert(formDataSubmit);\r\n console.log(res);\r\n if (res.is_success) {\r\n // if (value.dien_thoai_cha != null && value.dien_thoai_cha != \"\") {\r\n // if (value.dien_thoai_cha.toString().startsWith('0') && value.dien_thoai_cha.toString().length == 10) {\r\n // const formDataSubmit = {\r\n // dien_thoai: value.dien_thoai_cha,\r\n // ts_hocsinh_id: res.data,\r\n // dm_coso_id: dm_coso_id,\r\n // dm_quanhe_id: 1\r\n // };\r\n // await quanHeGiaDinhApi.Insert(formDataSubmit);\r\n // }\r\n // }\r\n // if (value.dien_thoai_me != null && value.dien_thoai_me != \"\") {\r\n // if (value.dien_thoai_me.toString().startsWith('0') && value.dien_thoai_me.toString().length == 10) {\r\n // const formDataSubmit = {\r\n // dien_thoai: value.dien_thoai_me,\r\n // ts_hocsinh_id: res.data,\r\n // dm_coso_id: dm_coso_id,\r\n // dm_quanhe_id: 2\r\n // };\r\n // await quanHeGiaDinhApi.Insert(formDataSubmit);\r\n // }\r\n // }\r\n // if (value.dien_thoai_giam_ho != null && value.dien_thoai_giam_ho != \"\") {\r\n // if (value.dien_thoai_giam_ho.toString().startsWith('0') && value.dien_thoai_giam_ho.toString().length == 10) {\r\n // const formDataSubmit = {\r\n // dien_thoai: value.dien_thoai_giam_ho,\r\n // ts_hocsinh_id: res.data,\r\n // dm_coso_id: dm_coso_id,\r\n // dm_quanhe_id: 3\r\n // };\r\n // await quanHeGiaDinhApi.Insert(formDataSubmit);\r\n // }\r\n // }\r\n await formRegisterApi.UpdateHocSinh(\r\n {\r\n ts_hocsinh_id: res.data,\r\n id: value.ts_form_register_result_id\r\n }\r\n );\r\n }\r\n return res;\r\n }\r\n\r\n }\r\n\r\n const hanleAutoFill = async () => {\r\n if (dm_chiendich_id > 0 && phone_number != \"\") {\r\n const res = await formRegisterApi.SelecDetailListByPhone(0, dm_chiendich_id, phone_number);\r\n if (res.is_success) {\r\n setFormData({\r\n ...formData,\r\n result: formData.result.map((x) => {\r\n const existedData = res.data.find(y => y.ts_form_item_id == x.ts_form_item_id)\r\n return {\r\n ...x,\r\n value: existedData ? existedData.value : \"\",\r\n };\r\n\r\n }),\r\n });\r\n }\r\n }\r\n }\r\n if ((ts_form_register_result_id > 0) && isAttendance) {\r\n return ;\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {/*   */}\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {/* */}\r\n {ts_form.name}\r\n

\r\n
\r\n {chienDich && chienDich.is_active && chienDich.top_description_html &&\r\n
\r\n
\r\n
\r\n }\r\n {(!chienDich || !chienDich.is_active) && (\r\n
\r\n \r\n

\r\n Chiến dịch đã hết hạn đăng ký, vui lòng liên hệ bộ phận Tuyển sinh.\r\n

\r\n
\r\n )}\r\n {(chienDich && chienDich.is_active) && (ts_form_register_result_id > 0) && !isAttendance && \r\n (!chienDich.noti_description_html || chienDich.noti_description_html == '

') && (\r\n\r\n
\r\n \r\n

\r\n Quý Phụ huynh đã đăng ký thành công. Hệ thống đã gửi email tới hòm thư Quý Phụ huynh đăng ký.\r\n

\r\n

\r\n Phòng tuyển sinh sẽ liên hệ lại với phụ huynh trong thời gian sớm nhất.\r\n

\r\n
\r\n )}\r\n {(chienDich && chienDich.is_active) && (ts_form_register_result_id > 0) && !isAttendance && \r\n (chienDich.noti_description_html && chienDich.noti_description_html != '

') && (\r\n\r\n
\r\n \r\n

\r\n

\r\n

\r\n
\r\n )}\r\n
\r\n\r\n\r\n {(chienDich && chienDich.is_active) && ts_form_register_result_id == 0 && (\r\n
\r\n {ts_form_items.map((x) => {\r\n const existedData = formData.result.find(y => y.ts_form_item_id == x.id);\r\n var parentId = 0;\r\n if (x.ts_form_editor_id == 2006) {\r\n const khoiData = formData.result.find(y => y.ts_form_editor_id == 2005);\r\n if (khoiData && khoiData.value != null && khoiData.value != \"\") {\r\n parentId = parseInt(khoiData.value);\r\n }\r\n }\r\n if (x.ts_form_editor_id == 2005) {\r\n const khoiData = formData.result.find(y => y.ts_form_editor_id == 2004);\r\n if (khoiData && khoiData.value != null && khoiData.value != \"\") {\r\n parentId = parseInt(khoiData.value);\r\n }\r\n }\r\n return (\r\n
\r\n
{x.label}\r\n {x.is_required && *}\r\n
\r\n\r\n {x.ts_form_editor_type_id == appConst.formEditorType.text_box && (\r\n 0 && x.ts_form_editor_id < 2032 && existedData.readOnly == true}\r\n onValueChanged={(e) => {\r\n if (e.event) {\r\n handleValueChanged(x.ts_form_editor_id, x.id, e.value);\r\n trigger(`F_${existedData?.ts_form_item_id}`)\r\n // trigger();\r\n }\r\n }}\r\n />\r\n )}\r\n {x.ts_form_editor_id == 2032 && (\r\n
\r\n

\r\n {mssError}\r\n

\r\n \r\n
\r\n )}\r\n {x.ts_form_editor_type_id == appConst.formEditorType.combobox && (\r\n 0 && x.ts_form_editor_id < 2032 && existedData.readOnly}\r\n parent_id={parentId}\r\n value={existedData?.value}\r\n onValueChanged={(value) => {\r\n handleValueChanged(x.ts_form_editor_id, x.id, value);\r\n trigger(`F_${existedData?.ts_form_item_id}`)\r\n }}\r\n />\r\n )}\r\n {x.ts_form_editor_type_id == appConst.formEditorType.tagbox && (\r\n 0 && x.ts_form_editor_id < 2032 && existedData.readOnly}\r\n value={JSON.parse(existedData?.value ? existedData?.value : \"[]\")}\r\n onValueChanged={(value) => {\r\n handleValueChanged(x.ts_form_editor_id, x.id, JSON.stringify(value));\r\n trigger(`F_${existedData?.ts_form_item_id}`)\r\n }}\r\n />\r\n )}\r\n {x.ts_form_editor_type_id == appConst.formEditorType.label && (\r\n {x.name}\r\n )}\r\n {existedData?.value && existedData?.value != 'Invalid date' && x.ts_form_editor_type_id == appConst.formEditorType.date_box && (\r\n 0 && x.ts_form_editor_id < 2032 && existedData?.value}\r\n value={existedData?.value ? moment(existedData?.value, 'DD/MM/YYYY') : \"\"}\r\n onValueChanged={(e) => {\r\n if (e.event) {\r\n const date = moment(e.value).format('DD/MM/YYYY');\r\n console.log(date);\r\n handleValueChanged(x.ts_form_editor_id, x.id, date != \"Invalid date\" ? date : undefined);\r\n trigger(`F_${existedData?.ts_form_item_id}`)\r\n }\r\n }}\r\n />\r\n )}\r\n {(!existedData?.value || existedData?.value == 'Invalid date') && x.ts_form_editor_type_id == appConst.formEditorType.date_box && (\r\n 0 && x.ts_form_editor_id < 2032 && existedData?.value}\r\n value={existedData?.value ? moment(existedData?.value, 'DD/MM/YYYY') : \"\"}\r\n onValueChanged={(e) => {\r\n if (e.event) {\r\n const date = moment(e.value).format('DD/MM/YYYY');\r\n handleValueChanged(x.ts_form_editor_id, x.id, date);\r\n trigger(`F_${existedData?.ts_form_item_id}`)\r\n }\r\n }}\r\n />\r\n )}\r\n {/*
{x.help_text}
*/}\r\n \r\n {errors[`F_${existedData?.ts_form_item_id}`] && (\r\n \r\n )}\r\n
\r\n );\r\n })}\r\n {chienDich && chienDich.bottom_description_html &&\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n \r\n {/* */}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FormRegisterPage;\r\n","import React, { lazy, Suspense } from 'react';\r\nexport const Loadable = (importFunc, { fallback = null } = { fallback: null }) => {\r\n const LazyComponent = lazy(importFunc);\r\n \r\n return props => (\r\n \r\n \r\n \r\n );\r\n };\r\n ","import React from 'react'\r\n\r\nexport const LoaderPage = () => {\r\n return (\r\n <>\r\n
\r\n {/* \"loader\" */}\r\n {/* */}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport const LoaderApp = () => {\r\n return (\r\n <>\r\n
\r\n \"loader\"\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default LoaderPage","import clsx from \"clsx\";\r\nimport { Tooltip } from 'devextreme-react/tooltip';\r\nimport React, { useState } from 'react';\r\nimport { Loader } from 'semantic-ui-react';\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { useCommonContext } from '../../contexts/common';\r\nimport './button.css';\r\nimport styles from \"./button.module.css\";\r\nconst PrimaryButton = ({ disabled, onClick, text, isLoading, icon, tooltipText, id }) => {\r\n const { translate } = useCommonContext();\r\n const [isShowTooltip, setisShowTooltip] = useState(false);\r\n const btnId = id ? id : uuidv4();\r\n\r\n return (\r\n <>\r\n {\r\n if (!disabled) onClick();\r\n }}\r\n className={clsx(styles.btn,\r\n styles.btn_primary,\r\n disabled ? styles.btn_disabled : \"\",\r\n icon ? styles.hasIcon : \"\"\r\n )}\r\n onMouseOver={() => { if (tooltipText) setisShowTooltip(true) }}\r\n onMouseOut={() => { if (tooltipText) setisShowTooltip(false) }}\r\n\r\n >\r\n {icon && }\r\n {translate(text)}\r\n {isLoading && }\r\n \r\n\r\n \r\n
{tooltipText}
\r\n \r\n\r\n \r\n\r\n );\r\n}\r\nconst DefaultButton = ({ disabled, onClick, text, isLoading, icon, id, tooltipText }) => {\r\n const { translate } = useCommonContext();\r\n const [isShowTooltip, setisShowTooltip] = useState(false);\r\n const btnId = id ? id : uuidv4();\r\n return (\r\n <>\r\n {\r\n if (!disabled) onClick();\r\n }}\r\n className={clsx(styles.btn, disabled ? styles.btn_disabled : \"\",\r\n icon ? styles.hasIcon : \"\")}\r\n onMouseOver={(e) => {\r\n if (tooltipText) setisShowTooltip(true)\r\n }}\r\n onMouseOut={() => { if (tooltipText) setisShowTooltip(false) }}\r\n\r\n >\r\n {icon && }\r\n {translate(text)}\r\n {isLoading && }\r\n \r\n \r\n
{tooltipText}
\r\n \r\n \r\n );\r\n}\r\nconst DangerButton = ({ disabled, onClick, text, isLoading, icon, id, tooltipText }) => {\r\n const { translate } = useCommonContext();\r\n const [isShowTooltip, setisShowTooltip] = useState(false);\r\n const btnId = id ? id : uuidv4();\r\n\r\n return (\r\n <>\r\n {\r\n if (!disabled) onClick();\r\n }}\r\n className={clsx(styles.btn, styles.btn_danger, disabled ? styles.btn_disabled : \"\",\r\n icon ? styles.hasIcon : \"\")}\r\n onMouseOver={(e) => {\r\n if (tooltipText) setisShowTooltip(true)\r\n }}\r\n onMouseOut={() => { if (tooltipText) setisShowTooltip(false) }}\r\n\r\n >\r\n {icon && }\r\n {translate(text)}\r\n {isLoading && }\r\n \r\n \r\n
{tooltipText}
\r\n \r\n \r\n\r\n );\r\n}\r\nconst InfoButton = ({ disabled, onClick, text, isLoading, icon, id, tooltipText }) => {\r\n const { translate } = useCommonContext();\r\n const [isShowTooltip, setisShowTooltip] = useState(false);\r\n const btnId = id ? id : uuidv4();\r\n\r\n return (\r\n <>\r\n {\r\n if (!disabled) onClick();\r\n }}\r\n className={clsx(styles.btn, styles.btn_info, disabled ? styles.btn_disabled : \"\",\r\n icon ? styles.hasIcon : \"\"\r\n )}\r\n onMouseOver={(e) => {\r\n if (tooltipText) setisShowTooltip(true)\r\n }}\r\n onMouseOut={() => { if (tooltipText) setisShowTooltip(false) }}\r\n\r\n >\r\n {icon && }\r\n {translate(text)}\r\n {isLoading && }\r\n \r\n \r\n
{tooltipText}
\r\n \r\n \r\n\r\n );\r\n}\r\n\r\nconst LinkButton = ({ disabled, onClick, text, isLoading, icon, id, tooltipText }) => {\r\n const { translate } = useCommonContext();\r\n const [isShowTooltip, setisShowTooltip] = useState(false);\r\n const btnId = id ? id : uuidv4();\r\n\r\n return (\r\n <>\r\n {\r\n if (!disabled) onClick();\r\n }}\r\n className={clsx(styles.btn_none, styles.btn_link, disabled ? styles.btn_disabled : \"\")}\r\n onMouseOver={(e) => {\r\n if (tooltipText) setisShowTooltip(true)\r\n }}\r\n onMouseOut={() => { if (tooltipText) setisShowTooltip(false) }}\r\n\r\n >\r\n {icon && }\r\n {translate(text)}\r\n {isLoading && }\r\n \r\n \r\n
{tooltipText}
\r\n \r\n \r\n\r\n );\r\n}\r\nexport { DangerButton, DefaultButton, InfoButton, LinkButton, PrimaryButton };\r\n","import notify from 'devextreme/ui/notify';\r\nexport const showNotify = ({\r\n text,\r\n type = \"info\" | \"warning\" | \"success\" | \"error\" | \"default\",\r\n time = 3000\r\n}) => {\r\n notify(text, type, time);\r\n}","import { apiHelper } from './api_helper';\r\n\r\nexport const TRUONG_API_ENDPOIT = 'truong';\r\nexport const truongApi = {\r\n SelectAll: () => apiHelper.get('truong'),\r\n SelectAllByCoSo: (dm_coso_id) => apiHelper.get(`truong/coso/${dm_coso_id}`),\r\n SelectTruongKhoiHe: () => apiHelper.get('truong/khoi/he'),\r\n select_by_id: (id) => apiHelper.get(`${TRUONG_API_ENDPOIT}/${id}`),\r\n insert: (data) => apiHelper.post(TRUONG_API_ENDPOIT, data),\r\n update: (data) => apiHelper.put(TRUONG_API_ENDPOIT, data),\r\n remove: (id) => apiHelper.delete(`${TRUONG_API_ENDPOIT}/${id}`),\r\n selectKhoiByTruong: (dm_truong_id) => apiHelper.get(`truong/${dm_truong_id}/khoi`),\r\n update_khoi_by_truong_id: (data) => apiHelper.post(`truong/update/khoi`, data),\r\n delete_khoi_by_truong_id: (data) => apiHelper.post(`truong/delete/khoi`, data),\r\n}\r\n","import { apiHelper } from './api_helper';\r\n\r\nexport const CHIEN_DICH_API_END_POINT = \"chien-dich\";\r\nexport const chienDichApi = {\r\n SelectAll: () => apiHelper.get(`${CHIEN_DICH_API_END_POINT}`),\r\n SelectByCoSo: (dm_coso_id) => apiHelper.get(`co-so/${dm_coso_id}/chien-dich`),\r\n Select: (nam_hoc) => apiHelper.get(`${CHIEN_DICH_API_END_POINT}`),\r\n Detail: (id) => apiHelper.get(`${CHIEN_DICH_API_END_POINT}/${id}`),\r\n Insert: (data) => apiHelper.post(`${CHIEN_DICH_API_END_POINT}`, data),\r\n Update: (data) => apiHelper.put(`${CHIEN_DICH_API_END_POINT}`, data),\r\n Delete: (id) => apiHelper.delete(`${CHIEN_DICH_API_END_POINT}/${id}`),\r\n Lock: (id) => apiHelper.put(`${CHIEN_DICH_API_END_POINT}/lock/${id}`),\r\n UnLock: (id) => apiHelper.put(`${CHIEN_DICH_API_END_POINT}/unlock/${id}`),\r\n SelectTruongByChienDich: (dm_chiendich_id) => apiHelper.get(`chien-dich/${dm_chiendich_id}/truong`),\r\n}","import { apiHelper } from \"./api_helper\";\r\n\r\nexport const uploadApi = {\r\n UploadImg: (data) => apiHelper.post(\"upload/image\", data),\r\n ReadUploadedExcelFile: (data) => apiHelper.post('read/excel', data)\r\n}","import appInfo from '../app-info';\r\nimport { apiHelper, call_post_api } from './api_helper';\r\nexport async function dm_khoi_select_by_truong(id) {\r\n return call_post_api(appInfo.api_url + '/khoi/select_by_truong_id', id);\r\n};\r\nexport async function select_by_truong(id) {\r\n return call_post_api(appInfo.api_url + '/khoi/select_by_truong_id', id);\r\n};\r\nexport async function select_all() {\r\n return call_post_api(appInfo.api_url + '/khoi/select_all');\r\n};\r\nexport async function select_by_id(id) {\r\n return call_post_api(appInfo.api_url + '/khoi/select_by_id', id);\r\n};\r\nexport async function insert(data) {\r\n return call_post_api(appInfo.api_url + '/khoi/insert', data);\r\n}\r\n\r\nexport async function update(data) {\r\n return call_post_api(appInfo.api_url + '/khoi/update', data);\r\n}\r\n\r\nexport async function remove(id) {\r\n return call_post_api(appInfo.api_url + '/khoi/delete', id);\r\n}\r\n\r\nexport const delete_he_by_khoi_id = async (data) => {\r\n return call_post_api(appInfo.api_url + '/khoi/delete_he_by_khoi_id', data);\r\n};\r\n\r\nexport const update_he_by_khoi_id = async (data) => {\r\n return call_post_api(appInfo.api_url + '/khoi/update_he_by_khoi_id', data);\r\n};\r\n\r\nexport async function select_all_truong_khoi_he() {\r\n return call_post_api(appInfo.api_url + '/khoi/select_all_truong_khoi_he');\r\n};\r\n\r\nexport async function select_all_truong_khoi_he_by_loaigiayto(id) {\r\n return call_post_api(appInfo.api_url + '/khoi/select_all_truong_khoi_he_by_loaigiayto', id);\r\n};\r\nexport const KHOI_API_ENDPOINT = \"khoi\";\r\nexport const khoiApi = {\r\n SelectAll: () => apiHelper.get(KHOI_API_ENDPOINT),\r\n SelectByTruong: (dm_truong_id) => apiHelper.get(`truong/${dm_truong_id}/khoi`),\r\n Insert: (data) => apiHelper.post(KHOI_API_ENDPOINT, data),\r\n Update: (data) => apiHelper.put(KHOI_API_ENDPOINT, data),\r\n Delete: (id) => apiHelper.delete(`${KHOI_API_ENDPOINT}/${id}`),\r\n Detail: (id) => apiHelper.get(`${KHOI_API_ENDPOINT}/${id}`),\r\n}","import appInfo from \"../app-info\";\r\nimport { apiHelper, call_post_api } from \"./api_helper\";\r\n\r\nexport const HE_API_ENDPOIT = 'he';\r\nexport const heApi = {\r\n SelectAll: () => apiHelper.get(HE_API_ENDPOIT),\r\n SelectByTruong: (dm_truong_id) => apiHelper.get(`truong/${dm_truong_id}/he`),\r\n SelectByKhoi: (dm_khoi_id) => apiHelper.get(`khoi/${dm_khoi_id}/he`),\r\n Insert: (data) => apiHelper.post(HE_API_ENDPOIT, data),\r\n Update: (data) => apiHelper.put(HE_API_ENDPOIT, data),\r\n Delete: (id) => apiHelper.delete(`${HE_API_ENDPOIT}/${id}`),\r\n Detail: (id) => apiHelper.get(`${HE_API_ENDPOIT}/${id}`),\r\n}","import appInfo from \"../app-info\";\r\nimport { apiHelper, call_post_api } from \"./api_helper\";\r\n\r\nexport const FORMITEM_API_ENDPOINT = \"form-item\";\r\n\r\n\r\nexport const formItemApi = {\r\n Select: (ts_form_id) => apiHelper.getWithoutCheckToken(`${FORMITEM_API_ENDPOINT}/${ts_form_id}`),\r\n Insert: (data) => apiHelper.post(`${FORMITEM_API_ENDPOINT}`, data),\r\n Inserts: (data) => apiHelper.post(`${FORMITEM_API_ENDPOINT}/inserts`, data),\r\n Update: (data) => apiHelper.put(`${FORMITEM_API_ENDPOINT}`, data),\r\n Delete: (id) => apiHelper.delete(`${FORMITEM_API_ENDPOINT}/${id}`),\r\n UpdateMultiple: (data) => apiHelper.put(`${FORMITEM_API_ENDPOINT}/update-multiple`, data),\r\n}","import { apiHelper } from \"./api_helper\";\r\n\r\nexport const FORM_API_ENDPOINT = \"form\";\r\n\r\n\r\nexport const formApi = {\r\n SelectAll: () => apiHelper.get(`${FORM_API_ENDPOINT}`),\r\n SelectByCoSo: (dm_coso_id, nam_hoc) => apiHelper.get(`${FORM_API_ENDPOINT}/coso/${dm_coso_id}/${nam_hoc}`),\r\n Detail: (id) => apiHelper.getWithoutCheckToken(`${FORM_API_ENDPOINT}/${id}`),\r\n Insert: (data) => apiHelper.post(`${FORM_API_ENDPOINT}`, data),\r\n Update: (data) => apiHelper.put(`${FORM_API_ENDPOINT}`, data),\r\n Delete: (id) => apiHelper.delete(`${FORM_API_ENDPOINT}/${id}`),\r\n Lock: (id) => apiHelper.put(`${FORM_API_ENDPOINT}/lock/${id}`),\r\n UnLock: (id) => apiHelper.put(`${FORM_API_ENDPOINT}/unlock/${id}`),\r\n}","import { actionNameCreator } from \"../state-helpers/actionTypeNameCreator\";\r\n\r\nconst iniState = {\r\n isLoading: false,\r\n user: undefined\r\n}\r\nexport const authActionTypes = {\r\n LOGIN: actionNameCreator.AUTH(\"LOGIN\"),\r\n GET_INFO: actionNameCreator.AUTH(\"GET_INFO\"),\r\n LOGOUT: actionNameCreator.AUTH(\"LOGOUT\"),\r\n}\r\nexport const authReducer = (state = iniState, action) => {\r\n\r\n switch (action.type) {\r\n case authActionTypes.LOGIN.START:\r\n return {\r\n ...state,\r\n isLoading: true,\r\n user: undefined\r\n }\r\n case authActionTypes.LOGIN.SUCCESS:\r\n authLocalStorageHeper.add(\r\n action.payload.token.access_token,\r\n action.payload.token.refresh_token\r\n );\r\n console.log({\r\n reducer: {\r\n ...state,\r\n isLoading: false,\r\n user: action.payload.user_info\r\n }\r\n });\r\n return {\r\n ...state,\r\n isLoading: false,\r\n user: action.payload.user_info\r\n }\r\n case authActionTypes.LOGIN.ERROR:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n user: undefined\r\n }\r\n case authActionTypes.GET_INFO.START:\r\n return {\r\n ...state,\r\n isLoading: true,\r\n user: undefined\r\n }\r\n\r\n case authActionTypes.GET_INFO.SUCCESS:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n user: action.payload\r\n }\r\n case authActionTypes.GET_INFO.ERROR:\r\n return {\r\n ...state,\r\n isLoading: false,\r\n user: { id: 0 }\r\n }\r\n case authActionTypes.LOGOUT.START:\r\n authLocalStorageHeper.clear();\r\n return {\r\n ...state,\r\n isLoading: false,\r\n user: { id: 0 }\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\nexport const authLocalStorageHeper = {\r\n add: (access_token, refresh_token) => {\r\n localStorage.access_token = access_token;\r\n localStorage.refresh_token = refresh_token;\r\n },\r\n clear: () => {\r\n localStorage.removeItem(\"access_token\");\r\n localStorage.removeItem(\"refresh_token\");\r\n }\r\n}","import { pageBaseStatus } from \"../pageBaseStatus\";\r\nimport { actionNameCreator } from \"../state-helpers/actionTypeNameCreator\";\r\nexport const iniState = {\r\n status: pageBaseStatus.is_not_initial,\r\n dm_cosos: [],\r\n dm_coso_id: localStorage.getItem(\"header_dm_coso_id\") ? parseInt(localStorage.getItem(\"header_dm_coso_id\")) : 0\r\n}\r\nexport const coSoActionTypes = {\r\n LOAD: actionNameCreator.COSO(\"LOAD\"),\r\n CHANGE_SELECTED_ID: \"COSO_CHANGE_SELECTED_ID\",\r\n}\r\nexport const coSoReducer = (state = iniState, action) => {\r\n switch (action.type) {\r\n case coSoActionTypes.LOAD.START:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_loading,\r\n dm_cosos: []\r\n }\r\n case coSoActionTypes.LOAD.SUCCESS:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n dm_cosos: action.payload\r\n }\r\n case coSoActionTypes.LOAD.ERROR:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n dm_cosos: []\r\n }\r\n case coSoActionTypes.CHANGE_SELECTED_ID:\r\n // console.log(action.payload);\r\n localStorage.setItem(\"header_dm_coso_id\", action.payload)\r\n return {\r\n ...state,\r\n dm_coso_id: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { pageBaseStatus } from \"../pageBaseStatus\";\r\nimport { actionNameCreator } from \"../state-helpers/actionTypeNameCreator\";\r\nexport const iniState = {\r\n status: pageBaseStatus.is_not_initial,\r\n nam_hocs: [],\r\n nam_hoc: localStorage.getItem(\"header_namhoc\") ? localStorage.getItem(\"header_namhoc\") : \"\"\r\n}\r\nexport const namHocActionTypes = {\r\n LOAD: actionNameCreator.NAMHOC(\"LOAD\"),\r\n CHANGE_SELECTED_ID: \"NAM_HOC_CHANGE_SELECTED_ID\",\r\n}\r\nexport const namHocReducer = (state = iniState, action) => {\r\n switch (action.type) {\r\n case namHocActionTypes.LOAD.START:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_loading,\r\n nam_hocs: []\r\n }\r\n case namHocActionTypes.LOAD.SUCCESS:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n nam_hocs: action.payload\r\n }\r\n case namHocActionTypes.LOAD.ERROR:\r\n return {\r\n ...state,\r\n status: pageBaseStatus.is_completed,\r\n nam_hocs: []\r\n }\r\n case namHocActionTypes.CHANGE_SELECTED_ID:\r\n // console.log(action.payload);\r\n localStorage.setItem(\"header_namhoc\", action.payload)\r\n return {\r\n ...state,\r\n nam_hoc: action.payload\r\n };\r\n default:\r\n return state;\r\n }\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport SelectBox from 'devextreme-react/select-box';\r\nimport { formEditorApi } from '../../../api/formEditorApi';\r\nconst FormCobobox = ({ value, dm_coso_id, ts_form_editor_id, parent_id, onValueChanged, disabled }) => {\r\n const [dataSource, setDataSource] = useState([]);\r\n useEffect(() => {\r\n handleReload();\r\n }, [parent_id]);\r\n const handleReload = async () => {\r\n const res = await formEditorApi.SelectDataSource(ts_form_editor_id, dm_coso_id, parent_id);\r\n if (res.is_success) {\r\n setDataSource(res.data);\r\n var vl = res.data.find(x => x.text == value);\r\n if(vl!=undefined && vl!= \"\"){\r\n value = vl.id;\r\n onValueChanged(value);\r\n }\r\n }\r\n };\r\n return (\r\n {\r\n if (e.event && onValueChanged) {\r\n onValueChanged(e.value);\r\n }\r\n }}\r\n // ref={cmb}\r\n // onValueChanged={(e) => {\r\n // onValueChanged(e.value);\r\n // }}\r\n />\r\n );\r\n};\r\n\r\nexport default FormCobobox;\r\n","import React, { useState } from 'react';\r\nimport { uploadApi } from '../../api/uploadApi';\r\nimport { DefaultButton } from '../editor/button';\r\nimport './Upload.css';\r\nexport default ({ onSuccess, onError }) => {\r\n const [file, set_file] = useState();\r\n const [file_name, set_file_name] = useState();\r\n const [is_loading, set_is_loading] = useState(false);\r\n const save_file = (e) => {\r\n set_file(e.target.files[0]);\r\n set_file_name(e.target.files[0].name);\r\n };\r\n const upload_file = async (e) => {\r\n set_is_loading(true);\r\n const form_data = new FormData();\r\n form_data.append('form_file', file);\r\n form_data.append('file_name', file_name);\r\n const res = await uploadApi.UploadImg(form_data);\r\n set_is_loading(false);\r\n if (res.is_success) {\r\n onSuccess(res.data.url);\r\n } else {\r\n onError(res.message);\r\n }\r\n };\r\n return (\r\n \r\n \r\n {file_name && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport UploadImgButton from '../../../components/file-upload/UploadImg';\r\nimport { useCommonContext } from '../../../contexts/common';\r\nimport styles from './FormCoverImgEditor.module.css';\r\nconst FormCoverImgEditor = ({ src, onUploaded, isReadonly }) => {\r\n\r\n const { translate } = useCommonContext();\r\n\r\n return (\r\n \r\n
\r\n {src && src != '' && (\r\n <>\r\n \r\n

\r\n {!isReadonly &&\r\n {\r\n onUploaded('');\r\n }}\r\n >\r\n {translate('Xóa ảnh cover này')}\r\n \r\n }\r\n

\r\n \r\n )}\r\n {(!src || src == '') && (\r\n
\r\n {!isReadonly &&\r\n {\r\n // console.log(value)\r\n onUploaded(value);\r\n }}\r\n />\r\n }\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n};\r\nexport default FormCoverImgEditor;\r\n","export default {\r\n title: 'Quản lý tuyển sinh',\r\n api_url: process.env.REACT_APP_API_BASE_URL,\r\n home_url: process.env.REACT_APP_PORTAL_URL,\r\n sub_system_id: 1\r\n};\r\n","import LoadPanel from 'devextreme-react/load-panel';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useLocation } from 'react-router-dom';\r\nimport { Button } from 'semantic-ui-react';\r\nimport { formRegisterApi } from '../../api/formRegisterApi';\r\nimport appInfo from '../../app-info';\r\nimport { useScreenSizeClass } from '../../utils/media-query';\r\nimport FormRegisterPage from '../form-register/FormRegisterPage';\r\nimport styles from \"./FormAttendancePage.module.css\";\r\nconst FormAttendancePage = () => {\r\n const screenSizeClass = useScreenSizeClass();\r\n const location = useLocation();\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSuccess, setIsSuccess] = useState(false);\r\n\r\n const params = location.pathname.replace('/form-register/', '').split('/');\r\n const dm_chiendich_id = params.length > 0 ? parseInt(params[0]) : 0;\r\n const ts_form_id = params.length > 1 ? parseInt(params[1]) : 0;\r\n\r\n useEffect(() => {\r\n const cachedData = localStorage.getItem(`${dm_chiendich_id}-${ts_form_id}`);\r\n if (cachedData) {\r\n const ts_form_register_result_id = parseInt(cachedData);\r\n if (ts_form_register_result_id > 0) {\r\n handeleAttendance({ ts_form_register_result_id })\r\n }\r\n } else {\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }, [dm_chiendich_id, ts_form_id]);\r\n\r\n const handeleAttendance = async ({ ts_form_register_result_id }) => {\r\n const res = await formRegisterApi.Attendance({\r\n id: ts_form_register_result_id,\r\n is_attendanced: true\r\n });\r\n if (res.is_success) {\r\n setIsSuccess(true);\r\n setIsLoading(false);\r\n } else {\r\n setIsSuccess(false);\r\n setIsLoading(false);\r\n }\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n\r\n {isLoading && }\r\n {!isLoading && <>\r\n {isSuccess && }\r\n {!isSuccess && }\r\n }\r\n\r\n
\r\n
\r\n
\r\n\r\n );\r\n};\r\nexport const AttendanceSuccess = () => {\r\n return (\r\n <>\r\n
\r\n \r\n {/*

\r\n Brighton College VietNam\r\n

*/}\r\n\r\n \r\n
\r\n

\r\n Quý Phụ huynh đã đăng ký thành công. Hệ thống đã gửi email tới hòm thư Quý Phụ huynh đăng ký.\r\n

\r\n

\r\n Phòng tuyển sinh sẽ liên hệ lại với phụ huynh trong thời gian sớm nhất.\r\n

\r\n
\r\n
\r\n \r\n );\r\n}\r\nexport default FormAttendancePage;","import { apiHelper } from \"./api_helper\";\r\n\r\nexport const PHU_HUYNH_API_END_POINT = \"phu-huynh\";\r\nexport const PHU_HUYNH_UPATE_STATS_API_END_POINT = \"phu-huynh/status\";\r\n\r\nexport const phuHuynhApi = {\r\n SelectAll: (dm_coso_id, ts_phuhuynh_adm_status_id, dm_chiendich_id) =>\r\n apiHelper.get(`phu-huynh/coso/${dm_coso_id}/status/${ts_phuhuynh_adm_status_id ?? 0}/chiendich/${dm_chiendich_id ?? 0}`),\r\n SelectFamily: (id) => apiHelper.get(`phu-huynh/${id}/family`),\r\n SelectLichSuDangKy: (id) => apiHelper.get(`phu-huynh/${id}/lich-su-dang-ky`),\r\n SelectStatusSummary: () => apiHelper.get('phu-huynh/status-summary'),\r\n SelectStatus: () => apiHelper.get('phu-huynh/status'),\r\n UpdateStatus: (data) => apiHelper.put('phu-huynh/status', data),\r\n UpdateTuVanVien: (data) => apiHelper.put('phu-huynh/tu-van-vien', data),\r\n Detail: (id) => apiHelper.get(`phu-huynh/${id}`),\r\n ValidateImport: (data) => apiHelper.put('phu-huynh/validate-import', data),\r\n Import: (data) => apiHelper.put('phu-huynh/import', data),\r\n UpdateInfo: (data) => apiHelper.put('phu-huynh', data),\r\n Insert: (data) => apiHelper.post('phu-huynh', data),\r\n Delete: (id) => apiHelper.delete(`${PHU_HUYNH_API_END_POINT}/${id}`),\r\n SelectByHocSinhQuanHeGiaDinh: (ts_hocsinh_id, ts_quanhegiadinh_id) =>\r\n apiHelper.get(`phu-huynh/hocsinh/${ts_hocsinh_id}/quanhegiadinh/${ts_quanhegiadinh_id}`),\r\n}","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"button_btn__3bSm_\",\"hasIcon\":\"button_hasIcon__3tX50\",\"btn_disabled\":\"button_btn_disabled__3sIR3\",\"icon\":\"button_icon__2evwF\",\"btn_primary\":\"button_btn_primary__2-36u\",\"btn_success\":\"button_btn_success__3VMbb\",\"btn_danger\":\"button_btn_danger__3tfbY\",\"btn_info\":\"button_btn_info__rNIu1\",\"btn_none\":\"button_btn_none__vsGW3\",\"btn_link\":\"button_btn_link__cmsXA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form_container\":\"FormRegisterPage_form_container__3WVDJ\",\"form\":\"FormRegisterPage_form__38yGl\",\"cover_img_container\":\"FormRegisterPage_cover_img_container__9lv2g\",\"cover_img_title\":\"FormRegisterPage_cover_img_title__2WngW\",\"form_area\":\"FormRegisterPage_form_area__2Jbck\",\"caption\":\"FormRegisterPage_caption__uF4TG\",\"form_group\":\"FormRegisterPage_form_group__2zw9J\",\"form_label\":\"FormRegisterPage_form_label__1i1-8\",\"form_help_text\":\"FormRegisterPage_form_help_text__2Uwhs\",\"form_actions\":\"FormRegisterPage_form_actions__3lwdm\",\"result\":\"FormRegisterPage_result__oFCwS\",\"thank_caption\":\"FormRegisterPage_thank_caption__1RmdW\",\"description\":\"FormRegisterPage_description__2Xstr\",\"top_description\":\"FormRegisterPage_top_description__3kP-H\",\"bottom_description\":\"FormRegisterPage_bottom_description__1Dv3d\",\"btnSubmit\":\"FormRegisterPage_btnSubmit__1yCt4\"};","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import { combineReducers } from \"@reduxjs/toolkit\"\r\nimport { authReducer } from \"./authReducer\"\r\nimport { truongReducer } from \"./truongReducer\"\r\nimport { coSoReducer } from \"./coSoReducer\"\r\nimport { namHocReducer } from \"./namHocReducer\"\r\nexport const reducers = combineReducers({\r\n auth: authReducer,\r\n truong: truongReducer,\r\n coSo: coSoReducer,\r\n namHoc: namHocReducer,\r\n})","import { configureStore } from \"@reduxjs/toolkit\";\r\nimport { reducers } from \"./reducers\";\r\nexport const store = configureStore({\r\n reducer: reducers,\r\n devTools: true,\r\n})","import pMinDelay from 'p-min-delay';\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter as Router, useLocation } from 'react-router-dom';\r\nimport { Loadable } from './components/loadable';\r\nimport { LoaderApp } from './components/loader-page';\r\nimport './index.css';\r\nimport './data-grid.css';\r\nimport FormRegisterPage from './pages/form-register/FormRegisterPage';\r\nimport './polyfills';\r\nimport * as serviceWorker from './serviceWorker';\r\nimport { store } from './state/store';\r\n\r\nimport './dx-styles.scss';\r\nimport './style.css';\r\nimport './themes/generated/theme.additional.css';\r\nimport './themes/generated/theme.base.css';\r\n\r\n\r\nconst pMinDelayTime = 250;\r\nconst AppContent = Loadable(() => pMinDelay(import('./App'), pMinDelayTime), { fallback: });\r\nconst FormAttendancePageContent = Loadable(() => pMinDelay(import('./pages/form-attendance'), pMinDelayTime), { fallback: });\r\n\r\nconst App = () => {\r\n const location = useLocation();\r\n if (location.pathname.includes(\"/form-register/\")) {\r\n if (location.pathname.includes('attendance')) {\r\n return \r\n }\r\n return \r\n } else {\r\n return \r\n }\r\n}\r\n\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}