Mr.Combet Webshell
Your IP :
216.73.216.136
Server IP :
103.233.58.157
Server :
Windows NT WIN-4PGF72KEHKB 10.0 build 17763 (Windows Server 2016) AMD64
Server Software :
Microsoft-IIS/10.0
PHP Version :
7.3.25
Add File :
Submit
Add Directory :
Submit
Dir :
C:
/
inetpub
/
wwwroot
/
IRC
/
ClientApp
/
build
/
static
/
js
/
Edit File Name :
main.73d2e149.chunk.js.map
{"version":3,"sources":["store/types.tsx","store/reducers/common/commonReducer.ts","store/reducers/validateReducer.ts","store/reducers/userReducer.ts","store/reducers/metaReducer.ts","store/reducers/submitterReducer.ts","store/reducers/index.ts","assets/logo.png","networkService/api.ts","constants/urls.ts","store/actions/validateAction.ts","helpers/dispatchError.ts","networkService/service.ts","constants/routesEnum.ts","store/actions/auth/index.ts","store/actions/user/index.tsx","navigation/layout/changePassword.tsx","navigation/layout/header.tsx","store/actions/meta/index.ts","navigation/layout/index.tsx","assets/document.svg","scenes/auth/login/index.tsx","components/form/checkList.tsx","assets/pdf.svg","components/icons/svgIcons.tsx","constants/index.ts","helpers/checkFileExtension.ts","components/imageViewer/index.js","helpers/isEmpty.ts","constants/validExtensions.ts","constants/articleStatusEnum.ts","components/form/attachmentButton.tsx","store/actions/submitter/index.ts","scenes/submitter/submission/start.tsx","scenes/submitter/submission/uploadSubmission/uploadFile.tsx","scenes/submitter/submission/uploadSubmission/index.tsx","scenes/submitter/submission/authors/entryForm.tsx","scenes/submitter/submission/authors/coAuthorList.tsx","scenes/submitter/submission/authors/index.tsx","scenes/submitter/submission/metaData.tsx","scenes/submitter/submission/confirmation.tsx","scenes/submitter/submission/index.tsx","scenes/submitter/component/search.tsx","constants/roleEnum.ts","scenes/submitter/component/submissionList.tsx","scenes/submitter/index.tsx","routes/submitterRoutes.ts","scenes/user/forgotPassword.tsx","scenes/user/sendPasswordResetLink.tsx","scenes/user/signUp.tsx","routes/publicRoutes.ts","scenes/user/search.tsx","store/actions/common/index.ts","scenes/user/addUser.tsx","scenes/user/changeUserPassword.tsx","scenes/user/index.tsx","routes/adminRoutes.ts","routes/index.ts","scenes/notFound.tsx","navigation/links/privateRoute.tsx","navigation/links/baseRoute.tsx","navigation/links/index.tsx","components/toast/index.tsx","App.tsx","store/configureStore.ts","index.tsx"],"names":["initialState","roles","messages","otherMessage","arrayMessages","loggedInUserDetail","userList","usersReducer","state","action","type","types","payload","checkList","sections","templates","components","article","combineReducers","commonReducer","validateReducer","filter","message","id","userReducer","metaReducer","submitterReducer","api","siginIn","signOut","downloadFiles","verifyEmail","signup","list","users","userDetails","forgotPassword","resetPassword","changePassword","changePasswordByUser","status","start","authors","attachments","metadata","confirmation","baseURL","window","location","origin","clearMessage","dispatch","dispatchError","error","response","MessageType","messageType","Message","res","data","toastMessage","RouteEnum","getHeaders","isMultipart","header","headers","Authorization","localStorage","getItem","actionBase","axios","create","get","url","param","showResponseMessage","Promise","resolve","reject","fullUrl","getFullStringUrl","then","onSuccess","catch","err","onFailure","post","put","deletion","delete","entries","Object","map","entry","ind","Status","undefined","saveToken","AuthToken","Token","expires_in","ExpireMinutes","RefreshToken","IdleTimeoutMinutes","setItem","Role","Username","login","history","a","ex","result","Data","href","GetUserList","SaveUser","act","Id","DeleteUser","ChangeUserStatus","userId","isInactive","userName","newPassword","currentPassword","confirmNewPassword","signUp","email","dipatch","ChangeUserPasswordDailog","props","user","isVisible","setVisible","ref","useRef","useDispatch","useState","isLoading","setState","handleChangePassword","current","validate","valid","reset","resetFields","title","visible","onCancel","style","width","Body","rules","required","trigger","Item","name","value","placeholder","onChange","val","onClick","loading","Header","useHistory","authToken","isChangePasswordVisible","setChangePasswordVisible","isAuth","setAuth","useSelector","FullName","Email","UserName","useEffect","handleLogout","clear","RoutesEnum","className","src","logo","onCommand","command","menu","Menu","divided","Layout","push","routes","children","_linearGradient","_linearGradient2","_linearGradient3","_linearGradient4","_linearGradient5","_linearGradient6","_g","Login","username","password","role","formRef","key","handleLoginClick","e","preventDefault","model","labelPosition","labelWidth","label","prop","index","Option","Name","nativeType","to","Routes","CheckList","handleCheckBoxChange","item","isChecked","newState","findIndex","x","splice","containsItems","length","checked","_excluded","_extends","assign","target","i","arguments","source","prototype","hasOwnProperty","call","apply","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgDocument","_ref","svgRef","titleId","height","viewBox","xmlns","xmlnsXlink","gradientUnits","x1","x2","y1","y2","offset","stopColor","xlinkHref","d","fill","ForwardRef","SvgPdf","SvgIcons","size","color","SvgIcon","Document","PDF","getIconComponent","defaultProps","Constant","checkFileExtension","file","isImage","toLowerCase","match","isPdf","isXls","isDocs","ext","substring","ImageViewer","image","dowloadLinkUrl","show","hostedUrl","onClose","imageSrc","ServerFileName","stopPropagation","open","zoomSrc","zoomScale","isEmpty","trim","ArticleStatusEnum","AttachmentButton","fileRef","disabled","multiple","maxFiles","preview","setPreview","handleChange","event","files","display","serverFileName","URL","createObjectURL","Uploads","getDiplayIcon","margin","click","FileType","getDownloadLink","GetArticles","GetArticle","SaveStart","SaveAuthors","SaveAttachment","SaveMetaData","SaveConfrimation","Start","onSave","ArticleId","SectionId","setLoading","ckBody","setCkBody","st","CommentsForEditor","CheckListId","CheckListName","copyrightStatements","find","TemplateKey","privacyStatements","handleNextClick","Comments","Steps","TemplateTitle","TemplateText","editor","ClassicEditor","getData","Component","Attachment","UserFileName","FileFormat","Size","UploadFile","selectedFileData","ComponentId","console","log","obj","ComponentName","handleSave","UploadSubmission","setSelectedFileData","setAttachments","ArticleAttachments","onSaveClicked","FormData","append","attachment","handleAttachmentEditClick","newAttachments","handleAttachmentDeleteClick","handleSaveFile","Salutation","Designation","Institute","PostalAddress","MobileNo","Photo_ServerFileName","Photo_UserFileName","Photo","DigitalSignature_ServerFileName","DigitalSignature_UserFileName","DigitalSignature","EntryForm","coAuthorList","coAuthorData","handleSubmit","Row","gutter","Col","span","CoAuthorList","CoAuthors","onEditClicked","onDelelteClicked","columns","fixed","render","row","column","fit","Authors","setCoAuthorData","InvestigatorName","InvestigatorSalutation","InvestigatorDesignation","InvestigatorInstitute","InvestigatorPostalAddress","InvestigatorMobileNo","InvestigatorEmail","InvestigatorPhoto_ServerFileName","InvestigatorPhoto_UserFileName","InvestigatorDigitalSignature_ServerFileName","InvestigatorDigitalSignature_UserFileName","ArticleCoAuthors","k","forEach","el","nextState","MetaData","setPrefix","ProposalTitle","setIntroduction","ProposalIntroduction","setMethods","PropsalMethods","setCitedReference","ProposalCitedReferences","prefix","introduction","methods","citedReference","articleId","steps","Confirmation","onConfirmation","Submisson","setSteps","selectedTab","setSelectedTab","params","fetchArticle","updateStep","newStep","tabs","component","showClose","separator","submitter","onTabClick","Pane","Search","onSearchClicked","inline","proposalTitle","onChangeSearch","submission","RoleEnum","Submissions","Roles","PageIndex","pageSize","propsalTitle","PENDING","SUBMITTED","REVERTED","REJECTED","ARCHIVED","fetchData","setList","ls","confirmDelete","MessageBox","confirm","confirmButtonText","cancelButtonText","totalData","TotalData","pageIndex","border","layout","total","pageSizes","currentPage","onSizeChange","onCurrentChange","page","Submitter","SubmitterRoutes","exact","path","ForgotPassword","queryString","parse","search","Password","ConfirmPassword","Code","code","validator","rule","callback","Error","validateField","PasswordReset","isSuccessSubmitting","MobileNumber","Country","Affiliation","SignUp","PublicRoutes","Public","onAddUserClicked","isActive","GetRoles","AddUser","onSaveSuccess","fetchRoles","RoleId","onText","offText","IsInactive","ChangeUserPassword","UserDialog","Index","setData","fetchUserList","handleAddUser","changeUserStatus","AdminRoutes","User","Administrator","NotFound","PrivateRoute","rest","BaseRoute","Links","RoleName","route","Toast","timeout","getType","Array","isArray","Notification","duration","setTimeout","store","production","process","middleware","thunk","createStore","reducers","applyMiddleware","compose","configureStore","i18n","use","locale","baseUrl","document","getElementsByTagName","getAttribute","ReactDOM","basename","App","getElementById"],"mappings":"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","file":"static/js/main.73d2e149.chunk.js","sourcesContent":["export default {\n ADD_MESSAGE: \"ADD_MESSAGE\",\n ADD_MESSAGES: \"ADD_MESSAGES\",\n ADD_OTHER_MESSAGES: \"ADD_OTHER_MESSAGES\",\n REMOVE_MESSAGE: \"REMOVE_MESSAGE\",\n CLEAR_MESSAGE: \"CLEAR_MESSAGE\",\n\n GET_ROLES: \"GET_ROLES\",\n GET_TEMPLATES: \"GET_TEMPLATES\",\n GET_CHECKLIST: \"GET_CHECKLIST\",\n GET_SECTIONS: \"GET_SECTIONS\",\n GET_COMPONENTS: \"GET_COMPONENTS\",\n\n GET_LOGGEDIN_USER_DETAIL: \"GET_LOGGEDIN_USER_DETAIL\",\n GET_USER_LIST: \"GET_USER_LIST\",\n\n GET_ARTICLE: \"GET_ARTICLE\",\n};\n","import types from \"../../types\";\n\nconst initialState = {\n roles: [],\n};\n\nexport default function (state: any = initialState, action: any) {\n switch (action.type) {\n case types.GET_ROLES:\n return {\n ...state,\n roles: action.payload,\n };\n\n default:\n return state;\n }\n}\n","import types from \"../types\";\nimport { Action, Reducer } from \"redux\";\n\nexport interface InitialState {\n messages: object;\n otherMessage: object;\n arrayMessages?: any;\n}\n\nconst initialState: InitialState = {\n messages: {},\n otherMessage: {},\n arrayMessages: [],\n};\n\nexport default function (state = initialState, action: any) {\n switch (action.type) {\n case types.ADD_MESSAGE:\n return {\n ...state,\n messages: action.payload,\n };\n\n case types.ADD_MESSAGES:\n return {\n ...state,\n arrayMessages: [action.payload, ...state.arrayMessages],\n };\n\n case types.ADD_OTHER_MESSAGES:\n return {\n ...state,\n otherMessage: action.payload,\n };\n\n case types.REMOVE_MESSAGE:\n return {\n ...state,\n arrayMessages: state.arrayMessages.filter(\n (message: any) => message.id !== action.payload\n ),\n };\n\n case types.CLEAR_MESSAGE:\n return {\n ...state,\n messages: {},\n };\n\n default:\n return state;\n }\n}\n","import types from \"../types\";\n\nimport { Action, Reducer } from \"redux\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nexport interface InitialState {\n loggedInUserDetail: UserDetailInterface;\n userList: [];\n}\n\nconst initialState: InitialState = {\n loggedInUserDetail: {} as UserDetailInterface,\n userList: [],\n};\n\nconst usersReducer: Reducer = (state = initialState, action: any) => {\n switch (action.type) {\n case types.GET_LOGGEDIN_USER_DETAIL:\n return {\n ...state,\n loggedInUserDetail: action.payload,\n };\n\n case types.GET_USER_LIST:\n return {\n ...state,\n userList: action.payload,\n };\n\n default:\n return state;\n }\n};\nexport default usersReducer;\n","import types from \"../types\";\n\nconst initialState = {\n checkList: [],\n sections: [],\n templates: [],\n components: [],\n};\n\nexport default function (state: any = initialState, action: any) {\n switch (action.type) {\n case types.GET_CHECKLIST:\n return {\n ...state,\n checkList: action.payload,\n };\n case types.GET_SECTIONS:\n return {\n ...state,\n sections: action.payload,\n };\n case types.GET_TEMPLATES:\n return {\n ...state,\n templates: action.payload,\n };\n case types.GET_COMPONENTS:\n return {\n ...state,\n components: action.payload,\n };\n\n default:\n return state;\n }\n}\n","import types from \"../types\";\r\n\r\nconst initialState = {\r\n article: {},\r\n};\r\n\r\nexport default function (state: any = initialState, action: any) {\r\n switch (action.type) {\r\n case types.GET_ARTICLE:\r\n return {\r\n ...state,\r\n article: action.payload,\r\n };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n","import { combineReducers } from \"redux\";\nimport commonReducer from \"./common/commonReducer\";\nimport validateReducer from \"./validateReducer\";\nimport userReducer from \"./userReducer\";\nimport metaReducer from \"./metaReducer\";\nimport submitterReducer from \"./submitterReducer\";\n\nexport default combineReducers({\n commonReducer,\n validateReducer,\n userReducer,\n metaReducer,\n submitterReducer,\n});\n","export default __webpack_public_path__ + \"static/media/logo.b47ed324.png\";","export const api = {\n auth: {\n siginIn: \"auth/signin\",\n signOut: \"auth/signout\",\n },\n meta: {\n templates: \"meta/templates\",\n checkList: \"meta/checklist\",\n sections: \"meta/sections\",\n components: \"meta/components\",\n },\n common: {\n roles: \"security/roles\",\n downloadFiles: `common/files/download`,\n },\n users: {\n verifyEmail: \"security/verify-email\",\n signup: \"security/signup\",\n list: \"security/users/list\",\n users: \"security/users\",\n userDetails: \"security/users/details\",\n forgotPassword: \"security/users/forgot-password\",\n resetPassword: \"security/users/reset-password\",\n changePassword: \"security/users/change-password\",\n changePasswordByUser: \"security/users/change-user-password\",\n status: \"security/users/status\",\n },\n submitter: {\n article: \"submitter/article\",\n start: \"submitter/start\",\n authors: \"submitter/authors\",\n attachments: \"submitter/attachments\",\n metadata: \"submitter/metadata\",\n confirmation: \"submitter/confirmation\",\n },\n};\n","export const baseURL = `${window.location.origin}/v1/`;\n// export const baseURL = `http://103.233.58.157:8080/v1`;\n","import types from \"../types\";\n\ninterface dispatchAction {\n type: string;\n payload: object | string | [];\n}\n\nexport const toastMessage = (dispatch: any, res: any) => {\n let MessageType = null;\n let Message = [];\n\n if (res) {\n if (res.MessageType) {\n MessageType = res.MessageType;\n } else if (res.data && res.data.MessageType) {\n MessageType = res.data.MessageType;\n }\n\n if (res.Message) {\n Message = res.Message;\n } else if (res.data && res.data.Message) {\n Message = res.data.Message;\n }\n }\n\n if (MessageType || Message) {\n dispatch({\n type: types.ADD_MESSAGE,\n payload: { type: MessageType, message: Message },\n });\n }\n};\n\nexport const clearMessage =\n () => (dispatch: (action: dispatchAction) => dispatchAction) => {\n dispatch({\n type: types.CLEAR_MESSAGE,\n payload: {},\n });\n };\n","import React from \"react\";\nimport { toastMessage } from \"../store/actions/validateAction\";\n\nexport function dispatchError(dispatch: Function, error: any) {\n let response: any = {};\n response.MessageType = error.MessageType || error.messageType || \"Warning\";\n response.Message = error.Message || error.message || error;\n\n dispatch && toastMessage(dispatch, response);\n}\n","import axios from \"axios\";\nimport { baseURL } from \"../constants/urls\";\nimport { dispatchError } from \"../helpers/dispatchError\";\n\nconst getHeaders = (isMultipart = false) => {\n var header = {\n headers: {\n Authorization: localStorage.getItem(\"AuthToken\"),\n },\n };\n\n if (isMultipart) {\n header.headers[\"content-type\"] = \"multipart/form-data\";\n }\n return header;\n};\n\nconst actionBase = axios.create({ baseURL: baseURL });\n\nexport const get = (\n url: any,\n dispatch: Function,\n param = null,\n showResponseMessage = false\n) => {\n return new Promise((resolve, reject) => {\n const fullUrl = getFullStringUrl(url, param);\n actionBase\n .get(fullUrl, getHeaders())\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\n .catch((err) => onFailure(err, dispatch, reject));\n });\n};\n\nexport const get_by_id = (\n url: any,\n dispatch: Function,\n id: any,\n showResponseMessage = false\n) => {\n return new Promise((resolve, reject) => {\n const fullUrl = `${url}/${id}`;\n actionBase\n .get(fullUrl, getHeaders())\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\n .catch((err) => onFailure(err, dispatch, resolve));\n });\n};\n\nexport const post = (\n url: any,\n dispatch: Function,\n param: any,\n showResponseMessage = true,\n isMultipart = false\n) => {\n return new Promise((resolve, reject) => {\n actionBase\n .post(url, param, getHeaders(isMultipart))\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\n .catch((err) => onFailure(err, dispatch, resolve));\n });\n};\n\nexport const put = (\n url: any,\n dispatch: Function,\n param: any,\n showResponseMessage = true,\n isMultipart = false\n) => {\n return new Promise((resolve, reject) => {\n actionBase\n .put(url, param, getHeaders(isMultipart))\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\n .catch((err) => onFailure(err, dispatch, resolve));\n });\n};\n\nexport const deletion = (\n url: any,\n dispatch: Function,\n id: any,\n showResponseMessage = true\n) => {\n return new Promise((resolve, reject) => {\n const fullUrl = `${url}/${id}`;\n actionBase\n .delete(fullUrl, getHeaders())\n .then((res) => onSuccess(res, dispatch, resolve, showResponseMessage))\n .catch((err) => onFailure(err, dispatch, resolve));\n });\n};\n\nconst getFullStringUrl = (url: any, param: any) => {\n const entries = param ? Object.entries(param) : null;\n let fullUrl = url;\n entries &&\n entries.map((entry, ind) => {\n if (ind == 0) {\n fullUrl = `${fullUrl}?${`${entry[0]}=${entry[1]}`}`;\n } else {\n fullUrl = `${fullUrl}&${`${entry[0]}=${entry[1]}`}`;\n }\n });\n return fullUrl;\n};\n\nconst onSuccess = (\n res: any,\n dispatch: Function,\n resolve: any,\n showResponseMessage: any\n) => {\n let response = res.data;\n if (response.Status == true) {\n if (showResponseMessage) {\n dispatchError(dispatch, response);\n }\n } else if (response.Status == undefined) {\n if (res.status == 200) {\n // resolve(response);\n } else {\n dispatchError(dispatch, \"Response status is not 200\");\n response = null;\n }\n } else {\n dispatchError(dispatch, response);\n response = null;\n }\n resolve(response);\n};\n\nconst onFailure = (err: any, dispatch: Function, resolve: any) => {\n dispatchError(dispatch, err.message);\n resolve(null);\n};\n","export enum RouteEnum {\n base = \"/\",\n login = \"/login\",\n\n forgotPassword = \"/reset-password\",\n resetPassword = \"/reset-password/send\",\n signup = \"/signup\",\n verifyEmailAddress = \"/emailVerification\",\n\n submitter = \"/submitter\",\n submission = \"/submitter/submission\",\n\n user = \"/user\",\n}\n\nexport default RouteEnum;\n","import { post, api } from \"networkService\";\nimport { LoginInterface } from \"interfaces/actions/auth\";\nimport RoutesEnum from \"constants/routesEnum\";\nimport RoleEnum from \"constants/roleEnum\";\n\nconst saveToken = (res: any, dispatch: Function) => {\n if (res) {\n //Save to local Storage\n let AuthToken = \"bearer \" + res.Token;\n let expires_in = res.ExpireMinutes;\n let RefreshToken = res.RefreshToken;\n let IdleTimeoutMinutes = res.IdleTimeoutMinutes;\n //Set token to ls\n localStorage.setItem(\"Role\", res.Role);\n localStorage.setItem(\"AuthToken\", AuthToken);\n localStorage.setItem(\"UserName\", res.Username);\n localStorage.setItem(\"RefreshToken\", RefreshToken);\n localStorage.setItem(\"IdleTimeOut\", IdleTimeoutMinutes);\n localStorage.setItem(\"ExpiresMinutes\", expires_in);\n }\n};\nconst clearToken = () => {\n localStorage.setItem(\"Role\", \"\");\n localStorage.setItem(\"AuthToken\", null);\n localStorage.setItem(\"UserName\", null);\n localStorage.setItem(\"RefreshToken\", null);\n localStorage.setItem(\"IdleTimeOut\", null);\n localStorage.setItem(\"ExpiresMinutes\", null);\n};\nexport const login =\n (param: LoginInterface, history: any) => async (dispatch: Function) => {\n let result: any = await post(api.auth.siginIn, dispatch, param).catch(\n (ex) => {\n return false;\n }\n );\n if (result && result.Status) {\n saveToken(result.Data, dispatch);\n window.location.href = \"/\";\n }\n };\n\nexport const logout =\n (param: any, history: any) => async (dipatch: Function) => {\n //clearToken();\n localStorage.clear();\n window.location.href = RoutesEnum.login;\n };\n","import { post, put, get, deletion, api } from \"networkService\";\nimport types from \"store/types\";\n\nexport const GetLoggedInUserDetails = () => async (dispatch: Function) => {\n const res = await get(api.users.userDetails, dispatch);\n dispatch({ type: types.GET_LOGGEDIN_USER_DETAIL, payload: res });\n};\n\nexport const GetUserList = (param) => async (dispatch: Function) => {\n const res: any = await post(api.users.list, dispatch, param, false);\n dispatch({ type: types.GET_USER_LIST, payload: res.Data });\n return res.Data;\n};\n\nexport const SaveUser = (param) => async (dispatch: Function) => {\n const act = param.Id ? put : post;\n const res: any = await act(api.users.users, dispatch, param);\n return res.Data;\n};\nexport const DeleteUser = (id) => async (dispatch: Function) => {\n const res: any = await deletion(`${api.users.users}`, dispatch, id);\n return res;\n};\n\nexport const ChangeUserStatus =\n ({ userId, isInactive }) =>\n async (dispatch: Function) => {\n const res: any = await get(\n `${api.users.status}/${userId}?isInactive=${isInactive}`,\n dispatch\n );\n return res.Data;\n };\n\nexport const changePasswordByUser =\n ({ userName, newPassword }) =>\n async (dispatch: Function) => {\n const res = await post(api.users.changePasswordByUser, dispatch, {\n userName,\n newPassword,\n });\n return res;\n };\n\nexport const changePassword =\n ({ currentPassword, newPassword, confirmNewPassword }) =>\n async (dispatch: Function) => {\n const res = await post(api.users.changePassword, dispatch, {\n currentPassword,\n confirmNewPassword,\n newPassword,\n });\n return res;\n };\n\nexport const signUp = (param) => async (dispatch: Function) => {\n const res = await post(api.users.signup, dispatch, param);\n return res;\n};\n\nexport const forgotPassword =\n ({ email }) =>\n async (dipatch: Function) => {\n const res = await post(api.users.forgotPassword, dipatch, { email });\n return res;\n };\n\nexport const resetPassword = (param) => async (dipatch: Function) => {\n const res = await post(api.users.resetPassword, dipatch, param);\n return res;\n};\n","import React, { useRef, useState } from \"react\";\nimport { Form, Input, Button, Select, Dialog, Message } from \"element-react\";\nimport { changePassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst ChangeUserPasswordDailog = (props) => {\n const { user, isVisible, setVisible } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n currentPassword: \"\",\n newPassword: \"\",\n confirmNewPassword: \"\",\n isLoading: false,\n });\n\n const rules = {\n newPassword: [\n {\n required: true,\n message: \"New password is required\",\n trigger: \"blur\",\n },\n ],\n };\n\n const handleChangePassword = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n var res: any = await dispatch(\n changePassword({\n currentPassword: state.currentPassword,\n newPassword: state.newPassword,\n confirmNewPassword: state.confirmNewPassword,\n })\n );\n if (res && res.Status) reset();\n }\n });\n };\n\n const reset = () => {\n ref.current.resetFields();\n setState({\n newPassword: \"\",\n currentPassword: \"\",\n confirmNewPassword: \"\",\n isLoading: false,\n });\n setVisible(false);\n };\n return (\n <Dialog\n title=\"Change Password\"\n visible={isVisible}\n onCancel={() => reset()}\n style={{ width: \"350px\" }}\n >\n <Dialog.Body>\n <Form ref={ref} rules={rules}>\n <Form.Item>\n <Input\n name=\"currentPassword\"\n type=\"password\"\n value={state.currentPassword}\n placeholder=\"Old Pasword\"\n onChange={(val: any) =>\n setState({ ...state, currentPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Input\n name=\"newPassword\"\n type=\"password\"\n value={state.newPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) => setState({ ...state, newPassword: val })}\n ></Input>\n </Form.Item>\n <Form.Item>\n <Input\n name=\"confirmNewPassword\"\n type=\"password\"\n value={state.confirmNewPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) =>\n setState({ ...state, confirmNewPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Button\n onClick={() => handleChangePassword()}\n loading={state.isLoading}\n >\n Change Password\n </Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n );\n};\n\nexport default ChangeUserPasswordDailog;\n","import React, { useEffect, useState } from \"react\";\nimport { useDispatch, useSelector, useStore } from \"react-redux\";\nimport { Dropdown } from \"element-react\";\nimport logo from \"../../assets/logo.png\";\nimport { useHistory } from \"react-router\";\nimport { logout } from \"store/actions/auth\";\nimport { GetLoggedInUserDetails, changePassword } from \"store/actions/user\";\nimport {\n GetCheckList,\n GetSection,\n GetTemplates,\n GetComponents,\n} from \"store/actions/meta\";\nimport { GetRoles } from \"store/actions/common\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport ChangePasswordDialog from \"./changePassword\";\n\nexport default function Header(props: any) {\n const history = useHistory();\n let authToken = localStorage.getItem(\"AuthToken\");\n const dispatch = useDispatch();\n const [isChangePasswordVisible, setChangePasswordVisible] = useState(false);\n const [isAuth, setAuth] = useState(false);\n const { Email, FullName, UserName } = useSelector(\n (state: any) => state.userReducer.loggedInUserDetail as UserDetailInterface\n );\n\n useEffect(() => {\n if (authToken) {\n dispatch(GetLoggedInUserDetails());\n dispatch(GetCheckList());\n dispatch(GetSection());\n dispatch(GetTemplates());\n dispatch(GetComponents());\n setAuth(true);\n } else {\n setAuth(false);\n }\n }, [authToken]);\n\n const handleCommand = (command) => {\n if (command === \"logout\") {\n handleLogout();\n } else if (command === \"changePassword\") {\n setChangePasswordVisible(true);\n }\n };\n\n const handleLogout = () => {\n dispatch(logout({}, history));\n };\n const updatePassword = () => {};\n\n return (\n <div className=\"app-header\">\n <div className=\"app-header-logo\">\n <img src={logo} />\n <h2>B&B Institutional Review Committee - Web Portal</h2>\n </div>\n {isAuth && (\n <div>\n <Dropdown\n onCommand={handleCommand}\n menu={\n <Dropdown.Menu>\n <Dropdown.Item command=\"changePassword\">\n Change Password\n </Dropdown.Item>\n <Dropdown.Item command=\"logout\"> Log out</Dropdown.Item>\n <Dropdown.Item divided>Info</Dropdown.Item>\n </Dropdown.Menu>\n }\n >\n <span className=\"el-dropdown-link drop-title\">\n Welcome {FullName}\n <i className=\"el-icon-caret-bottom el-icon--right\"></i>\n </span>\n </Dropdown>\n <ChangePasswordDialog\n isVisible={isChangePasswordVisible}\n setVisible={setChangePasswordVisible}\n />\n </div>\n )}\n </div>\n );\n}\n","import { post, get, api } from \"networkService\";\nimport types from \"store/types\";\n\nexport const GetTemplates = () => async (dispatch: Function) => {\n const res: any = await get(api.meta.templates, dispatch);\n dispatch({ type: types.GET_TEMPLATES, payload: res });\n};\n\nexport const GetCheckList = () => async (dispatch: Function) => {\n const res: any = await get(api.meta.checkList, dispatch);\n dispatch({ type: types.GET_CHECKLIST, payload: res });\n};\n\nexport const GetSection = () => async (dispatch: Function) => {\n const res: any = await get(api.meta.sections, dispatch);\n dispatch({ type: types.GET_SECTIONS, payload: res });\n};\nexport const GetComponents = () => async (dispatch: Function) => {\n const res: any = await get(api.meta.components, dispatch);\n dispatch({ type: types.GET_COMPONENTS, payload: res });\n};\n","import React, { useEffect, useState } from \"react\";\nimport { Redirect, Route, useHistory } from \"react-router\";\n\nimport Header from \"./header\";\nimport Login from \"../../scenes/auth/login\";\nimport routes from \"constants/routesEnum\";\n\nexport default function Layout(props: any) {\n let authToken = localStorage.getItem(\"AuthToken\");\n const [state, setState] = useState(authToken);\n let history = useHistory();\n\n // useEffect(() => {\n // }, [authToken]);\n if (!authToken || authToken === \"null\") {\n history.push(routes.login);\n }\n return (\n <>\n <Header />\n\n <div className=\"app-container\">{props.children}</div>\n </>\n );\n}\n","var _linearGradient, _linearGradient2, _linearGradient3, _linearGradient4, _linearGradient5, _linearGradient6, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgDocument(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 512,\n viewBox: \"0 0 64 64\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 34.5,\n x2: 34.5,\n y1: -31.987,\n y2: -29.421\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f3f7ff\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#b5d1ff\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 10.396,\n x2: 10.396,\n y1: 30.449,\n y2: 119.699\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#048ac4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#35489b\"\n }))), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 33.5,\n x2: 33.5,\n xlinkHref: \"#linear-gradient\",\n y1: -5.429,\n y2: 153.977\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 50.538,\n x2: 50.538,\n xlinkHref: \"#linear-gradient\",\n y1: -23.429,\n y2: -3.999\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 27.396,\n x2: 27.396,\n xlinkHref: \"#linear-gradient-2\",\n y1: 32.518,\n y2: 84.952\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 9,\n x2: 9,\n xlinkHref: \"#linear-gradient-2\",\n y1: 16.321,\n y2: 43.66\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Document\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m56 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h32.662a1 1 0 0 1 .707.293l10.338 10.338a1 1 0 0 1 .293.707v51.662a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7 32.946 4-1.767 2.792 4.285h-6.792z\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m55 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h33.076l10.924 10.924v52.076a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m45.076 0v9.924a1 1 0 0 0 1 1h9.924l-4.9-5.9z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m46.022 52.5h-37.252a1.769 1.769 0 0 1 -1.77-1.77v-16.016h39.022a1.771 1.771 0 0 1 1.77 1.77v14.246a1.77 1.77 0 0 1 -1.77 1.77z\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11 31.179h-2.232a1.767 1.767 0 0 0 -1.768 1.767 1.767 1.767 0 0 0 1.768 1.768h2.232z\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m14.408 40.18a.868.868 0 0 1 .868-.868 19.487 19.487 0 0 1 3.937.164 3.24 3.24 0 0 1 2.115 2.183 6.323 6.323 0 0 1 .281 2.03 5.664 5.664 0 0 1 -.263 1.828 3.132 3.132 0 0 1 -2.139 2.2 20.9 20.9 0 0 1 -3.931.182.868.868 0 0 1 -.868-.868zm1.735 1.128v4.6c0 .774 1.023.491 1.295.542a4.764 4.764 0 0 0 1.048-.082 1.483 1.483 0 0 0 1.155-1.187 5.614 5.614 0 0 0 .175-1.573 5.138 5.138 0 0 0 -.175-1.529 1.665 1.665 0 0 0 -1.295-1.237 11.548 11.548 0 0 0 -1.661-.082.542.542 0 0 0 -.542.548z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m22.729 43.66a4.514 4.514 0 0 1 1.192-3.381 3.843 3.843 0 0 1 2.962-1.113 4.034 4.034 0 0 1 3.038 1.177 4.515 4.515 0 0 1 1.14 3.276 4.5 4.5 0 0 1 -1.131 3.255 4 4 0 0 1 -3.024 1.175 4.045 4.045 0 0 1 -3.047-1.169 4.437 4.437 0 0 1 -1.13-3.22zm1.787-.059a3.219 3.219 0 0 0 .673 2.212 2.318 2.318 0 0 0 3.414.006 3.284 3.284 0 0 0 .665-2.241 3.226 3.226 0 0 0 -.648-2.2 2.4 2.4 0 0 0 -3.448.009 3.241 3.241 0 0 0 -.656 2.213z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m38.718 45a.871.871 0 0 1 .518 1.217 3.255 3.255 0 0 1 -.93 1.149 4.046 4.046 0 0 1 -5.095-.486 4.477 4.477 0 0 1 -1.1-3.2 4.7 4.7 0 0 1 1.108-3.331 3.8 3.8 0 0 1 2.912-1.186 3.571 3.571 0 0 1 2.56.931 2.619 2.619 0 0 1 .422.518.868.868 0 0 1 -.538 1.3.856.856 0 0 1 -.941-.4 1.709 1.709 0 0 0 -.416-.484 1.821 1.821 0 0 0 -1.175-.387 1.956 1.956 0 0 0 -1.55.686 3.362 3.362 0 0 0 -.595 2.22 3.609 3.609 0 0 0 .586 2.321 1.9 1.9 0 0 0 1.524.691 1.735 1.735 0 0 0 1.189-.439 1.974 1.974 0 0 0 .472-.656.873.873 0 0 1 1.049-.464z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgDocument);\nexport default __webpack_public_path__ + \"static/media/document.0334939e.svg\";\nexport { ForwardRef as ReactComponent };","import React, { useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport { Form, Input, Button, Select } from \"element-react\";\nimport { login } from \"store/actions/auth\";\nimport Routes from \"constants/routesEnum\";\n\nconst Login = () => {\n const [state, setState] = useState({ username: \"\", password: \"\", role: \"\" });\n const rules = {\n username: [\n {\n required: true,\n message: \"Please input user name\",\n trigger: \"blur\",\n },\n ],\n password: [\n {\n required: true,\n message: \"Please input password\",\n trigger: \"blur\",\n },\n ],\n role: [\n {\n required: true,\n message: \"Please input user role\",\n trigger: \"blur\",\n },\n ],\n };\n const { roles } = useSelector((state: any) => state.commonReducer);\n var formRef: any = useRef();\n const dispatch = useDispatch();\n const history = useHistory();\n const onChange = (key: any, value: any) => {\n setState({ ...state, [key]: value });\n };\n const handleLoginClick = async (e: any) => {\n e.preventDefault();\n\n formRef.current.validate(async (valid) => {\n if (valid) {\n await dispatch(login(state, history));\n } else {\n return false;\n }\n });\n };\n return (\n <div className=\"container\">\n <div className=\"login-form\">\n <Form\n ref={formRef}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Form.Item label=\"Name\" prop=\"username\">\n <Input\n value={state.username}\n onChange={(val: any) => onChange(\"username\", val)}\n ></Input>\n </Form.Item>\n <Form.Item label=\"Password\" prop=\"password\">\n <Input\n type=\"password\"\n value={state.password}\n onChange={(val: any) => onChange(\"password\", val)}\n ></Input>\n </Form.Item>\n <Form.Item label=\"Log in as\" prop=\"role\">\n <Select\n value={state.role}\n placeholder=\"Role\"\n onChange={(val: any) => onChange(\"role\", val)}\n >\n {roles &&\n roles.map((role, index) => (\n <Select.Option\n key={index}\n label={role.Name}\n value={role.Name}\n ></Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleLoginClick}\n nativeType=\"submit\"\n >\n Login\n </Button>\n </Form.Item>\n </Form>\n <div className=\"login-form__forgot\">\n <span className=\"forgot-link\">\n <Link to={Routes.resetPassword}>Forgot Password?</Link>\n </span>\n <span className=\"forgot-link\">\n <Link to={Routes.signup}>Sign up</Link>\n </span>\n </div>\n </div>\n </div>\n );\n};\nexport default Login;\n","import React, { useState } from \"react\";\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\n\nconst CheckList = (props) => {\n const { list, onChange, value } = props;\n\n const handleCheckBoxChange = (item, isChecked) => {\n let newState = [...value];\n var index = newState.findIndex((x) => x.Id === item.Id);\n if (isChecked) {\n newState.push(item);\n } else if (index > -1) {\n newState.splice(index);\n }\n onChange(newState);\n };\n const containsItems = (item) => {\n var len = value.filter((x) => x.Id === item.Id).length;\n return len > 0;\n };\n return (\n <div className=\"ctrl-check-list\">\n {list &&\n list.map((item, index) => (\n <div key={index}>\n <Checkbox\n key={index}\n label={item.Name}\n checked={containsItems(item)}\n onChange={(e) => handleCheckBoxChange(item, e)}\n ></Checkbox>\n </div>\n ))}\n </div>\n );\n};\n\nexport default CheckList;\n","var _linearGradient, _linearGradient2, _linearGradient3, _linearGradient4, _linearGradient5, _linearGradient6, _g;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgPdf(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n height: 512,\n viewBox: \"0 0 64 64\",\n width: 512,\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _linearGradient || (_linearGradient = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 34.5,\n x2: 34.5,\n y1: -31.987,\n y2: -29.421\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f3f7ff\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.99,\n stopColor: \"#b5d1ff\"\n }))), _linearGradient2 || (_linearGradient2 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n gradientUnits: \"userSpaceOnUse\",\n x1: 10.396,\n x2: 10.396,\n y1: 30.449,\n y2: 119.699\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff5252\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#d50000\"\n }))), _linearGradient3 || (_linearGradient3 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 33.5,\n x2: 33.5,\n xlinkHref: \"#linear-gradient\",\n y1: -5.429,\n y2: 153.977\n })), _linearGradient4 || (_linearGradient4 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 50.538,\n x2: 50.538,\n xlinkHref: \"#linear-gradient\",\n y1: -23.429,\n y2: -3.999\n })), _linearGradient5 || (_linearGradient5 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 27.396,\n x2: 27.396,\n xlinkHref: \"#linear-gradient-2\",\n y1: 32.518,\n y2: 84.952\n })), _linearGradient6 || (_linearGradient6 = /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 9,\n x2: 9,\n xlinkHref: \"#linear-gradient-2\",\n y1: 16.321,\n y2: 43.66\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"PDF\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m56 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h32.662a1 1 0 0 1 .707.293l10.338 10.338a1 1 0 0 1 .293.707v51.662a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m7 32.946 4-1.767 2.792 4.285h-6.792z\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m55 64h-43a1 1 0 0 1 -1-1v-62a1 1 0 0 1 1-1h33.076l10.924 10.924v52.076a1 1 0 0 1 -1 1z\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m45.076 0v9.924a1 1 0 0 0 1 1h9.924l-4.9-5.9z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m46.022 52.5h-37.252a1.769 1.769 0 0 1 -1.77-1.77v-16.016h39.022a1.771 1.771 0 0 1 1.77 1.77v14.246a1.77 1.77 0 0 1 -1.77 1.77z\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m11 31.179h-2.232a1.767 1.767 0 0 0 -1.768 1.767 1.767 1.767 0 0 0 1.768 1.768h2.232z\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n fill: \"#fff\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"m15 47.035v-6.854a.868.868 0 0 1 .868-.869 28.119 28.119 0 0 1 3.977.129 2.416 2.416 0 0 1 1.735 2.514 2.482 2.482 0 0 1 -1.916 2.584 18.245 18.245 0 0 1 -2.651.123.279.279 0 0 0 -.279.279v2.094a.867.867 0 0 1 -.867.867.867.867 0 0 1 -.867-.867zm1.734-5.99v1.879a.279.279 0 0 0 .279.279 7.605 7.605 0 0 0 2.041-.135 1.172 1.172 0 0 0 -.234-2.244 16.962 16.962 0 0 0 -1.807-.059.279.279 0 0 0 -.278.28z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m23 40.181a.868.868 0 0 1 .868-.869 19.481 19.481 0 0 1 3.936.164 3.241 3.241 0 0 1 2.116 2.183 6.351 6.351 0 0 1 .281 2.03 5.635 5.635 0 0 1 -.264 1.828 3.132 3.132 0 0 1 -2.139 2.2 20.884 20.884 0 0 1 -3.93.182.868.868 0 0 1 -.868-.865zm1.734.864v5.131a.279.279 0 0 0 .279.279 10.917 10.917 0 0 0 2.065-.082 1.483 1.483 0 0 0 1.154-1.187 5.609 5.609 0 0 0 .176-1.573 5.133 5.133 0 0 0 -.176-1.529 1.664 1.664 0 0 0 -1.3-1.237 14.379 14.379 0 0 0 -1.924-.082.279.279 0 0 0 -.275.28z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"m31.682 47.035v-6.854a.869.869 0 0 1 .869-.869h4.293a.727.727 0 0 1 .727.727.726.726 0 0 1 -.727.726h-3.144a.279.279 0 0 0 -.279.28v1.474a.279.279 0 0 0 .279.28h2.58a.727.727 0 0 1 .727.726.728.728 0 0 1 -.727.727h-2.58a.279.279 0 0 0 -.279.279v2.5a.868.868 0 0 1 -.868.867.867.867 0 0 1 -.871-.863z\"\n })))));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPdf);\nexport default __webpack_public_path__ + \"static/media/pdf.d1a89179.svg\";\nexport { ForwardRef as ReactComponent };","import React from \"react\";\r\nimport { ReactComponent as Document } from \"assets/document.svg\";\r\nimport { ReactComponent as PDF } from \"assets/pdf.svg\";\r\n\r\nfunction getIconComponent(name) {\r\n switch (name) {\r\n case \"document\":\r\n return Document;\r\n case \"pdf\":\r\n return PDF;\r\n\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\ninterface Icons {\r\n name: \"document\" | \"pdf\";\r\n\r\n size?: number | string;\r\n height?: number | string;\r\n color?: string;\r\n className?: string;\r\n styles?: object;\r\n}\r\n\r\nconst SvgIcons = ({ size, color, name, height = null }: Icons) => {\r\n let SvgIcon = getIconComponent(name);\r\n return <SvgIcon width={size} height={size || height} fill={color} />;\r\n};\r\n\r\nSvgIcons.defaultProps = {\r\n size: \"25px\",\r\n color: \"#3a3a3a\",\r\n};\r\n\r\nexport default SvgIcons;\r\n","export enum Constant {\r\n Uploads = \"Uploads\",\r\n}\r\nexport default Constant;\r\n","const checkFileExtension = (file) => {\r\n let isImage = file && file.toLowerCase().match(/.(jpg|jpeg|png)$/i) !== null;\r\n let isPdf = file && file.toLowerCase().match(/.(pdf)$/i) !== null;\r\n let isXls = file && file.toLowerCase().match(/.(xls|xlsx)$/i) !== null;\r\n let isDocs = file && file.toLowerCase().match(/.(doc|docx)$/i) !== null;\r\n let index = file && file.indexOf(\".\");\r\n let ext = file && file.substring(index + 1, file.length);\r\n\r\n return {\r\n isImage,\r\n isPdf,\r\n isDocs,\r\n isXls,\r\n ext,\r\n };\r\n};\r\n\r\nexport default checkFileExtension;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./styles.scss\";\r\n\r\nimport { Dialog } from \"element-react\";\r\nimport { FiDownload } from \"react-icons/fi\";\r\nimport InnerImageZoom from \"react-inner-image-zoom\";\r\n// import \"react-inner-image-zoom/lib/InnerImageZoom/styles.min.css\";\r\nimport \"react-inner-image-zoom/lib/InnerImageZoom/styles.css\";\r\n\r\nfunction ImageViewer(props) {\r\n const { image, dowloadLinkUrl, title, show, hostedUrl, onClose } = props;\r\n\r\n let imageSrc = image ? `${hostedUrl}/${image.ServerFileName || \"\"}` : \"\";\r\n\r\n return (\r\n <Dialog title={title} visible={show} onCancel={() => onClose()}>\r\n <Dialog.Body>\r\n <>\r\n {image && (\r\n <div className=\"image-modal__container\">\r\n <span\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n window.open(dowloadLinkUrl);\r\n }}\r\n className=\"image-modal__download\"\r\n >\r\n <FiDownload />\r\n </span>\r\n <InnerImageZoom\r\n src={imageSrc}\r\n zoomSrc={imageSrc}\r\n zoomScale={1.5}\r\n />\r\n </div>\r\n )}\r\n </>\r\n </Dialog.Body>\r\n </Dialog>\r\n // <Modal\r\n // open={props.show}\r\n // title={props.title || \"\"}\r\n // onModalClose={() => props.onClose(false)}\r\n // hideFooter={true}\r\n // className=\"uploads-modal image-modal\"\r\n // // width=\"800px\"\r\n // >\r\n\r\n // </Modal>\r\n );\r\n}\r\n\r\nexport default ImageViewer;\r\n","export const isEmpty = (value: any): boolean =>\n value === undefined ||\n value === null ||\n value === {} ||\n value === \"\" ||\n (typeof value === \"object\" && Object.keys(value).length === 0) ||\n (typeof value === \"string\" && value.trim().length === 0);\n\n\n export default isEmpty","export const validFileExtension = [\"txt\", \"csv\"];\n\nexport const validImageExtension = [\"png\", \"jpg\", \"jpeg\"];\n\nexport const validApplicationExtension = [\"pdf\", \"xml\"];\n\nexport const validUploadDocExtension = [\"png\", \"jpg\", \"jpeg\", \"pdf\", \"docx\"];\n","export enum ArticleStatusEnum {\r\n PENDING = 1,\r\n SUBMITTED = 2,\r\n REVERTED = 3,\r\n REJECTED = 4,\r\n ARCHIVED = 5,\r\n}\r\nexport default ArticleStatusEnum;\r\n","import React, { useEffect, useState, useRef } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { CgAttachment, CgFile } from \"react-icons/cg\";\nimport SvgIcons from \"components/icons/svgIcons\";\nimport { FaTimes } from \"react-icons/fa\";\nimport classnames from \"classnames\";\nimport Constant from \"constants/index\";\nimport checkFileExtension from \"helpers/checkFileExtension\";\nimport { api } from \"networkService/api\";\nimport ImageViewer from \"components/imageViewer\";\nimport { isEmpty } from \"helpers\";\n\nconst AttachmentButton = (props) => {\n const fileRef: any = useRef();\n\n const { name, disabled, multiple, maxFiles, value, onChange, label } = props;\n const [preview, setPreview] = useState(false);\n\n const handleChange = (event) => {\n const { files } = event.target;\n const file = (files && files[0]) || null;\n\n onChange && onChange(name, file);\n };\n const openFileOption = () => {\n fileRef.current.click();\n };\n const getDownloadLink = (file) => {\n const param = {\n serverFileName: file.serverFileName,\n name: file.name,\n FileType: file.FileType,\n };\n let url = `${api.common.downloadFiles}`;\n return url;\n };\n const getDiplayIcon = (file) => {\n const { isDocs, isImage, isPdf } = checkFileExtension(\n file.serverFileName || file.name\n );\n // if (isEmpty(file)) return \"noif ilelel\";\n\n let icon = isDocs ? (\n <SvgIcons name=\"document\" size=\"20\" />\n ) : isPdf ? (\n <SvgIcons name=\"pdf\" size=\"20\" />\n ) : isImage ? (\n isEmpty(file.serverFileName) && file ? (\n <img src={URL.createObjectURL(file)} width=\"20\" height=\"20\" />\n ) : (\n <img\n src={`/${Constant.Uploads}/${file.serverFileName}`}\n width=\"20\"\n height=\"20\"\n />\n )\n ) : (\n <CgFile />\n );\n return icon;\n };\n return (\n <>\n <input\n ref={fileRef}\n type=\"file\"\n style={{ display: \"none\" }}\n multiple={multiple}\n name={name}\n disabled={disabled}\n onChange={(event) => handleChange && handleChange(event)}\n />\n <div className=\"upload-container\">\n <span className=\"upload-label\">{label}</span>\n\n {value && (\n <div\n className=\"upload-item\"\n onClick={() =>\n value && !isEmpty(value.serverFileName) && setPreview(true)\n }\n >\n {getDiplayIcon(value)}\n <div className=\"upload-item-name\">\n {value.name}\n <div className=\"btn-remove\">\n <FaTimes\n style={{ margin: \"0px\" }}\n size=\"12\"\n color=\"#fff\"\n onClick={(e) => {\n e.stopPropagation();\n fileRef.current.value = \"\";\n onChange && onChange(name, null);\n // setSelectedIndex(index);\n // setOpen(true);\n }}\n />\n </div>\n </div>\n </div>\n )}\n <div onClick={() => openFileOption()}>\n <div className=\"el-button\">\n <CgAttachment />\n <span className=\"upload-info\">{\"Click to Upload\"} </span>\n </div>\n </div>\n </div>\n\n {preview && (\n <ImageViewer\n dowloadLinkUrl={getDownloadLink(value)}\n hostedUrl={`/${Constant.Uploads}`}\n show={preview}\n title={value.name || value.serverFileName}\n image={value}\n onClose={setPreview}\n />\n )}\n </>\n );\n};\n\nexport default AttachmentButton;\n","import { isEmpty } from \"helpers\";\nimport { post, put, get, deletion, api } from \"networkService\";\nimport types from \"store/types\";\n\nexport const GetArticles = (param) => async (dispatch: Function) => {\n const res: any = await post(\n `${api.submitter.article}`,\n dispatch,\n param,\n false\n );\n\n if (res && res.Status) return res.Data;\n\n return [];\n};\n\nexport const GetArticle = (id) => async (dispatch: Function) => {\n const res: any = await get(`${api.submitter.article}/${id}`, dispatch);\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const SaveStart = (param) => async (dispatch: Function) => {\n const res: any = await post(api.submitter.start, dispatch, param);\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const SaveAuthors = (param) => async (dispatch: Function) => {\n const res: any = await post(\n api.submitter.authors,\n dispatch,\n param,\n true,\n true\n );\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const SaveAttachment = (param) => async (dispatch: Function) => {\n const res: any = await post(\n api.submitter.attachments,\n dispatch,\n param,\n true,\n true\n );\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const SaveMetaData = (param) => async (dispatch: Function) => {\n const res: any = await post(\n api.submitter.metadata,\n dispatch,\n param,\n true,\n false\n );\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const SaveConfrimation = (param) => async (dispatch: Function) => {\n const res: any = await post(\n api.submitter.confirmation,\n dispatch,\n param,\n true,\n false\n );\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\nimport { CheckList } from \"components/form\";\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\nimport { SaveStart } from \"store/actions/submitter\";\nimport { isEmpty } from \"helpers\";\n\nconst Start = (props) => {\n var ref: any = useRef();\n const { onSave } = props;\n const [state, setState] = useState({\n ArticleId: 0,\n SectionId: 0,\n CheckList: [],\n });\n const [isLoading, setLoading] = useState(false);\n const [ckBody, setCkBody] = useState(\"\");\n const rules = {};\n const dispatch = useDispatch();\n\n const { checkList, templates, sections } = useSelector(\n (state: any) => state.metaReducer\n );\n const { article } = useSelector((st: any) => st.submitterReducer);\n\n useEffect(() => {\n if (!isEmpty(article)) {\n setCkBody(article.CommentsForEditor);\n setState({\n ArticleId: article.Id,\n SectionId: article.SectionId,\n CheckList:\n (article.CheckList &&\n article.CheckList.map((x) => ({\n Id: x.CheckListId,\n Name: x.CheckListName,\n }))) ||\n [],\n });\n }\n }, [article]);\n\n const onChange = (key: any, value: any) => {\n setState({ ...state, [key]: value });\n };\n\n const copyrightStatements = templates.find(\n (x) => x.TemplateKey === \"copyrightStatements\"\n );\n\n const privacyStatements = templates.find(\n (x) => x.TemplateKey === \"privacyStatements\"\n );\n\n const handleNextClick = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n setLoading(true);\n const param = {\n SectionId: state.SectionId,\n CheckList: state.CheckList,\n Comments: ckBody,\n ArticleId: state.ArticleId,\n Steps: 1,\n };\n\n var res: any = await dispatch(SaveStart(param));\n setLoading(false);\n if (res && res.Status) {\n onSave && onSave();\n }\n } else {\n return false;\n }\n });\n };\n\n return (\n <div className=\"user-form\">\n <Form\n ref={ref}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Form.Item\n label={copyrightStatements && copyrightStatements.TemplateTitle}\n prop=\"SectionId\"\n >\n <div>{copyrightStatements && copyrightStatements.TemplateText}</div>\n </Form.Item>\n <Form.Item label=\"Section\" prop=\"SectionId\">\n <Select\n value={state.SectionId}\n placeholder=\"Section\"\n onChange={(val: any) => onChange(\"SectionId\", val)}\n >\n {sections &&\n sections.map((role, index) => (\n <Select.Option\n key={index}\n label={role.Name}\n value={role.Id}\n ></Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item label=\"CheckList\" prop=\"CheckList\">\n <CheckList\n list={checkList}\n value={state.CheckList}\n onChange={(val: any) => onChange(\"CheckList\", val)}\n />\n </Form.Item>\n <Form.Item label=\"Comments for the Editor\" prop=\"CommentsForEditor\">\n <CKEditor\n editor={ClassicEditor}\n data={ckBody}\n onChange={(event, editor) => {\n const data = editor.getData();\n setCkBody(data);\n }}\n />\n </Form.Item>\n <Form.Item\n label={privacyStatements && privacyStatements.TemplateTitle}\n prop=\"privacyStatements\"\n >\n <div>{privacyStatements && privacyStatements.TemplateText}</div>\n </Form.Item>\n\n <Form.Item>\n <Button type=\"primary\" onClick={handleNextClick} loading={isLoading}>\n Save and Continue\n </Button>\n </Form.Item>\n </Form>\n </div>\n );\n};\nexport default Start;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { Dialog, Form, Input, Select, Button } from \"element-react\";\nimport { AttachmentButton } from \"components/form\";\nimport { useSelector } from \"react-redux\";\n\nconst initialState = {\n Component: null,\n Attachment: null,\n UserFileName: \"\",\n ServerFileName: \"\",\n FileFormat: \"\",\n FileType: \"\",\n Size: \"\",\n};\n\nconst UploadFile = (props) => {\n const { isVisible, onSave, onCancel, selectedFileData } = props;\n const [state, setState] = useState(initialState);\n const { components } = useSelector((state: any) => state.metaReducer);\n\n useEffect(() => {\n const data = selectedFileData.data;\n if (data) {\n setState({\n ...data,\n Component: components.find((x) => x.Id === data.ComponentId),\n Attachment: data.Attachment || {\n serverFileName: data.ServerFileName,\n name: data.UserFileName,\n },\n });\n } else {\n setState(initialState);\n }\n }, [selectedFileData]);\n\n const handleChange = (name, value) => {\n console.clear();\n console.log(state);\n console.log(name, value);\n setState({ ...state, [name]: value });\n };\n\n const handleSave = () => {\n let obj = {\n ...state,\n ComponentId: state.Component.Id,\n ComponentName: state.Component.Name,\n };\n onSave && onSave(selectedFileData.index, obj);\n setState(initialState);\n };\n return (\n <Dialog title=\"Shipping Address\" visible={isVisible} onCancel={onCancel}>\n <Dialog.Body>\n <Form model={state} labelPosition=\"top\">\n <Form.Item label=\"Article Component\">\n <Select\n value={state.Component}\n placeholder=\"Please select component\"\n onChange={(val) => handleChange(\"Component\", val)}\n >\n {components &&\n components.map((item, index) => (\n <Select.Option\n key={index}\n label={item.Name}\n value={item}\n ></Select.Option>\n ))}\n </Select>\n </Form.Item>\n <Form.Item label=\"Attachment\">\n <AttachmentButton\n value={state.Attachment}\n name=\"Attachment\"\n onChange={handleChange}\n />\n </Form.Item>\n <Form.Item>\n <Button type=\"primary\" onClick={() => handleSave()}>\n Save\n </Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n );\n};\nexport default UploadFile;\n","import React, { useEffect, useState } from \"react\";\nimport { Button } from \"element-react\";\nimport UploadFile from \"./uploadFile\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isEmpty } from \"helpers\";\n\nimport { SaveAttachment } from \"store/actions/submitter\";\nimport { FiFile } from \"react-icons/fi\";\n\nconst UploadSubmission = (props) => {\n const { onSave } = props;\n const [isVisible, setVisible] = useState(false);\n const [selectedFileData, setSelectedFileData] = useState({\n data: null,\n index: -1,\n });\n const dispatch = useDispatch();\n\n const [attachments, setAttachments] = useState([]);\n const { article } = useSelector((st: any) => st.submitterReducer);\n\n useEffect(() => {\n if (!isEmpty(article)) {\n let attachments = article.ArticleAttachments || [];\n setAttachments([...attachments]);\n }\n }, [article]);\n\n const handleSaveFile = (index, obj) => {\n let newAttachments = [...attachments];\n if (index >= 0) newAttachments[index] = obj;\n else newAttachments.push(obj);\n\n setAttachments(newAttachments);\n setVisible(false);\n };\n\n const onSaveClicked = async () => {\n let data = new FormData();\n data.append(\"ArticleId\", article.Id);\n data.append(\"Steps\", \"3\");\n\n for (var i = 0; i < attachments.length; i++) {\n var item = attachments[i];\n data.append(`Attachments[${i}].Attachment`, item.Attachment || null);\n data.append(`Attachments[${i}].FileFormat`, item.FileFormat);\n data.append(`Attachments[${i}].FileType`, item.FileType);\n data.append(`Attachments[${i}].ServerFileName`, item.ServerFileName);\n data.append(`Attachments[${i}].Size`, item.Size);\n data.append(`Attachments[${i}].UserFileName`, item.UserFileName);\n data.append(`Attachments[${i}].ComponentId`, item.ComponentId);\n }\n var res: any = await dispatch(SaveAttachment(data));\n if (res && res.Status) onSave();\n // onSave && onSave();\n };\n\n const handleAttachmentEditClick = (index) => {\n setSelectedFileData({ index: index, data: { ...attachments[index] } });\n setVisible(true);\n };\n\n const handleAttachmentDeleteClick = (index) => {\n let newAttachments = [...attachments];\n newAttachments.splice(index, 1);\n setAttachments(newAttachments);\n };\n\n return (\n <div className=\"upload-steps__submissions\">\n <div className=\"upload-steps__submissions-header\">\n <div>Submission Files</div>\n <div className=\"upload-steps__submissions-header-action\">\n <div>\n <Button\n type=\"text\"\n onClick={() => {\n setSelectedFileData({ index: -1, data: null });\n setVisible(true);\n }}\n >\n Upload File\n </Button>\n </div>\n </div>\n </div>\n\n <div className=\"upload-steps__submissions-body\">\n {attachments.map((attachment, index) => (\n <div className=\"upload-steps__attachment\" key={index}>\n <div className=\"upload-steps__attachment-info\">\n <div className=\"upload-steps__attachment-info-title\">\n <FiFile />\n {attachment.UserFileName\n ? attachment.UserFileName\n : attachment.Attachment.name}\n </div>\n <div className=\"upload-steps__attachment-info-subtitle\">\n Component: {attachment.ComponentName}\n </div>\n </div>\n <div className=\"upload-steps__attachment-action\">\n <Button\n type=\"text\"\n onClick={() => handleAttachmentEditClick(index)}\n >\n Edit\n </Button>\n <Button\n type=\"text\"\n onClick={() => handleAttachmentDeleteClick(index)}\n >\n Delete\n </Button>\n </div>\n </div>\n ))}\n </div>\n\n <UploadFile\n isVisible={isVisible}\n setVisible={setVisible}\n selectedFileData={selectedFileData}\n onCancel={() => {\n setVisible(false);\n setSelectedFileData({ index: -1, data: null });\n }}\n onSave={(index, obj) => handleSaveFile(index, obj)}\n />\n <div className=\"upload-steps__submissions-footer\">\n <Button\n type=\"primary\"\n onClick={onSaveClicked}\n disabled={attachments && attachments.length === 0}\n >\n Save and Continue\n </Button>\n </div>\n </div>\n );\n};\nexport default UploadSubmission;\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { Form, Input, Button, Layout, Dialog } from \"element-react\";\nimport { AttachmentButton } from \"components/form\";\nimport { isEmpty } from \"helpers\";\n\nconst initialState = {\n FullName: \"\",\n Salutation: \"\",\n Designation: \"\",\n Institute: \"\",\n PostalAddress: \"\",\n MobileNo: \"\",\n Email: \"\",\n Photo_ServerFileName: \"\",\n Photo_UserFileName: \"\",\n Photo: null,\n DigitalSignature_ServerFileName: \"\",\n DigitalSignature_UserFileName: \"\",\n DigitalSignature: null,\n};\n\nconst EntryForm = (props) => {\n const { coAuthorList, coAuthorData, onCancel, onSave } = props;\n const formRef: any = useRef();\n const rules = {};\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n if (coAuthorData.index >= 0) {\n var obj = coAuthorList[coAuthorData.index];\n console.clear();\n console.log(obj);\n setState({ ...obj });\n } else {\n setState(initialState);\n }\n }, [coAuthorData]);\n\n const onChange = (name, val) => {\n setState({ ...state, [name]: val });\n };\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n\n formRef.current.validate(async (valid) => {\n if (valid) {\n const { index } = coAuthorData;\n onSave && onSave(index, state);\n } else {\n return false;\n }\n });\n };\n const handleReset = (e: any) => {\n formRef.current.resetFields();\n setState({} as any);\n };\n return (\n <div>\n <Dialog\n title=\"Co-Authors\"\n visible={coAuthorData.isVisible}\n onCancel={() => onCancel()}\n >\n <Dialog.Body>\n <Form\n ref={formRef}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Layout.Row gutter=\"20\">\n <Layout.Col span=\"12\">\n <Form.Item label=\"Salutation\" prop=\"Salutation\">\n <Input\n value={state.Salutation}\n onChange={(val: any) => onChange(\"Salutation\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Designation\" prop=\"Designation\">\n <Input\n value={state.Designation}\n onChange={(val: any) => onChange(\"Designation\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Full Name\" prop=\"FullName\">\n <Input\n value={state.FullName}\n onChange={(val: any) => onChange(\"FullName\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Institute\" prop=\"Institute\">\n <Input\n value={state.Institute}\n onChange={(val: any) => onChange(\"Institute\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n {\" \"}\n <Form.Item label=\"Address\" prop=\"PostalAddress\">\n <Input\n value={state.PostalAddress}\n onChange={(val: any) => onChange(\"PostalAddress\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Mobile\" prop=\"MobileNo\">\n <Input\n value={state.MobileNo}\n onChange={(val: any) => onChange(\"MobileNo\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\"></Layout.Col>\n </Layout.Row>\n <Layout.Row>\n <Layout.Col span=\"12\">\n <AttachmentButton\n label=\"Photo\"\n value={state.Photo}\n name=\"Photo\"\n onChange={onChange}\n />\n </Layout.Col>\n <Layout.Col span=\"12\">\n {\" \"}\n <AttachmentButton\n label=\"DigitalSignature\"\n value={state.DigitalSignature}\n name=\"DigitalSignature\"\n onChange={onChange}\n />\n </Layout.Col>\n </Layout.Row>\n <Form.Item>\n <Button type=\"primary\" onClick={handleSubmit} nativeType=\"submit\">\n Save\n </Button>\n <Button onClick={handleReset}>Reset</Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n </div>\n );\n};\n\nexport default EntryForm;\n","import React, { useState, useRef, useEffect } from \"react\";\r\nimport { Form, Input, Button, Layout, Table } from \"element-react\";\r\nimport { AttachmentButton } from \"components/form\";\r\nimport EntryForm from \"./entryForm\";\r\nimport { SaveAuthors } from \"store/actions/submitter\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { isEmpty } from \"helpers\";\r\n\r\nconst CoAuthorList = (props) => {\r\n //setCoAuthorData\r\n const { CoAuthors, onEditClicked, onDelelteClicked } = props;\r\n const columns = [\r\n { label: \"Name\", prop: \"FullName\", width: 180 },\r\n { label: \"Salutation\", prop: \"Salutation\", width: 180 },\r\n { label: \"Designation\", prop: \"Designation\", width: 180 },\r\n { label: \"Institute\", prop: \"Institute\", width: 180 },\r\n { label: \"PostalAddress\", prop: \"PostalAddress\", width: 180 },\r\n { label: \"MobileNo\", prop: \"MobileNo\", width: 180 },\r\n { label: \"Email\", prop: \"Email\", width: 180 },\r\n {\r\n label: \"\",\r\n width: 160,\r\n fixed: \"right\",\r\n render: (row, column, index) => {\r\n return (\r\n <span>\r\n <Button\r\n type=\"text\"\r\n size=\"small\"\r\n onClick={() => onEditClicked(index, row)}\r\n >\r\n Edit\r\n </Button>\r\n <Button\r\n type=\"text\"\r\n size=\"small\"\r\n onClick={() => onDelelteClicked(index, row)}\r\n >\r\n Delete\r\n </Button>\r\n </span>\r\n );\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n CoAuthors &&\r\n CoAuthors.length > 0 && (\r\n <Table columns={columns} data={CoAuthors} fit={true} />\r\n )\r\n );\r\n};\r\nexport default CoAuthorList;\r\n","import React, { useState, useRef, useEffect } from \"react\";\nimport { Form, Input, Button, Layout, Table } from \"element-react\";\nimport { AttachmentButton } from \"components/form\";\nimport EntryForm from \"./entryForm\";\nimport { SaveAuthors } from \"store/actions/submitter\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isEmpty } from \"helpers\";\nimport CoAuthorList from \"./coAuthorList\";\n\nconst Authors = (props) => {\n const { onSave } = props;\n const formRef: any = useRef();\n const dispatch = useDispatch();\n const rules = {};\n\n const [isLoading, setLoading] = useState(false);\n\n const [coAuthorData, setCoAuthorData] = useState({\n index: -1,\n isVisible: false,\n });\n\n const [state, setState] = useState({\n ArticleId: 0,\n FullName: \"\",\n Salutation: \"\",\n Designation: \"\",\n Institute: \"\",\n PostalAddress: \"\",\n MobileNo: \"\",\n Email: \"\",\n Photo_ServerFileName: \"\",\n Photo_UserFileName: \"\",\n Photo: null,\n DigitalSignature_ServerFileName: \"\",\n DigitalSignature_UserFileName: \"\",\n DigitalSignature: null,\n Steps: 2,\n CoAuthors: [],\n });\n\n const { article } = useSelector((st: any) => st.submitterReducer);\n\n useEffect(() => {\n if (!isEmpty(article)) {\n setState({\n ...state,\n ArticleId: article.Id,\n FullName: article.InvestigatorName,\n Salutation: article.InvestigatorSalutation,\n Designation: article.InvestigatorDesignation,\n Institute: article.InvestigatorInstitute,\n PostalAddress: article.InvestigatorPostalAddress,\n MobileNo: article.InvestigatorMobileNo,\n Email: article.InvestigatorEmail,\n Photo_ServerFileName: article.InvestigatorPhoto_ServerFileName,\n Photo_UserFileName: article.InvestigatorPhoto_UserFileName,\n Photo: {\n serverFileName: article.InvestigatorPhoto_ServerFileName,\n name: article.InvestigatorPhoto_UserFileName,\n },\n DigitalSignature_ServerFileName:\n article.InvestigatorDigitalSignature_ServerFileName,\n DigitalSignature_UserFileName:\n article.InvestigatorDigitalSignature_UserFileName,\n DigitalSignature: {\n serverFileName: article.InvestigatorDigitalSignature_ServerFileName,\n name: article.InvestigatorDigitalSignature_UserFileName,\n },\n CoAuthors:\n article.ArticleCoAuthors &&\n article.ArticleCoAuthors.map((x) => ({\n ...x,\n Photo: !isEmpty(x.Photo_ServerFileName) && {\n serverFileName: x.Photo_ServerFileName,\n name: x.Photo_UserFileName,\n },\n DigitalSignature: !isEmpty(x.DigitalSignature_ServerFileName) && {\n serverFileName: x.DigitalSignature_ServerFileName,\n name: x.DigitalSignature_UserFileName,\n },\n })),\n });\n }\n }, [article]);\n\n const onChange = (name, val) => {\n setState({ ...state, [name]: val });\n };\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n\n formRef.current.validate(async (valid) => {\n if (valid) {\n //await dispatch(GetRoles());\n let data = new FormData();\n\n for (var k in state) {\n if (k !== \"CoAuthors\") {\n data.append(`${k}`, state[k]);\n }\n }\n state.CoAuthors &&\n state.CoAuthors.forEach((el, index) => {\n for (var k in el) {\n if (k !== \"CoAuthors\")\n data.append(`CoAuthors[${index}].${k}`, el[k]);\n }\n //formD\n });\n\n setLoading(true);\n var res: any = await dispatch(SaveAuthors(data));\n setLoading(false);\n if (res && res.Status) onSave();\n } else {\n return false;\n }\n });\n };\n const handleReset = (e: any) => {\n formRef.current.resetFields();\n setState({} as any);\n };\n\n const handleCoAuthorSave = (index, obj) => {\n let nextState = { ...state, CoAuthors: [...state.CoAuthors] };\n if (index >= 0) {\n nextState.CoAuthors[index] = { ...obj };\n } else {\n nextState.CoAuthors.push({ ...obj });\n }\n\n setState(nextState);\n setCoAuthorData({ index: -1, isVisible: false });\n // setVisible(false);\n };\n\n const handleCoAuthorEdit = (index, obj) => {\n console.clear();\n console.log(index, obj);\n setCoAuthorData({ index: index, isVisible: true });\n };\n const handleCoAuthorDelete = (index, obj) => {\n if (index >= 0) {\n let nextState = { ...state, CoAuthors: [...state.CoAuthors] };\n nextState.CoAuthors.splice(index, 1);\n setState(nextState);\n }\n };\n\n return (\n <div>\n <Form\n ref={formRef}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <div className=\"author-steps__authors\">\n <Layout.Row gutter=\"20\">\n <Layout.Col span=\"6\">\n <Form.Item label=\"Salutation\" prop=\"Salutation\">\n <Input\n value={state.Salutation}\n onChange={(val: any) => onChange(\"Salutation\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n <Form.Item label=\"Designation\" prop=\"Designation\">\n <Input\n value={state.Designation}\n onChange={(val: any) => onChange(\"Designation\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n <Form.Item label=\"Full Name\" prop=\"FullName\">\n <Input\n value={state.FullName}\n onChange={(val: any) => onChange(\"FullName\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n {\" \"}\n <Form.Item label=\"Institute\" prop=\"Institute\">\n <Input\n value={state.Institute}\n onChange={(val: any) => onChange(\"Institute\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n {\" \"}\n <Form.Item label=\"Address\" prop=\"PostalAddress\">\n <Input\n value={state.PostalAddress}\n onChange={(val: any) => onChange(\"PostalAddress\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\">\n <Form.Item label=\"Mobile\" prop=\"MobileNo\">\n <Input\n value={state.MobileNo}\n onChange={(val: any) => onChange(\"MobileNo\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"6\"></Layout.Col>\n </Layout.Row>\n <Layout.Row>\n <Layout.Col span=\"12\">\n <AttachmentButton\n label=\"Photo\"\n value={state.Photo}\n name=\"Photo\"\n onChange={onChange}\n />\n </Layout.Col>\n <Layout.Col span=\"12\">\n <AttachmentButton\n label=\"Digital Signature\"\n value={state.DigitalSignature}\n name=\"DigitalSignature\"\n onChange={onChange}\n />\n </Layout.Col>\n </Layout.Row>\n </div>\n <div className=\"author-steps__co-authors\">\n <div className=\"author-steps__cauthors\">\n <Button\n onClick={() => setCoAuthorData({ index: -1, isVisible: true })}\n >\n Add CoAuthors\n </Button>\n </div>\n\n <CoAuthorList\n CoAuthors={state.CoAuthors}\n onDelelteClicked={handleCoAuthorDelete}\n onEditClicked={handleCoAuthorEdit}\n />\n </div>\n\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n nativeType=\"submit\"\n loading={isLoading}\n >\n Save and Continue\n </Button>\n </Form.Item>\n </Form>\n\n <EntryForm\n coAuthorData={coAuthorData}\n coAuthorList={state.CoAuthors}\n onSave={handleCoAuthorSave}\n onCancel={() => setCoAuthorData({ index: -1, isVisible: false })}\n />\n </div>\n );\n};\n\nexport default Authors;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Form, Input, Button, Select, Checkbox } from \"element-react\";\nimport { CheckList } from \"components/form\";\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\nimport ClassicEditor from \"@ckeditor/ckeditor5-build-classic\";\nimport { SaveMetaData } from \"store/actions/submitter\";\nimport { isEmpty } from \"helpers\";\n\nconst MetaData = (props) => {\n const { article } = useSelector((st: any) => st.submitterReducer);\n useEffect(() => {\n if (!isEmpty(article)) {\n setPrefix(article.ProposalTitle);\n setIntroduction(article.ProposalIntroduction || \"\");\n setMethods(article.PropsalMethods || \"\");\n setCitedReference(article.ProposalCitedReferences || \"\");\n }\n }, [article]);\n const { onSave } = props;\n const dispatch = useDispatch();\n const [isLoading, setLoading] = useState(false);\n const [prefix, setPrefix] = useState(\"\");\n const [introduction, setIntroduction] = useState(\"\");\n const [methods, setMethods] = useState(\"\");\n const [citedReference, setCitedReference] = useState(\"\");\n\n const onSaveClicked = async () => {\n var param = {\n articleId: article.Id,\n steps: 4,\n prefix,\n introduction,\n methods,\n citedReference,\n };\n setLoading(true);\n console.clear();\n console.log(param, article);\n var res: any = await dispatch(SaveMetaData(param));\n setLoading(false);\n if (res && res.Status) onSave();\n };\n return (\n <div className=\"user-form\">\n <Form className=\"demo-form-stacked\" labelPosition=\"top\" labelWidth=\"100\">\n <Form.Item label=\"Acknowledge the copyright statements\">\n <Input\n type=\"textarea\"\n value={prefix}\n onChange={(e: any) => setPrefix(e)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Introduction\">\n <CKEditor\n editor={ClassicEditor}\n data={introduction}\n onChange={(event, editor) => {\n const data = editor.getData();\n setIntroduction(data);\n }}\n />\n </Form.Item>\n <Form.Item label=\"Methods\">\n <CKEditor\n editor={ClassicEditor}\n data={methods}\n onChange={(event, editor) => {\n const data = editor.getData();\n setMethods(data);\n }}\n />\n </Form.Item>\n <Form.Item label=\"Cited References\">\n <CKEditor\n editor={ClassicEditor}\n data={citedReference}\n onChange={(event, editor) => {\n const data = editor.getData();\n setCitedReference(data);\n }}\n />\n </Form.Item>\n <Form.Item>\n <Button type=\"primary\" onClick={onSaveClicked} loading={isLoading}>\n Save and Continue\n </Button>\n </Form.Item>\n </Form>\n </div>\n );\n};\nexport default MetaData;\n","import React, { useState } from \"react\";\nimport { Button } from \"element-react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { SaveConfrimation } from \"store/actions/submitter\";\n\nconst Confirmation = (props) => {\n const { onConfirmation } = props;\n const { article } = useSelector((st: any) => st.submitterReducer);\n const dispatch = useDispatch();\n const [isLoading, setLoading] = useState(false);\n const onSaveClicked = async () => {\n var param = {\n articleId: article.Id,\n steps: 5,\n };\n\n setLoading(true);\n var res: any = await dispatch(SaveConfrimation(param));\n setLoading(false);\n if (res && res.Status) onConfirmation();\n };\n return (\n <div>\n <div className=\"upload-steps__info\">\n Your submission has been uploaded and is ready to be sent. You may go\n back to review and adjust any of the information you have entered before\n continuing. When you are ready, click \"Finish Submission\"\n </div>\n <div>\n <Button\n type=\"primary\"\n onClick={() => onSaveClicked()}\n loading={isLoading}\n >\n Finish Submission\n </Button>\n </div>\n </div>\n );\n};\n\nexport default Confirmation;\n","import React, { useEffect, useState } from \"react\";\nimport {\n Form,\n Input,\n Button,\n Select,\n Tabs,\n Message,\n Breadcrumb,\n} from \"element-react\";\nimport Start from \"./start\";\nimport UploadSubmission from \"./uploadSubmission\";\nimport Authors from \"./authors\";\nimport MetaData from \"./metaData\";\nimport Confirmation from \"./confirmation\";\nimport { useHistory } from \"react-router\";\nimport RouteEnum from \"constants/routesEnum\";\nimport { Link } from \"react-router-dom\";\nimport { GetArticle } from \"store/actions/submitter\";\nimport { useDispatch } from \"react-redux\";\nconst Submisson = (props) => {\n const [steps, setSteps] = useState(1);\n const [selectedTab, setSelectedTab] = useState(\"1\");\n const dispatch = useDispatch();\n const history = useHistory();\n const { articleId } = props.match.params;\n useEffect(() => {\n if (articleId) {\n fetchArticle(articleId);\n }\n }, [articleId]);\n\n const fetchArticle = async (articleId) => {\n await dispatch(GetArticle(articleId));\n };\n\n const handleOnSaveStep1 = () => {\n updateStep(2);\n setSelectedTab(\"2\");\n };\n\n const handleOnSaveStep2 = () => {\n updateStep(3);\n setSelectedTab(\"3\");\n };\n const handleOnSaveStep3 = () => {\n updateStep(4);\n setSelectedTab(\"4\");\n };\n const handleOnSaveStep4 = () => {\n updateStep(5);\n setSelectedTab(\"5\");\n };\n const handleConfirmation = () => {\n Message({\n showClose: true,\n message: \"Congrats, submission completed.\",\n type: \"success\",\n });\n };\n const updateStep = (newStep: number) => {\n if (newStep > steps) {\n setSteps(newStep);\n }\n };\n\n const isDisabled = (tab) => {\n return false;\n //return steps < tab;\n };\n const handleTabClicked = (e) => {\n const { name } = e.props;\n setSelectedTab(name);\n };\n\n const tabs = [\n {\n label: \"1.start\",\n name: \"1\",\n component: <Start onSave={() => handleOnSaveStep1()} />,\n },\n {\n label: \"2. Authors and CoAuthors\",\n name: \"2\",\n component: <Authors onSave={() => handleOnSaveStep2()} />,\n },\n {\n label: \"3. Upload Submission\",\n name: \"3\",\n component: <UploadSubmission onSave={() => handleOnSaveStep3()} />,\n },\n {\n label: \"4. Enter Metadata\",\n name: \"4\",\n component: <MetaData onSave={() => handleOnSaveStep4()} />,\n },\n {\n label: \"5.Confirmation\",\n name: \"5\",\n component: <Confirmation onConfirmation={() => handleConfirmation()} />,\n },\n ];\n\n return (\n <>\n <Breadcrumb separator=\"/\">\n <Breadcrumb.Item>\n <Link to={RouteEnum.submitter}>Home</Link>\n </Breadcrumb.Item>\n <Breadcrumb.Item>Submission</Breadcrumb.Item>\n </Breadcrumb>\n\n <div className=\"submission\">\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\n {tabs.map((item, index) => (\n <Tabs.Pane\n key={index}\n label={item.label}\n name={item.name}\n disabled={isDisabled(index + 1)}\n >\n {item.component}\n </Tabs.Pane>\n ))}\n </Tabs>\n </div>\n </>\n );\n};\nexport default Submisson;\n","import React from \"react\";\nimport { Form, Input, Button, Select, Dialog } from \"element-react\";\nimport { Link } from \"react-router-dom\";\nimport RouteEnum from \"constants/routesEnum\";\nconst Search = (props) => {\n const { state, setState, onSearchClicked } = props;\n\n const onChangeSearch = (name, val) => {\n setState({ ...state, [name]: val });\n };\n return (\n <div className=\"submission-search\">\n <Form inline={true}>\n <Form.Item>\n <Input\n style={{ width: \"300px\" }}\n value={state.proposalTitle}\n placeholder=\"Proposal Ttile\"\n onChange={(val: any) => onChangeSearch(\"proposalTitle\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item>\n <Button type=\"primary\" onClick={() => onSearchClicked()}>\n Search\n </Button>\n </Form.Item>\n </Form>\n <div>\n <Link\n to={RouteEnum.submission}\n className=\"el-button el-button--default\"\n >\n New Submission\n </Link>\n </div>\n </div>\n );\n};\n\nexport default Search;\n","export enum RoleEnum {\n Public = \"Public\",\n Submitter = \"Submitter\",\n Administrator = \"Administrator\",\n Editor = \"Editor\",\n Reviewer = \"Reviewer\",\n}\nexport default RoleEnum;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport {\n Form,\n Input,\n Button,\n Select,\n Table,\n Pagination,\n Dialog,\n Message,\n MessageBox,\n Breadcrumb,\n} from \"element-react\";\nimport Routes from \"routes\";\nimport { GetArticles } from \"store/actions/submitter\";\nimport Search from \"./search\";\nimport RouteEnum from \"constants/routesEnum\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\n\nconst Submissions = (props) => {\n const { selectedTab } = props;\n const [isVisible, setVisible] = useState(false);\n const [data, setData] = useState({\n Roles: [],\n });\n\n const [state, setState] = useState({\n status: 0,\n PageIndex: 1,\n pageSize: 20,\n propsalTitle: \"\",\n });\n\n useEffect(() => {\n var status = 0;\n if (selectedTab == \"My Queue\") status = ArticleStatusEnum.PENDING as number;\n else if (selectedTab == \"My Queue\")\n status = ArticleStatusEnum.PENDING as number;\n else if (selectedTab == \"Submitted\")\n status = ArticleStatusEnum.SUBMITTED as number;\n else if (selectedTab == \"Reverted\")\n status = ArticleStatusEnum.REVERTED as number;\n else if (selectedTab == \"Rejected\")\n status = ArticleStatusEnum.REJECTED as number;\n else if (selectedTab == \"Archived\")\n status = ArticleStatusEnum.ARCHIVED as number;\n\n fetchData({ ...state, status: status });\n }, [selectedTab]);\n const dispatch = useDispatch();\n const [list, setList] = useState([]);\n const history = useHistory();\n\n const fetchData = async (param) => {\n var ls: any = [];\n ls = await dispatch(GetArticles(param));\n setList(ls);\n };\n\n const handleSearchClicked = () => {\n let newState = { ...state, pageIndex: 1, pageSize: 20 };\n setState(newState);\n fetchData(newState);\n };\n const handlePageSizeChanged = (size) => {\n let newState = { ...state, pageSize: size };\n setState(newState);\n fetchData(newState);\n };\n const handlePageChanged = (page) => {\n let newState = { ...state, pageIndex: page };\n setState(newState);\n fetchData(newState);\n };\n\n const handleSaveSucees = () => {\n setVisible(false);\n fetchData(state);\n };\n const columns = [\n {\n label: \"Section\",\n prop: \"SectionName\",\n width: 120,\n },\n\n {\n label: \"Name\",\n prop: \"FullName\",\n render: (row, column, index) => {\n return (\n <span>\n {row.InvestigatorSalutation} {row.InvestigatorName}\n </span>\n );\n },\n },\n {\n label: \"Propsal Title\",\n prop: \"PropsalTitle\",\n width: 120,\n },\n\n {\n label: \"\",\n width: 160,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <span>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={() => history.push(`${RouteEnum.submission}/${row.Id}`)}\n >\n Edit\n </Button>\n <Button type=\"text\" size=\"small\" onClick={() => confirmDelete(row)}>\n Delete\n </Button>\n </span>\n );\n },\n },\n ];\n\n const confirmDelete = (obj) => {\n MessageBox.confirm(\"This will permanently delete. Continue?\", \"Warning\", {\n confirmButtonText: \"OK\",\n cancelButtonText: \"Cancel\",\n type: \"warning\",\n })\n .then(async () => {\n // await dispatch(DeleteUser(obj.Id));\n // fetchData(state);\n })\n .catch(() => {});\n };\n\n let totalData = 0;\n if (list && list.length > 0) {\n totalData = list[0].TotalData;\n }\n\n return (\n <div>\n <Search\n state={state}\n setState={setState}\n onSearchClicked={handleSearchClicked}\n />\n <Table\n style={{ width: \"100%\" }}\n columns={columns}\n data={list}\n border={true}\n />\n <Pagination\n layout=\"total, sizes, prev, pager, next\"\n total={totalData}\n pageSizes={[10, 20, 50, 100]}\n pageSize={state.pageSize}\n currentPage={state.PageIndex}\n onSizeChange={handlePageSizeChanged}\n onCurrentChange={handlePageChanged}\n />\n </div>\n );\n};\n\nexport default Submissions;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport {\n Form,\n Input,\n Button,\n Select,\n Table,\n Pagination,\n Dialog,\n Message,\n MessageBox,\n Breadcrumb,\n Tabs,\n} from \"element-react\";\nimport Routes from \"routes\";\nimport { AddUserInterface } from \"interfaces/user\";\nimport { GetRoles } from \"store/actions/common\";\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\nimport Search from \"./component/search\";\nimport RouteEnum from \"constants/routesEnum\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\nimport SubmissionList from \"./component/submissionList\";\n\nconst Submitter = () => {\n const [selectedTab, setSelectedTab] = useState(\"My Queue\");\n\n const dispatch = useDispatch();\n const history = useHistory();\n\n const tabs = [\n {\n label: \"My Queue\",\n name: \"My Queue\",\n },\n {\n label: \"Submitted\",\n name: \"Submitted\",\n },\n {\n label: \"Reverted\",\n name: \"Reverted\",\n },\n {\n label: \"Rejected\",\n name: \"Rejected\",\n },\n {\n label: \"Archived\",\n name: \"Archived\",\n },\n ];\n const handleTabClicked = (e) => {\n debugger;\n const { name } = e.props;\n setSelectedTab(name);\n };\n return (\n <div>\n <Breadcrumb separator=\"/\">\n <Breadcrumb.Item>\n <Link to={RouteEnum.submitter}>Home</Link>\n </Breadcrumb.Item>\n </Breadcrumb>\n\n <div className=\"submission\">\n <Tabs type=\"card\" value={selectedTab} onTabClick={handleTabClicked}>\n {tabs.map((item, index) => (\n <Tabs.Pane\n key={index}\n label={item.label}\n name={item.name}\n ></Tabs.Pane>\n ))}\n </Tabs>\n <SubmissionList selectedTab={selectedTab} />\n </div>\n </div>\n );\n};\n\nexport default Submitter;\n","import Submisson from \"scenes/submitter/submission\";\nimport Submitter from \"scenes/submitter\";\nimport RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\n\nconst SubmitterRoutes = [\n {\n exact: true,\n component: Submitter,\n role: RoleEnum.Submitter,\n title: \"Dashboard\",\n path: RouteEnum.submitter,\n },\n {\n exact: true,\n component: Submisson,\n role: RoleEnum.Submitter,\n title: \"Submission\",\n path: RouteEnum.submission,\n },\n {\n exact: true,\n component: Submisson,\n role: RoleEnum.Submitter,\n title: \"Submission\",\n path: `${RouteEnum.submission}/:articleId`,\n },\n];\n\nexport default SubmitterRoutes;\n","import React, { useRef, useState } from \"react\";\nimport queryString from \"query-string\";\nimport {\n Form,\n Input,\n Button,\n Select,\n Dialog,\n Message,\n Layout,\n} from \"element-react\";\nimport { resetPassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router\";\nimport RoutesEnum from \"constants/routesEnum\";\n\nconst ForgotPassword = (props) => {\n const { user } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n const history = useHistory();\n const params = queryString.parse(props.location.search);\n\n const [state, setState] = useState({\n Email: \"\",\n Password: \"\",\n ConfirmPassword: \"\",\n isLoading: false,\n Code: params.code,\n });\n\n const rules = {\n Email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n Password: [\n { required: true, message: \"Please input the password\", trigger: \"blur\" },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password\"));\n } else {\n if (state.Password !== \"\") {\n ref.current.validateField(\"ConfirmPassword\");\n }\n callback();\n }\n },\n },\n ],\n ConfirmPassword: [\n {\n required: true,\n message: \"Please input the password again\",\n trigger: \"blur\",\n },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password again\"));\n } else if (value !== state.Password) {\n callback(new Error(\"Two inputs don't match!\"));\n } else {\n callback();\n }\n },\n },\n ],\n };\n const onChange = (name, val) => setState({ ...state, [name]: val });\n\n const handleSubmit = () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n setState({ ...state, isLoading: true });\n const { Email, Code, Password, ConfirmPassword } = state;\n\n var res: any = await dispatch(\n resetPassword({ Email, Code, Password, ConfirmPassword })\n );\n setState({ ...state, isLoading: false });\n\n if (res) history.push(RoutesEnum.login);\n } else {\n return false;\n }\n });\n };\n\n return (\n <div className=\"container\">\n <div className=\"sign-up-form\">\n <Form\n ref={ref}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Layout.Row gutter=\"20\">\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n <Form.Item label=\"Password\" prop=\"Password\">\n <Input\n type=\"password\"\n value={state.Password}\n onChange={(val: any) => onChange(\"Password\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Confirm Password\" prop=\"ConfirmPassword\">\n <Input\n type=\"password\"\n value={state.ConfirmPassword}\n onChange={(val: any) => onChange(\"ConfirmPassword\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n loading={state.isLoading}\n >\n Submit\n </Button>\n </Form.Item>\n </Layout.Row>\n </Form>\n </div>\n </div>\n );\n};\nexport default ForgotPassword;\n","import React, { useRef, useState } from \"react\";\nimport { Button, Form, Input } from \"element-react\";\nimport { Link } from \"react-router-dom\";\nimport RoutesEnum from \"constants/routesEnum\";\nimport { forgotPassword } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst PasswordReset = (props) => {\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n email: \"\",\n isLoading: false,\n isSuccessSubmitting: false,\n });\n\n const rules = {\n email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n };\n\n const handleSubmit = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n setState({ ...state, isSuccessSubmitting: true, isLoading: true });\n let res = await dispatch(forgotPassword({ email: state.email }));\n let nextState = { ...state };\n nextState.isLoading = false;\n if (res) {\n nextState.isSuccessSubmitting = true;\n }\n setState(nextState);\n }\n });\n };\n\n //const han\n return (\n <div className=\"pr-container\">\n {!state.isSuccessSubmitting ? (\n <div className=\"reset-form\">\n <Form ref={ref} rules={rules} model={state}>\n <Form.Item\n label=\"Enter your user account's verified email address and we will send you a password reset link.\"\n prop=\"email\"\n >\n <Input\n placeholder=\"Enter your email address\"\n value={state.email}\n onChange={(val: any) => setState({ ...state, email: val })}\n ></Input>\n </Form.Item>\n <div className=\"irc-form-footer\">\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n loading={state.isLoading}\n >\n Submit\n </Button>\n </div>\n </Form>\n </div>\n ) : (\n <div className=\"reset-success\">\n <h2>Reset Password</h2>\n <div className=\"reset-success__message\">\n Check your email for a link to reset your password. If it doesn’t\n appear within a few minutes, check your spam folder.\n </div>\n <Link to={RoutesEnum.login} className=\"el-button el-button--primary\">\n Return to sign in\n </Link>\n </div>\n )}\n </div>\n );\n};\n\nexport default PasswordReset;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport { Form, Input, Button, Select, Layout, Switch } from \"element-react\";\nimport { SaveUser, signUp } from \"store/actions/user\";\nimport routes from \"constants/routesEnum\";\n\nconst initialState = {\n Roles: [],\n Email: \"\",\n FullName: \"\",\n MobileNumber: \"\",\n Country: \"\",\n Affiliation: \"\",\n Password: \"\",\n ConfirmPassword: \"\",\n};\nconst SignUp = (props) => {\n const [state, setState] = useState(initialState);\n const [isLoading, setLoading] = useState(false);\n const { roles } = useSelector((state: any) => state.commonReducer);\n var formRef: any = useRef();\n const rules = {\n FullName: [\n {\n required: true,\n message: \"Full name is required\",\n trigger: \"blur\",\n },\n ],\n Email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n Password: [\n { required: true, message: \"Please input the password\", trigger: \"blur\" },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password\"));\n } else {\n if (state.Password !== \"\") {\n formRef.current.validateField(\"ConfirmPassword\");\n }\n callback();\n }\n },\n },\n ],\n ConfirmPassword: [\n {\n required: true,\n message: \"Please input the password again\",\n trigger: \"blur\",\n },\n {\n validator: (rule, value, callback) => {\n if (value === \"\") {\n callback(new Error(\"Please input the password again\"));\n } else if (value !== state.Password) {\n callback(new Error(\"Two inputs don't match!\"));\n } else {\n callback();\n }\n },\n },\n ],\n };\n\n const dispatch = useDispatch();\n const history = useHistory();\n\n const onChange = (key: any, value: any) => {\n if (key === \"IsInactive\") {\n value = !value;\n }\n setState({ ...state, [key]: value });\n };\n\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n\n formRef.current.validate(async (valid) => {\n if (valid) {\n setLoading(true);\n const param = { ...state, UserName: state.Email };\n var res: any = await dispatch(signUp(param));\n setLoading(false);\n if (res) history.push(routes.login);\n } else {\n return false;\n }\n });\n };\n const handleReset = (e: any) => {\n formRef.current.resetFields();\n setState(initialState);\n };\n\n return (\n <div className=\"container\">\n <div className=\"sign-up-form\">\n <Form\n ref={formRef}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Layout.Row gutter=\"20\">\n <Form.Item label=\"Full Name\" prop=\"FullName\">\n <Input\n value={state.FullName}\n onChange={(val: any) => onChange(\"FullName\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Mobile\" prop=\"MobileNumber\">\n <Input\n value={state.MobileNumber}\n onChange={(val: any) => onChange(\"MobileNumber\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Country\" prop=\"Country\">\n <Input\n value={state.Country}\n onChange={(val: any) => onChange(\"Country\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Affiliation\" prop=\"Affiliation\">\n <Input\n value={state.Affiliation}\n onChange={(val: any) => onChange(\"Affiliation\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Password\" prop=\"Password\">\n <Input\n type=\"password\"\n value={state.Password}\n onChange={(val: any) => onChange(\"Password\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item label=\"Confirm Password\" prop=\"ConfirmPassword\">\n <Input\n type=\"password\"\n value={state.ConfirmPassword}\n onChange={(val: any) => onChange(\"ConfirmPassword\", val)}\n ></Input>\n </Form.Item>\n\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n nativeType=\"submit\"\n loading={isLoading}\n >\n Sign up\n </Button>\n <Button onClick={handleReset}>Reset</Button>\n </Form.Item>\n </Layout.Row>\n </Form>\n </div>\n </div>\n );\n};\nexport default SignUp;\n","import VerifyEmailAddress from \"scenes/user/verifyEmailAddress\";\nimport ForgotPassword from \"scenes/user/forgotPassword\";\nimport PasswordReset from \"scenes/user/sendPasswordResetLink\";\nimport SignUp from \"scenes/user/signUp\";\nimport RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\n\nconst PublicRoutes = [\n {\n exact: true,\n component: ForgotPassword,\n role: RoleEnum.Public,\n title: \"Reset Password\",\n path: RouteEnum.forgotPassword,\n },\n {\n exact: true,\n component: PasswordReset,\n role: RoleEnum.Public,\n title: \"Reset Password\",\n path: RouteEnum.resetPassword,\n },\n {\n exact: true,\n component: SignUp,\n role: RoleEnum.Public,\n title: \"Sign up\",\n path: RouteEnum.signup,\n },\n];\n\nexport default PublicRoutes;\n","import React from \"react\";\nimport { Form, Input, Button, Select, Dialog } from \"element-react\";\nconst Search = (props) => {\n const { state, setState, onSearchClicked, onAddUserClicked } = props;\n\n const onChangeSearch = (name, val) => {\n setState({ ...state, [name]: val });\n };\n return (\n <div className=\"user-search\">\n <Form inline={true}>\n <Form.Item>\n <Input\n style={{ width: \"300px\" }}\n value={state.userName}\n placeholder=\"User name\"\n onChange={(val: any) => onChangeSearch(\"userName\", val)}\n ></Input>\n </Form.Item>\n <Form.Item>\n <Select\n value={state.isActive}\n placeholder=\"IsActive\"\n onChange={(val: any) => onChangeSearch(\"IsActive\", val)}\n >\n <Select.Option label=\"Active\" value=\"true\"></Select.Option>\n <Select.Option label=\"Inactive\" value=\"false\"></Select.Option>\n </Select>\n </Form.Item>\n <Form.Item>\n <Button type=\"primary\" onClick={() => onSearchClicked()}>\n Search\n </Button>\n </Form.Item>\n </Form>\n <div>\n <Button onClick={() => onAddUserClicked({})}>Add User</Button>\n </div>\n </div>\n );\n};\n\nexport default Search;\n","import { post, get, api } from \"networkService\";\nimport types from \"store/types\";\n\nexport const GetRoles = () => async (dispatch: Function) => {\n const res: any = await get(api.common.roles, dispatch);\n dispatch({ type: types.GET_ROLES, payload: res.Data });\n};\n\nexport const verifyUserEmailAddress =\n ({ param }) =>\n async (dispatch: Function) => {\n const res: any = await get(\n api.users.verifyEmail,\n dispatch,\n {\n param,\n },\n true\n );\n if (res) {\n return res.Status;\n }\n return false;\n };\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport { Form, Input, Button, Select, Layout, Switch } from \"element-react\";\nimport Routes from \"routes\";\nimport { AddUserInterface } from \"interfaces/user\";\nimport { GetRoles } from \"store/actions/common\";\nimport { SaveUser } from \"store/actions/user\";\n\nconst AddUser = (props) => {\n const { state, setState, onSaveSuccess } = props;\n const [isLoading, setLoading] = useState(false);\n const { roles } = useSelector((state: any) => state.commonReducer);\n const rules = {\n FullName: [\n {\n required: true,\n message: \"Full name is required\",\n trigger: \"blur\",\n },\n ],\n Email: [\n {\n required: true,\n message: \"Email is required\",\n trigger: \"blur\",\n },\n {\n type: \"email\",\n message: \"Please input correct email address\",\n trigger: \"blur,change\",\n },\n ],\n RoleId: [\n {\n required: true,\n message: \"Role is required\",\n trigger: \"blur\",\n },\n ],\n };\n var formRef: any = useRef();\n const dispatch = useDispatch();\n const history = useHistory();\n\n useEffect(() => {\n fetchRoles();\n }, []);\n\n const fetchRoles = async () => {\n await dispatch(GetRoles());\n };\n\n const onChange = (key: any, value: any) => {\n if (key === \"IsInactive\") {\n value = !value;\n }\n setState({ ...state, [key]: value });\n };\n\n const handleSubmit = async (e: any) => {\n e.preventDefault();\n\n formRef.current.validate(async (valid) => {\n if (valid) {\n setLoading(true);\n const param = { ...state, UserName: state.Email };\n var res: any = await dispatch(SaveUser(param));\n setLoading(false);\n if (res) {\n onSaveSuccess();\n }\n } else {\n return false;\n }\n });\n };\n const handleReset = (e: any) => {\n formRef.current.resetFields();\n setState({} as AddUserInterface);\n };\n\n return (\n <div className=\"container\">\n <div className=\"user-form\">\n <Form\n ref={formRef}\n rules={rules}\n className=\"demo-form-stacked\"\n model={state}\n labelPosition=\"top\"\n labelWidth=\"100\"\n >\n <Layout.Row gutter=\"20\">\n <Layout.Col span=\"12\">\n <Form.Item label=\"Full Name\" prop=\"FullName\">\n <Input\n value={state.FullName}\n onChange={(val: any) => onChange(\"FullName\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Email\" prop=\"Email\">\n <Input\n value={state.Email}\n onChange={(val: any) => onChange(\"Email\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Mobile\" prop=\"MobileNumber\">\n <Input\n value={state.MobileNumber}\n onChange={(val: any) => onChange(\"MobileNumber\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Country\" prop=\"Country\">\n <Input\n value={state.Country}\n onChange={(val: any) => onChange(\"Country\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Affiliation\" prop=\"Affiliation\">\n <Input\n value={state.Affiliation}\n onChange={(val: any) => onChange(\"Affiliation\", val)}\n ></Input>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Role\" prop=\"Roles\">\n <Select\n multiple={true}\n value={state.Roles}\n placeholder=\"Role\"\n onChange={(val: any) => onChange(\"Roles\", val)}\n >\n {roles &&\n roles.map((role, index) => (\n <Select.Option\n key={index}\n label={role.Name}\n value={role.Name}\n ></Select.Option>\n ))}\n </Select>\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n <Form.Item label=\"Is Active\">\n <Switch\n onText=\"\"\n offText=\"\"\n value={!state.IsInactive}\n onChange={(val: any) => onChange(\"IsInactive\", val)}\n />\n </Form.Item>\n </Layout.Col>\n <Layout.Col span=\"12\">\n {!state.Id && (\n <Form.Item label=\"Password\">\n <Input\n type=\"password\"\n value={state.Password}\n onChange={(val: any) => onChange(\"Password\", val)}\n ></Input>\n </Form.Item>\n )}\n </Layout.Col>\n </Layout.Row>\n <Layout.Row>\n <Layout.Col span=\"12\">\n <Form.Item>\n <Button\n type=\"primary\"\n onClick={handleSubmit}\n nativeType=\"submit\"\n loading={isLoading}\n >\n Save\n </Button>\n <Button onClick={handleReset}>Reset</Button>\n </Form.Item>\n </Layout.Col>\n </Layout.Row>\n </Form>\n </div>\n </div>\n );\n};\nexport default AddUser;\n","import React, { useRef, useState } from \"react\";\nimport { Form, Input, Button, Select, Dialog, Message } from \"element-react\";\nimport { changePasswordByUser } from \"store/actions/user\";\nimport { useDispatch } from \"react-redux\";\n\nconst ChangeUserPassword = (props) => {\n const { user } = props;\n const ref: any = useRef();\n const dispatch = useDispatch();\n\n const [state, setState] = useState({\n newPassword: \"\",\n isVisible: false,\n isLoading: false,\n });\n\n const rules = {\n newPassword: [\n {\n required: true,\n message: \"New password is required\",\n trigger: \"blur\",\n },\n ],\n };\n\n const handleChangePassword = async () => {\n ref.current.validate(async (valid) => {\n if (valid) {\n var res: any = await dispatch(\n changePasswordByUser({\n userName: user.UserName,\n newPassword: state.newPassword,\n })\n );\n if (res && res.Status) reset();\n }\n });\n };\n\n const reset = () => {\n ref.current.resetFields();\n setState({ newPassword: \"\", isLoading: false, isVisible: false });\n };\n return (\n <>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={() => setState({ ...state, isVisible: true })}\n >\n Change Password\n </Button>\n <Dialog\n title=\"Change Password\"\n visible={state.isVisible}\n onCancel={() => reset()}\n style={{ width: \"350px\" }}\n >\n <Dialog.Body>\n <Form ref={ref} rules={rules}>\n <Form.Item>\n <Input\n name=\"newPassword\"\n type=\"password\"\n style={{ width: \"270px\" }}\n value={state.newPassword}\n placeholder=\"New Pasword\"\n onChange={(val: any) =>\n setState({ ...state, newPassword: val })\n }\n ></Input>\n </Form.Item>\n <Form.Item>\n <Button\n onClick={() => handleChangePassword()}\n loading={state.isLoading}\n >\n Change Password\n </Button>\n </Form.Item>\n </Form>\n </Dialog.Body>\n </Dialog>\n </>\n );\n};\n\nexport default ChangeUserPassword;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\n\nimport {\n Form,\n Input,\n Button,\n Select,\n Table,\n Pagination,\n Dialog,\n Message,\n MessageBox,\n} from \"element-react\";\nimport Routes from \"routes\";\nimport { AddUserInterface } from \"interfaces/user\";\nimport { GetRoles } from \"store/actions/common\";\nimport { GetUserList, DeleteUser, ChangeUserStatus } from \"store/actions/user\";\nimport Search from \"./search\";\nimport AddUser from \"./addUser\";\nimport ChangeUserPassword from \"./changeUserPassword\";\n\nconst Index = () => {\n const [isVisible, setVisible] = useState(false);\n const [data, setData] = useState({\n Roles: [],\n });\n const [state, setState] = useState({\n userName: \"\",\n pageIndex: 1,\n pageSize: 20,\n isActive: \"true\",\n });\n useEffect(() => {\n fetchUserList(state);\n }, []);\n const dispatch = useDispatch();\n const history = useHistory();\n const { userList } = useSelector((state: any) => state.userReducer);\n useEffect(() => {}, [userList]);\n\n const fetchUserList = async (param) => {\n await dispatch(GetUserList(param));\n };\n\n const handleSearchClicked = () => {\n let newState = { ...state, pageIndex: 1, pageSize: 20 };\n setState(newState);\n fetchUserList(newState);\n };\n const handlePageSizeChanged = (size) => {\n let newState = { ...state, pageSize: size };\n setState(newState);\n fetchUserList(newState);\n };\n const handlePageChanged = (page) => {\n let newState = { ...state, pageIndex: page };\n setState(newState);\n fetchUserList(newState);\n };\n const handleAddUser = (user) => {\n setData(user);\n setVisible(true);\n };\n const handleSaveSucees = () => {\n debugger;\n setVisible(false);\n fetchUserList(state);\n };\n const columns = [\n {\n label: \"User Name\",\n prop: \"UserName\",\n width: 120,\n },\n\n {\n label: \"Name\",\n prop: \"FullName\",\n },\n {\n label: \"Mobile\",\n prop: \"MobileNumber\",\n width: 120,\n },\n {\n label: \"Email\",\n prop: \"Email\",\n width: 300,\n },\n {\n label: \"Role\",\n prop: \"RoleName\",\n width: 120,\n },\n\n {\n label: \"\",\n width: 150,\n fixed: \"right\",\n render: (row, column, index) => {\n return <ChangeUserPassword user={row} key={index} />;\n },\n },\n {\n label: \"\",\n width: 100,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <span>\n <Button\n type=\"text\"\n size=\"small\"\n onClick={() => changeUserStatus(row)}\n >\n {row.IsInactive ? \"Enable\" : \"Disable\"}\n </Button>\n </span>\n );\n },\n },\n {\n label: \"\",\n width: 160,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <span>\n <Button type=\"text\" size=\"small\" onClick={() => handleAddUser(row)}>\n Edit\n </Button>\n <Button type=\"text\" size=\"small\" onClick={() => confirmDelete(row)}>\n Delete\n </Button>\n </span>\n );\n },\n },\n ];\n\n const confirmDelete = (user) => {\n MessageBox.confirm(\n \"This will permanently delete the user. Continue?\",\n \"Warning\",\n {\n confirmButtonText: \"OK\",\n cancelButtonText: \"Cancel\",\n type: \"warning\",\n }\n )\n .then(async () => {\n await dispatch(DeleteUser(user.Id));\n fetchUserList(state);\n })\n .catch(() => {});\n };\n const changeUserStatus = async (user) => {\n await dispatch(\n ChangeUserStatus({ userId: user.Id, isInactive: !user.IsInactive })\n );\n fetchUserList(state);\n };\n\n let totalData = 0;\n if (userList && userList.length > 0) {\n totalData = userList[0].TotalData;\n }\n\n return (\n <div className=\"user\">\n <Search\n state={state}\n setState={setState}\n onSearchClicked={handleSearchClicked}\n onAddUserClicked={handleAddUser}\n />\n <Table\n style={{ width: \"100%\" }}\n columns={columns}\n data={userList}\n border={true}\n />\n\n <Pagination\n layout=\"total, sizes, prev, pager, next\"\n total={totalData}\n pageSizes={[10, 20, 50, 100]}\n pageSize={state.pageSize}\n currentPage={state.pageIndex}\n onSizeChange={handlePageSizeChanged}\n onCurrentChange={handlePageChanged}\n />\n\n <UserDialog\n state={data}\n setState={setData}\n isVisible={isVisible}\n setVisible={setVisible}\n onSaveSuccess={handleSaveSucees}\n />\n <ChangeUserPassword />\n </div>\n );\n};\n\nconst UserDialog = (props) => {\n const { isVisible, setVisible } = props;\n return (\n <Dialog\n title=\"Add User\"\n visible={isVisible}\n onCancel={() => setVisible(false)}\n >\n <Dialog.Body>\n <AddUser {...props} />\n </Dialog.Body>\n </Dialog>\n );\n};\nexport default Index;\n","import RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\nimport User from \"scenes/user\";\n\nconst AdminRoutes = [\n {\n exact: true,\n component: User,\n role: RoleEnum.Administrator,\n title: \"User\",\n path: RouteEnum.user,\n },\n];\n\nexport default AdminRoutes;\n","import SubmitterRoutes from \"./submitterRoutes\";\nimport PublicRoutes from \"./publicRoutes\";\nimport AdminRoutes from \"./adminRoutes\";\n\nconst routes = [...PublicRoutes, ...SubmitterRoutes, ...AdminRoutes];\nexport default routes;\n","import React from \"react\";\nconst NotFound = (props) => {\n return <div>Not Found</div>;\n};\nexport default NotFound;\n","import RoleEnum from \"constants/roleEnum\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Redirect, Route } from \"react-router\";\n\nconst PrivateRoute = ({ component: Component, ...rest }) => {\n let isAuth = localStorage.getItem(\"AuthToken\");\n let role = localStorage.getItem(\"Role\");\n\n return (\n <Route\n {...rest}\n render={(props) => {\n if (rest.role === RoleEnum.Public) return <Component {...props} />;\n if (isAuth && rest.role === role) return <Component {...props} />;\n return <Redirect to=\"/login\" />;\n }}\n />\n );\n};\nexport default PrivateRoute;\n","import RoleEnum from \"constants/roleEnum\";\nimport RouteEnum from \"constants/routesEnum\";\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport React from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Redirect, Route } from \"react-router\";\n\nconst BaseRoute = ({ component: Component, ...rest }) => {\n let role = localStorage.getItem(\"Role\");\n\n return (\n <Route\n {...rest}\n render={(props) => {\n if (role === RoleEnum.Submitter)\n return <Redirect to={RouteEnum.submitter} />;\n if (role === RoleEnum.Administrator)\n return <Redirect to={RouteEnum.user} />;\n return <Redirect to=\"/login\" />;\n }}\n />\n );\n};\nexport default BaseRoute;\n","import React, { useEffect } from \"react\";\nimport { Route, Switch } from \"react-router-dom\";\nimport Layout from \"../layout\";\n\nimport Login from \"scenes/auth/login\";\n\nimport routes from \"routes\";\n\nimport NotFound from \"scenes/notFound\";\n\nimport submission from \"scenes/submitter/submission\";\nimport Submitter from \"scenes/submitter\";\nimport User from \"scenes/user\";\n\nimport { UserDetailInterface } from \"interfaces/actions/auth\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PrivateRoute from \"./privateRoute\";\nimport BaseRoute from \"./baseRoute\";\nimport { GetRoles } from \"store/actions/common\";\n\nconst Links = (props: any) => {\n const { Email, FullName, UserName, RoleName } = useSelector(\n (state: any) => state.userReducer.loggedInUserDetail as UserDetailInterface\n );\n const dispatch = useDispatch();\n useEffect(() => {\n dispatch(GetRoles());\n }, []);\n\n return (\n <Layout>\n <Switch>\n {routes.map((route, index) => {\n return <PrivateRoute key={index} {...route} />;\n })}\n <Route path=\"/login\" component={Login} />\n <BaseRoute exact path=\"/\" component={NotFound} />\n <Route path=\"*\" component={NotFound} />\n </Switch>\n </Layout>\n );\n};\nexport default Links;\n","import React, { useEffect } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { Notification } from \"element-react\";\nimport { clearMessage } from \"store/actions/validateAction\";\n\nconst Toast = (props) => {\n const { messages } = useSelector((state: any) => state.validateReducer);\n const dispatch = useDispatch();\n const timeout = 3000;\n\n const getType = (messageType) => {\n let type = messageType.toLowerCase();\n\n if (\n !(\n type === \"success \" ||\n type === \"warning\" ||\n type === \"info\" ||\n type === \"error\"\n )\n )\n type = \"info\";\n return type;\n };\n useEffect(() => {\n if (\n messages &&\n messages.message &&\n messages.message !== undefined &&\n messages.message.length > 0\n ) {\n if (Array.isArray(messages.message)) {\n messages.message.forEach((message: any) => {\n const type = getType(messages.type);\n\n Notification({\n message: message,\n type: type,\n duration: timeout,\n offset: 50,\n });\n\n setTimeout(() => {\n dispatch(clearMessage());\n }, timeout);\n });\n } else {\n let type = getType(messages.type);\n\n if (\n !(\n type === \"success \" ||\n type === \"warning\" ||\n type === \"info\" ||\n type === \"error\"\n )\n )\n type = \"info\";\n\n Notification({\n message: messages.message,\n type: type,\n duration: timeout,\n offset: 50,\n });\n\n setTimeout(() => {\n dispatch(clearMessage());\n }, timeout);\n }\n }\n }, [messages]);\n\n return <></>;\n};\nexport default Toast;\n","import * as React from \"react\";\nimport \"scss/index.scss\";\nimport \"element-theme-default\";\nimport { Provider } from \"react-redux\";\nimport configureStore from \"store/configureStore\";\nimport Links from \"navigation/links\";\nimport Toast from \"components/toast\";\n\nimport { i18n } from \"element-react\";\nimport locale from \"element-react/src/locale/lang/en\";\n\n\nconst store = configureStore({});\ni18n.use(locale);\n\nexport default () => (\n <Provider store={store}>\n <div className=\"app\">\n <Links />\n <Toast />\n </div>\n </Provider>\n);\n","import { createStore, applyMiddleware, compose } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport reducers from \"./reducers\";\n\nexport default function configureStore(initialState: any = {}) {\n const production = process.env.NODE_ENV !== \"development\";\n\n let middleware = [thunk];\n\n // if (!production) {\n // middleware.push(require(\"redux-immutable-state-invariant\").default());\n // }\n\n if (production) {\n return createStore(reducers, initialState, applyMiddleware(...middleware));\n } else {\n return createStore(\n reducers,\n initialState,\n compose(applyMiddleware(...middleware))\n );\n }\n}\n","import * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { BrowserRouter } from \"react-router-dom\";\nimport App from \"./App\";\n// import reportWebVitals from \"./reportWebVitals\";\nconst baseUrl = document\n .getElementsByTagName(\"base\")[0]\n .getAttribute(\"href\") as string;\n\nReactDOM.render(\n <BrowserRouter basename={baseUrl}>\n <App />\n </BrowserRouter>,\n document.getElementById(\"root\")\n);\n"],"sourceRoot":""}
Save