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.6c6ceedb.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/articleReducer.ts","store/reducers/index.ts","store/configureStore.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","components/form/attachmentButton.tsx","constants/articleStatusEnum.ts","store/actions/articles/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/submitArticle.tsx","scenes/submitter/submission/index.tsx","scenes/submitter/component/search.tsx","components/tableView/index.tsx","hooks/useOutsideClick.tsx","components/popup/_popover.tsx","constants/roleEnum.ts","components/popup/splitButton.tsx","scenes/submitter/component/submissionList.tsx","scenes/submitter/index.tsx","routes/submitterRoutes.ts","scenes/viewArticle/components/start.tsx","scenes/viewArticle/components/author.tsx","scenes/viewArticle/components/attachment.tsx","scenes/viewArticle/components/metaInfo.tsx","scenes/viewArticle/index.tsx","store/actions/common/index.ts","scenes/user/verifyEmailAddress.tsx","scenes/user/forgotPassword.tsx","scenes/user/sendPasswordResetLink.tsx","scenes/user/signUp.tsx","routes/publicRoutes.ts","scenes/user/search.tsx","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","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","articleReducer","configureStore","production","process","middleware","thunk","createStore","reducers","applyMiddleware","compose","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","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","push","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","AttachmentButton","fileRef","disabled","multiple","maxFiles","isPreview","preview","setPreview","handleChange","event","files","getDownloadLink","FileType","display","URL","createObjectURL","Uploads","getDiplayIcon","margin","click","ArticleStatusEnum","GetArticles","GetArticle","DeleteArticle","clearArticle","SaveStart","SaveAuthors","SaveAttachment","SaveMetaData","SaveConfrimation","Start","onSave","ArticleId","SectionId","setLoading","ckBody","setCkBody","st","commentsEditor","obj","CommentsForEditor","CheckListId","CheckListName","copyrightStatements","find","TemplateKey","privacyStatements","handleNextClick","Comments","Steps","TemplateTitle","TemplateText","editor","ClassicEditor","getData","SUBMITTED","Component","Attachment","UserFileName","ServerFileName","FileFormat","Size","UploadFile","selectedFileData","ComponentId","console","log","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","SubmitArticle","onConfirmation","Submisson","setSteps","selectedTab","setSelectedTab","params","fetchArticle","updateStep","newStep","tabs","component","showClose","submitter","separator","onTabClick","Pane","tab","Search","onSearchClicked","inline","proposalTitle","onChangeSearch","submission","TableView","totalData","pageSize","PageIndex","handlePageSizeChanged","handlePageChanged","border","layout","total","pageSizes","currentPage","onSizeChange","onCurrentChange","useOutsideClick","setDrop","parentRef","handleClickOutside","contains","document","addEventListener","removeEventListener","store","Popover","popupRef","containerClassName","createElement","left","top","visibility","handleOutsideClick","body","appendChild","handleSCroll","ReactDOM","unmountComponentAtNode","removeChild","isEqual","getBoundingClientRect","popupWidth","popupHeight","y","newTop","newLeft","innerHeight","innerWidth","setPosition","RoleEnum","SplitButton","handleClick","setOpen","Actions","handleEditClick","handleDelete","viewArticle","icon","Submissions","Roles","propsalTitle","getStatus","fetchData","setList","NEW","REVERTED","REJECTED","APPROVED","ls","col","completion","strokeWidth","percentage","textInside","confirmDelete","MessageBox","confirm","confirmButtonText","cancelButtonText","TotalData","pageIndex","page","Submitter","SubmitterRoutes","exact","path","SectionName","dangerouslySetInnerHTML","__html","CoAuthor","Author","InvestigatorEmai","Attachments","MetaInfo","ViewArticle","GetRoles","verifyUserEmailAddress","VerifyEmailAddress","verify","queryString","parse","search","ForgotPassword","Password","ConfirmPassword","Code","code","validator","rule","callback","Error","validateField","PasswordReset","isSuccessSubmitting","MobileNumber","Country","Affiliation","SignUp","routes","PublicRoutes","Public","verifyEmailAddress","onAddUserClicked","isActive","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","i18n","use","locale","baseUrl","getElementsByTagName","getAttribute","basename","App","getElementById"],"mappings":"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","file":"static/js/main.6c6ceedb.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 DELETE_ARTICLE: \"DELETE_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 articleReducer from \"./articleReducer\";\n\nexport default combineReducers({\n commonReducer,\n validateReducer,\n userReducer,\n metaReducer,\n articleReducer,\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","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/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 articles: {\n article: \"articles/article\",\n start: \"articles/start\",\n authors: \"articles/authors\",\n attachments: \"articles/attachments\",\n metadata: \"articles/metadata\",\n confirmation: \"articles/submit\",\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 = \"/email-verification\",\n viewArticle = \"/view-article\",\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=\"Email\" prop=\"username\">\n <Input\n placeholder=\"Email\"\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 placeholder=\"Password\"\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","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 {\n name,\n disabled,\n multiple,\n maxFiles,\n value,\n onChange,\n label,\n isPreview,\n } = 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 if (isPreview) return;\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 = `v1/${api.common.downloadFiles}/${file.serverFileName}`;\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 {!isPreview && (\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 )}\n <div className=\"upload-container\">\n <span className=\"upload-label\">{label}</span>\n\n {value && (\n <div\n className=\"upload-item\"\n onClick={(e) => {\n const { isImage } = checkFileExtension(\n value.serverFileName || value.name\n );\n if (isImage)\n value && !isEmpty(value.serverFileName) && setPreview(true);\n else {\n e.stopPropagation();\n window.open(getDownloadLink(value));\n }\n }}\n >\n {getDiplayIcon(value)}\n <div className=\"upload-item-name\">\n {value.name}\n {!isPreview && (\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 )}\n </div>\n </div>\n )}\n {!isPreview && (\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 )}\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\nAttachmentButton.defaultProps = { isPreview: false };\n\nexport default AttachmentButton;\n","export enum ArticleStatusEnum {\r\n NEW = 1,\r\n SUBMITTED = 2,\r\n REVERTED = 3,\r\n REJECTED = 4,\r\n APPROVED = 5,\r\n ASSIGNED = 6,\r\n UNASSIGNED = 7,\r\n REVEIWACEEPTED = 8,\r\n REVIEWREJECTED = 9,\r\n REVIEWCOMPLETED = 10,\r\n}\r\nexport default ArticleStatusEnum;\r\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.articles.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.articles.article}/${id}`, dispatch);\n if (!isEmpty(res))\n dispatch({ type: types.GET_ARTICLE, payload: res && res.Data });\n return res;\n};\n\nexport const DeleteArticle = (id) => async (dispatch: Function) => {\n const res: any = await deletion(api.articles.article, dispatch, id);\n if (!isEmpty(res))\n dispatch({\n type: types.DELETE_ARTICLE,\n payload: { id, status: (res && res.Status) || false },\n });\n return res;\n};\n\nexport const clearArticle = () => async (dispatch: Function) => {\n dispatch({ type: types.GET_ARTICLE, payload: {} });\n};\n\nexport const SaveStart = (param) => async (dispatch: Function) => {\n const res: any = await post(api.articles.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.articles.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.articles.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.articles.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.articles.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/articles\";\nimport { isEmpty } from \"helpers\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\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.articleReducer);\n\n useEffect(() => {\n let commentsEditor = \"\";\n let obj = { ArticleId: 0, SectionId: 0, CheckList: [] };\n if (!isEmpty(article)) {\n commentsEditor = article.CommentsForEditor;\n obj = {\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 setCkBody(commentsEditor);\n setState(obj);\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\n type=\"primary\"\n onClick={handleNextClick}\n loading={isLoading}\n disabled={article.Status === ArticleStatusEnum.SUBMITTED}\n >\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/articles\";\nimport { FiFile } from \"react-icons/fi\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\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.articleReducer);\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 disabled={article.Status === ArticleStatusEnum.SUBMITTED}\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 && 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={\n (attachments && attachments.length === 0) ||\n article.Status === ArticleStatusEnum.SUBMITTED\n }\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/articles\";\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/articles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isEmpty } from \"helpers\";\nimport CoAuthorList from \"./coAuthorList\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\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.articleReducer);\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 disabled={article.Status === ArticleStatusEnum.SUBMITTED}\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/articles\";\nimport { isEmpty } from \"helpers\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\n\nconst MetaData = (props) => {\n const { article } = useSelector((st: any) => st.articleReducer);\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\n type=\"primary\"\n onClick={onSaveClicked}\n loading={isLoading}\n disabled={article.Status === ArticleStatusEnum.SUBMITTED}\n >\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/articles\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\n\nconst SubmitArticle = (props) => {\n const { onConfirmation } = props;\n const { article } = useSelector((st: any) => st.articleReducer);\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 disabled={article.Status === ArticleStatusEnum.SUBMITTED}\n type=\"primary\"\n onClick={() => onSaveClicked()}\n loading={isLoading}\n >\n Finish Submission\n </Button>\n </div>\n </div>\n );\n};\n\nexport default SubmitArticle;\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 SubmitArticle from \"./submitArticle\";\nimport { useHistory } from \"react-router\";\nimport RouteEnum from \"constants/routesEnum\";\nimport { Link } from \"react-router-dom\";\nimport { GetArticle, clearArticle } from \"store/actions/articles\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { isEmpty } from \"helpers\";\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 const { article } = useSelector((st: any) => st.articleReducer);\n\n useEffect(() => {\n if (!isEmpty(article)) {\n setSteps(article.Steps + 1);\n setSelectedTab(`${article.Steps + 1}`);\n } else {\n setSteps(1);\n setSelectedTab(`1`);\n }\n }, [article]);\n\n useEffect(() => {\n if (articleId) {\n fetchArticle(articleId);\n } else {\n dispatch(clearArticle());\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 history.push(`${RouteEnum.submitter}`);\n };\n const updateStep = (newStep: number) => {\n if (newStep > steps) {\n setSteps(newStep);\n }\n };\n\n const isDisabled = (tab) => {\n return steps < tab;\n };\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: <SubmitArticle 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","import React from \"react\";\r\nimport { Table, Pagination } from \"element-react\";\r\ninterface TableProps {\r\n columns: any[];\r\n data: any[];\r\n totalData: number;\r\n PageIndex: number;\r\n pageSizes: number[];\r\n pageSize: number;\r\n handlePageSizeChanged: (size?: number) => void;\r\n handlePageChanged: (currentPage?: number) => void;\r\n}\r\n\r\nconst TableView = (props: TableProps) => {\r\n const {\r\n columns,\r\n data,\r\n totalData,\r\n pageSize,\r\n PageIndex,\r\n handlePageSizeChanged,\r\n handlePageChanged,\r\n } = props;\r\n return (\r\n <>\r\n <Table\r\n style={{ width: \"100%\" }}\r\n columns={columns}\r\n data={data}\r\n border={true}\r\n />\r\n {totalData === 0 && <div className=\"no-table-data\">No Data</div>}\r\n {totalData > 0 && (\r\n <Pagination\r\n layout=\"total, sizes, prev, pager, next\"\r\n total={totalData}\r\n pageSizes={[10, 20, 50, 100]}\r\n pageSize={pageSize}\r\n currentPage={PageIndex}\r\n onSizeChange={handlePageSizeChanged}\r\n onCurrentChange={handlePageChanged}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\nexport default TableView;\r\n","import React, { useEffect } from \"react\";\r\n\r\nconst useOutsideClick = (ref, setDrop, parentRef) => {\r\n function handleClickOutside(event) {\r\n console.clear();\r\n console.log(\"outside click\", ref);\r\n if (parentRef) {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n if (!parentRef.current.contains(event.target)) {\r\n setDrop && setDrop();\r\n }\r\n }\r\n } else {\r\n if (ref.current && !ref.current.contains(event.target)) {\r\n setDrop && setDrop();\r\n }\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n });\r\n};\r\n\r\nexport default useOutsideClick;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport useOutsideClick from \"hooks/useOutsideClick\";\r\nimport configureStore from \"store/configureStore\";\r\nimport { Provider } from \"react-redux\";\r\nimport \"./style.scss\";\r\nconst store = configureStore({});\r\n\r\nconst Popover = (props: any) => {\r\n const { open, containerClassName } = props;\r\n var popupRef = useRef(null);\r\n const [target, setTarget] = useState(document.createElement(\"div\"));\r\n const [state, setState] = useState({\r\n left: -1,\r\n top: -1,\r\n visibility: \"hidden\",\r\n });\r\n\r\n useOutsideClick(popupRef, props.handleOutsideClick, props.parentRef);\r\n useEffect(() => {\r\n document.body.appendChild(target);\r\n document.addEventListener(\"scroll\", handleSCroll);\r\n return () => {\r\n ReactDOM.unmountComponentAtNode(target);\r\n document.body.removeChild(target);\r\n document.removeEventListener(\"scroll\", handleSCroll);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n props.children && render();\r\n }, [props.children]);\r\n\r\n useEffect(() => {\r\n render();\r\n }, [state]);\r\n\r\n const handleSCroll = () => {\r\n open && props.handleOutsideClick && props.handleOutsideClick(false);\r\n };\r\n\r\n const setPosition = () => {\r\n if (popupRef && popupRef.current) {\r\n const { parentRef } = props;\r\n\r\n const { width: popupWidth, height: popupHeight } =\r\n popupRef.current.getBoundingClientRect();\r\n\r\n const { x, y, width, height } =\r\n parentRef && parentRef.current.getBoundingClientRect();\r\n let newTop = y + height;\r\n let newLeft = x;\r\n\r\n if (newTop + popupHeight > window.innerHeight) {\r\n newTop = y - popupHeight;\r\n }\r\n if (newTop < 0) {\r\n newTop = 10;\r\n }\r\n if (newLeft + popupWidth > window.innerWidth) {\r\n newLeft = window.innerWidth - popupWidth - width;\r\n }\r\n\r\n let newState = {\r\n top: newTop,\r\n left: newLeft,\r\n visibility: \"visible\",\r\n };\r\n\r\n if (!isEqual(newState)) setState(newState);\r\n }\r\n };\r\n const isEqual = (newState) => {\r\n if (state.top !== newState.top) return false;\r\n if (state.left !== newState.left) return false;\r\n if (state.visibility !== newState.visibility) return false;\r\n return true;\r\n };\r\n const render = () => {\r\n const style: any = { ...state };\r\n const { parentRef } = props;\r\n\r\n ReactDOM.render(\r\n <Provider store={store}>\r\n <div className={props.containerClassName} style={style} ref={popupRef}>\r\n {props.children}\r\n </div>\r\n </Provider>,\r\n target,\r\n () => {\r\n setPosition();\r\n }\r\n );\r\n };\r\n\r\n return <noscript />;\r\n};\r\nPopover.defaultProps = {\r\n containerClassName: \"irc-popup\",\r\n // height: 360,\r\n // width: 300,\r\n};\r\nexport default Popover;\r\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, { useState, useEffect, useRef } from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport useOutsideClick from \"hooks/useOutsideClick\";\r\nimport configureStore from \"store/configureStore\";\r\nimport { Provider } from \"react-redux\";\r\nimport \"./style.scss\";\r\nimport Popover from \"./_popover\";\r\nimport { Button } from \"element-react\";\r\n\r\nconst SplitButton = (props) => {\r\n const { handleClick, label } = props;\r\n const [open, setOpen] = useState(false);\r\n const ref = useRef();\r\n return (\r\n <div ref={ref} className=\"irc-popup-contents\">\r\n <div className=\"irc-popup-splitter\">\r\n <span\r\n className=\"irc-popup-splitter__action\"\r\n onClick={() => handleClick && handleClick(props)}\r\n >\r\n {label}\r\n </span>\r\n <span\r\n className=\"irc-popup-splitter__drop\"\r\n onClick={() => setOpen(!open)}\r\n >\r\n <i className=\"el-icon-arrow-down el-icon-right\"></i>\r\n </span>\r\n </div>\r\n\r\n {open ? (\r\n <Popover\r\n parentRef={ref}\r\n open={open}\r\n handleOutsideClick={() => setOpen(false)}\r\n >\r\n <div className=\"irc-popup-container\">{props.children}</div>\r\n </Popover>\r\n ) : null}\r\n </div>\r\n );\r\n};\r\n\r\nexport default SplitButton;\r\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 Progress,\n Dropdown,\n} from \"element-react\";\nimport Routes from \"routes\";\nimport { GetArticles, DeleteArticle } from \"store/actions/articles\";\nimport Search from \"./search\";\nimport RouteEnum from \"constants/routesEnum\";\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\nimport TableView from \"components/tableView\";\nimport SplitButton from \"components/popup/splitButton\";\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 = getStatus();\n fetchData({ ...state, status: status });\n }, [selectedTab]);\n const dispatch = useDispatch();\n const [list, setList] = useState([]);\n const history = useHistory();\n\n const getStatus = () => {\n var status = 0;\n if (selectedTab == \"NEW\") status = ArticleStatusEnum.NEW 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 == \"APPROVED\")\n status = ArticleStatusEnum.APPROVED as number;\n return status;\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, status: getStatus() };\n setState(newState);\n fetchData(newState);\n };\n const handlePageChanged = (page) => {\n let newState = { ...state, pageIndex: page, status: getStatus() };\n setState(newState);\n fetchData(newState);\n };\n\n const handleSaveSucees = () => {\n setVisible(false);\n fetchData(state);\n };\n const columns = [\n {\n label: \"Author\",\n prop: \"InvestigatorName\",\n render: (row, column, index) => {\n return (\n <span>\n {row.InvestigatorSalutation} {row.InvestigatorName}\n </span>\n );\n },\n },\n\n { label: \"Sub Number\", prop: \"SubmissionNumber\", width: 120 },\n { label: \"Submitted On\", prop: \"DateInString\", width: 150 },\n {\n label: \"Completion\",\n prop: \"Steps\",\n width: 120,\n render: (row, col, index) => {\n const completion = ((row.Steps || 0) / 5) * 100;\n return (\n <div>\n <Progress strokeWidth={18} percentage={completion} textInside />\n </div>\n );\n },\n },\n {\n label: \"Proposal Title\",\n prop: \"ProposalTitle\",\n },\n\n {\n label: \"\",\n width: 200,\n fixed: \"right\",\n render: (row, column, index) => {\n return (\n <Actions\n row={row}\n handleEditClick={(row) =>\n history.push(`${RouteEnum.submission}/${row.Id}`)\n }\n handleDelete={(row) => confirmDelete(row)}\n />\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(DeleteArticle(obj.Id));\n fetchData({ ...state, status: getStatus() });\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 className=\"submitter\">\n <Search\n state={state}\n setState={setState}\n onSearchClicked={handleSearchClicked}\n />\n <TableView\n columns={columns}\n data={list}\n totalData={totalData}\n pageSizes={[10, 20, 50, 100]}\n pageSize={state.pageSize}\n PageIndex={state.PageIndex}\n handlePageSizeChanged={handlePageSizeChanged}\n handlePageChanged={handlePageChanged}\n />\n </div>\n );\n};\n\nconst Actions = ({ row, handleEditClick, handleDelete }) => {\n const history = useHistory();\n return (\n <div>\n <SplitButton\n label=\"View\"\n row={row}\n handleClick={(props) =>\n history.push(`${RouteEnum.viewArticle}/${props.row.Id}`)\n }\n >\n <div className=\"table-actions\">\n <ul>\n <li onClick={() => handleEditClick(row)}>\n <Button type=\"text\" size=\"small\" icon=\"edit\">\n Edit\n </Button>\n </li>\n <li onClick={() => handleDelete(row)}>\n <Button type=\"text\" size=\"small\" icon=\"delete\">\n Delete\n </Button>\n </li>\n </ul>\n </div>\n </SplitButton>\n </div>\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(\"NEW\");\n\n const dispatch = useDispatch();\n const history = useHistory();\n\n const tabs = [\n {\n label: \"New Submission\",\n name: \"NEW\",\n },\n {\n label: \"Under Review\",\n name: \"SUBMITTED\",\n },\n {\n label: \"Need Actions\",\n name: \"REVERTED\",\n },\n {\n label: \"Rejected\",\n name: \"REJECTED\",\n },\n {\n label: \"Approved\",\n name: \"APPROVED\",\n },\n ];\n const handleTabClicked = (e) => {\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 { Form } from \"element-react\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nconst Start = (props) => {\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === \"copyrightStatements\"\r\n );\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === \"privacyStatements\"\r\n );\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__start\">\r\n <Form className=\"demo-form-stacked\" labelPosition=\"top\" labelWidth=\"100\">\r\n <Form.Item\r\n label={copyrightStatements && copyrightStatements.TemplateTitle}\r\n >\r\n <div>{copyrightStatements && copyrightStatements.TemplateText}</div>\r\n </Form.Item>\r\n <Form.Item label=\"Section\">{article && article.SectionName}</Form.Item>\r\n <Form.Item label=\"CheckList\">\r\n <ul>\r\n {article.CheckList.map((x, index) => (\r\n <li key={index}>{x.CheckListName}</li>\r\n ))}\r\n </ul>\r\n </Form.Item>\r\n <Form.Item label=\"Comments for the Editor\">\r\n <div\r\n dangerouslySetInnerHTML={{ __html: article.CommentsForEditor }}\r\n ></div>\r\n </Form.Item>\r\n <Form.Item label={privacyStatements && privacyStatements.TemplateTitle}>\r\n <div>{privacyStatements && privacyStatements.TemplateText}</div>\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n );\r\n};\r\nexport default Start;\r\n","import Constant from \"constants/index\";\r\nimport { Form } from \"element-react\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst Author = (props) => {\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === \"copyrightStatements\"\r\n );\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === \"privacyStatements\"\r\n );\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__author\">\r\n <h1>Author</h1>\r\n <div className=\"viewArticle__author-detail\">\r\n <div className=\"viewArticle__author-detail-image\">\r\n <img\r\n src={`/${Constant.Uploads}/${article.InvestigatorPhoto_ServerFileName}`}\r\n />\r\n </div>\r\n <div className=\"viewArticle__author-detail-info\">\r\n <div className=\"info-block\">\r\n <label>Name</label>\r\n <div>\r\n {`${article.InvestigatorSalutation} ${article.InvestigatorName}`}\r\n </div>\r\n </div>\r\n {article.InvestigatorDesignation && (\r\n <div className=\"info-block\">\r\n <label>Designation</label>\r\n <div>{article.InvestigatorDesignation}</div>\r\n </div>\r\n )}\r\n {article.InvestigatorEmai && (\r\n <div className=\"info-block\">\r\n <label>Email</label>\r\n <div>{article.InvestigatorEmail}</div>\r\n </div>\r\n )}\r\n {article.InvestigatorInstitute && (\r\n <div className=\"info-block\">\r\n <label>Institue</label>\r\n <div>{article.InvestigatorInstitute}</div>\r\n </div>\r\n )}\r\n {article.InvestigatorPostalAddress && (\r\n <div className=\"info-block\">\r\n <label>Address</label>\r\n <div>{article.InvestigatorPostalAddress}</div>\r\n </div>\r\n )}\r\n {article.InvestigatorMobileNo && (\r\n <div className=\"info-block\">\r\n <label>Mobile No.</label>\r\n <div>{article.InvestigatorMobileNo}</div>\r\n </div>\r\n )}\r\n {article.InvestigatorDigitalSignature_ServerFileName && (\r\n <div className=\"info-block\">\r\n <label>Signature</label>\r\n <div>\r\n <img\r\n className=\"digital-signature\"\r\n src={`/${Constant.Uploads}/${article.InvestigatorDigitalSignature_ServerFileName}`}\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <div className=\"viewArticle__coauthor\">\r\n <CoAuthor ArticleCoAuthors={article.ArticleCoAuthors} />\r\n </div>\r\n </div>\r\n );\r\n};\r\n//ArticleCoAuthors\r\nconst CoAuthor = ({ ArticleCoAuthors }) => {\r\n return (\r\n <table>\r\n <tr>\r\n <th>Name</th>\r\n <th>Designation</th>\r\n <th>Email</th>\r\n <th>Institue</th>\r\n <th>Address</th>\r\n <th>Mobile</th>\r\n <th>Signature</th>\r\n </tr>\r\n {ArticleCoAuthors &&\r\n ArticleCoAuthors.map((x, index) => (\r\n <tr key={index}>\r\n <td>\r\n <div className=\"td-author-info\">\r\n {x.Photo_ServerFileName && (\r\n <img\r\n src={`${Constant.Uploads}/${x.Photo_ServerFileName}`}\r\n width=\"40\"\r\n height=\"40\"\r\n />\r\n )}\r\n {`${x.Salutation} ${x.FullName}`}\r\n </div>\r\n </td>\r\n <td>{x.Designation}</td>\r\n <td>{x.Email}</td>\r\n <td>{x.Institute}</td>\r\n <td>{x.PostalAddress}</td>\r\n <td>{x.MobileNo}</td>\r\n <td>\r\n <img\r\n src={`${Constant.Uploads}/${x.DigitalSignature_ServerFileName}`}\r\n width=\"40\"\r\n height=\"40\"\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </table>\r\n );\r\n};\r\n\r\nexport default Author;\r\n","import { AttachmentButton } from \"components/form\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nconst Attachments = (props) => {\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__attachment\">\r\n <h1>Attachments</h1>\r\n <div>\r\n {article.ArticleAttachments.map((x, index) => (\r\n <div key={index}>\r\n <label>{x.ComponentName}</label>\r\n <AttachmentButton\r\n isPreview\r\n value={{\r\n serverFileName: x.ServerFileName,\r\n name: x.UserFileName,\r\n }}\r\n name=\"Photo\"\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\nexport default Attachments;\r\n","import { Form } from \"element-react\";\r\nimport { isEmpty } from \"helpers\";\r\nimport React from \"react\";\r\nimport { useSelector } from \"react-redux\";\r\nconst MetaInfo = (props) => {\r\n const { checkList, templates, sections } = useSelector(\r\n (state: any) => state.metaReducer\r\n );\r\n\r\n const { article } = useSelector((st: any) => st.articleReducer);\r\n\r\n const copyrightStatements = templates.find(\r\n (x) => x.TemplateKey === \"copyrightStatements\"\r\n );\r\n\r\n const privacyStatements = templates.find(\r\n (x) => x.TemplateKey === \"privacyStatements\"\r\n );\r\n if (isEmpty(article)) return null;\r\n return (\r\n <div className=\"viewArticle__meta\">\r\n <Form className=\"demo-form-stacked\" labelPosition=\"top\" labelWidth=\"100\">\r\n <Form.Item label=\"Title\">\r\n <div dangerouslySetInnerHTML={{ __html: article.ProposalTitle }} />\r\n </Form.Item>\r\n <Form.Item label=\"Introduction\">\r\n <div\r\n dangerouslySetInnerHTML={{ __html: article.ProposalIntroduction }}\r\n />\r\n </Form.Item>\r\n <Form.Item label=\"Methods\">\r\n <div dangerouslySetInnerHTML={{ __html: article.PropsalMethods }} />\r\n </Form.Item>\r\n <Form.Item label=\"Cited References\">\r\n <div\r\n dangerouslySetInnerHTML={{\r\n __html: article.ProposalCitedReferences,\r\n }}\r\n />\r\n </Form.Item>\r\n </Form>\r\n </div>\r\n );\r\n};\r\nexport default MetaInfo;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\n\r\nimport {\r\n Form,\r\n Input,\r\n Button,\r\n Select,\r\n Table,\r\n Pagination,\r\n Dialog,\r\n Message,\r\n MessageBox,\r\n Breadcrumb,\r\n Tabs,\r\n} from \"element-react\";\r\nimport RouteEnum from \"constants/routesEnum\";\r\nimport ArticleStatusEnum from \"constants/articleStatusEnum\";\r\nimport Start from \"./components/start\";\r\nimport Authors from \"./components/author\";\r\nimport Attachments from \"./components/attachment\";\r\nimport MetaInfo from \"./components/metaInfo\";\r\nimport { GetArticle, clearArticle } from \"store/actions/articles\";\r\n\r\nconst ViewArticle = (props) => {\r\n const { articleId } = props.match.params;\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n if (articleId) {\r\n fetchArticle(articleId);\r\n } else {\r\n dispatch(clearArticle());\r\n }\r\n }, [articleId]);\r\n\r\n const fetchArticle = async (articleId) => {\r\n await dispatch(GetArticle(articleId));\r\n };\r\n return (\r\n <div>\r\n <Breadcrumb separator=\"/\">\r\n <Breadcrumb.Item>\r\n <Link to={RouteEnum.submitter}>Home</Link>\r\n </Breadcrumb.Item>\r\n <Breadcrumb.Item>View</Breadcrumb.Item>\r\n </Breadcrumb>\r\n\r\n <div className=\"viewArticle\">\r\n <Start />\r\n <MetaInfo />\r\n <Authors />\r\n <Attachments />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default ViewArticle;\r\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 } from \"react\";\nimport queryString from \"query-string\";\nimport { verifyUserEmailAddress } from \"store/actions/common\";\nimport { useDispatch } from \"react-redux\";\nimport { useHistory } from \"react-router\";\nimport RoutesEnum from \"constants/routesEnum\";\n\nconst VerifyEmailAddress = (props) => {\n const dispatch = useDispatch();\n const history = useHistory();\n\n useEffect(() => {\n verify();\n }, []);\n const verify = async () => {\n const params = queryString.parse(props.location.search);\n var res = await dispatch(verifyUserEmailAddress({ param: params.param }));\n if (res) history.push(RoutesEnum.login);\n };\n return (\n <div>\n Your email address will be verified and after success redirects to login\n page.\n </div>\n );\n};\n\nexport default VerifyEmailAddress;\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 debugger;\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 ViewArticle from \"scenes/viewArticle\";\nimport 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 exact: true,\n component: VerifyEmailAddress,\n role: RoleEnum.Public,\n title: \"Verify Email\",\n path: RouteEnum.verifyEmailAddress,\n },\n {\n exact: true,\n component: ViewArticle,\n role: RoleEnum.Public,\n title: \"View Article\",\n path: `${RouteEnum.viewArticle}/:articleId`,\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 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 return (\n <Layout>\n <Switch>\n {routes.map((route, index) => {\n return <PrivateRoute key={index} {...route} />;\n })}\n <Route exact 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 * 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