{"version":3,"sources":["utility/promise_to_observable.js","client.js","graphql/queries/users.js","graphql/queries/departmanents.js","graphql/queries/devices.js","graphql/queries/identify_code.js","graphql/queries/general.js","graphql/queries/period_maintenance.js","graphql/queries/emergency_maintenance.js","graphql/queries/system_logs.js","graphql/queries/statistic_maintain.js","graphql/queries/_indexQueries.js","assets/image/logo.png","assets/image/user.png","assets/image/Loading.gif","assets/image/success.jpg","assets/image/wrong.jpg","assets/image/water.jpg","assets/image/background.jpg","assets/image/image.jpg","assets/image/index.js","assets/image/add.png","store.js","views/pages/general/splash/splash.module.css","utility/validate_checking.js","graphql/mutations/users.js","graphql/mutations/departmanents.js","graphql/mutations/devices.js","graphql/mutations/identify_code.js","graphql/mutations/general.js","graphql/mutations/period_maintenance.js","graphql/mutations/emergency_maintenance.js","language/vn/general/_indexGeneral.js","language/vn/general/alert.js","language/vn/general/docs_explorer.js","language/vn/general/email_setting.js","language/vn/general/system_category.js","language/vn/general/splash.js","language/vn/general/role_setting.js","utility/constants/paGinate.js","utility/constants/_indexConstants.js","utility/constants/cookie.js","polyfill.js","views/pages/general/splash/splash.js","App.js","assets/icons/index.js","index.js","utility/utils.js","views/component/show_confirm_action.js"],"names":["promise","Observable","subscriber","then","res","isError","closed","next","complete","accessToken","DialogUtil","showAlert","indexGeneral","ALERT","ACCESS_EXPIRE","window","location","assign","require","config","authLink","setContext","_","headers","token","Cookies","get","indexConstant","ACCESS_TOKEN","menuAlias","routers","store","getState","urlArr","pathname","split","slice","forEach","element","routerUrl","path","JSON","stringify","authorization","httpLink","createUploadLink","uri","process","console","log","errorLink","onError","graphQLErrors","networkError","operation","forward","err","message","promiseToObservable","RefreshTokens","flatMap","oldHeaders","getContext","CONNECTION_ERROR","client","ApolloClient","cache","InMemoryCache","addTypename","link","concat","from","GET_USER","gql","GET_ACCOUNT","GET_USER_PAGE","EXPORT_USER","GET_USER_TRANSFER","GET_FACTORY","GET_ALL_FACTORY","GET_PROVINCES","GET_DISTRICT","GET_WARD","GET_ALL_SELECT","FIND_FACTORY","GET_All_STATION","GET_DEVICE_ALL","GET_DEVICE_ALL_SHORT","LIST_SUPPLIES","EXPORT_DEVICE","EXPORT_QRCODE","GET_ALL_DEVICE","GET_DEVICE_HISTORY","GET_OPERATING_DIARY","GET_DEVICE_SCHEDULE","STATISTIC_DEVICES","GET_DEVICE_TRANSFER","FIND_DEVICE","STATISTIC_OPERATING_DiARY","OPERATING_DiARY_DEVICE","STATISTIC_TIME_OPERATING_DiARY","STATISTIC_SESSION_TIME","STATISTIC_MONTH_OPERATING_DiARY","STATISTIC_DAY_OPERATING_DiARY","GET_ALL_ASSET","GET_ALL_WORK_LIST","GET_ALL_GROUP_DEVICE_LIST","GET_SETTING_EMAIL","GET_OUTSIDE","GET_MENU","GET_PERMISSIONS","GET_NOTIFICATION","STATISTIC_GENERAL","STATISTIC_WORK","GET_PAGINATE_CYCLE_MAINTAIN","GET_ALL_CYCLE_MAINTAIN","GET_CYCLE_WORK","FIND_WORK","GET_EMERGENCY_WORK","GET_DIARY","GET_STATIC_MAINTAIN","STATIC_MAINTAIN","STATISTIC_SCHEDULER","STATISTIC_DEVICE","queryGetAllPermission","user_id","imgs","Object","LOGO","logo","DEFAULT_MALE_AVATAR","defaultMaleAvatar","LOADING","loading","SUCCESS","success","WRONG","wrong","ADD","WATER","water","BACK_GROUND","backGround","IMAGE_GROUND","imageGround","initialState","sidebarShow","navigation","routerLink","userData","id","prevLink","paramLink","createStore","state","type","rest","module","exports","validateEmail","email","test","length","validatePassWord","password","trim","validateUserName","username","validateImage","image","validatePhone","phone","isInt","value","convertViToEn","str","replace","getIconFileStyle","filename","ext","parts","getExtension","toLowerCase","checkMaxLength","data","max","isEmpty","Array","isArray","filter","item","validateIdentifyCode","code","isDateTime","dateWrapper","Date","isNaN","getDate","LOGIN_MUTATION","UPDATE_USER","CHANGE_PASSWORD","CREATE_USER","DELETE_ACCOUNT","RESET_PASSWORD","REFRESH_TOKENS","LOGOUT_MUTATION","DELETE_USER_TRANSFER","CONFIRM_USER_TRANSFER","ADD_USER_TRANSFER","UPDATE_USER_TRANSFER","SEND_RESET_PASSWORD_EMAIL","RESET_PASSWORD_EMAIL","CHANGE_ACTIVE","WRITE_DIARY","ADD_FACTORY","EDIT_FACTORY","DELETE_FACTORY","ADD_STATION","DELETE_STATION","UPDATE_STATION","ADD_DEVICE","UPDATE_DEVICE","DELETE_DEVICE","ADD_DEVICE_HISTORY","ADD_OPERATING_DIARY","UPDATE_DEVICE_HISTORY","UPDATE_OPERATING_DIARY","DELETE_DEVICE_HISTORY","DELETE_OPERATING_DIARY","GET_LINK_OPERATING_DIARY","ADD_DEVICE_SCHEDULE","UPDATE_DEVICE_SCHEDULE","DELETE_DEVICE_SCHEDULE","ADD_DEVICE_TRANSFER","UPDATE_DEVICE_TRANSFER","DELETE_DEVICE_TRANSFER","CONFIRM_DEVICE_TRANSFER","GET_LINK_HISTORY","ADD_ASSET_CODE","ADD_GROUP_DEVICES_CODE","UPDATE_ASSET","DELETE_ASSET","DELETE_GROUP_DEVICE","UPDATE_GROUP_DEVICES","ADD_WORK_LIST_CODE","DELETE_WORK_LIST","UPDATE_WORK_LIST","EDIT_STORE_EMAIL_SETTING","DELETE_EMAIL_SETTING","RESTORE_EMAIL_SETTING","GET_LINK","STORE_PERMISSIONS","STORE_PERMISSION_REGION","SEND_EMAIL_TEST","REFRESH_PERMISSIONS","READ_NOTIFICATION","GET_LINK_DIARY","DELETE_FILE","GET_LINK_STATIC_SCHEDULER","ADD_CYCLE_MAINTAIN","UPDATE_CYCLE_MAINTAIN","DELETE_CYCLE_MAINTAIN","ADD_CYCLE_WORK","EDIT_CYCLE_WORK","DELETE_CYCLE_WORK","CHANGE_STATUS","ADD_WORK_DETAIl","ACCEPT_WORK","CHANGE_STATUS_CYCLE","GET_LINK_CYCLE_MAINTAIN","GET_LINK_EMERGENCY","GET_LINK_STATIC","GET_LINK_DETAIL","DUPLICATE_CYCLE_MAINTAIN","IMPORT_FILE_MAINTAIN","ADD_EMERGENCY","UPDATE_EMERGENCY","alertLang","docsExplorer","emailSetting","systemCategory","splashLang","roleSetting","freeze","EXITED_USERNAME","EXITED_EMAIL","PASSWORD_ERROR","EMAIL_ERROR","USERNAME_ERROR","FULL_NAME_ERROR","SUCCESS_EMAIL","SUCCESS_EDITED","SUCCESS_RESTORE","SUCCESS_ADDED_DATA","SUCCESS_SAVED","SUCCESS_DELETED_WORK_HISTORY","SUCCESS_DELETED_DEPARTMENT","SUCCESS_DELETED_FAIL","INPUT_INFORMATION_ERROR","TYPE_IMAGE_ERROR","CONTINUE","CONTINUE_LOGOUT","NO_PERMISSION_VIEW_PAGE","YES","NO","NO_RESULTS","NO_DATA","ERROR_LOGIN","LOCK_ACCOUNT","FILE_STORAGE","SENDER","FROM_DATE","TO_DATE","SENT_DATE","PERIOD_OF_TIME","READ_DOCUMENT","DOWNLOAD_DOCUMENT","ASK_DOWNLOAD","ASK_DOWNLOAD_QRCODE","NO_DATA_TO_EXPORT","NO_FILE","EMAIL_SETTING","GENERAL_SETTING","FROM_EMAIL","FROM_NAME","PORT","HOST","SMTP_AUTHENTICATION","PASSWORD","SAVE","PROXY","TLS","SECURITY_NONE","SECURITY","SERVER_EMAIL","CUSTOM","SMTP","SERVICE","GMAIL","ZOHO","EXIT","INPUT_ERROR","NUMBER_ITEMS","SEND_TO","MAILCC","TITLE_EMAIL","CONTENT","NO_EMAIL","NO_EMAIL_OR_ERROR","VALIDATE_EMAIL_FAIL","SENDFROM_ERROR","EMPTY_ERROR","SYSTEM_NAME","TITLE","LOGIN","HUMAN_RESOURCE","HUMAN_RESOURCE_INTRO","PROPERTY_MAINTENANCE","PROPERTY_MAINTENANCE_INTRO","ELECTRIC_OFFICE","ELECTRIC_OFFICE_INTRO","BUSINESS_ADMINISTRATION","BUSINESS_ADMINISTRATION_INTRO","CLIENT","CLIENT_INTRO","ACCOUNTANT","ACCOUNTANT_INTRO","SYSTEM","USER_INFORMATION","ACCOUNT","HOME_PAGE","ABOUT_US","LOG_OUT","COMPANY","COMAPNT_EN","STT","PAGE_NAME","PAGE_FUNCTION","SEARCH_PLACEHOLDER","SAVE_SETTING","RESTORE_SETTING","EDIT","DELETE","DOWNLOAD","UPLOAD","EXPORT","READ","RESTORE","CHECK_ALL","PAGE_CONSTANT","cookie","USER_DATA","REFRESH_TOKEN","ROUTER","NAVIGATION","USERNAME","CustomEvent","event","params","bubbles","cancelable","detail","undefined","evt","document","createEvent","initCustomEvent","prototype","Event","Element","matches","msMatchesSelector","webkitMatchesSelector","closest","s","el","this","call","parentElement","parentNode","nodeType","Splash","className","styles","backgroundScreen","md","box","bounce","src","TheLayout","React","lazy","Login","ForgotPassword","Error","App","dispatch","useDispatch","useState","isLoading","setLoading","isAuthorizated","setAuthorization","pathLogin","setPathLogin","pathForgot","setPathForgot","pathLayout","setPathLayout","useSelector","useEffect","function","to","GetUser","a","dataError","SeverError","getOutSide","isOutSide","search","dataUser","GetMenu","isMenu","ApolloProvider","Suspense","fallback","name","render","exact","icons","cilChartLine","cilCopy","cilArrowThickFromRight","cilLan","cilAlignCenter","cilSearch","cibCircle","cibHighly","cilZoomIn","cilPlus","cilAlignLeft","cilAlignRight","cilApplicationsSettings","cilArrowRight","cilArrowTop","cilAsterisk","cilAlbum","cilBan","cilBasket","cilBell","cilBold","cilBookmark","cilCalculator","cilCalendar","cilCloudDownload","cilChartPie","cilCheck","cilChevronBottom","cilChevronLeft","cilChevronRight","cilChevronTop","cilCircle","cilCheckCircle","cilCode","cilCommentSquare","cilCreditCard","cilCursor","cilCursorMove","cilDrop","cilDollar","cilEyedropper","cilEnvelopeClosed","cilEnvelopeLetter","cilEnvelopeOpen","cilEuro","cilGlobeAlt","cilGrid","cilFile","cilFullscreen","cilFullscreenExit","cilGraph","cilHome","cilInbox","cilIndentDecrease","cilIndentIncrease","cilInputPower","cilItalic","cilJustifyCenter","cilJustifyLeft","cilLaptop","cilLayers","cilLightbulb","cilList","cilListNumbered","cilListRich","cilLocationPin","cilLockLocked","cilMagnifyingGlass","cilMap","cilMoon","cilNotes","cilOptions","cilPaperclip","cilPaperPlane","cilPencil","cilPeople","cilPhone","cilPrint","cilPuzzle","cilSave","cilScrubber","cilSettings","cilShare","cilShareAll","cilShareBoxed","cilShieldAlt","cilSpeech","cilSpeedometer","cilSpreadsheet","cilStar","cilSun","cilTags","cilTask","cilTrash","cilUnderline","cilUser","cilUserFemale","cilUserFollow","cilUserUnfollow","cilX","cilXCircle","cilWarning","cilCamera","cibMinutemailer","cilInfo","cilCloudUpload","cifUs","cifBr","cifIn","cifFr","cifEs","cifPl","cibSkype","cibFacebook","cibTwitter","cibLinkedin","cibFlickr","cibTumblr","cibXing","cibGithub","cibStackoverflow","cibYoutube","cibDribbble","cibInstagram","cibPinterest","cibVk","cibYahoo","cibBehance","cibReddit","cibVimeo","cibCcMastercard","cibCcVisa","cibStripe","cibPaypal","cibGooglePay","cibCcAmex","cilQrCode","cilAlarm","cibXcode","cilElevator","cilSync","debug","warn","error","info","ReactDOM","getElementById","mutate","mutation","variables","refreshToken","CryptoJS","AES","decrypt","toString","enc","Utf8","tokenData","set","refreshTokens","tokens","encrypt","catch","remove","GetPermission","permission","query","fetchPolicy","getPermissions","permissions","getUser","user","fullName","fullname","userName","phoneNumber","address","birthDay","avatar","emails","factoryId","role","gender","dataMenu","getMenu","inSidebar","items","dataOutSide","outSidebar","push","prefix","chilItem","itemChild","isOnSidebar","_tag","title","_children","icon","map","component","clearObj","o","k","e","keys","showQuestions","secondAction","thirdAction","titleOne","titleTwo","confirmAlert","closeOnClickOutside","customUI","onClose","style","minWidth","display","width","innerWidth","backgroundColor","flexDirection","alignItems","justifyContent","color","onClick","action","check","height","padding","borderColor","showOptions","labels","label"],"mappings":"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AC,uBACAC,uBACAC,mBACAC,eACAC,sBACAC,oBACAC,eACAC,eACAC,kBACAC,aACAC,qBACAC,iBACAC,oBACAC,mBACAC,wBACAC,YACAC,aACAC,cACAC,gBACAC,kBACAC,mBACAC,eACAC,eACAC,cACAC,cACAC,eACAC,aACAC,iBACAC,iBACAC,cACAC,iBACAC,mBACAC,kBACAC,eACAC,oBACAC,oBACAC,aACAC,YACAC,aACAC,aACAC,cACAC,kBACAC,aACAC,mBACAC,mBACAC,qBACAC,UACAC,gBACAC,gBACAC,eACAC,qBACAC,YACAC,oBACC,CACDC,WACAC,WACAC,WACAC,WACAC,WACAC,YACC,CACDC,aACAC,gBACAC,eACAC,gBACAC,cACAC,cACAC,YACAC,cACAC,qBACAC,eACAC,gBACAC,kBACAC,kBACAC,WACAC,cACAC,gBACAC,eACAC,cACAC,qBACAC,eACAC,eACAC,eACAC,kBACAC,eACAlI,cACAmI,eACAC,cACAC,cACAC,iBACAC,e,UCzRFpL,IAAMuC,MAAQA,GAEZtc,OAAOiC,QAAQC,IAAM,aACrBlC,OAAOiC,QAAQmjB,MAAQ,aAEvBplB,OAAOiC,QAAQojB,KAAO,aACtBrlB,OAAOiC,QAAQqjB,MAAQ,aAEvBrjB,QAAQsjB,KACN,UACA,wHAEFtjB,QAAQsjB,KACN,yMACA,0EAGJC,IAASpJ,OACP,cAAC,WAAD,CAAUpb,MAAOA,KAAjB,SACE,cAAC,EAAD,MAEFqX,SAASoN,eAAe,U,yWCnB1BtlB,EAAQ,KAAUC,SAElB,IAAMwC,EAAa,uCAAG,gCAAA2Y,EAAA,6DAChBlc,EAAM,CACRK,YAAa,KACbJ,SAAS,GAHS,SAKd2D,IACHyiB,OAAO,CACNC,SAAU9Z,KACV+Z,UAAW,CACTlmB,YAAagB,IAAQC,IAAIC,IAAcC,cACvCglB,aAAY,UAAEC,IAASC,IAAIC,QAAb,UACZtlB,IAAQC,IAAIC,IAAc6W,sBADd,aACZ,EAA0CwO,WAC1CjkB,wCAFU,aAAE,EAGXikB,SAASH,IAASI,IAAIC,SAG5B/mB,MAAK,SAACgnB,GAAe,IAAD,oBACnB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","file":"static/js/main.4f0c5ea5.chunk.js","sourcesContent":["import { Observable } from 'apollo-link';\r\nimport DialogUtil from '../views/component/show_confirm_action';\r\nimport {indexGeneral} from '../language/vn/general/_indexGeneral';\r\nexport default promise =>\r\n new Observable((subscriber) => {\r\n promise.then(\r\n (res) => {\r\n if (!res.isError) {\r\n if (subscriber.closed) return;\r\n subscriber.next(res);\r\n subscriber.complete();\r\n return res.accessToken\r\n } else {\r\n // err => subscriber.error(err)\r\n DialogUtil.showAlert(indexGeneral.ALERT, indexGeneral.ACCESS_EXPIRE, () => window.location.assign('/login'));\r\n }\r\n },\r\n );\r\n });","import {\r\n ApolloClient,\r\n InMemoryCache,\r\n from\r\n} from \"@apollo/client\";\r\nimport { setContext } from '@apollo/client/link/context';\r\nimport Cookies from 'js-cookie';\r\nimport { createUploadLink } from 'apollo-upload-client';\r\nimport { RefreshTokens } from './utility/utils';\r\nimport { onError } from \"@apollo/client/link/error\";\r\nimport promiseToObservable from './utility/promise_to_observable';\r\nimport { indexConstant } from './utility/constants/_indexConstants';\r\nimport DialogUtil from './views/component/show_confirm_action';\r\nimport { indexGeneral } from './language/vn/general/_indexGeneral';\r\nimport store from './store'\r\nrequire('dotenv').config();\r\n\r\nconst authLink = setContext((_, { headers }) => {\r\n const token = Cookies.get(indexConstant.ACCESS_TOKEN);\r\n let menuAlias = '';\r\n const routers = store.getState().routers;\r\n const location = window.location.pathname;\r\n const urlArr = location.split('/').slice(0, 3);\r\n routers.forEach(element => {\r\n var routerUrl = element.path.split('/').slice(0, 3);\r\n if (JSON.stringify(routerUrl) === JSON.stringify(urlArr)) {\r\n menuAlias = element.menuAlias;\r\n }\r\n });\r\n\r\n return {\r\n headers: {\r\n ...headers,\r\n authorization: token ? `Bearer ${token}` : null,\r\n 'menuAlias': menuAlias\r\n }\r\n }\r\n})\r\n\r\nconst httpLink = createUploadLink({ uri: `${process.env.REACT_APP_SERVER_URI}${process.env.REACT_APP_GRAPHQL_URI}` });\r\nconsole.log('httpLink--------------', httpLink);\r\nconst errorLink = onError(({ graphQLErrors, networkError, operation, forward }) => {\r\n if (graphQLErrors) {\r\n for (let err of graphQLErrors) {\r\n switch (err.message) {\r\n case 'Unauthorized':\r\n return promiseToObservable(RefreshTokens()).flatMap(({ accessToken }) => {\r\n let oldHeaders = operation.getContext().headers;\r\n operation.setContext({\r\n headers: {\r\n ...oldHeaders,\r\n authorization: `Bearer ${accessToken}`,\r\n },\r\n });\r\n return forward(operation);\r\n })\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (networkError) {\r\n console.log(`[Network error]: ${networkError}`);\r\n return DialogUtil.showAlert(indexGeneral.ALERT, indexGeneral.CONNECTION_ERROR, () => {\r\n window.location.assign('/');\r\n })\r\n }\r\n});\r\nconst client = new ApolloClient({\r\n cache: new InMemoryCache({\r\n addTypename: false\r\n }),\r\n link: authLink.concat(from([errorLink, httpLink]))\r\n});\r\n\r\n\r\nexport default client","import { gql } from \"@apollo/client\";\r\nexport const GET_USER = gql`\r\n query {\r\n getUser {\r\n id\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n phoneNumber\r\n fullname\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n gender\r\n factoryId\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport const GET_ACCOUNT = gql`\r\n query getAccount($search: String, $status: Int, $factoryId: String, $stationId: String, $page: Int, $limit: Int) {\r\n getAccount(searchUser: {\r\n searchOptions: {\r\n search: $search,\r\n status: $status,\r\n factoryId: $factoryId,\r\n stationId: $stationId\r\n },\r\n page: $page,\r\n limit: $limit,\r\n }){\r\n _id\r\n username\r\n fullname\r\n gender\r\n role\r\n stationId {\r\n _id\r\n name\r\n }\r\n factoryId {\r\n _id\r\n name\r\n type\r\n }\r\n isActive\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_USER_PAGE = gql`\r\n query getUserPaginate(\r\n $search: String, \r\n $status: Int,\r\n $factoryId: String,\r\n $page: Int,\r\n $limit: Int, \r\n ) {\r\n getUserPaginate(\r\n searchUser: {\r\n searchOptions: {\r\n search: $search,\r\n status: $status,\r\n factoryId: $factoryId\r\n }\r\n page: $page,\r\n limit: $limit,\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const EXPORT_USER = gql`\r\n query getLinkExportEmployee(\r\n $search: String, \r\n $status: Int,\r\n $factoryId: String,\r\n ){\r\n getLinkExportEmployee(\r\n searchUser: {\r\n search: $search,\r\n status: $status,\r\n factoryId: $factoryId\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const GET_USER_TRANSFER = gql`\r\nquery getPaginateUserTransfer(\r\n $searchOption: SearchPaginateUserTransfer!\r\n ){\r\n getPaginateUserTransfer(\r\n searchOption: $searchOption\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n transfer_histories {\r\n _id\r\n userId {\r\n \t\t_id\r\n \t\tfullname\r\n \t\tusername\r\n \t\t}\r\n roleCurrentAlias\r\n factoryCurrentId {\r\n _id\r\n name\r\n type\r\n } \r\n stationCurrentId {\r\n _id\r\n name\r\n }\r\n factoryToId {\r\n _id\r\n name\r\n type\r\n }\r\n stationToId {\r\n _id\r\n name\r\n }\r\n roleToAlias\r\n note\r\n userTransferId {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n _id\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n createdAt\r\n updatedAt\r\n \tcreatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n }\r\n}\r\n`;","import { gql } from \"@apollo/client\";\r\n\r\nexport const GET_FACTORY = gql`\r\n query($type: Int) {\r\n getFactory(type: $type) {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n alias\r\n fax\r\n workingArea\r\n description\r\n stations {\r\n _id\r\n name\r\n alias\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n factory\r\n deleted\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n type\r\n alias\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport const GET_ALL_FACTORY = gql`\r\n query($type: Int) {\r\n getAllFactory(type: $type) {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n stations {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n factory\r\n deleted\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n type\r\n alias\r\n }\r\n\r\n }\r\n`;\r\n\r\nexport const GET_PROVINCES = gql`\r\n query{\r\n getProvinces{\r\n name\r\n code\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_DISTRICT = gql`\r\n query getDistrictByCodeProvince($codePro: Int!) {\r\n getDistrictByCodeProvince(codePro: $codePro) {\r\n name\r\n code\r\n codename\r\n division_type\r\n phone_code\r\n districts {\r\n name\r\n code\r\n codename\r\n division_type\r\n short_codename\r\n wards {\r\n _id\r\n name\r\n code\r\n codename\r\n division_type\r\n short_codename\r\n }\r\n } \r\n }\r\n }\r\n`;\r\n\r\nexport const GET_WARD = gql`\r\n query getWardByCodeDistrict($codeDis: Int!) {\r\n getWardByCodeDistrict(codeDis: $codeDis) {\r\n districts {\r\n wards {\r\n name\r\n code\r\n }\r\n } \r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ALL_SELECT = gql`\r\n query getAllSelect\r\n (\r\n $codePro: Int!,\r\n $codeDis: Int!,\r\n ) {\r\n getAllSelect\r\n (\r\n codePro: $codePro,\r\n codeDis: $codeDis,\r\n ) {\r\n provinces {\r\n _id\r\n name\r\n code\r\n codename\r\n division_type\r\n phone_code\r\n }\r\n districts {\r\n _id\r\n name\r\n code\r\n codename\r\n division_type\r\n short_codename\r\n }\r\n wards {\r\n _id\r\n name\r\n code\r\n codename\r\n division_type\r\n short_codename\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_DEPARTMENT = gql`\r\n query {\r\n getFactory {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const FIND_FACTORY = gql`\r\n query findFactory($_id: String!) {\r\n findFactory(_id: $_id) {\r\n _id\r\n name\r\n address{\r\n detail\r\n ward{\r\n code\r\n name\r\n }\r\n district{\r\n code\r\n name\r\n }\r\n city{\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates{\r\n latitude\r\n longitude\r\n }\r\n type\r\n alias\r\n stations\r\n {\r\n _id\r\n name\r\n address{\r\n detail\r\n ward{\r\n code\r\n name\r\n }\r\n district{\r\n code\r\n name\r\n }\r\n city{\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates{\r\n latitude\r\n longitude\r\n }\r\n factory\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_All_STATION = gql`\r\n query{\r\n getAllStation{\r\n _id\r\n name\r\n }\r\n }\r\n`;","import { gql } from '@apollo/client';\r\n\r\nexport const GET_DEVICE_ALL = gql`\r\n query getDeviceAll(\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $search: String\r\n $status: [EnumDeviceStatus]\r\n ) {\r\n getDeviceAll(\r\n search: $search\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n status: $status\r\n ) {\r\n _id\r\n name\r\n sku\r\n info\r\n installTime\r\n product {\r\n model\r\n original\r\n year\r\n }\r\n status\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n note\r\n namspace\r\n responsibleBy\r\n serial\r\n assetCodeId {\r\n _id\r\n name\r\n code\r\n spec\r\n }\r\n stationId {\r\n _id\r\n name\r\n factory\r\n }\r\n factoryId {\r\n _id\r\n name\r\n }\r\n filesId {\r\n _id\r\n filename\r\n }\r\n replaceFor\r\n replaceReason\r\n isReplaceDevice\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n deleted\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_DEVICE_ALL_SHORT = gql`\r\n query getDeviceAll(\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $status: [EnumDeviceStatus]\r\n ) {\r\n getDeviceAll(\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n status: $status\r\n ) {\r\n _id\r\n name\r\n sku\r\n status\r\n stationId {\r\n _id\r\n }\r\n factoryId {\r\n _id\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const LIST_SUPPLIES = gql`\r\n query getDevicePaginate(\r\n $search: String\r\n $code: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $status: [EnumDeviceStatus]\r\n $page: Int\r\n $limit: Int\r\n $type: Int\r\n ) {\r\n getDevicePaginate(\r\n search: $search\r\n code: $code\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n status: $status\r\n endDate: $endDate\r\n type: $type\r\n page: $page\r\n limit: $limit\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n name\r\n sku\r\n info\r\n installTime\r\n product {\r\n model\r\n original\r\n year\r\n }\r\n status\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n note\r\n namspace\r\n responsibleBy\r\n serial\r\n assetCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n stationId {\r\n _id\r\n name\r\n factory\r\n }\r\n factoryId {\r\n _id\r\n name\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n _id\r\n phoneNumber\r\n fullname\r\n birthDay\r\n avatar\r\n factoryId\r\n stationId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n replaceFor\r\n replaceReason\r\n isReplaceDevice\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n deletedAt\r\n deleted\r\n operatingTime\r\n resetTime\r\n remainingTime\r\n flag\r\n totalOperating\r\n timeCalcutate\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const EXPORT_DEVICE = gql`\r\n query getLinkExportDevice(\r\n $search: String\r\n $code: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $status: [EnumDeviceStatus]\r\n $type: Int\r\n ) {\r\n getLinkExportDevice(\r\n search: $search\r\n code: $code\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n endDate: $endDate\r\n status: $status\r\n type: $type\r\n )\r\n }\r\n`;\r\n\r\nexport const EXPORT_QRCODE = gql`\r\n query exportQrCodeDevice(\r\n $search: String\r\n $code: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $status: [EnumDeviceStatus]\r\n $type: Int\r\n ) {\r\n exportQrCodeDevice(\r\n search: $search\r\n code: $code\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n endDate: $endDate\r\n status: $status\r\n type: $type\r\n )\r\n }\r\n`;\r\n\r\nexport const GET_ALL_DEVICE = gql`\r\n query getDeviceAll(\r\n $search: String\r\n $code: [String]\r\n $stationsId: [String]\r\n $factoriesId: [String]\r\n ) {\r\n getDeviceAll(\r\n search: $search\r\n code: $code\r\n stationsId: $stationsId\r\n factoriesId: $factoriesId\r\n ) {\r\n _id\r\n name\r\n sku\r\n product {\r\n model\r\n original\r\n year\r\n }\r\n stationId {\r\n _id\r\n name\r\n factory\r\n }\r\n factoryId {\r\n _id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_DEVICE_HISTORY = gql`\r\n query getPaginateDeviceHistory(\r\n $devicesId: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $search: String\r\n $status: [EnumSearchDeviceHistory]\r\n $startTime: DateTime\r\n $endTime: DateTime\r\n $workingsBy: [String]\r\n $limit: Int\r\n $page: Int\r\n $type: Int\r\n ) {\r\n getPaginateDeviceHistory(\r\n searchDeviceHistory: {\r\n searchOptions: {\r\n devicesId: $devicesId\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n search: $search\r\n status: $status\r\n startTime: $startTime\r\n endTime: $endTime\r\n workingsBy: $workingsBy\r\n type: $type\r\n }\r\n limit: $limit\r\n page: $page\r\n }\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n _id\r\n gender\r\n phoneNumber\r\n fullname\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n namespace\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n status\r\n workId {\r\n _id\r\n name\r\n }\r\n name\r\n deviceSku\r\n original\r\n positionUsing\r\n workName\r\n startTime\r\n endTime\r\n replaceDevice\r\n reason\r\n note\r\n cycleMaintainId {\r\n _id\r\n name\r\n }\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n description\r\n infoAfter\r\n isAuto\r\n worker\r\n workingBy {\r\n username\r\n _id\r\n fullname\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_OPERATING_DIARY = gql`\r\nquery getPaginateOperatingDiary(\r\n $search: String\r\n $devicesId: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startTime: DateTime\r\n $endTime: DateTime\r\n $limit: Int\r\n $page: Int\r\n $statusOperating: [EnumStatusOperating]\r\n $statusDevice: [EnumStatusDevice]\r\n) {\r\n getPaginateOperatingDiary(\r\n searchOperatingDiary: {\r\n searchOptions: {\r\n search: $search\r\n devicesId: $devicesId\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startTime: $startTime\r\n endTime: $endTime\r\n statusOperating: $statusOperating\r\n statusDevice: $statusDevice\r\n }\r\n limit: $limit\r\n page: $page\r\n }\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n name\r\n deviceSku\r\n original\r\n positionUsing\r\n # time_start\r\n # time_stop\r\n dateTime\r\n statusOperating\r\n statusDevice\r\n noteStatusDevice\r\n note\r\n worker\r\n createdBy\r\n updatedBy\r\n createdAt\r\n updatedAt\r\n deleted\r\n deletedAt\r\n content\r\n factoryId\r\n stationId\r\n }\r\n }\r\n}\r\n`;\r\n\r\nexport const GET_DEVICE_SCHEDULE = gql`\r\n query getDeviceSchedulerByDeviceId($deviceId: String!) {\r\n getDeviceSchedulerByDeviceId(deviceId: $deviceId) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n content\r\n type\r\n startTime\r\n endTime\r\n nextTime\r\n isRunning\r\n isAuto\r\n isActive\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n deleted\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const STATISTIC_DEVICES = gql`\r\n query {\r\n statisticDevices {\r\n type\r\n factoryName\r\n stationName\r\n totalDevices\r\n workDevices\r\n stopDevices\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_DEVICE_TRANSFER = gql`\r\n query getPaginateDeviceTransfer(\r\n $searchOption: SearchPaginateDeviceTransfer!\r\n ) {\r\n getPaginateDeviceTransfer(searchOption: $searchOption) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n transfer_histories {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n factoryCurrentId {\r\n _id\r\n name\r\n }\r\n stationCurrentId {\r\n _id\r\n name\r\n }\r\n factoryToId {\r\n _id\r\n name\r\n }\r\n stationToId {\r\n _id\r\n name\r\n }\r\n note\r\n deviceTransferId\r\n deleted\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const FIND_DEVICE = gql`\r\n query findDeviceById($_id: String!) {\r\n findDeviceById(_id: $_id) {\r\n _id\r\n name\r\n sku\r\n info\r\n installTime\r\n product {\r\n model\r\n original\r\n year\r\n }\r\n status\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n note\r\n namspace\r\n responsibleBy\r\n serial\r\n assetCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n stationId {\r\n _id\r\n name\r\n factory\r\n }\r\n factoryId {\r\n _id\r\n name\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n id\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n _id\r\n gender\r\n phoneNumber\r\n fullname\r\n avatar\r\n role\r\n factoryId\r\n stationId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n replaceFor\r\n replaceReason\r\n isReplaceDevice\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n operatingTime\r\n resetTime\r\n }\r\n }\r\n`;\r\n\r\nexport const STATISTIC_OPERATING_DiARY = gql`\r\n query statisticOperatingDiary(\r\n $_id: String!,\r\n ){\r\n statisticOperatingDiary(\r\n _id: $_id\r\n )\r\n }\r\n`;\r\n\r\nexport const OPERATING_DiARY_DEVICE = gql`\r\n query operatingDiaryDevice(\r\n $_id: String!,\r\n ){\r\n operatingDiaryDevice(\r\n _id: $_id\r\n )\r\n }\r\n`;\r\n\r\nexport const STATISTIC_TIME_OPERATING_DiARY = gql`\r\n query staticTimeOperatingDiary(\r\n $devicesId: String\r\n $time_start: DateTime\r\n $time_stop: DateTime\r\n ) {\r\n staticTimeOperatingDiary(\r\n searchOptions: {\r\n devicesId: $devicesId,\r\n time_start: $time_start,\r\n time_stop: $time_stop,\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const STATISTIC_SESSION_TIME = gql`\r\n query staticSessionOperatingDiary(\r\n $devicesId: String\r\n $time_start: DateTime\r\n $time_stop: DateTime\r\n ) {\r\n staticSessionOperatingDiary(\r\n searchOptions: {\r\n devicesId: $devicesId,\r\n time_start: $time_start,\r\n time_stop: $time_stop,\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const STATISTIC_MONTH_OPERATING_DiARY = gql`\r\n query staticMonthOperatingDiary(\r\n $devicesId: String\r\n $time_start: DateTime\r\n $time_stop: DateTime\r\n ) {\r\n staticMonthOperatingDiary(\r\n searchOptions: {\r\n devicesId: $devicesId,\r\n time_start: $time_start,\r\n time_stop: $time_stop,\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const STATISTIC_DAY_OPERATING_DiARY = gql`\r\n query staticDayOperatingDiary(\r\n $devicesId: String\r\n $time_start: DateTime\r\n $time_stop: DateTime\r\n ) {\r\n staticDayOperatingDiary(\r\n searchOptions: {\r\n devicesId: $devicesId,\r\n time_start: $time_start,\r\n time_stop: $time_stop,\r\n }\r\n )\r\n }\r\n`;","import { gql } from \"@apollo/client\";\r\nexport const GET_ALL_ASSET = gql`\r\n query getAllAssetCode(\r\n $search: String,\r\n $active: Boolean,\r\n ) {\r\n getAllAssetCode(\r\n search: $search,\r\n active: $active,\r\n ){\r\n _id\r\n name\r\n code\r\n note\r\n spec\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ALL_WORK_LIST = gql`\r\n query getAllWorkListCode($search: String, $active: Boolean ) {\r\n getAllWorkListCode(search: $search, active: $active)\r\n {\r\n _id\r\n name\r\n code\r\n note\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ALL_GROUP_DEVICE_LIST = gql`\r\n query getAllDeviceGroupCode($search: String) {\r\n getAllDeviceGroupCode(search: $search)\r\n {\r\n _id\r\n name\r\n code\r\n note\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n }\r\n }\r\n`;\r\n","import { gql } from \"@apollo/client\";\r\n\r\nexport const GET_SETTING_EMAIL = gql`\r\n query{\r\n getSettingEmail{\r\n service\r\n host\r\n serverEmail\r\n security\r\n port\r\n accuracy\r\n account\r\n password\r\n sendFrom\r\n proxy\r\n mailCC\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_OUTSIDE = gql`\r\n query{\r\n getOutSide\r\n }\r\n`;\r\n\r\nexport const GET_MENU = gql`\r\n query{\r\n getMenu\r\n }\r\n`;\r\n\r\nexport const GET_ROLE = gql`\r\n query{\r\n getAllRole{\r\n name\r\n alias\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_PERMISSIONS = gql`\r\n query{\r\n getPermissions\r\n }`\r\n ;\r\n\r\nexport const GET_NOTIFICATION = gql`\r\n query(\r\n $page: Int,\r\n $limit: Int,\r\n ){\r\n getNotification(page: $page, limit: $limit) {\r\n notifications {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n is_read\r\n deleted\r\n f_id\r\n relate\r\n content {\r\n from\r\n subject\r\n content\r\n title\r\n icon\r\n startTime\r\n endTime\r\n nextTime\r\n }\r\n menu_alias\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n unread\r\n }\r\n }\r\n`;\r\n\r\nexport const STATISTIC_GENERAL = gql`\r\n query statisticGeneral(\r\n $startDate: DateTime,\r\n $endDate: DateTime,\r\n $type: Int,\r\n ){\r\n statisticGeneral(\r\n searchOptions: {\r\n startDate: $startDate,\r\n endDate: $endDate,\r\n type: $type,\r\n }\r\n \r\n )\r\n }\r\n`;\r\n\r\nexport const STATISTIC_WORK = gql`\r\n query statisticWork(\r\n $startDate: DateTime,\r\n $endDate: DateTime,\r\n $type: Int,\r\n ){\r\n statisticWork(\r\n searchOptions: {\r\n startDate: $startDate,\r\n endDate: $endDate,\r\n type: $type,\r\n }\r\n )\r\n }\r\n`","import { gql } from '@apollo/client';\r\nexport const GET_PAGINATE_CYCLE_MAINTAIN = gql`\r\n query getPaginateCycleMaintain(\r\n $search: String\r\n $status: String\r\n $type: Int\r\n $page: Int\r\n $limit: Int\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n ) {\r\n getPaginateCycleMaintain(\r\n searchCycleMaintain: {\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n type: $type\r\n startDate: $startDate\r\n endDate: $endDate\r\n }\r\n page: $page\r\n limit: $limit\r\n }\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n name\r\n status\r\n startDate\r\n endDate\r\n note\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n _id\r\n fullname\r\n }\r\n createdAt\r\n }\r\n worksId {\r\n _id\r\n }\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_ALL_CYCLE_MAINTAIN = gql`\r\n query {\r\n getAllCycleMaintain(searchOptions: { type: 1 }) {\r\n _id\r\n name\r\n status\r\n startDate\r\n endDate\r\n note\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_CYCLE_WORK = gql`\r\n query getPaginateCycleWork(\r\n $_id: String!\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $workCodesId: [String]\r\n $deviceGroupId: [String]\r\n $type: Int\r\n $limit: Int\r\n $page: Int\r\n $isAccept: Int\r\n ) {\r\n getPaginateCycleWork(\r\n _id: $_id\r\n searchWork: {\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n type: $type\r\n workCodesId: $workCodesId\r\n startDate: $startDate\r\n endDate: $endDate\r\n stationsId: $stationsId\r\n deviceGroupId: $deviceGroupId\r\n isAccept: $isAccept\r\n }\r\n page: $page\r\n limit: $limit\r\n }\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n name\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n gender\r\n phoneNumber\r\n fullname\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n namespace\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n station\r\n factory\r\n worker\r\n status\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n workDetailsId {\r\n _id\r\n name\r\n original\r\n description\r\n reason\r\n positionUsing\r\n workingBy\r\n workId\r\n deviceSku\r\n startTime\r\n endTime\r\n status\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n fullname\r\n avatar\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n }\r\n }\r\n deleted\r\n workCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n deviceGroupId {\r\n _id\r\n name\r\n code\r\n }\r\n content\r\n isAccept\r\n startDate\r\n endDate\r\n ammountUnit\r\n typeUnit\r\n note\r\n cycleMaintainId {\r\n _id\r\n name\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const FIND_WORK = gql`\r\n query findWorkById($_id: String!) {\r\n findWorkById(_id: $_id) {\r\n _id\r\n workDetailsId {\r\n _id\r\n name\r\n original\r\n description\r\n reason\r\n positionUsing\r\n workingBy\r\n deviceSku\r\n deviceId\r\n startTime\r\n endTime\r\n status\r\n replaceDevice\r\n infoAfter\r\n worker\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n note\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n id\r\n username\r\n _id\r\n fullname\r\n avatar\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n createdAt\r\n createdBy {\r\n _id\r\n fullname\r\n }\r\n updatedAt\r\n updatedBy {\r\n _id\r\n fullname\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n","import { gql } from '@apollo/client';\r\nexport const GET_EMERGENCY_WORK = gql`\r\n query getPaginateEmergencyWork(\r\n $search: String\r\n $status: [EnumAllStatusWork]!\r\n $type: Int\r\n $page: Int\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $limit: Int\r\n $isAccept: Int\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $workCodesId: [String]\r\n ) {\r\n getPaginateEmergencyWork(\r\n searchWork: {\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n type: $type\r\n isAccept: $isAccept\r\n startDate: $startDate\r\n endDate: $endDate\r\n stationsId: $stationsId\r\n workCodesId: $workCodesId\r\n factoriesId: $factoriesId\r\n }\r\n page: $page\r\n limit: $limit\r\n }\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n _id\r\n fullname\r\n }\r\n createdAt\r\n __typename\r\n }\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n reportId\r\n reportDate\r\n station\r\n factory\r\n worker\r\n status\r\n workDetailsId {\r\n _id\r\n status\r\n deviceId\r\n deviceSku\r\n name\r\n original\r\n positionUsing\r\n description\r\n reason\r\n startTime\r\n endTime\r\n replaceDevice\r\n infoAfter\r\n note\r\n workingBy\r\n workId\r\n worker\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n _id\r\n fullname\r\n }\r\n }\r\n }\r\n deleted\r\n workCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n deviceGroupId {\r\n _id\r\n name\r\n code\r\n }\r\n name\r\n content\r\n isAccept\r\n startDate\r\n endDate\r\n ammountUnit\r\n typeUnit\r\n note\r\n cycleMaintainId {\r\n _id\r\n name\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n }\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const FIND_WORK_DETAIL = gql`\r\n query findWorkDetailById($_id: String!) {\r\n findWorkDetailById(_id: $_id) {\r\n _id\r\n name\r\n original\r\n description\r\n reason\r\n positionUsing\r\n workingBy\r\n workId {\r\n _id\r\n acceptance {\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n gender\r\n phoneNumber\r\n fullname\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n namespace\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n status\r\n note\r\n }\r\n status\r\n isCycleMaintain\r\n workDetailsId {\r\n _id\r\n status\r\n deviceSku\r\n name\r\n original\r\n positionUsing\r\n description\r\n reason\r\n startTime\r\n endTime\r\n replaceDevice\r\n infoAfter\r\n note\r\n workingBy\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n path\r\n user {\r\n username\r\n _id\r\n gender\r\n phoneNumber\r\n fullname\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n namespace\r\n factoryId\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n`;\r\n","import { gql } from \"@apollo/client\";\r\nexport const GET_DIARY = gql`\r\n query getPaginateDiary(\r\n $search: String,\r\n $limit: Int,\r\n $page: Int,\r\n $startTime: DateTime,\r\n $endTime: DateTime,\r\n $userId:[String],\r\n $ctx: [String],\r\n ) {\r\n getPaginateDiary(\r\n searchDiary: {\r\n searchOptions: {\r\n search: $search,\r\n startTime: $startTime,\r\n endTime: $endTime,\r\n userId: $userId,\r\n ctx : $ctx,\r\n }\r\n limit: $limit,\r\n page: $page,\r\n }\r\n ){\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n u_id {\r\n _id\r\n fullname\r\n username\r\n }\r\n t\r\n ctx\r\n co_id\r\n co_name\r\n msg\r\n ag\r\n ip\r\n }\r\n }\r\n }\r\n`","import { gql } from '@apollo/client';\r\n\r\nexport const GET_STATIC_MAINTAIN = gql`\r\n query getPaginateStatisticMaintain(\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $createdBy: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $isAccept: Int\r\n $limit: Int\r\n $page: Int\r\n $type: Int\r\n $isCycleMaintain: Int\r\n $isPublic: Boolean\r\n ) {\r\n getPaginateStatisticMaintain(\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n createdBy: $createdBy\r\n startDate: $startDate\r\n endDate: $endDate\r\n type: $type\r\n isAccept: $isAccept\r\n isPublic: $isPublic\r\n isCycleMaintain: $isCycleMaintain\r\n }\r\n page: $page\r\n limit: $limit\r\n ) {\r\n hashMore\r\n hasNextPage\r\n hasPrevPage\r\n limit\r\n page\r\n pagingCounter\r\n totalDocs\r\n totalPages\r\n docs {\r\n _id\r\n filesId {\r\n _id\r\n status\r\n tags\r\n filename\r\n mimeType\r\n size\r\n user {\r\n emails {\r\n address\r\n }\r\n username\r\n _id\r\n fullname\r\n gender\r\n phoneNumber\r\n avatar\r\n namespace\r\n address {\r\n ward {\r\n code\r\n }\r\n }\r\n }\r\n createdAt\r\n }\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n station\r\n factory\r\n status\r\n isCycleMaitain\r\n workDetailsId {\r\n _id\r\n status\r\n deviceSku\r\n name\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n }\r\n deleted\r\n workCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n deviceGroupId {\r\n _id\r\n name\r\n code\r\n }\r\n name\r\n content\r\n startDate\r\n endDate\r\n reportId\r\n reportDate\r\n ammountUnit\r\n typeUnit\r\n note\r\n cost {\r\n supply\r\n worker\r\n sum\r\n }\r\n isAccept\r\n cycleMaintainId {\r\n _id\r\n name\r\n }\r\n createdBy {\r\n _id\r\n fullname\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n }\r\n createdAt\r\n updatedAt\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const STATIC_MAINTAIN = gql`\r\n query statisticMaintain(\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $createdBy: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $isAccept: Int\r\n $isPublic: Boolean\r\n $isCycleMaintain: Int\r\n $type: Int\r\n ) {\r\n statisticMaintain(\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n createdBy: $createdBy\r\n startDate: $startDate\r\n endDate: $endDate\r\n type: $type\r\n isAccept: $isAccept\r\n isPublic: $isPublic\r\n isCycleMaintain: $isCycleMaintain\r\n }\r\n )\r\n }\r\n`;\r\nexport const STATISTIC_SCHEDULER = gql`\r\n query statisticScheduler(\r\n $searchOptions: SearchOptionScheduler!\r\n $page: Int\r\n $limit: Int\r\n ) {\r\n statisticScheduler(\r\n searchOptions: $searchOptions\r\n page: $page\r\n limit: $limit\r\n )\r\n }\r\n`;\r\nexport const STATISTIC_DEVICE = gql`\r\n query statisticDevice($searchOptions: SearchDashboardOptions!) {\r\n statisticDevice(searchOptions: $searchOptions)\r\n }\r\n`;\r\n","import { gql } from \"@apollo/client\";\r\nexport * from './users';\r\nexport * from './departmanents';\r\nexport * from './devices';\r\nexport * from './identify_code';\r\nexport * from './general';\r\nexport * from './period_maintenance';\r\nexport * from './emergency_maintenance';\r\nexport * from './system_logs';\r\nexport * from './statistic_maintain';\r\nexport const queryGetAllPermission = (user_id) => {\r\n let GET_ALL_PERMISSIONS = gql`\r\n query getAllPermissions {\r\n getAllPermissions(_id: \"${user_id}\")\r\n }`;\r\n\r\n return GET_ALL_PERMISSIONS;\r\n}","export default __webpack_public_path__ + \"static/media/logo.cdac35ab.png\";","export default __webpack_public_path__ + \"static/media/user.ddc332da.png\";","export default __webpack_public_path__ + \"static/media/Loading.63d7da1b.gif\";","export default __webpack_public_path__ + \"static/media/success.a0f33d50.jpg\";","export default __webpack_public_path__ + \"static/media/wrong.5a4e5cf8.jpg\";","export default __webpack_public_path__ + \"static/media/water.02a2e44f.jpg\";","export default __webpack_public_path__ + \"static/media/background.a9254695.jpg\";","export default __webpack_public_path__ + \"static/media/image.fe5455ad.jpg\";","import logo from './logo.png';\r\nimport defaultMaleAvatar from './user.png';\r\nimport loading from './Loading.gif';\r\nimport success from './success.jpg';\r\nimport wrong from './wrong.jpg';\r\nimport add from './add.png';\r\nimport water from './water.jpg';\r\nimport backGround from './background.jpg';\r\nimport imageGround from './image.jpg';\r\n\r\nexport const imgs = Object.assign({}, {\r\n LOGO: logo,\r\n DEFAULT_MALE_AVATAR: defaultMaleAvatar,\r\n LOADING: loading,\r\n SUCCESS: success,\r\n WRONG: wrong,\r\n ADD: add,\r\n WATER: water,\r\n BACK_GROUND: backGround,\r\n IMAGE_GROUND: imageGround\r\n});","export default \"data:image/png;base64,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\"","import { createStore } from 'redux'\r\nconst initialState = {\r\n sidebarShow: 'responsive',\r\n routers: [],\r\n navigation: [],\r\n routerLink: [],\r\n userData: {\r\n id: 0\r\n },\r\n prevLink: '',\r\n paramLink: '',\r\n}\r\n\r\nconst changeState = (state = initialState, { type, ...rest }) => {\r\n switch (type) {\r\n case 'set':\r\n return { ...state, ...rest }\r\n case 'route':\r\n return { ...state, ...rest }\r\n case 'navigation':\r\n return { ...state, ...rest }\r\n case 'routerLink':\r\n return { ...state, ...rest }\r\n case 'user':\r\n return { ...state, ...rest }\r\n case 'prevLink': {\r\n return { ...state, ...rest }\r\n }\r\n case 'paramLink': {\r\n return { ...state, ...rest }\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nconst store = createStore(changeState)\r\nexport default store","// extracted by mini-css-extract-plugin\nmodule.exports = {\"box\":\"splash_box__2mqYN\",\"bounce\":\"splash_bounce__1k2o-\",\"bounce-1\":\"splash_bounce-1__3Chdz\",\"backgroundScreen\":\"splash_backgroundScreen__1e1rA\"};","const validateEmail = (email) => {\r\n const EMAIL_REGEX =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return EMAIL_REGEX.test(email) && email?.length <= 50;\r\n};\r\n\r\nconst validatePassWord = (password) => {\r\n password = password?.trim();\r\n return password?.length >= 6 && password?.length <= 20;\r\n};\r\n\r\nconst validateUserName = (username) => {\r\n const UserName_REGEX = {\r\n expect: /[ ]/,\r\n };\r\n return !UserName_REGEX.expect.test(username) && username.length >= 4;\r\n};\r\nconst validateImage = (image) => {\r\n const Image_REGEX = /\\.(jpg|jpeg|png|gif)$/;\r\n return Image_REGEX.test(image);\r\n};\r\n\r\nconst validatePhone = (phone) => {\r\n const re = /^\\+?([0-9]{1,5})\\)?[-. ]?([0-9]{1,5})[-. ]?([0-9]{1,5})$/;\r\n return re.test(phone);\r\n};\r\n\r\nconst isInt = (value) => {\r\n const er = /^-?[0-9]|[-/]+$/;\r\n return er.test(value);\r\n};\r\n\r\nconst isLetter = (str) => {\r\n return str?.length === 1 && str.match(/[a-z]/i);\r\n};\r\n\r\nconst convertViToEn = (str) => {\r\n str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g, 'a');\r\n str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g, 'e');\r\n str = str.replace(/ì|í|ị|ỉ|ĩ/g, 'i');\r\n str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g, 'o');\r\n str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g, 'u');\r\n str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g, 'y');\r\n str = str.replace(/đ/g, 'd');\r\n str = str.replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g, 'A');\r\n str = str.replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g, 'E');\r\n str = str.replace(/Ì|Í|Ị|Ỉ|Ĩ/g, 'I');\r\n str = str.replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g, 'O');\r\n str = str.replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g, 'U');\r\n str = str.replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g, 'Y');\r\n str = str.replace(/Đ/g, 'D');\r\n // Some system encode vietnamese combining accent as individual utf-8 characters\r\n // Một vài bộ encode coi các dấu mũ, dấu chữ như một kí tự riêng biệt nên thêm hai dòng này\r\n str = str.replace(/\\u0300|\\u0301|\\u0303|\\u0309|\\u0323/g, ''); // ̀ ́ ̃ ̉ ̣ huyền, sắc, ngã, hỏi, nặng\r\n str = str.replace(/\\u02C6|\\u0306|\\u031B/g, ''); // ˆ ̆ ̛ Â, Ê, Ă, Ơ, Ư\r\n // Remove extra spaces\r\n // Bỏ các khoảng trắng liền nhau\r\n str = str.replace(/ + /g, ' ');\r\n str = str.trim();\r\n // Remove punctuations\r\n // Bỏ dấu câu, kí tự đặc biệt\r\n str = str.replace(\r\n /!|@|%|\\^|\\*|\\(|\\)|\\+|\\=|\\<|\\>|\\?|\\/|,|\\.|\\:|\\;|\\'|\\\"|\\&|\\#|\\[|\\]|~|\\$|_|`|-|{|}|\\||\\\\/g,\r\n ' '\r\n );\r\n\r\n // chữ thủy không đọc được.\r\n return str;\r\n};\r\n\r\nconst getExtension = (filename) => {\r\n var parts = filename.split('.');\r\n return parts[parts.length - 1];\r\n};\r\n\r\nconst getIconFileStyle = (filename) => {\r\n var ext = getExtension(filename);\r\n switch (ext.toLowerCase()) {\r\n case 'pdf':\r\n return 'fa fa-file-pdf-o fa-lg';\r\n case 'jpg':\r\n case 'gif':\r\n case 'bmp':\r\n case 'png':\r\n return 'fa fa-file-picture-o fa-lg';\r\n case 'm4v':\r\n case 'avi':\r\n case 'mpg':\r\n case 'mp4':\r\n return 'fa fa-film fa-lg';\r\n case 'xlsx':\r\n case 'xls':\r\n case 'xltx':\r\n case 'xls':\r\n case 'xml':\r\n case 'xlt':\r\n case 'xlw':\r\n return 'fa fa-file-excel-o fa-lg';\r\n case 'doc':\r\n case 'docx':\r\n case 'dot':\r\n case 'odt':\r\n case 'txt':\r\n case 'dotm':\r\n case 'dotx':\r\n return 'fa fa-file-word-o fa-lg';\r\n case 'mp3':\r\n case 'm4a':\r\n case 'm4b':\r\n case 'wma':\r\n case 'msv':\r\n return 'fa fa-file-sound-o fa-lg';\r\n case 'zip':\r\n case 'rar':\r\n case 'raw':\r\n return 'fa fa-file-zip-o fa-lg';\r\n }\r\n return 'fa fa-file-o fa-lg';\r\n};\r\n\r\nconst validateDateInput = (date) => {\r\n const DATE_REGEX = /^-?[0-9]|[-/]+$/;\r\n return DATE_REGEX.test(date);\r\n};\r\n\r\nconst checkMaxLength = (data, max = 0) => {\r\n return data?.length >= max ? true : false;\r\n};\r\n\r\nconst isEmpty = (data) => {\r\n if (typeof data === 'string') {\r\n return data.trim().length === 0;\r\n }\r\n if (Array.isArray(data)) {\r\n return data.filter((item) => item).length === 0;\r\n }\r\n if (typeof data === 'boolean' && !data) {\r\n return true;\r\n }\r\n if (typeof data === 'undefined' || data === null) {\r\n return true;\r\n }\r\n return false;\r\n // switch (data) {\r\n // case 0:\r\n // case '0':\r\n // case null:\r\n // case false:\r\n // return true;\r\n // default:\r\n // return typeof data === 'undefined';\r\n // }\r\n};\r\n\r\nconst validateIdentifyCode = (code) => {\r\n var format = /[!@#$%^&*()_+\\-=\\[\\]{};':\"\\\\|,.<>\\/?]+/;\r\n var regex = /^[a-zA-Z0-9@._-]+$/g;\r\n return !format.test(code) && regex;\r\n};\r\n\r\nconst isDateTime = (value) => {\r\n var dateWrapper = new Date(value);\r\n return !isNaN(dateWrapper.getDate());\r\n};\r\n\r\nexport {\r\n validateEmail,\r\n validateUserName,\r\n validatePassWord,\r\n validateImage,\r\n convertViToEn,\r\n validatePhone,\r\n isInt,\r\n isLetter,\r\n getIconFileStyle,\r\n validateDateInput,\r\n isEmpty,\r\n checkMaxLength,\r\n validateIdentifyCode,\r\n isDateTime,\r\n};\r\n","import { gql } from \"@apollo/client\";\r\nexport const LOGIN_MUTATION = gql`\r\n mutation authenticate (\r\n $password: String!\r\n $email: String!\r\n $username: String!\r\n ){\r\n authenticate (\r\n serviceName: \"password\"\r\n params: \r\n {\r\n password: $password\r\n user: {\r\n email: $email\r\n username: $username\r\n }\r\n }\r\n )\r\n {\r\n tokens {refreshToken, accessToken}\r\n user {\r\n id\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n phoneNumber\r\n fullname\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n birthDay\r\n avatar\r\n deletedAt\r\n } \r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_USER = gql`\r\n mutation(\r\n $input: CreateUserInput,\r\n $_id: String!,\r\n ){\r\n updateUser(input: $input, _id: $_id){\r\n id\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n phoneNumber\r\n fullname\r\n gender\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n factoryId\r\n }\r\n }\r\n`;\r\n\r\nexport const CHANGE_PASSWORD = gql`\r\n mutation changePassword (\r\n $oldPassword: String!,\r\n $newPassword: String!\r\n ){\r\n changePassword(\r\n oldPassword: $oldPassword,\r\n newPassword: $newPassword\r\n )\r\n }\r\n`;\r\n\r\nexport const CREATE_USER = gql`\r\n mutation($user: CreateUserInput!){\r\n createUser(user: $user){\r\n userId\r\n loginResult {\r\n sessionId\r\n tokens {\r\n refreshToken\r\n accessToken\r\n }\r\n user {\r\n id\r\n emails {\r\n address\r\n verified\r\n }\r\n username\r\n phoneNumber\r\n fullname\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n birthDay\r\n avatar\r\n deletedAt\r\n role\r\n factoryId\r\n }\r\n }\r\n }\r\n }\r\n`;\r\nexport const DELETE_ACCOUNT = gql`\r\n mutation deleteAccount($_id: String!){\r\n deleteAccount(\r\n _id: $_id,\r\n )\r\n }\r\n`;\r\n\r\nexport const RESET_PASSWORD = gql`\r\n mutation resetPasswordAccount($_id: String!, $newPassword: String!){\r\n resetPasswordAccount(\r\n _id: $_id,\r\n newPassword: $newPassword,\r\n )\r\n }\r\n`;\r\n\r\nexport const REFRESH_TOKENS = gql`\r\n mutation refreshTokens (\r\n $accessToken: String!,\r\n $refreshToken: String!\r\n )\r\n {\r\n refreshTokens(\r\n accessToken: $accessToken,\r\n refreshToken: $refreshToken\r\n ){\r\n tokens{\r\n refreshToken,\r\n accessToken\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const LOGOUT_MUTATION = gql`\r\n mutation {\r\n logout\r\n }\r\n`;\r\n\r\nexport const DELETE_USER_TRANSFER = gql`\r\n mutation deleteUserTransfer($_id: String!){\r\n deleteUserTransfer(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const CONFIRM_USER_TRANSFER = gql`\r\n mutation confirmUserTransfer($_id: String!){\r\n confirmUserTransfer(_id: $_id)\r\n }\r\n`\r\n\r\nexport const ADD_USER_TRANSFER = gql`\r\nmutation(\r\n $input: AddUserTransferInput!,\r\n $files: [Upload],\r\n ){\r\n addUserTransfer(\r\n input: $input,\r\n files : $files,\r\n ) {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n transfer_histories {\r\n _id\r\n factoryCurrentId{\r\n _id,\r\n name\r\n },\r\n stationCurrentId{\r\n _id,\r\n name\r\n },\r\n factoryToId{\r\n _id,\r\n name\r\n },\r\n stationToId{\r\n _id,\r\n name\r\n },\r\n roleToAlias\r\n roleCurrentAlias\r\n note\r\n userTransferId {\r\n _id\r\n fullname\r\n username\r\n }\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n}\r\n`;\r\n\r\nexport const UPDATE_USER_TRANSFER = gql`\r\nmutation(\r\n $_id: String!,\r\n $input: AddUserTransferInput!,\r\n $files: [Upload],\r\n ) {\r\n updateUserTransfer(\r\n _id: $_id,\r\n input: $input,\r\n files : $files,\r\n ) {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n transfer_histories {\r\n _id\r\n factoryCurrentId{\r\n _id,\r\n name\r\n },\r\n stationCurrentId{\r\n _id,\r\n name\r\n },\r\n factoryToId{\r\n _id,\r\n name\r\n },\r\n stationToId{\r\n _id,\r\n name\r\n },\r\n roleToAlias\r\n roleCurrentAlias\r\n note\r\n userTransferId {\r\n _id\r\n fullname\r\n username\r\n }\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n}\r\n`;\r\n\r\nexport const SEND_RESET_PASSWORD_EMAIL = gql`\r\n mutation(\r\n $email: String!\r\n ) {\r\n sendResetPasswordEmail(\r\n email: $email\r\n )\r\n }\r\n`;\r\n\r\nexport const RESET_PASSWORD_EMAIL = gql`\r\n mutation(\r\n $token: String!,\r\n $newPassword: String!\r\n ) {\r\n resetPassword(\r\n token: $token,\r\n newPassword: $newPassword\r\n ){\r\n sessionId\r\n }\r\n }\r\n`;\r\n\r\nexport const CHANGE_ACTIVE = gql`\r\n mutation($_id: String!) {\r\n changeActiveAccount(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const WRITE_DIARY = gql`\r\n mutation ($_id: String!) {\r\n writeDiaryCreateUser(_id: $_id)\r\n }\r\n`","import { gql } from \"@apollo/client\";\r\nexport const ADD_FACTORY = gql`\r\n mutation($input:AddFactoryInput){\r\n addFactory(input: $input){\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n type\r\n alias\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\nexport const EDIT_FACTORY = gql`\r\n mutation ($input: EditFactoryInput){\r\n editFactory(input: $input) {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n type\r\n alias\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\nexport const DELETE_FACTORY = gql`\r\n mutation deleteFactory($_id: String!){\r\n deleteFactory(_id: $_id)\r\n }\r\n`;\r\nexport const ADD_STATION = gql`\r\n mutation($input:AddStationInput){\r\n addStation(input: $input) {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n alias\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n factory\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_STATION = gql`\r\n mutation deleteStation($_id: String!){\r\n deleteStation(_id: $_id)}\r\n `;\r\nexport const UPDATE_STATION = gql`\r\n mutation ($input: EditStationInput){\r\n updateStation(input: $input) {\r\n _id\r\n name\r\n address {\r\n detail\r\n ward {\r\n code\r\n name\r\n }\r\n district {\r\n code\r\n name\r\n }\r\n city {\r\n code\r\n name\r\n }\r\n }\r\n phone\r\n fax\r\n workingArea\r\n description\r\n coordinates {\r\n latitude\r\n longitude\r\n }\r\n factory\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n `;","import { gql } from '@apollo/client';\r\nexport const ADD_DEVICE = gql`\r\n mutation ($input: AddDeviceInput!, $files: [Upload]) {\r\n addDevice(input: $input, files: $files) {\r\n _id\r\n name\r\n sku\r\n info\r\n installTime\r\n product {\r\n model\r\n original\r\n year\r\n }\r\n status\r\n maintainCycle {\r\n ammount\r\n type\r\n }\r\n note\r\n responsibleBy\r\n serial\r\n assetCodeId {\r\n _id\r\n name\r\n code\r\n }\r\n stationId {\r\n _id\r\n name\r\n factory\r\n }\r\n factoryId {\r\n _id\r\n name\r\n }\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n deleted\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_DEVICE = gql`\r\n mutation updateDevice(\r\n $input: AddDeviceInput!\r\n $_id: String!\r\n $files: [Upload]\r\n ) {\r\n updateDevice(input: $input, files: $files, _id: $_id) {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_DEVICE = gql`\r\n mutation deleteDevice($_id: String!) {\r\n deleteDevice(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const ADD_DEVICE_HISTORY = gql`\r\n mutation addDeviceHistory($input: AddDeviceHistoryInput!, $files: [Upload]) {\r\n addDeviceHistory(input: $input, files: $files) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n status\r\n workId {\r\n _id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_OPERATING_DIARY = gql`\r\n mutation addOperatingDiary($input: AddDeviceOperatingDiary!, $files: [Upload]) {\r\n addOperatingDiary(input: $input, files: $files) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n }\r\n } \r\n`;\r\n\r\nexport const UPDATE_DEVICE_HISTORY = gql`\r\n mutation updateDeviceHistory(\r\n $input: AddDeviceHistoryInput!\r\n $_id: String!\r\n $files: [Upload]\r\n ) {\r\n updateDeviceHistory(input: $input, _id: $_id, files: $files) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n status\r\n workId {\r\n _id\r\n name\r\n }\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_OPERATING_DIARY = gql`\r\n mutation updateOperatingDiary(\r\n $_id: String!\r\n $input: AddDeviceOperatingDiary!,\r\n $files: [Upload]\r\n ) {\r\n updateOperatingDiary(input: $input, _id: $_id, files: $files) {\r\n _id\r\n name\r\n deviceSku\r\n original\r\n positionUsing\r\n # time_start\r\n # time_stop\r\n note\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_DEVICE_HISTORY = gql`\r\n mutation deleteDeviceHistory($_id: String!) {\r\n deleteDeviceHistory(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const DELETE_OPERATING_DIARY = gql`\r\n mutation deleteOperatingDiary($_id: String!) {\r\n deleteOperatingDiary(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const GET_LINK_OPERATING_DIARY = gql`\r\n mutation getLinkExportDeviceOperatingDiary(\r\n $search: String\r\n $devicesId: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startTime: DateTime\r\n $endTime: DateTime\r\n $statusOperating: [EnumStatusOperating]\r\n $statusDevice: [EnumStatusDevice]\r\n ) {\r\n getLinkExportDeviceOperatingDiary(\r\n searchOptions: {\r\n search: $search\r\n devicesId: $devicesId\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startTime: $startTime\r\n endTime: $endTime\r\n statusOperating: $statusOperating\r\n statusDevice: $statusDevice\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const ADD_DEVICE_SCHEDULE = gql`\r\n mutation addDeviceScheduler($input: AddDeviceScheduler!) {\r\n addDeviceScheduler(input: $input) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n content\r\n type\r\n startTime\r\n endTime\r\n nextTime\r\n isRunning\r\n isActive\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n deleted\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_DEVICE_SCHEDULE = gql`\r\n mutation updateDeviceScheduler($_id: String!, $input: AddDeviceScheduler!) {\r\n updateDeviceScheduler(_id: $_id, input: $input) {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n content\r\n type\r\n startTime\r\n endTime\r\n nextTime\r\n isRunning\r\n isActive\r\n createdAt\r\n updatedAt\r\n createdBy\r\n updatedBy\r\n deleted\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_DEVICE_SCHEDULE = gql`\r\n mutation deleteDeviceScheduler($_id: String!) {\r\n deleteDeviceScheduler(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const ADD_DEVICE_TRANSFER = gql`\r\n mutation ($input: AddDeviceTransferInput!, $files: [Upload]) {\r\n addDeviceTransfer(input: $input, files: $files) {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n transfer_histories {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n factoryCurrentId {\r\n _id\r\n name\r\n }\r\n stationCurrentId {\r\n _id\r\n name\r\n }\r\n factoryToId {\r\n _id\r\n name\r\n }\r\n stationToId {\r\n _id\r\n name\r\n }\r\n note\r\n deviceTransferId\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_DEVICE_TRANSFER = gql`\r\n mutation ($_id: String!, $input: AddDeviceTransferInput!, $files: [Upload]) {\r\n updateDeviceTransfer(_id: $_id, input: $input, files: $files) {\r\n _id\r\n confirmId\r\n confirmDate\r\n certificateId\r\n certificateDate\r\n reason\r\n content\r\n confirmUserId\r\n isConfirm\r\n transfer_histories {\r\n _id\r\n deviceId {\r\n _id\r\n name\r\n sku\r\n }\r\n factoryCurrentId {\r\n _id\r\n name\r\n }\r\n stationCurrentId {\r\n _id\r\n name\r\n }\r\n factoryToId {\r\n _id\r\n name\r\n }\r\n stationToId {\r\n _id\r\n name\r\n }\r\n note\r\n deviceTransferId\r\n }\r\n createdAt\r\n updatedAt\r\n createdBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n updatedBy {\r\n _id\r\n fullname\r\n username\r\n }\r\n deleted\r\n deletedAt\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_DEVICE_TRANSFER = gql`\r\n mutation deleteDeviceTransfer($_id: String!) {\r\n deleteDeviceTransfer(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const CONFIRM_DEVICE_TRANSFER = gql`\r\n mutation confirmDeviceTransfer($_id: String!) {\r\n confirmDeviceTransfer(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const GET_LINK_HISTORY = gql`\r\n mutation getLinkExportDeviceHistory(\r\n $search: String\r\n $devicesId: [String]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startTime: DateTime\r\n $endTime: DateTime\r\n $status: [EnumSearchDeviceHistory]\r\n $workingsBy: [String]\r\n $type: Int\r\n ) {\r\n getLinkExportDeviceHistory(\r\n searchOptions: {\r\n search: $search\r\n devicesId: $devicesId\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startTime: $startTime\r\n endTime: $endTime\r\n status: $status\r\n workingsBy: $workingsBy\r\n type: $type\r\n }\r\n )\r\n }\r\n`;\r\n","import { gql } from \"@apollo/client\";\r\nexport const ADD_ASSET_CODE = gql`\r\n mutation \r\n addAssetCode(\r\n $name : String!,\r\n $code :String!,\r\n $note : String,\r\n ) {\r\n addAssetCode(\r\n input :{\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n }\r\n ) {\r\n _id\r\n name\r\n code\r\n note\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_GROUP_DEVICES_CODE = gql`\r\n mutation\r\n addDeviceGroupCode(\r\n $name: String!,\r\n $code: String!,\r\n $note: String,\r\n ) {\r\n addDeviceGroupCode( input : {\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n }) {\r\n _id\r\n name\r\n code\r\n note\r\n }\r\n }\r\n`;\r\n\r\nexport const UPDATE_ASSET = gql`\r\n mutation\r\n updateAssetCode(\r\n $name : String!,\r\n $code :String!,\r\n $note : String,\r\n $_id: String!,\r\n ){\r\n updateAssetCode(\r\n input: {\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n },\r\n _id: $_id,\r\n ) {\r\n _id\r\n name\r\n code\r\n note\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_ASSET = gql`\r\n mutation\r\n deleteAssetCode($_id: String){\r\n deleteAssetCode(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const DELETE_GROUP_DEVICE = gql`\r\n mutation\r\n deleteDeviceGroupCode(\r\n $_id: String!\r\n ) {\r\n deleteDeviceGroupCode( _id: $_id)\r\n }\r\n`;\r\n\r\nexport const UPDATE_GROUP_DEVICES = gql`\r\n mutation\r\n updateDeviceGroupCode(\r\n $_id: String!\r\n $name: String!,\r\n $code: String!,\r\n $note: String,\r\n ) {\r\n updateDeviceGroupCode( input : {\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n }, _id: $_id)\r\n {\r\n _id,\r\n name,\r\n code,\r\n note,\r\n deleted\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_WORK_LIST_CODE = gql`\r\n mutation\r\n addWorkListCode(\r\n $name: String!,\r\n $code: String!,\r\n $note: String,\r\n ) {\r\n addWorkListCode( input : {\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n }){\r\n _id\r\n name\r\n code\r\n note\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_WORK_LIST = gql`\r\n mutation\r\n deleteWorkListCode(\r\n $_id: String!\r\n ) {\r\n deleteWorkListCode( _id: $_id)\r\n }\r\n`;\r\n\r\nexport const UPDATE_WORK_LIST = gql`\r\n mutation\r\n updateWorkListCode(\r\n $_id: String!\r\n $name: String!,\r\n $code: String!,\r\n $note: String,\r\n ) {\r\n updateWorkListCode( input : {\r\n name: $name,\r\n code: $code,\r\n note: $note,\r\n }, _id: $_id)\r\n {\r\n _id\r\n name\r\n code\r\n note\r\n deleted\r\n }\r\n }\r\n`;\r\n\r\n","import { gql } from \"@apollo/client\";\r\nexport const EDIT_STORE_EMAIL_SETTING = gql`\r\n mutation editAndStoreEmailSetting (\r\n $service :String!,\r\n $host :String!,\r\n $serverEmail :EnumEmailServer!,\r\n $security :EnumEmailSecurity!,\r\n $port :Int!,\r\n $accuracy :Boolean!,\r\n $account :String!,\r\n $password :String!,\r\n $sendFrom :String!,\r\n ){\r\n editAndStoreEmailSetting (\r\n input :{\r\n service : $service,\r\n host : $host,\r\n serverEmail : $serverEmail,\r\n security : $security,\r\n port : $port,\r\n accuracy : $accuracy,\r\n account : $account,\r\n password : $password,\r\n sendFrom : $sendFrom,\r\n }\r\n ){\r\n service \r\n host\r\n serverEmail \r\n security\r\n port\r\n accuracy\r\n account\r\n password\r\n sendFrom\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_EMAIL_SETTING = gql`\r\n mutation{\r\n deleteEmailSetting{\r\n service\r\n host\r\n serverEmail\r\n security\r\n port\r\n accuracy\r\n account\r\n password\r\n sendFrom\r\n mailCC\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const RESTORE_EMAIL_SETTING = gql`\r\n mutation{\r\n restoreEmailSetting{\r\n service\r\n host\r\n serverEmail\r\n security\r\n port\r\n accuracy\r\n account\r\n password\r\n sendFrom\r\n mailCC\r\n deleted\r\n createdAt\r\n updatedAt\r\n deletedAt\r\n createdBy\r\n updatedBy\r\n deletedBy\r\n }\r\n }\r\n`;\r\n\r\nexport const GET_LINK = gql`\r\n mutation getLinkFile($_id: String!){\r\n getLinkFile(_id: $_id)\r\n \r\n }\r\n`;\r\n\r\nexport const STORE_PERMISSIONS = gql`\r\n mutation\r\n storePermissions(\r\n $user_id: String!,\r\n $post: Object,\r\n ) {\r\n storePermissions(\r\n user_id: $user_id,\r\n post: $post)\r\n }\r\n`;\r\n\r\nexport const STORE_PERMISSION_REGION = gql`\r\n mutation\r\n storePermissionRegion(\r\n $user_id: String!,\r\n $inputs: [StorePRegionInput]!,\r\n ) {\r\n storePermissionRegion(\r\n user_id: $user_id,\r\n inputs: $inputs\r\n )\r\n }\r\n`;\r\n\r\nexport const SEND_EMAIL_TEST = gql`\r\n mutation sendEmailTest (\r\n $service :String!,\r\n $host :String!,\r\n $serverEmail :EnumEmailServer!,\r\n $security :EnumEmailSecurity!,\r\n $port :Int!,\r\n $accuracy :Boolean!,\r\n $account :String!,\r\n $password :String!,\r\n $sendFrom :String!,\r\n $mailCC :String,\r\n $sendTo :String!\r\n $subject :String,\r\n $content :String\r\n ){\r\n sendEmailTest (\r\n input :{\r\n service : $service,\r\n host : $host,\r\n serverEmail : $serverEmail,\r\n security : $security,\r\n port : $port,\r\n accuracy : $accuracy,\r\n account : $account,\r\n password : $password,\r\n sendFrom : $sendFrom,\r\n mailCC : $mailCC,\r\n sendTo : $sendTo,\r\n subject : $subject,\r\n content : $content\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const REFRESH_PERMISSIONS = gql`\r\nmutation refreshPermissions (\r\n $user_id :String!,\r\n\t){\r\n refreshPermissions(user_id: $user_id)\r\n}\r\n`;\r\n\r\nexport const READ_NOTIFICATION = gql`\r\nmutation readNotification($_id:[String!]!){\r\n readNotification(_id: $_id)\r\n}\r\n`;\r\n\r\nexport const GET_LINK_DIARY = gql`\r\nmutation getLinkExportDiary(\r\n $search: String, \r\n $startTime: DateTime,\r\n $endTime: DateTime,\r\n $userId: [String],\r\n $ctx: [String],\r\n ){\r\n getLinkExportDiary(\r\n searchOptions: {\r\n search: $search,\r\n startTime: $startTime,\r\n endTime: $endTime,\r\n userId: $userId,\r\n ctx: $ctx,\r\n }\r\n )\r\n}\r\n`;\r\n\r\nexport const DELETE_FILE = gql`\r\n mutation deleteFile($_id: String!){\r\n deleteFile(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const GET_LINK_STATIC_SCHEDULER = gql`\r\n mutation getLinkExportStatisticScheduler(\r\n $period: Int,\r\n ){\r\n getLinkExportStatisticScheduler(\r\n searchOptions: {\r\n period: $period,\r\n }\r\n )\r\n }\r\n`;","import { gql } from '@apollo/client';\r\nexport const ADD_CYCLE_MAINTAIN = gql`\r\n mutation ($input: AddCycleMaintainInput!, $files: [Upload]) {\r\n addCycleMaintain(input: $input, files: $files) {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\nexport const UPDATE_CYCLE_MAINTAIN = gql`\r\n mutation ($_id: String!, $input: AddCycleMaintainInput!, $files: [Upload]) {\r\n updateCycleMaintain(_id: $_id, input: $input, files: $files) {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_CYCLE_MAINTAIN = gql`\r\n mutation deleteCycleMaintain($_id: String!) {\r\n deleteCycleMaintain(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const ADD_CYCLE_WORK = gql`\r\n mutation ($input: AddWorkInput!, $files: [Upload]) {\r\n addCycleWork(input: $input, files: $files) {\r\n _id\r\n }\r\n }\r\n`;\r\n\r\nexport const EDIT_CYCLE_WORK = gql`\r\n mutation ($_id: String!, $input: AddWorkInput!, $files: [Upload]) {\r\n updateCycleWork(_id: $_id, input: $input, files: $files) {\r\n _id\r\n }\r\n }\r\n`;\r\n\r\nexport const DELETE_CYCLE_WORK = gql`\r\n mutation deleteWork($_id: String!) {\r\n deleteWork(_id: $_id)\r\n }\r\n`;\r\n\r\nexport const CHANGE_STATUS = gql`\r\n mutation changeStatusWork($_id: String!, $status: EnumStatusWork!) {\r\n changeStatusWork(_id: $_id, status: $status) {\r\n _id\r\n }\r\n }\r\n`;\r\n\r\nexport const ADD_WORK_DETAIl = gql`\r\n mutation addWorkDetail($_id: String!, $inputs: [AddWorkingDetailInput]) {\r\n addWorkDetail(_id: $_id, inputs: $inputs)\r\n }\r\n`;\r\n\r\nexport const ACCEPT_WORK = gql`\r\n mutation acceptWork($_id: String!) {\r\n acceptWork(_id: $_id) {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const CHANGE_STATUS_CYCLE = gql`\r\n mutation changeStatusCycleMaintain(\r\n $_id: String!\r\n $status: EnumStatusCycleMaintain!\r\n ) {\r\n changeStatusCycleMaintain(_id: $_id, status: $status)\r\n }\r\n`;\r\n\r\nexport const GET_LINK_CYCLE_MAINTAIN = gql`\r\n mutation getLinkExportCycleMaintain(\r\n $search: String\r\n $status: String\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $type: Int\r\n ) {\r\n getLinkExportCycleMaintain(\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n startDate: $startDate\r\n endDate: $endDate\r\n type: $type\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const GET_LINK_EMERGENCY = gql`\r\n mutation getLinkExportEmergency(\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $workCodesId: [String]\r\n $type: Int\r\n $isCycleMaitain: Int\r\n $isAccept: Int\r\n ) {\r\n getLinkExportEmergency(\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n endDate: $endDate\r\n workCodesId: $workCodesId\r\n type: $type\r\n isCycleMaitain: $isCycleMaitain\r\n isAccept: $isAccept\r\n }\r\n )\r\n }\r\n`;\r\nexport const GET_LINK_STATIC = gql`\r\n mutation getLinkExportStatisticMaintain(\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $cycleMaintainId: String\r\n $type: Int\r\n $isPublic: Boolean\r\n $isAccept: Int\r\n $createdBy: [String]\r\n ) {\r\n getLinkExportStatisticMaintain(\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n endDate: $endDate\r\n cycleMaintainId: $cycleMaintainId\r\n type: $type\r\n isAccept: $isAccept\r\n createdBy: $createdBy\r\n isPublic: $isPublic\r\n }\r\n )\r\n }\r\n`;\r\nexport const GET_LINK_DETAIL = gql`\r\n mutation getLinkExportCycle(\r\n $_id: String!\r\n $search: String\r\n $status: [EnumAllStatusWork]\r\n $factoriesId: [String]\r\n $stationsId: [String]\r\n $startDate: DateTime\r\n $endDate: DateTime\r\n $workCodesId: [String]\r\n $deviceGroupId: [String]\r\n $type: Int\r\n $isAccept: Int\r\n ) {\r\n getLinkExportCycle(\r\n _id: $_id\r\n searchOptions: {\r\n search: $search\r\n status: $status\r\n factoriesId: $factoriesId\r\n stationsId: $stationsId\r\n startDate: $startDate\r\n endDate: $endDate\r\n workCodesId: $workCodesId\r\n type: $type\r\n deviceGroupId: $deviceGroupId\r\n isAccept: $isAccept\r\n }\r\n )\r\n }\r\n`;\r\n\r\nexport const DUPLICATE_CYCLE_MAINTAIN = gql`\r\n mutation duplicateCycleMaintain(\r\n $_id: String!\r\n $input: AddCycleMaintainInput!\r\n ) {\r\n duplicateCycleMaintain(_id: $_id, input: $input) {\r\n _id\r\n name\r\n }\r\n }\r\n`;\r\n\r\nexport const IMPORT_FILE_MAINTAIN = gql`\r\n mutation (\r\n $input: AddCycleMaintainInput!\r\n $files: [Upload]\r\n $importFile: Upload!\r\n ) {\r\n importCycleMaintain(input: $input, files: $files, importFile: $importFile)\r\n }\r\n`;\r\n","import { gql } from \"@apollo/client\";\r\nexport const ADD_EMERGENCY = gql`\r\n mutation(\r\n $input: AddWorkInput!,\r\n $files: [Upload],\r\n ){\r\n addEmergencyWork(\r\n input: $input,\r\n files : $files,\r\n ){\r\n _id\r\n status\r\n }\r\n }\r\n`;\r\nexport const UPDATE_EMERGENCY = gql`\r\n mutation($_id: String!, $input: AddWorkInput!,$files: [Upload]){\r\n updateEmergencyWork(\r\n _id: $_id,\r\n input: $input,\r\n files : $files,){\r\n _id\r\n }\r\n }\r\n`","import alertLang from './alert';\r\nimport docsExplorer from './docs_explorer';\r\nimport emailSetting from './email_setting';\r\nimport systemCategory from './system_category';\r\nimport splashLang from './splash';\r\nimport roleSetting from './role_setting';\r\n\r\nexport const indexGeneral = Object.assign({},\r\n alertLang,\r\n docsExplorer,\r\n emailSetting,\r\n systemCategory,\r\n splashLang,\r\n roleSetting\r\n)","module.exports = Object.freeze({\r\n ALERT: \"Thông báo\",\r\n EXITED_USERNAME: \"Tên đăng nhập đã tồn tại\",\r\n EXITED_EMAIL: \"Email đã tồn tại\",\r\n ACCESS_EXPIRE: \"Phiên làm việc đã kết thúc xin hãy đăng nhập lại\",\r\n PASSWORD_ERROR: \"Mật khẩu không chính xác\",\r\n EMAIL_ERROR: \"Email đã tồn tại hoặc sai cú pháp\",\r\n USERNAME_ERROR: \"Tên đăng nhập đã tồn tại hoặc sai cú pháp\",\r\n FULL_NAME_ERROR: \"Tên người dùng không chính xác\",\r\n SUCCESS: \"Thành công\",\r\n SUCCESS_EMAIL: \"Gửi e-mail kiểm tra cấu hình thành công\",\r\n SUCCESS_EDITED: \"Chỉnh sửa thành công\",\r\n SUCCESS_RESTORE: \"Khôi phục thành công\",\r\n SUCCESS_ADDED_DATA: 'Thêm dữ liệu thành công',\r\n SUCCESS_SAVED: \"Lưu thành công\",\r\n SUCCESS_DELETED_WORK_HISTORY: \"Xóa lịch sử công việc thành công\",\r\n SUCCESS_DELETED_DEPARTMENT: 'Xóa đơn vị thành công!',\r\n SUCCESS_DELETED_FAIL: 'Xóa phòng ban thất bại vui lòng kiểm tra lại',\r\n INPUT_INFORMATION_ERROR: \"Thông tin nhập không chính xác\",\r\n TYPE_IMAGE_ERROR: \"Kiểu file ảnh không đúng\",\r\n CONNECTION_ERROR: \"Có lỗi kết nối xin hãy thử lại\",\r\n CONTINUE: \"Bạn có muốn tiếp tục thao tác không?\",\r\n CONTINUE_LOGOUT: \"Bạn có muốn đăng xuất không?\",\r\n NO_PERMISSION_VIEW_PAGE: \"Bạn không có quyền truy cập vào trang này!\",\r\n YES: \"Có\",\r\n NO: \"Không\",\r\n NO_RESULTS: 'Không có kết quả phù hợp',\r\n NO_DATA: 'Không có dữ liệu',\r\n ERROR_LOGIN: 'Lỗi đăng nhập thất bại, vui lòng kiểm tra lại',\r\n LOCK_ACCOUNT: 'Tài khoản đã bị khóa, xin vui lòng liên hệ với Quản trị viên để hỗ trợ.'\r\n});\r\n","module.exports = Object.freeze({\r\n FILE_STORAGE: 'Quản lý tài liệu',\r\n SENDER:'Người gửi',\r\n FROM_DATE: 'Từ Ngày',\r\n TO_DATE: 'Đến Ngày',\r\n SENT_DATE: 'Ngày gửi',\r\n PERIOD_OF_TIME: 'Chọn khoảng thời gian',\r\n READ_DOCUMENT: 'Xem trước',\r\n DOWNLOAD_DOCUMENT:'Tải xuống',\r\n ASK_DOWNLOAD: 'Bạn có muốn tiếp tục tải file xuống không?',\r\n ASK_DOWNLOAD_QRCODE: 'Bạn có muốn tiếp tục tải qrcode xuống không?',\r\n NO_DATA_TO_EXPORT: 'Không có dữ liệu để xuất file',\r\n NO_FILE: 'Không có tài liệu',\r\n});","module.exports = Object.freeze({\r\n EMAIL_SETTING: \"Cấu hình e-mail\",\r\n GENERAL_SETTING: \"Cấu hình chung\",\r\n FROM_EMAIL: \"Địa chỉ Email gửi\",\r\n FROM_NAME: \"Tên người gửi\",\r\n PORT: \"Cổng\",\r\n HOST: \"Host\",\r\n SMTP_AUTHENTICATION: \"Xác thực SMTP\",\r\n PASSWORD: \"Mật khẩu\",\r\n SAVE: \"Lưu cấu hình\",\r\n SEND_EMAIL_TEST: \"Gửi Email mẫu\",\r\n PROXY:\"Proxy\",\r\n TLS:\"TLS\",\r\n SECURITY_NONE:\"Không mã hóa\",\r\n SECURITY:\"Phương thức mã hóa\",\r\n SERVER_EMAIL : \"Chọn máy chủ\",\r\n CUSTOM:\"CUSTOM\",\r\n SMTP:\"SMTP\",\r\n SERVICE: \"Service\",\r\n GMAIL:\"Gmail\",\r\n ZOHO:\"Zoho\",\r\n EXIT: \"Thoát\",\r\n INPUT_ERROR:\"Thông tin nhập không chính xác\",\r\n NO_RESULTS: 'Không có kết quả phù hợp',\r\n NO_DATA: 'Không có dữ liệu',\r\n NUMBER_ITEMS: \"Số phần tử\",\r\n SEND_TO: \"Gửi đến\",\r\n MAILCC: \"Mail CC\",\r\n TITLE_EMAIL: \"Tiêu đề\",\r\n CONTENT: \"Nội dung\",\r\n NO_EMAIL: 'Chưa nhập Email cần gửi',\r\n NO_EMAIL_OR_ERROR: 'Chưa nhập hoặc không đúng định dạng Email',\r\n VALIDATE_EMAIL_FAIL: 'Định dạng Email không đúng',\r\n SENDFROM_ERROR: 'Tên người gửi phải dài từ 0 đến 50 ký tự',\r\n PASSWORD_ERROR: 'Mật khẩu phải dài từ 6 đến 20 ký tự',\r\n EMPTY_ERROR: 'Không được để trống'\r\n});","module.exports = Object.freeze({\r\n SYSTEM_NAME: \"Hệ thống quản trị điện tử\",\r\n TITLE: \"Hãy chọn phân hệ làm việc\",\r\n LOGIN: \"Đăng nhập\",\r\n HUMAN_RESOURCE: \"NHÂN SỰ\",\r\n HUMAN_RESOURCE_INTRO: \"Thông tin nhân sự, chế độ, tuyển dụng...\",\r\n PROPERTY_MAINTENANCE: \"BẢO TRÌ TÀI SẢN\",\r\n PROPERTY_MAINTENANCE_INTRO: \"Bảo trì, sửa chữa theo kế hoạch/đột xuất...\",\r\n ELECTRIC_OFFICE: \"VĂN PHÒNG ĐIỆN TỬ\",\r\n ELECTRIC_OFFICE_INTRO: \"Quản lý công văn, ban hành công văn, điều hành công ty...\",\r\n BUSINESS_ADMINISTRATION:\"QUẢN TRỊ KINH DOANH\",\r\n BUSINESS_ADMINISTRATION_INTRO:\"Maketing, hợp đồng cung cấp nước...\",\r\n CLIENT: \"KHÁCH HÀNG\",\r\n CLIENT_INTRO: \"Chăm sóc khách hàng, thông tin khách hàng...\",\r\n ACCOUNTANT: \"KẾ TOÁN\",\r\n ACCOUNTANT_INTRO: \"Công nợ, tài chính, lương...\",\r\n SYSTEM: \"HỆ THỐNG\",\r\n USER_INFORMATION: \"Thông tin người dùng\",\r\n ACCOUNT: \"Người dùng\",\r\n HOME_PAGE: 'Về trang chủ',\r\n ABOUT_US: 'Trang giới thiệu',\r\n LOG_OUT: 'Đăng xuất',\r\n});","module.exports = Object.freeze({\r\n COMPANY: \"CÔNG TY CỔ PHẦN NƯỚC SẠCH SỐ 2 HÀ NỘI\",\r\n COMAPNT_EN: \"HANOI WATER SUPPLY NUMBER 2 JOINT STOCK COMPANY\",\r\n});\r\n","module.exports = Object.freeze({\r\n STT: \"STT\",\r\n PAGE_NAME: \"Tên màn\",\r\n PAGE_FUNCTION: \"Chức năng\",\r\n SEARCH_PLACEHOLDER: 'Tìm kiếm theo tên màn hình',\r\n SAVE_SETTING: 'Lưu cài đặt',\r\n RESTORE_SETTING: 'Khôi phục mặc định',\r\n ADD: 'Thêm',\r\n EDIT: 'Sửa',\r\n DELETE: 'Xóa / Khôi phục',\r\n DOWNLOAD: 'Tải xuống',\r\n UPLOAD: 'Tải lên',\r\n EXPORT: 'Xuất file',\r\n READ: 'Xem',\r\n RESTORE: 'Khôi phục',\r\n CHECK_ALL: 'Chọn tất cả'\r\n});","export const PAGE_CONSTANT = 10;\r\nexport const PAGE_NOTIFICATION = 5;","import cookie from \"./cookie\";\r\nexport const indexConstant = Object.assign({},\r\n cookie,\r\n);\r\nexport * from './paGinate';","module.exports = Object.freeze({\r\n USER_DATA: 'U2FsdGVkX19+pmscS0yke+7VF+GQs',\r\n ACCESS_TOKEN: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',\r\n REFRESH_TOKEN: 'U2FsdGVkX1+44edyO9gsMPJdGridH',\r\n ROUTER: 'routers',\r\n NAVIGATION: 'navigation',\r\n PASSWORD: '5f4dcc3b5aa765d61d8327deb882cf99',\r\n USERNAME: '27087b329deeade828edd652d45461b2',\r\n});","/*\r\n* required polyfills\r\n*/\r\n\r\n/** IE9, IE10 and IE11 requires all of the following polyfills. **/\r\n// import \"core-js\";\r\n// import 'core-js/features/symbol'\r\n// import 'core-js/features/object'\r\n// import 'core-js/features/function'\r\n// import 'core-js/features/parse-int'\r\n// import 'core-js/features/parse-float'\r\n// import 'core-js/features/number'\r\n// import 'core-js/features/math'\r\n// import 'core-js/features/string'\r\n// import 'core-js/features/date'\r\n// import 'core-js/features/array'\r\n// import 'core-js/features/regexp'\r\n// import 'core-js/features/map'\r\n// import 'core-js/features/weak-map'\r\n// import 'core-js/features/set'\r\n// import 'core-js/features/set/map';\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/features/reflect';\r\n\r\n/** Evergreen browsers require these. **/\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\n// import 'core-js/features/reflect'\r\n\r\n// CustomEvent() constructor functionality in IE9, IE10, IE11\r\n(function () {\r\n\r\n if ( typeof window.CustomEvent === \"function\" ) return false\r\n\r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined }\r\n var evt = document.createEvent( 'CustomEvent' )\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail )\r\n return evt\r\n }\r\n\r\n CustomEvent.prototype = window.Event.prototype\r\n\r\n window.CustomEvent = CustomEvent\r\n})()\r\n\r\nif (!Element.prototype.matches) {\r\n Element.prototype.matches =\r\n Element.prototype.msMatchesSelector ||\r\n Element.prototype.webkitMatchesSelector;\r\n}\r\n\r\nif (!Element.prototype.closest) {\r\n Element.prototype.closest = function(s) {\r\n var el = this;\r\n\r\n do {\r\n if (Element.prototype.matches.call(el, s)) return el;\r\n el = el.parentElement || el.parentNode;\r\n } while (el !== null && el.nodeType === 1);\r\n return null;\r\n };\r\n}\r\n","import React from \"react\";\r\nimport {CImg, CContainer, CRow, CCol} from '@coreui/react'\r\nimport { imgs } from '../../../../assets/image/index';\r\nimport {indexGeneral} from '../../../../language/vn/general/_indexGeneral';\r\nimport styles from './splash.module.css';\r\nfunction Splash() {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
{indexGeneral.COMPANY}
\r\n
{indexGeneral.COMAPNT_EN}


\r\n
\r\n
\r\n
\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default Splash;","import React, { useState, useEffect } from \"react\";\r\nimport {\r\n BrowserRouter,\r\n Route,\r\n Switch,\r\n Redirect,\r\n useHistory,\r\n} from \"react-router-dom\";\r\nimport \"./scss/style.scss\";\r\nimport { ApolloProvider } from \"@apollo/client\";\r\nimport Cookies from \"js-cookie\";\r\nimport Splash from \"./views/pages/general/splash/splash\";\r\nimport { RefreshTokens, GetUser, GetMenu, getOutSide } from \"./utility/utils\";\r\nimport DialogUtil from \"./views/component/show_confirm_action\";\r\nimport { indexGeneral } from \"./language/vn/general/_indexGeneral\";\r\nimport { indexConstant } from \"./utility/constants/_indexConstants\";\r\nimport client from \"./client\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nrequire(\"dotenv\").config();\r\n\r\nconst loading = (\r\n
\r\n
\r\n
\r\n);\r\n\r\n// Funtions\r\nconst Functions = React.lazy(() =>\r\n import(\"./views/pages/general/system_category/system_category\")\r\n);\r\n\r\n// Containers\r\nconst TheLayout = React.lazy(() =>\r\n import(\"./views/containers/content/layouts\")\r\n);\r\n\r\n// Pages\r\nconst Login = React.lazy(() => import(\"./views/pages/users/login/login\"));\r\nconst ForgotPassword = React.lazy(() =>\r\n import(\"./views/pages/users/forgot_password/forgot_password\")\r\n);\r\nconst Error = React.lazy(() => import(\"./views/pages/error/error\"));\r\n\r\nconst App = () => {\r\n const dispatch = useDispatch();\r\n const [isLoading, setLoading] = useState(true);\r\n const [isAuthorizated, setAuthorization] = useState();\r\n const [pathLogin, setPathLogin] = useState(\"\");\r\n const [pathForgot, setPathForgot] = useState(\"\");\r\n const [pathLayout, setPathLayout] = useState(\"\");\r\n const routerLink = useSelector((state) => state.routerLink);\r\n\r\n useEffect(() => {\r\n if (routerLink) {\r\n routerLink.forEach((element) => {\r\n switch (element.function) {\r\n case \"LOGIN\":\r\n setPathLogin(element.to);\r\n break;\r\n case \"FORGOT_PASSWORD\":\r\n setPathForgot(element.to);\r\n break;\r\n // case \"FUNCTIONS\":\r\n // setPathFunction(element.to)\r\n // break;\r\n case \"THE_LAYOUT\":\r\n setPathLayout(element.to);\r\n break;\r\n default:\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n\r\n useEffect(() => {\r\n if (isLoading) {\r\n if (Cookies.get(indexConstant.ACCESS_TOKEN)) {\r\n GetUser().then(async (res) => {\r\n if (res.dataError || res.SeverError) {\r\n res.dataError\r\n ? await RefreshTokens().then(async (res) => {\r\n if (res.isError || !res.accessToken) {\r\n getOutSide().then(async (isOutSide) => {\r\n dispatch({ type: \"routerLink\", routerLink: isOutSide });\r\n setAuthorization(false);\r\n if (window.location.pathname !== \"/login\") {\r\n console.log(\r\n \"parameter \",\r\n window.location.pathname + window.location.search\r\n );\r\n dispatch({\r\n type: \"prevLink\",\r\n prevLink: window.location.pathname,\r\n });\r\n dispatch({\r\n type: \"paramLink\",\r\n paramLink: window.location.search,\r\n });\r\n }\r\n });\r\n } else {\r\n await GetUser().then(async (res) => {\r\n if (res.SeverError) {\r\n DialogUtil.showAlert(\r\n indexGeneral.ALERT,\r\n indexGeneral.CONNECTION_ERROR,\r\n () => {\r\n window.location.assign(\"/\");\r\n }\r\n );\r\n } else {\r\n dispatch({ type: \"user\", userData: res?.dataUser });\r\n let isMenu = await GetMenu();\r\n if (isMenu) {\r\n // let routers = CryptoJS.AES.encrypt(isMenu?.routers, process.env.REACT_APP_ENCRYPT_KEY)?.toString();\r\n // Cookies.set(\"routers\", routers);\r\n // let navigation = CryptoJS.AES.encrypt(isMenu?.navigation, process.env.REACT_APP_ENCRYPT_KEY)?.toString();\r\n // Cookies.set(\"navigation\", navigation);\r\n dispatch({ type: \"route\", routers: isMenu?.routers });\r\n dispatch({\r\n type: \"navigation\",\r\n navigation: isMenu?.navigation,\r\n });\r\n dispatch({\r\n type: \"routerLink\",\r\n routerLink: isMenu?.routerLink,\r\n });\r\n }\r\n setAuthorization(true);\r\n }\r\n });\r\n }\r\n })\r\n : DialogUtil.showAlert(\r\n indexGeneral.ALERT,\r\n indexGeneral.CONNECTION_ERROR,\r\n () => {\r\n window.location.assign(\"/\");\r\n }\r\n );\r\n } else {\r\n dispatch({ type: \"user\", userData: res?.dataUser });\r\n let isMenu = await GetMenu();\r\n if (isMenu) {\r\n // let routers = CryptoJS.AES.encrypt(JSON.stringify(isMenu?.routers), process.env.REACT_APP_ENCRYPT_KEY)?.toString();\r\n // Cookies.set(\"routers\", routers);\r\n // let navigation = CryptoJS.AES.encrypt(JSON.stringify(isMenu?.navigation), process.env.REACT_APP_ENCRYPT_KEY)?.toString();\r\n // Cookies.set(\"navigation\", navigation);\r\n dispatch({ type: \"route\", routers: isMenu?.routers });\r\n dispatch({ type: \"navigation\", navigation: isMenu?.navigation });\r\n dispatch({ type: \"routerLink\", routerLink: isMenu?.routerLink });\r\n }\r\n setAuthorization(true);\r\n }\r\n });\r\n } else {\r\n getOutSide().then(async (isOutSide) => {\r\n dispatch({ type: \"routerLink\", routerLink: isOutSide });\r\n setAuthorization(false);\r\n if (window.location.pathname !== \"/login\") {\r\n console.log(\r\n \"parameter \",\r\n window.location.pathname + window.location.search\r\n );\r\n dispatch({ type: \"prevLink\", prevLink: window.location.pathname });\r\n dispatch({ type: \"paramLink\", paramLink: window.location.search });\r\n }\r\n });\r\n }\r\n }\r\n return () => {\r\n setLoading(false);\r\n };\r\n }, [isAuthorizated]);\r\n\r\n return (\r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : !isAuthorizated ? (\r\n \r\n }\r\n />\r\n }\r\n />\r\n }\r\n />\r\n \r\n {/* } /> */}\r\n \r\n ) : (\r\n \r\n }\r\n />\r\n {/* } /> */}\r\n \r\n \r\n \r\n } />\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import {\r\n cibSkype,\r\n cibFacebook,\r\n cibTwitter,\r\n cibLinkedin,\r\n cibFlickr,\r\n cibTumblr,\r\n cibXing,\r\n cibGithub,\r\n cibStackoverflow,\r\n cibYoutube,\r\n cibDribbble,\r\n cibInstagram,\r\n cibPinterest,\r\n cibVk,\r\n cibYahoo,\r\n cibBehance,\r\n cibReddit,\r\n cibVimeo,\r\n cibCcMastercard,\r\n cibCcVisa,\r\n cibStripe,\r\n cibPaypal,\r\n cibGooglePay,\r\n cibCcAmex,\r\n cilZoomIn,\r\n cibHighly,\r\n cilSearch,\r\n cilAlarm,\r\n cilLan,\r\n cilArrowThickFromRight,\r\n cilInfo,\r\n cilCloudUpload,\r\n cilCopy,\r\n cilChartLine\r\n} from '@coreui/icons'\r\n\r\nimport {\r\n cifUs,\r\n cifBr,\r\n cifIn,\r\n cifFr,\r\n cifEs,\r\n cifPl\r\n} from '@coreui/icons'\r\n\r\nimport {\r\n cilAlbum,\r\n cilAlignCenter,\r\n cilAlignLeft,\r\n cilAlignRight,\r\n cilApplicationsSettings,\r\n cilArrowRight,\r\n cilArrowTop,\r\n cilAsterisk,\r\n cilPlus,\r\n cilBan,\r\n cilBasket,\r\n cilBell,\r\n cilBold,\r\n cilBookmark,\r\n cilCalculator,\r\n cilCalendar,\r\n cilCloudDownload,\r\n cilChartPie,\r\n cilCheck,\r\n cilChevronBottom,\r\n cilChevronLeft,\r\n cilChevronRight,\r\n cilChevronTop,\r\n cilCircle,\r\n cilCheckCircle,\r\n cilCode,\r\n cilCommentSquare,\r\n cilCreditCard,\r\n cilCursor,\r\n cilCursorMove,\r\n cilDrop,\r\n cilDollar,\r\n cilEyedropper,\r\n cilEnvelopeClosed,\r\n cilEnvelopeLetter,\r\n cilEnvelopeOpen,\r\n cilEuro,\r\n cilGlobeAlt,\r\n cilGrid,\r\n cilFile,\r\n cilFullscreen,\r\n cilFullscreenExit,\r\n cilGraph,\r\n cilHome,\r\n cilInbox,\r\n cilIndentDecrease,\r\n cilIndentIncrease,\r\n cilInputPower,\r\n cilItalic,\r\n cilJustifyCenter,\r\n cilJustifyLeft,\r\n cilLaptop,\r\n cilLayers,\r\n cilLightbulb,\r\n cilList,\r\n cilListNumbered,\r\n cilListRich,\r\n cilLocationPin,\r\n cilLockLocked,\r\n cilMagnifyingGlass,\r\n cilMap,\r\n cilMoon,\r\n cilNotes,\r\n cilOptions,\r\n cilPaperclip,\r\n cilPaperPlane,\r\n cilPencil,\r\n cilPeople,\r\n cilPhone,\r\n cilPrint,\r\n cilPuzzle,\r\n cilSave,\r\n cilScrubber,\r\n cilSettings,\r\n cilShare,\r\n cilShareAll,\r\n cilShareBoxed,\r\n cilShieldAlt,\r\n cilSpeech,\r\n cilSpeedometer,\r\n cilSpreadsheet,\r\n cilStar,\r\n cilSun,\r\n cilTags,\r\n cilTask,\r\n cilTrash,\r\n cilUnderline,\r\n cilUser,\r\n cilUserFemale,\r\n cilUserFollow,\r\n cilUserUnfollow,\r\n cilX,\r\n cilXCircle,\r\n cilWarning,\r\n cilCamera,\r\n cibMinutemailer,\r\n cibCircle,\r\n cilQrCode,\r\n cibXcode,\r\n cilElevator,\r\n cilSync\r\n} from '@coreui/icons'\r\n\r\nexport const icons = Object.assign({}, {\r\n cilChartLine,\r\n cilCopy,\r\n cilArrowThickFromRight,\r\n cilLan,\r\n cilAlignCenter,\r\n cilSearch,\r\n cibCircle,\r\n cibHighly,\r\n cilZoomIn,\r\n cilPlus,\r\n cilAlignLeft,\r\n cilAlignRight,\r\n cilApplicationsSettings,\r\n cilArrowRight,\r\n cilArrowTop,\r\n cilAsterisk,\r\n cilAlbum,\r\n cilBan,\r\n cilBasket,\r\n cilBell,\r\n cilBold,\r\n cilBookmark,\r\n cilCalculator,\r\n cilCalendar,\r\n cilCloudDownload,\r\n cilChartPie,\r\n cilCheck,\r\n cilChevronBottom,\r\n cilChevronLeft,\r\n cilChevronRight,\r\n cilChevronTop,\r\n cilCircle,\r\n cilCheckCircle,\r\n cilCode,\r\n cilCommentSquare,\r\n cilCreditCard,\r\n cilCursor,\r\n cilCursorMove,\r\n cilDrop,\r\n cilDollar,\r\n cilEyedropper,\r\n cilEnvelopeClosed,\r\n cilEnvelopeLetter,\r\n cilEnvelopeOpen,\r\n cilEuro,\r\n cilGlobeAlt,\r\n cilGrid,\r\n cilFile,\r\n cilFullscreen,\r\n cilFullscreenExit,\r\n cilGraph,\r\n cilHome,\r\n cilInbox,\r\n cilIndentDecrease,\r\n cilIndentIncrease,\r\n cilInputPower,\r\n cilItalic,\r\n cilJustifyCenter,\r\n cilJustifyLeft,\r\n cilLaptop,\r\n cilLayers,\r\n cilLightbulb,\r\n cilList,\r\n cilListNumbered,\r\n cilListRich,\r\n cilLocationPin,\r\n cilLockLocked,\r\n cilMagnifyingGlass,\r\n cilMap,\r\n cilMoon,\r\n cilNotes,\r\n cilOptions,\r\n cilPaperclip,\r\n cilPaperPlane,\r\n cilPencil,\r\n cilPeople,\r\n cilPhone,\r\n cilPrint,\r\n cilPuzzle,\r\n cilSave,\r\n cilScrubber,\r\n cilSettings,\r\n cilShare,\r\n cilShareAll,\r\n cilShareBoxed,\r\n cilShieldAlt,\r\n cilSpeech,\r\n cilSpeedometer,\r\n cilSpreadsheet,\r\n cilStar,\r\n cilSun,\r\n cilTags,\r\n cilTask,\r\n cilTrash,\r\n cilUnderline,\r\n cilUser,\r\n cilUserFemale,\r\n cilUserFollow,\r\n cilUserUnfollow,\r\n cilX,\r\n cilXCircle,\r\n cilWarning,\r\n cilCamera,\r\n cibMinutemailer,\r\n cilInfo,\r\n cilCloudUpload\r\n}, {\r\n cifUs,\r\n cifBr,\r\n cifIn,\r\n cifFr,\r\n cifEs,\r\n cifPl\r\n}, {\r\n cibSkype,\r\n cibFacebook,\r\n cibTwitter,\r\n cibLinkedin,\r\n cibFlickr,\r\n cibTumblr,\r\n cibXing,\r\n cibGithub,\r\n cibStackoverflow,\r\n cibYoutube,\r\n cibDribbble,\r\n cibInstagram,\r\n cibPinterest,\r\n cibVk,\r\n cibYahoo,\r\n cibBehance,\r\n cibReddit,\r\n cibVimeo,\r\n cibCcMastercard,\r\n cibCcVisa,\r\n cibStripe,\r\n cibPaypal,\r\n cibGooglePay,\r\n cibCcAmex,\r\n cilSearch,\r\n cilQrCode,\r\n cilAlarm,\r\n cibXcode,\r\n cilElevator,\r\n cilSync\r\n})\r\n","import \"react-app-polyfill/ie11\"; // For IE 11 support\r\nimport \"react-app-polyfill/stable\";\r\nimport \"core-js\";\r\nimport \"./polyfill\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport App from \"./App\";\r\n\r\nimport { icons } from \"./assets/icons\";\r\n\r\nimport { Provider } from \"react-redux\";\r\nimport store from \"./store\";\r\n\r\nReact.icons = icons;\r\nif (process.env.NODE_ENV === \"production\") {\r\n window.console.log = () => {};\r\n window.console.debug = () => {};\r\n // window.console.info = () => {};\r\n window.console.warn = () => {};\r\n window.console.error = () => {};\r\n\r\n console.info(\r\n \"%cHello\",\r\n \"color: #0093dd; font-weight: bold, text-transform: uppercase; font-family: 'Open Sans', sans-serif;; font-size: 20px\"\r\n );\r\n console.info(\r\n \"%cOur product was built base one Typescript, NodeJS, ExpressJS, Apollo Server, MongoDB, Redis and lots of love.\\n\\nWanna join with us? Click this link 👉 https://www.akb.com.vn/tuyen-dung/\",\r\n \"color: #0093dd; font-family: 'Open Sans', sans-serif;; font-size: 13px\"\r\n );\r\n}\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n","import Cookies from \"js-cookie\";\r\nimport moment from \"moment\";\r\nimport client from \"../client\";\r\nimport CryptoJS from \"crypto-js\";\r\nimport { REFRESH_TOKENS } from \"../graphql/mutations/_indexMutations\";\r\nimport {\r\n GET_USER,\r\n GET_MENU,\r\n GET_OUTSIDE,\r\n GET_PERMISSIONS,\r\n GET_PERMISSIONS_HISTORY\r\n} from \"../graphql/queries/_indexQueries\";\r\nimport { indexConstant } from \"../utility/constants/_indexConstants\";\r\nimport DialogUtil from \"../views/component/show_confirm_action\";\r\nimport { isDateTime } from \"../utility/validate_checking\";\r\nrequire(\"dotenv\").config();\r\n\r\nconst RefreshTokens = async () => {\r\n let res = {\r\n accessToken: null,\r\n isError: false,\r\n };\r\n await client\r\n .mutate({\r\n mutation: REFRESH_TOKENS,\r\n variables: {\r\n accessToken: Cookies.get(indexConstant.ACCESS_TOKEN),\r\n refreshToken: CryptoJS.AES.decrypt(\r\n Cookies.get(indexConstant.REFRESH_TOKEN)?.toString(),\r\n process.env.REACT_APP_ENCRYPT_KEY\r\n )?.toString(CryptoJS.enc.Utf8),\r\n },\r\n })\r\n .then((tokenData) => {\r\n Cookies.set(\r\n indexConstant.ACCESS_TOKEN,\r\n tokenData.data?.refreshTokens?.tokens?.accessToken\r\n );\r\n let refreshToken = CryptoJS.AES.encrypt(\r\n tokenData.data?.refreshTokens?.tokens?.refreshToken,\r\n process.env.REACT_APP_ENCRYPT_KEY\r\n )?.toString();\r\n Cookies.set(indexConstant.REFRESH_TOKEN, refreshToken);\r\n res.accessToken = tokenData.data?.refreshTokens?.tokens?.accessToken;\r\n })\r\n .catch((error) => {\r\n Cookies.remove(indexConstant.ACCESS_TOKEN);\r\n Cookies.remove(indexConstant.REFRESH_TOKEN);\r\n Cookies.remove(indexConstant.USER_DATA);\r\n res.isError = true;\r\n });\r\n return res;\r\n};\r\n\r\nconst GetPermission = async () => {\r\n let res = {\r\n permission: [],\r\n isError: false,\r\n };\r\n await client\r\n .query({\r\n fetchPolicy: \"no-cache\",\r\n query: GET_PERMISSIONS,\r\n })\r\n .then(({ data }) => {\r\n res.permission = data?.getPermissions?.permission?.permissions;\r\n })\r\n .catch((error) => {\r\n console.log(\"GetPermission error :\", error);\r\n // Cookies.remove(indexConstant.ACCESS_TOKEN);\r\n // Cookies.remove(indexConstant.REFRESH_TOKEN);\r\n // Cookies.remove(indexConstant.USER_DATA);\r\n res.isError = true;\r\n });\r\n return res;\r\n};\r\n\r\nconst GetUser = async () => {\r\n let res = {\r\n dataError: false,\r\n SeverError: false,\r\n dataUser: {},\r\n };\r\n await client\r\n .query({\r\n query: GET_USER,\r\n })\r\n .then(({ data }) => {\r\n if (data?.getUser) {\r\n const user = {\r\n id: data.getUser?.id,\r\n fullName: data.getUser?.fullname,\r\n userName: data.getUser?.username,\r\n phoneNumber: data.getUser?.phoneNumber,\r\n address: data.getUser?.address,\r\n birthDay: data.getUser?.birthDay,\r\n avatar: data.getUser?.avatar,\r\n email: data.getUser?.emails[0].address,\r\n factoryId: data.getUser.factoryId,\r\n role: data.getUser.role,\r\n gender: data.getUser.gender,\r\n // namespace: data.getUser.namespace,\r\n };\r\n let userData = CryptoJS.AES.encrypt(\r\n JSON.stringify(user),\r\n process.env.REACT_APP_ENCRYPT_KEY\r\n ).toString();\r\n Cookies.set(indexConstant.USER_DATA, userData);\r\n res.dataUser = user;\r\n } else {\r\n res.dataError = true;\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(\"GetUser error :\", error);\r\n Cookies.remove(indexConstant.ACCESS_TOKEN);\r\n Cookies.remove(indexConstant.REFRESH_TOKEN);\r\n Cookies.remove(indexConstant.USER_DATA);\r\n res.SeverError = true;\r\n });\r\n return res;\r\n};\r\n\r\nconst GetMenu = async () => {\r\n let data = await client.query({\r\n fetchPolicy: \"no-cache\",\r\n query: GET_MENU,\r\n });\r\n let dataMenu = data.data.getMenu.inSidebar.items;\r\n let dataOutSide = data.data.getMenu.outSidebar;\r\n if (dataMenu) {\r\n let res = {};\r\n res.routers = [];\r\n res.navigation = [];\r\n res.routerLink = [];\r\n\r\n res.routerLink.push({\r\n function: \"THE_LAYOUT\",\r\n to: data.data.getMenu.inSidebar.prefix,\r\n });\r\n\r\n dataOutSide.items.forEach((element) => {\r\n res.routerLink.push(element);\r\n });\r\n\r\n dataMenu.forEach((element) => {\r\n if (element.items.length > 0) {\r\n var chilItem = [];\r\n element.items.forEach((itemChild) => {\r\n switch (itemChild.function) {\r\n case \"INFO_BASIC\":\r\n res.routerLink.push(itemChild);\r\n break;\r\n case \"INFO_USER\":\r\n res.routerLink.push(itemChild);\r\n break;\r\n default:\r\n break;\r\n }\r\n if (itemChild.isOnSidebar === true) {\r\n chilItem.push({\r\n _tag: \"CSidebarNavItem\",\r\n name: itemChild.name,\r\n to: itemChild.to,\r\n function: itemChild.function,\r\n menuAlias: itemChild.menuAlias,\r\n });\r\n }\r\n });\r\n res.navigation.push({\r\n _tag: \"CSidebarNavDropdown\",\r\n name: element.title,\r\n _children: chilItem,\r\n icon: element.icon,\r\n menuAlias: element.menuAlias,\r\n });\r\n }\r\n });\r\n dataMenu.map((item) => {\r\n if (\"items\" in item && item.items.length > 0) {\r\n item.items.map((itemChild) => {\r\n res.routers.push({\r\n function: itemChild.function,\r\n name: itemChild.name,\r\n path: itemChild.to,\r\n component: itemChild.component,\r\n menuAlias: itemChild.menuAlias,\r\n icon: itemChild.icon,\r\n });\r\n });\r\n }\r\n });\r\n return res;\r\n } else {\r\n return null;\r\n }\r\n};\r\n\r\nconst getOutSide = async () => {\r\n let data = await client.query({\r\n query: GET_OUTSIDE,\r\n });\r\n\r\n let dataOutSide = data.data.getOutSide.outSidebar;\r\n if (dataOutSide) {\r\n let res = [];\r\n res = dataOutSide.items;\r\n return res;\r\n } else {\r\n return null;\r\n }\r\n};\r\nconst clearObj = (o) => {\r\n for (var k in o) {\r\n if (!o[k]) {\r\n delete o[k];\r\n }\r\n if (Array.isArray(o[k])) {\r\n o[k] = o[k].filter((e) => e);\r\n clearObj(o[k]);\r\n } else if (typeof o[k] === \"object\") {\r\n clearObj(o[k]);\r\n if (Object.keys(o[k]).length === 0 && !isDateTime(o[k])) {\r\n delete o[k];\r\n }\r\n }\r\n }\r\n return o;\r\n};\r\n\r\nexport { RefreshTokens, GetUser, GetMenu, getOutSide, GetPermission, clearObj };\r\n","import { confirmAlert } from 'react-confirm-alert';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css';\r\nimport {\r\n CCard,\r\n CCardBody,\r\n CCardGroup,\r\n CCol,\r\n CContainer,\r\n CRow,\r\n CCardHeader,\r\n CCardFooter,\r\n CButton,\r\n} from '@coreui/react';\r\nimport { imgs } from '../../assets/image/index';\r\nimport { indexGeneral } from '../../language/vn/general/_indexGeneral';\r\n\r\nfunction showQuestions(\r\n title = indexGeneral.ALERT,\r\n message = '',\r\n secondAction = () => {},\r\n thirdAction = () => {},\r\n titleOne = indexGeneral.NO,\r\n titleTwo = indexGeneral.YES\r\n) {\r\n confirmAlert({\r\n closeOnClickOutside: false,\r\n customUI: ({ onClose }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{title}

\r\n \r\n
\r\n\r\n \r\n

{message}

\r\n \r\n\r\n \r\n \r\n {\r\n await onClose();\r\n secondAction();\r\n }}\r\n >\r\n {titleOne}\r\n \r\n {\r\n await onClose();\r\n thirdAction();\r\n }}\r\n >\r\n {titleTwo}\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\nfunction showAlert(\r\n title = indexGeneral.ALERT,\r\n message = '',\r\n action = () => {},\r\n check\r\n) {\r\n confirmAlert({\r\n closeOnClickOutside: false,\r\n customUI: ({ onClose }) => {\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

{title}

\r\n
\r\n\r\n

{message}

\r\n\r\n {\r\n await onClose();\r\n action();\r\n }}\r\n >\r\n Đóng\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\nfunction showOptions(\r\n title = indexGeneral.ALERT,\r\n message = '',\r\n labels = [],\r\n actionOne = () => {},\r\n actionTwo = () => {},\r\n actionThree = () => {},\r\n titleOne = indexGeneral.NO,\r\n titleTwo = indexGeneral.YES,\r\n titleThree = indexGeneral.YES\r\n) {\r\n confirmAlert({\r\n closeOnClickOutside: false,\r\n customUI: ({ onClose }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

{title}

\r\n \r\n
\r\n\r\n \r\n

{message}

\r\n \r\n\r\n \r\n \r\n {labels.map((label) => (\r\n {\r\n onClose();\r\n label.action();\r\n }}\r\n >\r\n {label.title}\r\n \r\n ))}\r\n {/* {\r\n await onClose();\r\n actionOne();\r\n }}\r\n >\r\n {titleOne}\r\n \r\n {\r\n await onClose();\r\n actionTwo();\r\n }}\r\n >\r\n {titleTwo}\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\nconst DialogUtil = {\r\n showQuestions,\r\n showAlert,\r\n showOptions,\r\n};\r\n\r\nexport default DialogUtil;\r\n"],"sourceRoot":""}