{"version":3,"sources":["constants/common/notification.js","constants/common/common.js","hoc/Aux.js","components/UI/LoadingIndicator/LoadingIndicator.js","constants/path/vacancy.js","constants/path/employer.js","constants/path/resume.js","util/variableTypes.js","assets/images/logo-sign.png","assets/images/logo-xs.png","assets/images/main.png","constants/common/profile.js","store/actions/actionTypes.js","store/reducers/auth.js","store/reducers/jobSeeker.js","store/reducers/employmentStability.js","store/reducers/educationLevel.js","store/reducers/employmentType.js","store/reducers/educationYear.js","store/reducers/educationForm.js","store/reducers/experience.js","store/reducers/speciality.js","store/reducers/uploadFile.js","store/reducers/category.js","store/reducers/employer.js","store/reducers/meeting.js","store/reducers/faculty.js","store/reducers/vacancy.js","store/reducers/page.js","store/reducers/user.js","containers/User/Oauth2/OAuth2RedirectHandler.js","components/UI/Breadcrumb/Breadcrumb.js","components/Common/PrivateRoute.js","containers/AppHeader/AppHeader.js","components/NotFound/NotFound.js","components/User/Login/SocialLogin.js","components/User/Login/LoginForm.js","containers/User/Login/Login.js","containers/Home/Home.js","hoc/asyncComponents/asyncComponents.js","asyncLoader.js","App.js","index.js","constants/common/meeting.js","constants/common/vacancy.js","util/utility.js","store/actions/vacancy.js","constants/common/auth.js","store/actions/auth.js","util/userHelpers.js","constants/common/apiResponse.js","util/APIUtils.js","constants/path/profile.js","store/actions/meeting.js","util/helpers.js","components/UI/Button/Button.js","store/actions/user.js","store/actions/page.js","store/actions/jobseeker.js","store/actions/employer.js","store/actions/category.js","store/actions/educationForm.js","store/actions/educationLevel.js","store/actions/educationYear.js","store/actions/employmentStability.js","store/actions/employmentType.js","store/actions/experience.js","store/actions/faculty.js","store/actions/speciality.js","constants/path/index.js","store/actions/uploadFile.js","constants/path/meeting.js","constants/common/buttons.js"],"names":["USER","SUCCESS_SAVED","WELCOME","CONTINUE","GO_BACK","NOT_FOUND_PAGE","SAVE","UPDATE","SELECT_OPTION","ANOTHER_OPTION","EMPTY_DATA","CREATED","UPDATED","SEARCH","SEARCH_HELPER","EDITING","EDIT","DEPARTMENT","BRAND","BRAND_SHOT","TITLE","FOOTER","Date","getFullYear","RANGE","HISTORY","FILTER_ON","FILTER_OFF","FILTER_BY","JOBSEEKERS","JOBSEEKER","SEARCH_JOBSEEKERS","EMPLOYERS","HOME","CLOSE","REOPEN","STATUS","roles","ADMIN","EMPLOYER","MAIN_MENU_DROPDOWN","key","title","url","btnIcons","ADD","MEETINGS","VACANCIES","FILTER","defaultOptions","label","value","aux","props","children","LoadingIndicator","antIcon","type","style","fontSize","spin","className","indicator","display","textAlign","marginTop","path","search","searchOne","create","active","edit","view","list","items","NEW_VACANCY","allowedRoles","breadcrumb","to","VACANCY","redirect","ARCHIVE","NEW_PROFILE","PROFILE","profilePath","isString","variable","String","isEmptyString","trim","isArray","Array","isEmptyArray","length","isObject","isNull","Number","isNumber","isEmptyObject","Object","keys","isValue","undefined","isUndefined","module","exports","NO_EMPLOYER_PROFILES","PROFILES","SEARCH_ALL_PROFILES","FINISH","COMPLETED_PROFILE","CREATE_PROFILE","POLL","START_POLL","START_PROFILE","ALLOWED_ROLES","ALLOWED_ROLES_LIST","FIRST_NAME","LAST_NAME","MIDDLE_NAME","FULL_NAME","PASSWORD","BUSINESS_NAME","COMPANY_LOGO","PHOTO","SHORT_BUSINESS_NAME","GENDER","AGE","AGE_SUFFIX","DATE_OF_BIRTH","PRIVATE_EMAIL","COMPANY_EMAIL","EMAIL","PHONE_NUMBERS","SOCIAL_LINKS","EDUCATION_LEVEL","EDUCATION_YEAR","EDUCATION_FORM","GRADUATION_YEAR","HIGHLIGHT","SELECTED_LOCATION","ADVICE_DESCRIPTION","FACULTY","FACULTY_EXTRA_NAME","SPECIALITY","SPECIALITY_EXTRA_NAME","PERSONAL_QUALITIES","ADDITIONAL_EDUCATION","PERSONAL_ACHIEVEMENTS","CONTINUE_EDUCATION","LANGUAGES","IS_EMPLOYED","IS_SEARCHING_JOB","IS_AGREED_TO_TERMS_CONDITIONS","EMPLOYMENT_SECTOR","IS_REQUIRED_DIPLOMA","CATEGORIES","EXPERIENCE","EXPERIENCE_ACHIEVEMENTS","EMPLOYMENT_TYPE","EMPLOYMENT_STABILITY","PERSONAL_PREFERENCES","RESPONSIBILITY_DESCRIPTIONS","PLACE_OF_WORK","CURRENT_POSITION","SKILL_DESCRIPTIONS","ALLOWED_GENDERS","ALLOWED_EMPLOYMENT_SECTOR","CONTACT_USER","CONTACT_INFO","EDU_INFO","ADDITIONAL_INFO","EMPLOYMENT","STATUS_LIST","ACTIVE","INACTIVE","DELETED","LOCKED","STATUS_LIST_ICON","STATUS_LIST_COLOR","STATUS_LIST_VALUES","AUTH_START","AUTH_SUCCESS","AUTH_FAIL","AUTH_LOGOUT","SET_AUTH_REDIRECT_PATH","FETCH_POSITIONS_START","FETCH_POSITIONS_SUCCESS","FETCH_POSITIONS_FAIL","RESET_JOB_SEEKERS","FETCH_JOB_SEEKERS_START","FETCH_JOB_SEEKERS_SUCCESS","FETCH_JOB_SEEKERS_FAIL","FETCH_ONE_JOB_SEEKERS_SUCCESS","CREATE_JOB_SEEKERS_START","CREATE_JOB_SEEKERS_SUCCESS","CREATE_JOB_SEEKERS_FAIL","SAVE_JOB_SEEKERS_SUCCESS","FETCH_JOB_SEEKERS_SUMMARY_START","FETCH_JOB_SEEKERS_SUMMARY_SUCCESS","FETCH_JOB_SEEKERS_SUMMARY_FAIL","SEARCH_JOB_SEEKERS_START","SEARCH_JOB_SEEKERS_SUCCESS","SEARCH_JOB_SEEKERS_FAIL","FETCH_EMPLOYERS_SUMMARY_START","FETCH_EMPLOYERS_SUMMARY_SUCCESS","FETCH_EMPLOYERS_SUMMARY_FAIL","RESET_EMPLOYERS","FETCH_EMPLOYERS_START","FETCH_EMPLOYERS_FAIL","CREATE_EMPLOYERS_START","CREATE_EMPLOYERS_SUCCESS","CREATE_EMPLOYERS_FAIL","SAVE_EMPLOYERS_SUCCESS","FETCH_EMPLOYERS_SUCCESS","FETCH_ONE_EMPLOYERS_SUCCESS","FETCH_CATEGORIES_START","FETCH_CATEGORIES_SUCCESS","FETCH_CATEGORIES_FAIL","FETCH_EDUCATION_FORM_START","FETCH_EDUCATION_FORM_SUCCESS","FETCH_EDUCATION_FORM_FAIL","FETCH_EDUCATION_LEVEL_START","FETCH_EDUCATION_LEVEL_SUCCESS","FETCH_EDUCATION_LEVEL_FAIL","FETCH_EDUCATION_YEAR_START","FETCH_EDUCATION_YEAR_SUCCESS","FETCH_EDUCATION_YEAR_FAIL","FETCH_EMPLOYMENT_STABILITY_START","FETCH_EMPLOYMENT_STABILITY_SUCCESS","FETCH_EMPLOYMENT_STABILITY_FAIL","FETCH_EMPLOYMENT_TYPE_START","FETCH_EMPLOYMENT_TYPE_SUCCESS","FETCH_EMPLOYMENT_TYPE_FAIL","FETCH_EXPERIENCE_START","FETCH_EXPERIENCE_SUCCESS","FETCH_EXPERIENCE_FAIL","FETCH_FACULTIES_START","FETCH_FACULTIES_SUCCESS","FETCH_FACULTIES_FAIL","FETCH_SPECIALITIES_START","FETCH_SPECIALITIES_SUCCESS","FETCH_SPECIALITIES_FAIL","FETCH_SPECIALITIES_BY_FACULTY_SUCCESS","FETCH_VACANCIES_START","FETCH_VACANCIES_SUCCESS","RESET_VACANCIES","FETCH_ONE_VACANCIES_SUCCESS","FETCH_VACANCIES_FAIL","CREATE_VACANCIES_START","CREATE_VACANCIES_SUCCESS","CREATE_VACANCIES_FAIL","SAVE_VACANCIES_SUCCESS","SEARCH_VACANCIES_START","SEARCH_VACANCIES_SUCCESS","SEARCH_VACANCIES_FAIL","SET_VACANCY_FILTER","VacancyFilters","SHOW_ALL","SHOW_ACTIVE","FETCH_MEETINGS_START","FETCH_MEETINGS_SUCCESS","FETCH_ONE_MEETINGS_SUCCESS","FETCH_MEETINGS_FAIL","CREATE_MEETINGS_START","CREATE_MEETINGS_SUCCESS","CREATE_MEETINGS_FAIL","SAVE_MEETINGS_SUCCESS","SEARCH_MEETINGS_START","SEARCH_MEETINGS_SUCCESS","SEARCH_MEETINGS_FAIL","RESET_MEETINGS","SET_MEETING_FILTER","RESET_PAGE","SET_PAGE_TAGS","RESET_PAGE_TAGS","SET_PAGE_ACTIONS","RESET_PAGE_ACTIONS","SET_PAGE_PATH_REDIRECT","RESET_PAGE_PATH_REDIRECT","FETCH_ONE_USERS_SUCCESS","SAVE_USERS_SUCCESS","FETCH_USERS_START","FETCH_USERS_FAIL","SEARCH_USERS_START","SEARCH_USERS_SUCCESS","SEARCH_USERS_FAIL","RESET_USERS","MeetingFilters","SHOW_EXPIRED","SHOW_REQUESTS","SHOW_FEATURE","UPLOAD_FILE_START","UPLOAD_FILE_SUCCESS","UPLOAD_FILE_FAIL","UPLOAD_FILE_RESET","DOWNLOADED_FILE_SUCCESS","initialState","me","token","error","loading","authRedirectPath","reducer","state","action","actionTypes","updateObject","authStart","idToken","authSuccess","authFail","authLogout","setAuthRedirectPath","pathRedirect","summaryList","object","fetchJobSeekersStart","fetchJobSeekersSuccess","fetchOneJobSeekersSuccess","fetchJobSeekersFail","createJobSeekersStart","saveJobSeekersSuccess","createJobSeekersFail","resetJobSeekers","fetchJobSeekersSummaryStart","fetchJobSeekersSummarySuccess","fetchJobSeekersSummaryFail","searchJobSeekersStart","searchJobSeekersSuccess","searchJobSeekersFail","fetchStart","fetchSuccess","fetchFail","uploadFileStart","uploadFileSuccess","uploadFileFail","file","imageUrl","data","downloadFileSuccess","resetUploadFile","fetchEmployerStart","fetchOneEmployerSuccess","fetchEmployersFail","createEmployerStart","saveEmployerSuccess","createEmployerFail","resetEmployers","fetchEmployersSummaryStart","fetchEmployersSummarySuccess","fetchEmployersSummaryFail","filter","fetchMeetingsStart","fetchMeetingsSuccess","fetchOneMeetingsSuccess","fetchMeetingsFail","createMeetingsStart","saveMeetingsSuccess","createMeetingsFail","resetMeetings","setMeetingsFilter","searchMeetingsStart","searchMeetingsSuccess","searchMeetingsFail","positions","fetchVacanciesStart","fetchVacanciesSuccess","fetchOneVacanciesSuccess","fetchVacanciesFail","createVacanciesStart","saveVacanciesSuccess","createVacanciesFail","resetVacancies","fetchPositionsSuccess","fetchPositionsFail","searchVacanciesSuccess","searchVacanciesFail","setVacanciesFilter","tags","actions","subTitle","allowedPath","setPageActions","setPagePathRedirect","setPageTags","resetPagePathRedirect","newState","resetPage","resetPageActions","resetPageTags","fetchOneUserSuccess","saveUsersSuccess","fetchUsersStart","fetchUsersFail","searchUsersStart","searchUsersSuccess","searchUsersFail","resetUsers","OAuth2RedirectHandler","Component","getUrlParameter","name","replace","results","RegExp","exec","this","location","console","log","decodeURIComponent","render","localStorage","setItem","ACCESS_TOKEN","pathname","from","Separator","color","BreadcrumbSeparator","BreadcrumbItem","Breadcrumb","separator","React","Children","toArray","map","child","index","lastIndex","reduce","acc","push","PrivateRoute","component","authenticated","computedMatch","rest","params","id","role","getRole","validRole","includes","pageTags","tag","i","text","pageActions","btn","paddingTop","Button","Aux","link","extra","types","Header","Layout","menuInit","Item","LOGIN","SIGN_UP","AppHeader","menuAdmin","menuJobSeeker","menuEmployer","handleMenuClick","onLogout","browser","menu","vacancyPath","test","meetingPath","feature","resumePath","employerPath","menuByType","lessThan","medium","ProfileDropdownMenu","splice","LOGOUT","src","logo","alt","theme","mode","selectedKeys","lineHeight","email","userName","getUserName","dropdownMenu","onClick","disabled","Divider","href","overlay","trigger","getPopupContainer","document","getElementsByClassName","marginRight","withRouter","NotFound","SocialLogin","AZURE_AUTH_URL","overflow","textOverflow","SING_IN_ADD","LoginForm","handleSubmit","handleInputChange","password","onSubmit","placeholder","onChange","required","actionType","size","Login","event","target","inputName","inputValue","setState","preventDefault","onAuth","componentDidMount","history","isAuthenticated","OR","NOT_SIGNED_UP","connect","auth","dispatch","loginRequest","Home","main","asyncComponent","importComponent","then","cmp","default","C","asyncProfilesSearch","asyncProfile","asyncSignup","asyncUserEdit","asyncJobSeekerSearch","asyncJobSeekerCard","asyncJobSeekerCreate","asyncJobSeekerEdit","asyncEmployerCreate","asyncEmployerEdit","asyncEmployerSearch","asyncVacancy","asyncVacancyCreate","asyncVacancyList","asyncVacancyEdit","asyncVacancySearch","asyncMeetingCreate","asyncMeetingEdit","asyncMeetingView","asyncMeetingList","Content","Footer","App","onTryAutoSignup","notification","config","placement","top","duration","page","getAccessToken","exact","credential","createByJobSeeker","requests","expired","rootReducer","combineReducers","authReducer","pageReducer","user","userReducer","faculty","facultyReducer","vacancy","vacancyReducer","meeting","meetingReducer","category","categoryReducer","employer","employerReducer","jobSeeker","jobSeekerReducer","uploadFile","uploadFileReducer","speciality","specialityReducer","experience","experienceReducer","educationForm","educationFormReducer","educationYear","educationYearsReducer","employmentType","employmentTypeReducer","educationLevel","educationLevelReducer","employmentStability","employmentStabilityReducer","createResponsiveStateReducer","extraSmall","small","large","store","createStore","compose","responsiveStoreEnhancer","applyMiddleware","thunk","app","ReactDOM","getElementById","POSITION","SHORT_POSITION","NEW_MEETING_REQUESTS","EXPIRED_MEETINGS","EXPIRED_DATE","NEXT_MEETINGS","SET_MEETING_REJECTED","CREATE_VACANCY_REQUEST","NEW_MEETING","MEETING_SUGGEST","MEETING_DATE","MEETING","MEETING_STATUS","NOT_HAPPENED","HIRED","REJECTED","PENDING","ALLOWED_MEETING_STATUS","MEETING_STATUS_COLOR","INTERVIEW","MEETING_STATUS_LIST","MEETING_STATUS_VALUES","VACANCY_SEARCH","oldObject","updatedProperties","checkValidity","rules","isValid","minLength","maxLength","isEmail","isTrue","isNumeric","min","parseFloat","max","compareValues","order","a","b","hasOwnProperty","varA","toUpperCase","varB","comparison","createVacancyStart","saveVacancySuccess","createVacancyFail","searchVacanciesStart","getVacanciesSummary","VacanciesApi","getSummary","response","catch","m","onCatch","searchVacancies","f","status","isOwn","searchOwn","getGroupedPositions","getOneVacancyById","getOneById","createVacancy","success","message","description","saveVacancy","save","updateStatusVacancy","update","setVacancyFilter","REACT_APP_BASE_URL","window","protocol","host","API_BASE_URL","hostname","OAUTH2_REDIRECT_URI","SUCCESS_SING_UP","SIGNED_UP","SIGN_AS_JOBSEEKER","SIGN_AS_EMPLOYER","AUTH","logout","removeItem","authCheckState","getItem","getCurrentUser","login","accessToken","lastName","middleName","firstName","n","join","calculateAge","dob","diff_ms","now","getTime","age_dt","Math","abs","getUTCFullYear","RESPONSES","500","400","401","MISSING_EMPLOYER","RESPONSES_DESC","ERROR","ERROR_DESC","request","options","headers","Headers","append","defaults","assign","fetch","json","ok","Promise","reject","validateResponse","Error","statusText","method","getEducationLevels","getEducationForms","getCategories","getEducationYears","getEmploymentStabilities","getEmploymentTypes","getFaculties","getSpecialitiesByFacultyId","getAllSpecialitiesByFacultyInIds","ids","body","JSON","stringify","getSpecialities","getExperiences","signup","signupRequest","EmployersApi","getActiveOneByUserId","getAllByUser","getAllActiveByUser","getEmployersSummary","JobseekersApi","getJobSeekersSummary","searchIds","getAllByEmployer","searchOwnIds","MeetingsApi","UsersApi","UploadApi","upload","formData","download","blob","URL","createObjectURL","requestBlob","createMeetingFail","getOneMeetingById","createMeeting","saveMeeting","setMeetingFilter","searchMeetings","searchMeetingFail","customDescription","badResponseHandler","icon","others","getOneUserById","searchUsers","saveUser","setActions","setPathRedirect","setTags","fetchOneJobSeekerSuccess","createJobSeekerFail","searchJobSeekers","getActiveOneJobSeekerByUserId","getOneJobSeekerById","createJobSeekerProfile","saveJobSeekerProfile","fetchEmployersStart","fetchEmployersSuccess","searchEmployers","searchEmployersFail","getAllActiveEmployersByUserId","getOneEmployerById","getActiveOneEmployerByUserId","createEmployerProfile","saveEmployerProfile","getAllCategories","getAllEducationForms","getAllEducationLevels","getAllEducationYears","getAllEmploymentStabilities","getAllEmploymentTypes","getAllExperiences","getAllFaculties","fetchByFacultyIdSuccess","getAllSpecialitiesByFacultyId","getAllSpecialitiesByFacultyIds","uploadStart","uploadFail","fileDownloadUri","downloadFile","downloadedSuccess"],"mappings":"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","file":"static/js/main.d108be03.chunk.js","sourcesContent":["export const USER = 'Користувач';\nexport const SUCCESS_SAVED = \"Збережено\";\nexport const WELCOME = \"Вітаємо\";\nexport const CONTINUE = 'Продовжити'\nexport const GO_BACK = 'Назад';\nexport const NOT_FOUND_PAGE = 'Сторінку не знайдено';\nexport const SAVE = 'Зберегти';\nexport const UPDATE = 'Оновити';\nexport const SELECT_OPTION = '- Вибрати -';\nexport const ANOTHER_OPTION = 'Інше';\nexport const EMPTY_DATA = 'Немає данних для відображення'\nexport const CREATED = 'Створено'\nexport const UPDATED = 'Оновлено'\nexport const SEARCH = 'Пошук'\nexport const SEARCH_HELPER = 'Введіть ім\\'я, прізвище або email користувача'\nexport const EDITING = 'Редагування';\nexport const EDIT = 'Редагувати';\nexport const MORE = 'Детальніше';\n","import {EMPTY_DATA} from \"./notification\";\n\nexport const DEPARTMENT = `Навчально-практичний центр кар'єри та професійного зростання`;\nexport const BRAND = `Донецький національний університет імені Василя Стуса`;\nexport const BRAND_SHOT = `ДонНУ імені Василя Стуса`;\nexport const TITLE = `Платформа кар’єри ${BRAND_SHOT}`;\nexport const FOOTER = `© ${new Date().getFullYear()} ${BRAND}`;\nexport const LOGO = 'Головна';\n\nexport const DATE = 'Дата';\nexport const RANGE = 'Період';\nexport const HISTORY = 'Історія';\nexport const FILTER_ON = 'Показати фільтр';\nexport const FILTER_OFF = 'Сховати фільтр';\nexport const FILTER_BY = 'Фільтр по ';\n\nexport const JOBSEEKERS = 'Шукачі';\nexport const JOBSEEKER = 'Кандидат';\nexport const SEARCH_JOBSEEKERS = 'Пошук кандидатів';\nexport const EMPLOYERS = 'Роботодавці';\nexport const BROADCAST = 'Розсилки';\nexport const REPORTS = 'Звіти';\nexport const DICTIONARY = 'Словники';\nexport const HOME = 'Головна';\n\nexport const CLOSE = 'Закрити';\nexport const REOPEN = 'Відкрити повторно';\nexport const OPEN = 'Відкрити';\nexport const STATUS = 'Статус';\n\nexport const roles = {\n JOBSEEKER: JOBSEEKER,\n ADMIN: 'Адміністратор',\n EMPLOYER: 'Роботодавець',\n}\n\nexport const MAIN_MENU_DROPDOWN = [\n {\n key: 'donnu',\n title: `Сайт ${BRAND_SHOT}`,\n url: 'https://www.donnu.edu.ua',\n },\n {\n key: 'news',\n title: `Сайт новин ${BRAND_SHOT}`,\n url: 'https://news.donnu.edu.ua',\n }\n];\n\nexport const btnIcons = {\n ADD: 'plus',\n MEETINGS: 'idcard',\n VACANCIES: 'book',\n FILTER: 'filter',\n SEARCH: 'search',\n EDIT: 'edit',\n USER: 'user',\n};\n\nexport const defaultOptions = [\n {\n label: EMPTY_DATA,\n value: ''\n }\n];\n","const aux = (props) => props.children;\n\nexport default aux;\n","import React from 'react';\nimport { Spin, Icon } from 'antd';\n\nconst LoadingIndicator = (props) => {\n const antIcon = ;\n return (\n
\n
\n \n
\n
\n );\n}\n\nexport default LoadingIndicator;","import {HOME} from \"../common/common\";\nimport {ARCHIVE} from \"../common/buttons\";\nimport {EDIT, SEARCH} from \"../common/notification\";\nimport {NEW_VACANCY, VACANCIES, VACANCY} from \"../common/vacancy\";\n\nconst path = {\n search: \"/jobs\",\n searchOne: \"/jobs/:id\",\n create: \"/vacancies/create\",\n active: \"/vacancies/active\",\n edit: \"/vacancies/edit/:id\",\n view: \"/vacancies/:id\",\n list: \"/vacancies\",\n}\n\nconst items = {\n create: {\n title: NEW_VACANCY,\n path: path.create,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: VACANCIES},\n {to: path.create, label: NEW_VACANCY}\n ]\n },\n edit: {\n title: EDIT,\n path: path.edit,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: VACANCIES},\n {to: path.create, label: EDIT}\n ]\n },\n view: {\n title: VACANCY,\n path: path.view,\n redirect: path.search,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: VACANCIES},\n {to: path.view, label: VACANCY}\n ]\n },\n search: {\n title: SEARCH,\n path: path.search,\n redirect: '/',\n allowedRoles: ['ADMIN', 'EMPLOYER', 'JOBSEEKER']\n },\n searchOne: {\n title: VACANCY,\n path: path.searchOne,\n redirect: path.search,\n allowedRoles: ['ADMIN', 'EMPLOYER', 'JOBSEEKER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.search, label: VACANCIES},\n {to: path.searchOne, label: VACANCY}\n ]\n },\n list: {\n title: ARCHIVE,\n redirect: path.search,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n path: path.list,\n // breadcrumb: [\n // {to: '/', label: HOME}\n // ]\n },\n active: {\n title: VACANCIES,\n redirect: path.search,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n path: path.list,\n // breadcrumb: [\n // {to: '/', label: HOME}\n // ]\n }\n}\n\n\nexport default {path, items}","import profilePath from \"./profile\";\nimport {EDITING} from \"../common/notification\";\nimport {EMPLOYERS, HOME} from \"../common/common\";\nimport {NEW_PROFILE, PROFILE} from \"../common/profile\";\n\nconst path = {\n create: \"/employers/create\",\n edit: \"/employers/edit/:id\",\n view: \"/employers/:id\",\n list: \"/employers\",\n}\n\nconst items = {\n create: {\n title: NEW_PROFILE,\n path: path.create,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: PROFILE},\n {to: path.create, label: NEW_PROFILE}\n ]\n },\n edit: {\n title: EDITING,\n path: path.edit,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: PROFILE},\n {to: path.edit, label: EDITING}\n ]\n },\n view: {\n title: PROFILE,\n path: path.view,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n // breadcrumb: [\n // {to: '/', label: HOME},\n // {to: path.list, label: PROFILE}\n // ]\n },\n list: {\n title: EMPLOYERS,\n path: path.list,\n redirect: profilePath.path.view,\n allowedRoles: ['ADMIN'],\n // breadcrumb: [\n // {to: '/', label: HOME},\n // {to: path.list, label: EMPLOYERS}\n // ]\n },\n};\n\nexport default {path, items}\n","import {EDITING} from \"../common/notification\";\nimport {HOME, JOBSEEKERS} from \"../common/common\";\nimport {NEW_PROFILE, PROFILE} from \"../common/profile\";\nimport profilePath from \"./profile\";\n\nconst path = {\n create: \"/resumes/create\",\n edit: \"/resumes/edit/:id\",\n view: \"/resumes/:id\",\n list: \"/resumes\",\n}\n\nconst items = {\n create: {\n title: NEW_PROFILE,\n path: path.create,\n allowedRoles: ['ADMIN', 'JOBSEEKER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: PROFILE},\n {to: path.create, label: NEW_PROFILE}\n ]\n },\n edit: {\n title: EDITING,\n path: path.edit,\n allowedRoles: ['ADMIN', 'JOBSEEKER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: PROFILE},\n {to: path.edit, label: EDITING}\n ]\n },\n view: {\n title: PROFILE,\n path: path.view,\n redirect: profilePath.path.view,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: JOBSEEKERS},\n {to: path.view, label: PROFILE}\n ]\n },\n list: {\n title: JOBSEEKERS,\n path: path.list,\n redirect: profilePath.path.view,\n allowedRoles: ['ADMIN', 'EMPLOYER']\n },\n};\n\nexport default {path, items}\n","/**\n * @param {mixed} variable\n * @returns {boolean}\n */\n\nexport const isString = (variable) => {\n return (typeof variable === 'string') || (variable instanceof String);\n};\n\nexport const isEmptyString = (variable) => {\n return isString(variable) && !variable.trim();\n};\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isNumber = (variable) => {\n return (typeof variable === 'number') || (variable instanceof Number);\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isBoolean = (variable) => {\n return typeof variable === 'boolean';\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isArray = (variable) => {\n return Array.isArray(variable);\n}\n\nexport const isEmptyArray = (variable) => {\n return isArray(variable) && !variable.length;\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isObject = (variable) => {\n return !isNull(variable) && !isArray(variable) && !isString(variable)\n && !isNumber(variable) && (typeof variable === 'object');\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isEmptyObject = (variable) => {\n return isObject(variable) && (Object.keys(variable).length === 0);\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isNull = (variable) => {\n return variable === null;\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isUndefined = (variable) => {\n return variable === undefined || typeof variable === 'undefined';\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isValue = (variable) => {\n return !isUndefined(variable) && !isNull(variable);\n}\n\n/**\n * @param {mixed} variable\n * @returns {boolean}\n */\nexport const isDate = (variable) => {\n try {\n return new Date(variable).toString() !== 'Invalid Date';\n } catch (_) {\n return false;\n }\n}\n","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/main.213849d8.png\";","import {SELECT_OPTION} from \"./notification\";\n\nexport const NO_EMPLOYER_PROFILES = 'Схоже, ви ще не заповнили профіль компанії';\nexport const PROFILE = 'Профіль';\nexport const PROFILES = 'Користувачі';\nexport const SEARCH_ALL_PROFILES = 'Пошук по всіх користувачах';\nexport const NEW_PROFILE = 'Новий профіль';\nexport const EMPTY_PROFILE = 'Профіль не заповнено';\nexport const FINISH = 'Готово!';\nexport const COMPLETED_PROFILE = 'Профіль готовий до роботи';\nexport const CREATE_PROFILE = 'Створити профіль';\nexport const POLL = 'Анкетування';\nexport const START_POLL = 'Будь ласка, пройдіть анкетування'\nexport const START_PROFILE = 'Будь ласка, заповніть профіль'\n\nexport const ALLOWED_ROLES = ['ADMIN', 'JOBSEEKER', 'EMPLOYER']\nexport const ALLOWED_ROLES_LIST = {\n ADMIN: 'ADMIN',\n JOBSEEKER: 'JOBSEEKER',\n EMPLOYER: 'EMPLOYER'\n}\n\nexport const FIRST_NAME = 'Ім\\'я'\nexport const LAST_NAME = 'Прізвище'\nexport const MIDDLE_NAME = 'По-батькові'\nexport const FULL_NAME = 'ПІБ'\nexport const DESCRIPTIONS = 'Опис'\nexport const PASSWORD = 'Пароль'\nexport const BUSINESS_NAME = 'Назва компанії'\nexport const COMPANY_LOGO = 'Логотип компанії'\nexport const PHOTO = 'Фото'\nexport const SHORT_BUSINESS_NAME = 'Компанія'\nexport const FEMALE = 'Жіноча';\nexport const MALE = 'Чоловіча';\nexport const GENDER = 'Стать';\nexport const AGE = 'Вік';\nexport const AGE_SUFFIX = 'р.';\nexport const DATE_OF_BIRTH = 'Дата народження';\nexport const PRIVATE_EMAIL = 'Додаткова електронна адреса';\nexport const COMPANY_EMAIL = 'Електронна адреса компанії';\nexport const EMAIL = 'Електронна адреса';\nexport const PHONE_NUMBERS = 'Номер телефону';\nexport const SOCIAL_LINKS = 'Соціальні мережі';\nexport const EDUCATION_LEVEL = 'Статус';\nexport const EDUCATION_YEAR = 'Рік навчання';\nexport const EDUCATION_FORM = 'Форма навчання';\nexport const GRADUATION_YEAR = 'Рік випуску';\nexport const HIGHLIGHT = 'Найяскравіший момент з університетського життя';\nexport const SELECTED_LOCATION = 'Країна/область/населений пункт, який обрали для життя та кар\\'єри';\nexport const ADVICE_DESCRIPTION = 'Поради та побажання наступним поколінням студентів';\nexport const FACULTY = 'Факультет';\nexport const FACULTY_EXTRA_NAME = 'Назва факультету';\nexport const SPECIALITY = 'Спеціальність';\nexport const SPECIALITY_EXTRA_NAME = 'Назва спеціальністі';\nexport const PERSONAL_QUALITIES = 'Особисті якості';\nexport const ADDITIONAL_EDUCATION = 'Додаткова освіта';\nexport const PERSONAL_ACHIEVEMENTS = 'Ваші досягнення';\nexport const CONTINUE_EDUCATION = 'Я планую продовжувати освіту протягом життя';\nexport const LANGUAGES = 'Іноземні мови';\nexport const IS_EMPLOYED = 'Я працевлаштований на даний момент';\nexport const IS_SEARCHING_JOB = 'Я шукаю роботу';\nexport const IS_AGREED_TO_TERMS_CONDITIONS = 'Заповнивши цю анкету, ти даєш згоду на обробку персональних данних';\nexport const EMPLOYMENT_SECTOR = 'Сектор, в якому працюєте';\nexport const IS_REQUIRED_DIPLOMA = 'Моя посада вимагає диплома про вищу освіту';\nexport const CATEGORIES = 'Сфера діяльності';\nexport const EXPERIENCE = 'Досвід роботи';\nexport const EXPERIENCE_ACHIEVEMENTS = 'Обов\\'язки, навички, компетенції, які здобули в професійній дяльності';\nexport const EMPLOYMENT_TYPE = 'Режим роботи (зайнятість)';\nexport const EMPLOYMENT_STABILITY = 'Стабільність трудової діяльності';\nexport const PERSONAL_PREFERENCES = 'В якій компанії/установі хотіли б працювати';\nexport const PRIVATE_EMPLOYMENT_SECTOR = 'Приватний';\nexport const SOCIAL_EMPLOYMENT_SECTOR = 'Громадський';\nexport const GOVERNMENT_EMPLOYMENT_SECTOR = 'Державний';\nexport const RESPONSIBILITY_DESCRIPTIONS = 'Обов\\'язки';\nexport const PLACE_OF_WORK = 'Вкажи місце роботи';\nexport const CURRENT_POSITION = 'Посада';\nexport const SKILL_DESCRIPTIONS = 'Навички';\n\nexport const ALLOWED_GENDERS = [\n {\n label: SELECT_OPTION,\n value: ''\n },\n {\n label: FEMALE,\n value: 'FEMALE'\n },\n {\n label: MALE,\n value: 'MALE'\n }\n]\n\nexport const ALLOWED_EMPLOYMENT_SECTOR = [\n {\n label: SELECT_OPTION,\n value: ''\n },\n {\n label: PRIVATE_EMPLOYMENT_SECTOR,\n value: 'PRIVATE'\n },\n {\n label: SOCIAL_EMPLOYMENT_SECTOR,\n value: 'SOCIAL'\n },\n {\n label: GOVERNMENT_EMPLOYMENT_SECTOR,\n value: 'GOVERNMENT'\n }\n]\n\nexport const CONTACT_USER = 'Контактна особа';\nexport const CONTACT_INFO = 'Контактна інформація';\nexport const EDU_INFO = 'Освіта';\nexport const ADDITIONAL_INFO = 'Додаткова інформація';\nexport const EMPLOYMENT = 'Працевлаштування';\n\nexport const ACTIVE = 'Активно';\nexport const INACTIVE = 'Не активно';\nexport const DELETED = 'Видалено';\nexport const LOCKED = 'Заблоковано';\n\nexport const STATUS_LIST = {\n ACTIVE: 'ACTIVE',\n INACTIVE: 'INACTIVE',\n DELETED: 'DELETED',\n LOCKED: 'LOCKED'\n};\n\nexport const STATUS_LIST_ICON = {\n ACTIVE: 'check-circle',\n INACTIVE: 'close-circle',\n DELETED: 'trash',\n LOCKED: 'lock'\n};\n\nexport const STATUS_LIST_COLOR = {\n ACTIVE: '#52c41a',\n INACTIVE: '#ccc',\n DELETED: '#ccc',\n LOCKED: '#ccc'\n};\n\nexport const STATUS_LIST_VALUES = {\n ACTIVE,\n INACTIVE,\n DELETED,\n LOCKED\n};\n","import {STATUS_LIST} from \"../../constants/common/profile\";\n\nexport const AUTH_START = 'AUTH_START';\nexport const AUTH_SUCCESS = 'AUTH_SUCCESS';\nexport const AUTH_FAIL = 'AUTH_FAIL';\nexport const AUTH_LOGOUT = 'AUTH_LOGOUT';\nexport const SET_AUTH_REDIRECT_PATH = 'SET_AUTH_REDIRECT_PATH';\n\nexport const FETCH_POSITIONS_START = 'FETCH_POSITIONS_START';\nexport const FETCH_POSITIONS_SUCCESS = 'FETCH_POSITIONS_SUCCESS';\nexport const FETCH_POSITIONS_FAIL = 'FETCH_POSITIONS_FAIL';\n\nexport const RESET_JOB_SEEKERS = 'RESET_JOB_SEEKERS';\nexport const FETCH_JOB_SEEKERS_START = 'FETCH_JOB_SEEKERS_START';\nexport const FETCH_JOB_SEEKERS_SUCCESS = 'FETCH_JOB_SEEKERS_SUCCESS';\nexport const FETCH_JOB_SEEKERS_FAIL = 'FETCH_JOB_SEEKERS_FAIL';\nexport const FETCH_ONE_JOB_SEEKERS_SUCCESS = 'FETCH_ONE_JOB_SEEKERS_SUCCESS';\nexport const CREATE_JOB_SEEKERS_START = 'CREATE_JOB_SEEKERS_START';\nexport const CREATE_JOB_SEEKERS_SUCCESS = 'CREATE_JOB_SEEKERS_SUCCESS';\nexport const CREATE_JOB_SEEKERS_FAIL = 'CREATE_JOB_SEEKERS_FAIL';\nexport const SAVE_JOB_SEEKERS_SUCCESS = 'SAVE_JOB_SEEKERS_SUCCESS';\nexport const FETCH_JOB_SEEKERS_SUMMARY_START = 'FETCH_JOB_SEEKERS_SUMMARY_START'\nexport const FETCH_JOB_SEEKERS_SUMMARY_SUCCESS = 'FETCH_JOB_SEEKERS_SUMMARY_SUCCESS'\nexport const FETCH_JOB_SEEKERS_SUMMARY_FAIL = 'FETCH_JOB_SEEKERS_SUMMARY_FAIL'\nexport const SEARCH_JOB_SEEKERS_START = 'SEARCH_JOB_SEEKERS_START'\nexport const SEARCH_JOB_SEEKERS_SUCCESS = 'SEARCH_JOB_SEEKERS_SUCCESS'\nexport const SEARCH_JOB_SEEKERS_FAIL = 'SEARCH_JOB_SEEKERS_FAIL'\n\nexport const FETCH_EMPLOYERS_SUMMARY_START = 'FETCH_EMPLOYERS_SUMMARY_START'\nexport const FETCH_EMPLOYERS_SUMMARY_SUCCESS = 'FETCH_EMPLOYERS_SUMMARY_SUCCESS'\nexport const FETCH_EMPLOYERS_SUMMARY_FAIL = 'FETCH_EMPLOYERS_SUMMARY_FAIL'\n\nexport const RESET_EMPLOYERS = 'RESET_EMPLOYERS'\nexport const FETCH_EMPLOYERS_START = 'FETCH_EMPLOYERS_START'\nexport const FETCH_EMPLOYERS_FAIL = 'FETCH_EMPLOYERS_FAIL'\nexport const CREATE_EMPLOYERS_START = 'CREATE_EMPLOYERS_START'\nexport const CREATE_EMPLOYERS_SUCCESS = 'CREATE_EMPLOYERS_SUCCESS'\nexport const CREATE_EMPLOYERS_FAIL = 'CREATE_EMPLOYERS_FAIL'\nexport const SAVE_EMPLOYERS_SUCCESS = 'SAVE_EMPLOYERS_SUCCESS'\nexport const FETCH_EMPLOYERS_SUCCESS = 'FETCH_EMPLOYERS_SUCCESS'\nexport const FETCH_ONE_EMPLOYERS_SUCCESS = 'FETCH_ONE_EMPLOYERS_SUCCESS'\n\nexport const FETCH_CATEGORIES_START = 'FETCH_CATEGORIES_START';\nexport const FETCH_CATEGORIES_SUCCESS = 'FETCH_CATEGORIES_SUCCESS';\nexport const FETCH_CATEGORIES_FAIL = 'FETCH_CATEGORIES_FAIL';\n\nexport const FETCH_EDUCATION_FORM_START = 'FETCH_EDUCATION_FORM_START';\nexport const FETCH_EDUCATION_FORM_SUCCESS = 'FETCH_EDUCATION_FORM_SUCCESS';\nexport const FETCH_EDUCATION_FORM_FAIL = 'FETCH_EDUCATION_FORM_FAIL';\n\nexport const FETCH_EDUCATION_LEVEL_START = 'FETCH_EDUCATION_LEVEL_START';\nexport const FETCH_EDUCATION_LEVEL_SUCCESS = 'FETCH_EDUCATION_LEVEL_SUCCESS';\nexport const FETCH_EDUCATION_LEVEL_FAIL = 'FETCH_EDUCATION_LEVEL_FAIL';\n\nexport const FETCH_EDUCATION_YEAR_START = 'FETCH_EDUCATION_YEAR_START';\nexport const FETCH_EDUCATION_YEAR_SUCCESS = 'FETCH_EDUCATION_YEAR_SUCCESS';\nexport const FETCH_EDUCATION_YEAR_FAIL = 'FETCH_EDUCATION_YEAR_FAIL';\n\nexport const FETCH_EMPLOYMENT_STABILITY_START = 'FETCH_EMPLOYMENT_STABILITY_START';\nexport const FETCH_EMPLOYMENT_STABILITY_SUCCESS = 'FETCH_EMPLOYMENT_STABILITY_SUCCESS';\nexport const FETCH_EMPLOYMENT_STABILITY_FAIL = 'FETCH_EMPLOYMENT_STABILITY_FAIL';\n\nexport const FETCH_EMPLOYMENT_TYPE_START = 'FETCH_EMPLOYMENT_TYPE_START';\nexport const FETCH_EMPLOYMENT_TYPE_SUCCESS = 'FETCH_EMPLOYMENT_TYPE_SUCCESS';\nexport const FETCH_EMPLOYMENT_TYPE_FAIL = 'FETCH_EMPLOYMENT_TYPE_FAIL';\n\nexport const FETCH_EXPERIENCE_START = 'FETCH_EXPERIENCE_START';\nexport const FETCH_EXPERIENCE_SUCCESS = 'FETCH_EXPERIENCE_SUCCESS';\nexport const FETCH_EXPERIENCE_FAIL = 'FETCH_EXPERIENCE_FAIL';\n\nexport const FETCH_FACULTIES_START = 'FETCH_FACULTIES_START';\nexport const FETCH_FACULTIES_SUCCESS = 'FETCH_FACULTIES_SUCCESS';\nexport const FETCH_FACULTIES_FAIL = 'FETCH_FACULTIES_FAIL';\n\nexport const FETCH_SPECIALITIES_START = 'FETCH_SPECIALITIES_START';\nexport const FETCH_SPECIALITIES_SUCCESS = 'FETCH_SPECIALITIES_SUCCESS';\nexport const FETCH_SPECIALITIES_FAIL = 'FETCH_SPECIALITIES_FAIL';\nexport const FETCH_SPECIALITIES_BY_FACULTY_SUCCESS = 'FETCH_SPECIALITIES_BY_FACULTY_SUCCESS';\n\nexport const FETCH_VACANCIES_START = 'FETCH_VACANCIES_START';\nexport const FETCH_VACANCIES_SUCCESS = 'FETCH_VACANCIES_SUCCESS';\nexport const RESET_VACANCIES = 'RESET_VACANCIES';\nexport const FETCH_ONE_VACANCIES_SUCCESS = 'FETCH_ONE_VACANCIES_SUCCESS';\nexport const FETCH_VACANCIES_FAIL = 'FETCH_VACANCIES_FAIL';\nexport const CREATE_VACANCIES_START = 'CREATE_VACANCIES_START';\nexport const CREATE_VACANCIES_SUCCESS = 'CREATE_VACANCIES_SUCCESS';\nexport const CREATE_VACANCIES_FAIL = 'CREATE_VACANCIES_FAIL';\nexport const SAVE_VACANCIES_SUCCESS = 'SAVE_VACANCIES_SUCCESS';\nexport const SEARCH_VACANCIES_START = 'SEARCH_VACANCIES_START';\nexport const SEARCH_VACANCIES_SUCCESS = 'SEARCH_VACANCIES_SUCCESS';\nexport const SEARCH_VACANCIES_FAIL = 'SEARCH_VACANCIES_FAIL';\nexport const SET_VACANCY_FILTER = 'SET_VACANCY_FILTER';\n\nexport const VacancyFilters = {\n SHOW_ALL: 'SHOW_ALL',\n SHOW_ACTIVE: STATUS_LIST.ACTIVE\n}\n\nexport const FETCH_MEETINGS_START = 'FETCH_MEETINGS_START';\nexport const FETCH_MEETINGS_SUCCESS = 'FETCH_MEETINGS_SUCCESS';\nexport const FETCH_ONE_MEETINGS_SUCCESS = 'FETCH_ONE_MEETINGS_SUCCESS';\nexport const FETCH_MEETINGS_FAIL = 'FETCH_MEETINGS_FAIL';\nexport const CREATE_MEETINGS_START = 'CREATE_MEETINGS_START';\nexport const CREATE_MEETINGS_SUCCESS = 'CREATE_MEETINGS_SUCCESS';\nexport const CREATE_MEETINGS_FAIL = 'CREATE_MEETINGS_FAIL';\nexport const SAVE_MEETINGS_SUCCESS = 'SAVE_MEETINGS_SUCCESS';\nexport const SEARCH_MEETINGS_START = 'SEARCH_MEETINGS_START';\nexport const SEARCH_MEETINGS_SUCCESS = 'SEARCH_MEETINGS_SUCCESS';\nexport const SEARCH_MEETINGS_FAIL = 'SEARCH_MEETINGS_FAIL'\nexport const RESET_MEETINGS = 'RESET_MEETINGS';\nexport const SET_MEETING_FILTER = 'SET_MEETING_FILTER';\n\nexport const RESET_ALL='RESET_ALL';\nexport const RESET_PAGE='RESET_PAGE';\nexport const SET_PAGE_TAGS='SET_PAGE_TAGS';\nexport const RESET_PAGE_TAGS='RESET_PAGE_TAGS';\nexport const SET_PAGE_ACTIONS='SET_PAGE_ACTIONS';\nexport const RESET_PAGE_ACTIONS='RESET_PAGE_ACTIONS';\nexport const SET_PAGE_PATH_REDIRECT='SET_PAGE_PATH_REDIRECT';\nexport const RESET_PAGE_PATH_REDIRECT='RESET_PAGE_PATH_REDIRECT';\n\nexport const FETCH_ONE_USERS_SUCCESS='FETCH_ONE_USERS_SUCCESS';\nexport const SAVE_USERS_SUCCESS ='SAVE_USERS_SUCCESS';\nexport const FETCH_USERS_START='FETCH_USERS_START';\nexport const FETCH_USERS_FAIL='FETCH_USERS_FAIL';\nexport const SEARCH_USERS_START='SEARCH_USERS_START';\nexport const SEARCH_USERS_SUCCESS='SEARCH_USERS_SUCCESS';\nexport const SEARCH_USERS_FAIL='SEARCH_USERS_FAIL';\nexport const RESET_USERS ='RESET_USERS';\n\nexport const MeetingFilters = {\n SHOW_ALL: 'SHOW_ALL',\n SHOW_EXPIRED: 'SHOW_EXPIRED',\n SHOW_REQUESTS: 'SHOW_REQUESTS',\n SHOW_FEATURE: 'SHOW_FEATURE'\n}\n\nexport const UPLOAD_FILE_START = 'UPLOAD_FILE_START';\nexport const UPLOAD_FILE_SUCCESS = 'UPLOAD_FILE_SUCCESS';\nexport const UPLOAD_FILE_FAIL = 'UPLOAD_FILE_FAIL';\nexport const UPLOAD_FILE_RESET = 'UPLOAD_FILE_RESET';\nexport const DOWNLOADED_FILE_SUCCESS = 'DOWNLOADED_FILE_SUCCESS';","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n me: null,\n token: null,\n error: null,\n loading: false,\n authRedirectPath: '/'\n};\n\nconst authStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst authSuccess = (state, action) => {\n return updateObject(state, {\n token: action.idToken,\n error: null,\n loading: false,\n me: action.me\n });\n};\n\nconst authFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n me: null,\n loading: false\n });\n};\n\nconst authLogout = (state, action) => {\n return updateObject(state, initialState);\n};\n\nconst setAuthRedirectPath = (state, action) => {\n return updateObject(state, {authRedirectPath: action.path})\n}\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.AUTH_START:\n return authStart(state, action);\n case actionTypes.AUTH_SUCCESS:\n return authSuccess(state, action);\n case actionTypes.AUTH_FAIL:\n return authFail(state, action);\n case actionTypes.AUTH_LOGOUT:\n return authLogout(state, action);\n case actionTypes.SET_AUTH_REDIRECT_PATH:\n return setAuthRedirectPath(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n summaryList: [],\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchJobSeekersSummaryStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchJobSeekersSummarySuccess = (state, action) => {\n return updateObject(state, {\n summaryList: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchJobSeekersSummaryFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n summaryList: [],\n loading: false\n });\n};\n\nconst fetchJobSeekersStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchOneJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst fetchJobSeekersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst createJobSeekersStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst createJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst saveJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst createJobSeekersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst searchJobSeekersStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst searchJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst searchJobSeekersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst resetJobSeekers = (state) => {\n return updateObject(state, initialState);\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_JOB_SEEKERS_START:\n return fetchJobSeekersStart(state, action);\n case actionTypes.FETCH_JOB_SEEKERS_SUCCESS:\n return fetchJobSeekersSuccess(state, action);\n case actionTypes.FETCH_ONE_JOB_SEEKERS_SUCCESS:\n return fetchOneJobSeekersSuccess(state, action);\n case actionTypes.FETCH_JOB_SEEKERS_FAIL:\n return fetchJobSeekersFail(state, action);\n case actionTypes.CREATE_JOB_SEEKERS_START:\n return createJobSeekersStart(state, action);\n case actionTypes.CREATE_JOB_SEEKERS_SUCCESS:\n return createJobSeekersSuccess(state, action);\n case actionTypes.SAVE_JOB_SEEKERS_SUCCESS:\n return saveJobSeekersSuccess(state, action);\n case actionTypes.CREATE_JOB_SEEKERS_FAIL:\n return createJobSeekersFail(state, action);\n case actionTypes.RESET_JOB_SEEKERS:\n return resetJobSeekers(state, action);\n case actionTypes.FETCH_JOB_SEEKERS_SUMMARY_START:\n return fetchJobSeekersSummaryStart(state, action);\n case actionTypes.FETCH_JOB_SEEKERS_SUMMARY_SUCCESS:\n return fetchJobSeekersSummarySuccess(state, action);\n case actionTypes.FETCH_JOB_SEEKERS_SUMMARY_FAIL:\n return fetchJobSeekersSummaryFail(state, action);\n case actionTypes.SEARCH_JOB_SEEKERS_START:\n return searchJobSeekersStart(state, action);\n case actionTypes.SEARCH_JOB_SEEKERS_SUCCESS:\n return searchJobSeekersSuccess(state, action);\n case actionTypes.SEARCH_JOB_SEEKERS_FAIL:\n return searchJobSeekersFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EMPLOYMENT_STABILITY_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EMPLOYMENT_STABILITY_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EMPLOYMENT_STABILITY_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EDUCATION_LEVEL_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EDUCATION_LEVEL_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EDUCATION_LEVEL_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EMPLOYMENT_TYPE_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EMPLOYMENT_TYPE_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EMPLOYMENT_TYPE_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EDUCATION_YEAR_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EDUCATION_YEAR_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EDUCATION_YEAR_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EDUCATION_FORM_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EDUCATION_FORM_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EDUCATION_FORM_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EXPERIENCE_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_EXPERIENCE_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_EXPERIENCE_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_SPECIALITIES_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_SPECIALITIES_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_SPECIALITIES_BY_FACULTY_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_SPECIALITIES_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n loading: false,\n error: null,\n object: {}\n};\n\nconst uploadFileStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst uploadFileSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst downloadFileSuccess = (state, action) => {\n return updateObject(state, {\n [action.file.imageUrl]: action.file.data,\n error: null,\n loading: false\n });\n};\n\nconst uploadFileFail = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst resetUploadFile = (state) => {\n return updateObject(state, initialState);\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.UPLOAD_FILE_START:\n return uploadFileStart(state, action);\n case actionTypes.UPLOAD_FILE_SUCCESS:\n return uploadFileSuccess(state, action);\n case actionTypes.UPLOAD_FILE_FAIL:\n return uploadFileFail(state, action);\n case actionTypes.DOWNLOADED_FILE_SUCCESS:\n return downloadFileSuccess(state, action);\n case actionTypes.UPLOAD_FILE_RESET:\n return resetUploadFile(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_CATEGORIES_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_CATEGORIES_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_CATEGORIES_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n summaryList: [],\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchEmployerStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchJobSeekersSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\n\nconst fetchOneEmployerSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst fetchEmployersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst createEmployerStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst createEmployerSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst saveEmployerSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst createEmployerFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst resetEmployers = (state) => {\n return updateObject(state, initialState);\n};\n\nconst fetchEmployersSummaryStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchEmployersSummarySuccess = (state, action) => {\n return updateObject(state, {\n summaryList: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchEmployersSummaryFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n summaryList: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_EMPLOYERS_START:\n return fetchEmployerStart(state, action);\n case actionTypes.FETCH_EMPLOYERS_SUCCESS:\n return fetchJobSeekersSuccess(state, action);\n case actionTypes.FETCH_ONE_EMPLOYERS_SUCCESS:\n return fetchOneEmployerSuccess(state, action);\n case actionTypes.FETCH_EMPLOYERS_FAIL:\n return fetchEmployersFail(state, action);\n case actionTypes.CREATE_EMPLOYERS_START:\n return createEmployerStart(state, action);\n case actionTypes.CREATE_EMPLOYERS_SUCCESS:\n return createEmployerSuccess(state, action);\n case actionTypes.SAVE_EMPLOYERS_SUCCESS:\n return saveEmployerSuccess(state, action);\n case actionTypes.CREATE_EMPLOYERS_FAIL:\n return createEmployerFail(state, action);\n case actionTypes.RESET_EMPLOYERS:\n return resetEmployers(state, action);\n case actionTypes.FETCH_EMPLOYERS_SUMMARY_START:\n return fetchEmployersSummaryStart(state, action);\n case actionTypes.FETCH_EMPLOYERS_SUMMARY_SUCCESS:\n return fetchEmployersSummarySuccess(state, action);\n case actionTypes.FETCH_EMPLOYERS_SUMMARY_FAIL:\n return fetchEmployersSummaryFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n loading: false,\n filter: '',\n error: null,\n object: {},\n list: []\n};\n\nconst fetchMeetingsStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchMeetingsSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchMeetingsFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst fetchOneMeetingsSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst createMeetingsStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst createMeetingsSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst saveMeetingsSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst createMeetingsFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst searchMeetingsStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst searchMeetingsSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst searchMeetingsFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst setMeetingsFilter = (state, action) => {\n return updateObject(state, {\n error: null,\n filter: action.filter,\n list: [],\n loading: false\n });\n};\n\nconst resetMeetings = (state) => {\n return updateObject(state, initialState);\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_MEETINGS_START:\n return fetchMeetingsStart(state, action);\n case actionTypes.FETCH_MEETINGS_SUCCESS:\n return fetchMeetingsSuccess(state, action);\n case actionTypes.FETCH_ONE_MEETINGS_SUCCESS:\n return fetchOneMeetingsSuccess(state, action);\n case actionTypes.FETCH_MEETINGS_FAIL:\n return fetchMeetingsFail(state, action);\n case actionTypes.CREATE_MEETINGS_START:\n return createMeetingsStart(state, action);\n case actionTypes.CREATE_MEETINGS_SUCCESS:\n return createMeetingsSuccess(state, action);\n case actionTypes.SAVE_MEETINGS_SUCCESS:\n return saveMeetingsSuccess(state, action);\n case actionTypes.CREATE_MEETINGS_FAIL:\n return createMeetingsFail(state, action);\n case actionTypes.RESET_MEETINGS:\n return resetMeetings(state, action);\n case actionTypes.SET_MEETING_FILTER:\n return setMeetingsFilter(state, action);\n case actionTypes.SEARCH_MEETINGS_START:\n return searchMeetingsStart(state, action);\n case actionTypes.SEARCH_MEETINGS_SUCCESS:\n return searchMeetingsSuccess(state, action);\n case actionTypes.SEARCH_MEETINGS_FAIL:\n return searchMeetingsFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_FACULTIES_START:\n return fetchStart(state, action);\n case actionTypes.FETCH_FACULTIES_SUCCESS:\n return fetchSuccess(state, action);\n case actionTypes.FETCH_FACULTIES_FAIL:\n return fetchFail(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n positions: [],\n filter: '',\n loading: false,\n error: null,\n object: {},\n list: []\n};\n\nconst fetchVacanciesStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchVacanciesSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchOneVacanciesSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst fetchVacanciesFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst fetchPositionsSuccess = (state, action) => {\n return updateObject(state, {\n positions: action.list,\n error: null,\n loading: false\n });\n};\n\nconst fetchPositionsFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n positions: [],\n loading: false\n });\n};\n\nconst searchVacanciesSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst searchVacanciesFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst createVacanciesStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst createVacanciesSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst saveVacanciesSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst createVacanciesFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n loading: false\n });\n};\n\nconst setVacanciesFilter = (state, action) => {\n return updateObject(state, {\n error: null,\n filter: action.filter,\n list: [],\n loading: false\n });\n};\n\nconst resetVacancies = (state) => {\n return updateObject(state, initialState);\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_VACANCIES_START:\n return fetchVacanciesStart(state, action);\n case actionTypes.FETCH_VACANCIES_SUCCESS:\n return fetchVacanciesSuccess(state, action);\n case actionTypes.FETCH_ONE_VACANCIES_SUCCESS:\n return fetchOneVacanciesSuccess(state, action);\n case actionTypes.FETCH_VACANCIES_FAIL:\n return fetchVacanciesFail(state, action);\n case actionTypes.CREATE_VACANCIES_START:\n return createVacanciesStart(state, action);\n case actionTypes.CREATE_VACANCIES_SUCCESS:\n return createVacanciesSuccess(state, action);\n case actionTypes.SAVE_VACANCIES_SUCCESS:\n return saveVacanciesSuccess(state, action);\n case actionTypes.CREATE_VACANCIES_FAIL:\n return createVacanciesFail(state, action);\n case actionTypes.RESET_VACANCIES:\n return resetVacancies(state, action);\n case actionTypes.FETCH_POSITIONS_START:\n return fetchVacanciesStart(state, action);\n case actionTypes.FETCH_POSITIONS_SUCCESS:\n return fetchPositionsSuccess(state, action);\n case actionTypes.FETCH_POSITIONS_FAIL:\n return fetchPositionsFail(state, action);\n case actionTypes.SEARCH_VACANCIES_START:\n return fetchVacanciesStart(state, action);\n case actionTypes.SEARCH_VACANCIES_SUCCESS:\n return searchVacanciesSuccess(state, action);\n case actionTypes.SEARCH_VACANCIES_FAIL:\n return searchVacanciesFail(state, action);\n case actionTypes.SET_VACANCY_FILTER:\n return setVacanciesFilter(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n tags: [],\n actions: [],\n subTitle: '',\n pathRedirect: '',\n allowedPath: []\n};\n\nconst setPageActions = (state, action) => {\n return updateObject(state, {\n actions: action.list\n });\n};\n\nconst setPagePathRedirect = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.value[0] || '',\n allowedPath: action.value[1] || []\n });\n};\n\nconst setPageTags = (state, action) => {\n return updateObject(state, {\n tags: action.list\n });\n};\n\nconst resetPage = (state) => {\n const newState = {\n ...initialState,\n pathRedirect: state.pathRedirect, allowedPath: state.allowedPath\n }\n return updateObject(state, newState);\n};\n\nconst resetPagePathRedirect = (state) => {\n return updateObject(state, {\n pathRedirect: '',\n allowedPath: []\n });\n};\n\nconst resetPageActions = (state) => {\n return updateObject(state, {\n actions: []\n });\n};\n\nconst resetPageTags = (state) => {\n return updateObject(state, {\n tags: []\n });\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.SET_PAGE_ACTIONS:\n return setPageActions(state, action);\n case actionTypes.SET_PAGE_PATH_REDIRECT:\n return setPagePathRedirect(state, action);\n case actionTypes.SET_PAGE_TAGS:\n return setPageTags(state, action);\n case actionTypes.RESET_PAGE_PATH_REDIRECT:\n return resetPagePathRedirect(state);\n case actionTypes.RESET_PAGE:\n return resetPage(state);\n case actionTypes.RESET_PAGE_ACTIONS:\n return resetPageActions(state);\n case actionTypes.RESET_PAGE_TAGS:\n return resetPageTags(state);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import * as actionTypes from '../actions/actionTypes';\nimport {updateObject} from '../../util/utility';\n\nconst initialState = {\n pathRedirect: '',\n loading: false,\n error: null,\n object: {},\n summaryList: [],\n list: []\n};\n\nconst fetchUsersStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst fetchOneUserSuccess = (state, action) => {\n return updateObject(state, {\n object: action.object,\n error: null,\n loading: false\n });\n};\n\nconst saveUsersSuccess = (state, action) => {\n return updateObject(state, {\n pathRedirect: action.pathRedirect,\n error: null,\n loading: false\n });\n};\n\nconst fetchUsersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst searchUsersStart = (state, action) => {\n return updateObject(state, {error: null, loading: true});\n};\n\nconst searchUsersSuccess = (state, action) => {\n return updateObject(state, {\n list: action.list,\n error: null,\n loading: false\n });\n};\n\nconst searchUsersFail = (state, action) => {\n return updateObject(state, {\n error: action.error,\n list: [],\n loading: false\n });\n};\n\nconst resetUsers = (state) => {\n return updateObject(state, initialState);\n};\n\nconst reducer = (state = initialState, action) => {\n switch (action.type) {\n case actionTypes.FETCH_ONE_USERS_SUCCESS:\n return fetchOneUserSuccess(state, action);\n case actionTypes.SAVE_USERS_SUCCESS:\n return saveUsersSuccess(state, action);\n case actionTypes.FETCH_USERS_START:\n return fetchUsersStart(state, action);\n case actionTypes.FETCH_USERS_FAIL:\n return fetchUsersFail(state, action);\n case actionTypes.SEARCH_USERS_START:\n return searchUsersStart(state, action);\n case actionTypes.SEARCH_USERS_SUCCESS:\n return searchUsersSuccess(state, action);\n case actionTypes.SEARCH_USERS_FAIL:\n return searchUsersFail(state, action);\n case actionTypes.RESET_USERS:\n return resetUsers(state, action);\n default:\n return state;\n }\n};\n\nexport default reducer;\n","import React, { Component } from 'react';\nimport { Redirect } from 'react-router-dom'\nimport {ACCESS_TOKEN} from \"../../../constants/common/auth\";\n\nclass OAuth2RedirectHandler extends Component {\n getUrlParameter = (name) => {\n name = name.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n const regex = new RegExp('[\\\\?&]' + name + '=([^&#]*)');\n const results = regex.exec(this.props.location.search);\n console.log({'[ OAuth2RedirectHandler ]': results})\n return results === null ? '' : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n };\n\n render() { \n const token = this.getUrlParameter('token');\n const error = this.getUrlParameter('error');\n if(token) {\n localStorage.setItem(ACCESS_TOKEN, token);\n return ; \n } else {\n return ; \n }\n }\n}\n\nexport default OAuth2RedirectHandler;","import React from 'react';\nimport './breadcrumb.css'\n\nconst Separator = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst BreadcrumbSeparator = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst BreadcrumbItem = ({ children, ...props }) => (\n \n {children}\n \n)\n\nconst Breadcrumb = ({ separator = '/', ...props }) => {\n let children = React.Children.toArray(props.children)\n\n children = children.map((child, index) => (\n {child}\n ))\n\n const lastIndex = children.length - 1\n\n children = children.reduce((acc, child, index) => {\n const notLast = index < lastIndex\n if (notLast) {\n acc.push(\n child,\n \n {separator}\n ,\n )\n } else {\n acc.push(child)\n }\n return acc\n }, [])\n\n return
{children}
\n}\n\nexport default Breadcrumb;","import React from 'react';\nimport {CSVLink} from 'react-csv';\nimport {PageHeader, Tag, Icon} from 'antd';\nimport {Route, Link, Redirect} from \"react-router-dom\";\n\nimport {isArray, isEmptyArray} from \"../../util/variableTypes\";\nimport Breadcrumb from \"../UI/Breadcrumb/Breadcrumb\";\nimport {getRole} from \"../../util/userHelpers\";\nimport Button from \"../UI/Button/Button\";\nimport Aux from \"../../hoc/Aux\";\n\nconst PrivateRoute = ({\n component: Component, me, allowedRoles = [], authenticated,\n title = '', subTitle = '', tags = [], actions = [], pathRedirect, allowedPath = [],\n breadcrumb = [], redirect = '/login', computedMatch, ...rest\n}) => {\n const {params: {id = ''} = {} } = computedMatch || {};\n const role = getRole(me);\n if (!role && isArray(allowedRoles) && !isEmptyArray(allowedRoles)) {\n return (\n (\n \n )}\n />\n );\n }\n\n const validRole = !(role && isArray(allowedRoles) && !isEmptyArray(allowedRoles))\n ? true : allowedRoles.includes(role);\n\n if (pathRedirect && ![...allowedPath, pathRedirect].includes(rest.path)) {\n return (\n (\n \n )}\n />\n );\n }\n\n const pageTags = isArray(tags) && !isEmptyArray(tags)\n ? tags.map((tag, i) => {tag.text})\n : [];\n\n const pageActions = isArray(actions) && !isEmptyArray(actions)\n ? actions.map((btn, i) => {\n return btn.type === 'csv'\n ? (\n \n \n  EXPORT CSV\n \n )\n : (\n \n \n );\n};\n\nexport default LoginForm;\n","import React, {Component} from 'react';\nimport {connect} from 'react-redux';\nimport {Link, Redirect} from 'react-router-dom'\n\nimport {LOGIN, NOT_SIGNED_UP, OR, SIGN_UP} from \"../../../constants/common/auth\";\nimport SocialLogin from \"../../../components/User/Login/SocialLogin\";\nimport {LoginForm} from \"../../../components/User/Login\";\nimport * as actions from \"../../../store/actions/auth\";\nimport './Login.css';\n\nclass Login extends Component {\n state = {\n email: '',\n password: ''\n };\n\n componentDidMount() {\n // If the OAuth2 login encounters an error, the user is redirected to the /login page with an error.\n // Here we display the error and then remove the error query parameter from the location.\n if (this.props.location.state && this.props.location.state.error) {\n // setTimeout(() => {\n // notification.error({\n // message: 'Error',\n // description: this.props.location.state.error\n // });\n // this.props.history.push('/');\n // }, 100);\n this.props.history.push('/');\n }\n }\n\n handleInputChange = (event) => {\n const target = event.target;\n const inputName = target.name;\n const inputValue = target.value;\n\n this.setState({\n [inputName]: inputValue\n });\n };\n\n handleSubmit = (event) => {\n event.preventDefault();\n this.props.onAuth({...this.state});\n };\n\n render() {\n const {handleSubmit, handleInputChange} = this;\n const {email, password} = this.state;\n if (this.props.isAuthenticated) {\n return ;\n }\n\n return (\n
\n
\n

{LOGIN}

\n \n
\n {OR}\n
\n \n
\n {NOT_SIGNED_UP} {SIGN_UP}!\n
\n
\n
\n );\n }\n}\n\nconst mapStateToProps = state => {\n return {\n me: state.auth.me,\n loading: state.auth.loading,\n error: state.auth.error,\n isAuthenticated: state.auth.token !== null,\n authRedirectPath: state.auth.authRedirectPath\n };\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n onAuth: (loginRequest) => dispatch(actions.auth(loginRequest)),\n };\n};\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Login);\n","import React, { Component } from 'react';\nimport {TITLE, BRAND} from \"../../constants/common/common\";\nimport main from '../../assets/images/main.png';\nimport './Home.css';\n\nclass Home extends Component {\n render() {\n return (\n
\n
\n {BRAND}/\n

{TITLE}

\n
\n
\n )\n }\n}\n\nexport default Home;","import React, { Component } from 'react';\n\nconst asyncComponent = (importComponent) => {\n return class extends Component {\n state = {\n component: null\n }\n\n componentDidMount () {\n importComponent()\n .then(cmp => {\n this.setState({component: cmp.default});\n });\n }\n\n render () {\n const C = this.state.component;\n\n return C ? : null;\n }\n }\n}\n\nexport default asyncComponent;","import asyncComponent from \"./hoc/asyncComponents/asyncComponents\";\n\nexport const asyncProfilesSearch = asyncComponent(() => {\n return import('./containers/User/User/UserSearch');\n});\n\nexport const asyncProfile = asyncComponent(() => {\n return import('./containers/User/Profile/Profile');\n});\n\nexport const asyncSignup = asyncComponent(() => {\n return import('./containers/User/Signup/Signup');\n});\n\nexport const asyncUserEdit = asyncComponent(() => {\n return import('./containers/User/User/UserEdit');\n});\n\n// JOBSEEKER\n\nexport const asyncJobSeekerSearch = asyncComponent(() => {\n return import('./containers/JobSeeker/JobSeekerSearch');\n});\n\nexport const asyncJobSeekerCard = asyncComponent(() => {\n return import('./containers/JobSeeker/JobSeekerCardContainer');\n});\n\nexport const asyncJobSeekerCreate = asyncComponent(() => {\n return import('./containers/JobSeeker/JobSeekerCreate');\n});\n\nexport const asyncJobSeekerEdit = asyncComponent(() => {\n return import('./containers/JobSeeker/JobSeekerEdit');\n});\n\n// EMPLOYER\n\nexport const asyncEmployerCreate = asyncComponent(() => {\n return import('./containers/Employer/EmployerCreate');\n});\n\nexport const asyncEmployerEdit = asyncComponent(() => {\n return import('./containers/Employer/EmployerEdit');\n});\n\nexport const asyncEmployerSearch = asyncComponent(() => {\n return import('./containers/Employer/EmployerSearch');\n});\n\n// VACANCY\n\nexport const asyncVacancy = asyncComponent(() => {\n return import('./containers/Vacancy/VacancyCardContainer');\n});\n\nexport const asyncVacancyCreate = asyncComponent(() => {\n return import('./containers/Vacancy/VacancyCreate');\n});\n\nexport const asyncVacancyList = asyncComponent(() => {\n return import('./containers/Vacancy/VacancyList');\n});\n\nexport const asyncVacancyEdit = asyncComponent(() => {\n return import('./containers/Vacancy/VacancyEdit');\n});\n\nexport const asyncVacancySearch = asyncComponent(() => {\n return import('./containers/Vacancy/VacancySearch');\n});\n\n// MEETING\n\nexport const asyncMeetingCreate = asyncComponent(() => {\n return import('./containers/Meeting/MeetingCreate');\n});\n\nexport const asyncMeetingEdit = asyncComponent(() => {\n return import('./containers/Meeting/MeetingEdit');\n});\n\nexport const asyncMeetingView = asyncComponent(() => {\n return import('./containers/Meeting/MeetingView');\n});\n\nexport const asyncMeetingList = asyncComponent(() => {\n return import('./containers/Meeting/MeetingList');\n});\n","import React, {Component} from 'react';\nimport {Route, Switch, withRouter} from 'react-router-dom';\nimport {Layout, notification} from 'antd';\nimport {connect} from 'react-redux';\n\nimport {vacancyPath, resumePath, profilePath, employerPath, meetingPath} from './constants/path';\nimport OAuth2RedirectHandler from './containers/User/Oauth2/OAuth2RedirectHandler';\nimport LoadingIndicator from './components/UI/LoadingIndicator/LoadingIndicator';\nimport PrivateRoute from \"./components/Common/PrivateRoute\";\nimport AppHeader from \"./containers/AppHeader/AppHeader\";\nimport NotFound from \"./components/NotFound/NotFound\";\nimport Login from \"./containers/User/Login/Login\";\nimport * as actions from './store/actions/index';\nimport {FOOTER} from './constants/common/common';\nimport {getAccessToken} from './util/APIUtils';\nimport Home from './containers/Home/Home';\nimport {\n asyncEmployerCreate, asyncEmployerEdit, asyncJobSeekerCard,\n asyncProfile, asyncSignup, asyncVacancy, asyncVacancyCreate,\n asyncJobSeekerCreate, asyncJobSeekerEdit, asyncJobSeekerSearch,\n asyncMeetingCreate, asyncMeetingEdit, asyncMeetingList, asyncMeetingView,\n asyncVacancyEdit, asyncVacancyList, asyncVacancySearch, asyncEmployerSearch, asyncUserEdit, asyncProfilesSearch\n} from './asyncLoader';\n\nimport 'antd/dist/antd.css';\nimport './App.css';\n\nconst {Content, Footer} = Layout;\n\nclass App extends Component {\n\n componentDidMount() {\n this.props.onTryAutoSignup();\n notification.config({\n placement: 'topRight',\n top: 70,\n duration: 3,\n });\n }\n\n render() {\n const {loading, me, onLogout, browser, page} = this.props;\n const isAuthenticated = getAccessToken() || false\n\n return (\n \n
\n \n
\n \n
\n {\n loading ? (\n \n ) : (\n\n \n \n {/* PROFILE */}\n \n \n \n \n \n {/* VACANCIES */}\n \n \n \n \n \n \n \n {/* RESUMES */}\n \n \n \n \n {/* EMPLOYERS */}\n \n \n \n {/* MEETINGS */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n
\n
\n
{FOOTER}
\n
\n )\n }\n}\n\nconst mapStateToProps = state => {\n return {\n page: state.page,\n me: state.auth.me,\n browser: state.browser,\n error: state.auth.error,\n loading: state.auth.loading,\n isAuthenticated: state.auth.token !== null\n }\n};\n\nconst mapDispatchToProps = dispatch => {\n return {\n onTryAutoSignup: () => dispatch(actions.authCheckState()),\n onLogout: () => dispatch(actions.logout())\n }\n};\n\nexport default withRouter(connect(mapStateToProps, mapDispatchToProps)(App));\n","import React from 'react';\nimport thunk from 'redux-thunk';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { BrowserRouter } from 'react-router-dom';\nimport { createStore, applyMiddleware, compose, combineReducers } from 'redux';\nimport { createResponsiveStateReducer, responsiveStoreEnhancer } from 'redux-responsive';\n\n// import registerServiceWorker from './registerServiceWorker';\nimport * as actions from \"./store/actions/auth\";\nimport authReducer from './store/reducers/auth';\nimport jobSeekerReducer from './store/reducers/jobSeeker';\n\nimport employmentStabilityReducer from './store/reducers/employmentStability';\nimport educationLevelReducer from './store/reducers/educationLevel';\nimport employmentTypeReducer from './store/reducers/employmentType';\nimport educationYearsReducer from './store/reducers/educationYear';\nimport educationFormReducer from './store/reducers/educationForm';\nimport experienceReducer from './store/reducers/experience';\nimport specialityReducer from './store/reducers/speciality';\nimport uploadFileReducer from './store/reducers/uploadFile';\nimport categoryReducer from './store/reducers/category';\nimport employerReducer from './store/reducers/employer';\nimport meetingReducer from './store/reducers/meeting';\nimport facultyReducer from './store/reducers/faculty';\nimport vacancyReducer from './store/reducers/vacancy';\nimport pageReducer from './store/reducers/page';\nimport userReducer from './store/reducers/user';\nimport App from './App';\n\nimport './index.css';\n\nconst rootReducer = combineReducers({\n auth: authReducer,\n page: pageReducer,\n user: userReducer,\n faculty: facultyReducer,\n vacancy: vacancyReducer,\n meeting: meetingReducer,\n category: categoryReducer,\n employer: employerReducer,\n jobSeeker: jobSeekerReducer,\n uploadFile: uploadFileReducer,\n speciality: specialityReducer,\n experience: experienceReducer,\n educationForm: educationFormReducer,\n educationYear: educationYearsReducer,\n employmentType: employmentTypeReducer,\n educationLevel: educationLevelReducer,\n employmentStability: employmentStabilityReducer,\n browser: createResponsiveStateReducer({extraSmall: 480, small: 768, medium: 992, large: 1200})\n});\n\nconst store = createStore(\n rootReducer,\n compose(\n responsiveStoreEnhancer,\n applyMiddleware(thunk)\n )\n);\n\nconst app = (\n \n \n \n \n \n);\n\nstore.dispatch(actions.authCheckState());\nReactDOM.render( app, document.getElementById( 'root' ) );\n// registerServiceWorker();\n","export const POSITION = 'Назва вакансії'\nexport const SHORT_POSITION = 'Вакансія'\nexport const NEW_MEETING_REQUESTS = 'Нові заявки'\nexport const EXPIRED_MEETINGS = 'Потребують оновлення'\nexport const EXPIRED_DATE = 'Термін закінчився'\nexport const NEXT_MEETINGS = 'Найближчі співбесіди'\nexport const SUCCESS_MEETINGS = 'Прийняті'\nexport const REJECTED_MEETINGS = 'Відхилені'\nexport const SET_MEETING_REJECTED = 'Відхилити'\nexport const NOT_HAPPENED_MEETINGS = 'Не відбулися'\nexport const CREATE_VACANCY_REQUEST = 'Створити запит'\n\nexport const MEETING_CREATE = 'Назначити співбесіду';\nexport const NEW_MEETING = 'Нова співбесіда';\nexport const MEETING_SUGGEST = 'Запропонувати вакансію';\nexport const MEETING_DATE = 'Час співбесіди';\nexport const MEETING = 'Cпівбесіда';\nexport const MEETINGS = 'Cпівбесіди';\nexport const MEETING_STATUS = 'Статус';\nexport const NOT_HAPPENED = 'Співбесіда не відбулася';\nexport const INTERVIEW = 'Назначено співбесіду';\nexport const HIRED = 'Прийнято';\nexport const REJECTED = 'Не прийнято';\nexport const PENDING = 'Очікує запрошення на співбесіду';\nexport const PENDING_INTERVIEW = 'Запит вже відправлено';\nexport const MEETING_EXPIRED = 'Термін закінчився. Будь ласка, прийміть рішення щодо результату співбесіди';\n\nexport const ALLOWED_MEETING_STATUS = [\n {\n label: NOT_HAPPENED,\n value: 'NOT_HAPPENED'\n },\n {\n label: INTERVIEW,\n value: 'INTERVIEW'\n },\n {\n label: HIRED,\n value: 'HIRED'\n },\n {\n label: REJECTED,\n value: 'REJECTED'\n },\n {\n label: PENDING,\n value: 'PENDING'\n }\n];\n\nexport const MEETING_STATUS_TYPE = {\n NOT_HAPPENED: 'warning',\n HIRED: 'success',\n PENDING: 'info',\n REJECTED: 'error'\n};\n\nexport const MEETING_STATUS_COLOR = {\n NOT_HAPPENED: 'red',\n HIRED: 'green',\n PENDING: 'blue',\n INTERVIEW: 'blue',\n REJECTED: 'red'\n};\n\nexport const MEETING_STATUS_LIST = {\n NOT_HAPPENED: 'NOT_HAPPENED',\n INTERVIEW: 'INTERVIEW',\n HIRED: 'HIRED',\n REJECTED: 'REJECTED',\n PENDING: 'PENDING',\n};\n\nexport const MEETING_STATUS_VALUES = {\n NOT_HAPPENED,\n INTERVIEW,\n HIRED,\n REJECTED,\n PENDING\n};\n","export const VACANCY = 'Вакансія';\nexport const VACANCY_SEARCH = 'Пошук вакансій';\nexport const NEW_VACANCY = 'Нова вакансія';\nexport const VACANCIES = 'Вакансії';\n","import {isArray, isEmptyArray, isString} from \"./variableTypes\";\n\nexport const updateObject = (oldObject, updatedProperties) => {\n return {\n ...oldObject,\n ...updatedProperties\n };\n};\n\nexport const checkValidity = (value, rules) => {\n let isValid = true;\n if (!rules) {\n return true;\n }\n\n if (rules.required && isString(value)) {\n isValid = value.trim() !== '' && isValid;\n }\n if (rules.required && isArray(value)) {\n isValid = !isEmptyArray(value) && isValid;\n }\n if (rules.minLength) {\n isValid = value.length >= rules.minLength && isValid\n }\n\n if (rules.maxLength) {\n isValid = value.length <= rules.maxLength && isValid\n }\n\n if (rules.isEmail && value) {\n const pattern = /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\n isValid = pattern.test(value) && isValid\n }\n\n // if (rules.isPhone) {\n // const pattern = /^\\+(?:[0-9] ?){6,14}[0-9]$/;\n // isValid = pattern.test(value) && isValid\n // }\n\n if (rules.isTrue) {\n isValid = value && isValid\n }\n\n if (rules.isNumeric) {\n const pattern = /^\\d+$/;\n isValid = pattern.test(value) && isValid\n }\n\n if (rules.isNumeric && rules.min) {\n isValid = parseFloat(value) >= parseFloat(rules.min) && isValid\n }\n\n if (rules.isNumeric && rules.max) {\n isValid = parseFloat(value) <= parseFloat(rules.max) && isValid\n }\n return isValid;\n}\n\nexport const compareValues = (key, order = 'asc') => {\n return (a, b) => {\n if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {\n return 0;\n }\n\n const varA = (typeof a[key] === 'string')\n ? a[key].toUpperCase() : a[key];\n const varB = (typeof b[key] === 'string')\n ? b[key].toUpperCase() : b[key];\n\n let comparison = 0;\n if (varA > varB) {\n comparison = 1;\n } else if (varA < varB) {\n comparison = -1;\n }\n return (\n (order === 'desc') ? (comparison * -1) : comparison\n );\n }\n}\n\nexport const objectFlip = (obj) =>{\n const ret = {};\n Object.keys(obj).forEach(key => {\n ret[obj[key]] = key;\n });\n return ret;\n}","import * as actionTypes from './actionTypes';\nimport { notification } from 'antd';\n\nimport { VacanciesApi } from \"../../util/APIUtils\";\nimport {SUCCESS_SAVED} from \"../../constants/common/notification\";\nimport {isEmptyObject, isObject} from \"../../util/variableTypes\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchVacanciesStart = () => {\n return {\n type: actionTypes.FETCH_VACANCIES_START\n };\n};\n\nexport const fetchVacanciesSuccess = (list) => {\n return {\n type: actionTypes.FETCH_VACANCIES_SUCCESS,\n list\n };\n};\n\nconst fetchOneVacancySuccess = (object) => {\n return {\n type: actionTypes.FETCH_ONE_VACANCIES_SUCCESS,\n object\n };\n};\n\nconst fetchVacanciesFail = (error) => {\n return {\n type: actionTypes.FETCH_VACANCIES_FAIL,\n error\n };\n};\n\nconst createVacancyStart = () => {\n return {\n type: actionTypes.CREATE_VACANCIES_START\n };\n};\n\nconst createVacancySuccess = (pathRedirect) => {\n return {\n type: actionTypes.CREATE_VACANCIES_SUCCESS,\n pathRedirect\n };\n};\n\nconst saveVacancySuccess = (pathRedirect) => {\n return {\n type: actionTypes.SAVE_VACANCIES_SUCCESS,\n pathRedirect\n };\n};\n\nconst createVacancyFail = (error) => {\n return {\n type: actionTypes.CREATE_VACANCIES_FAIL,\n error\n };\n};\n\nexport const resetVacancies = () => {\n return {\n type: actionTypes.RESET_VACANCIES\n };\n};\n\nconst fetchPositionsStart = () => {\n return {\n type: actionTypes.FETCH_POSITIONS_START\n };\n};\n\nconst fetchPositionsSuccess = (list) => {\n return {\n type: actionTypes.FETCH_POSITIONS_SUCCESS,\n list\n };\n};\n\nconst fetchPositionsFail = (error) => {\n return {\n type: actionTypes.FETCH_POSITIONS_FAIL,\n error\n };\n};\n\nconst searchVacanciesStart = () => {\n return {\n type: actionTypes.SEARCH_VACANCIES_START\n };\n};\n\nconst searchVacanciesSuccess = (list) => {\n return {\n type: actionTypes.SEARCH_VACANCIES_SUCCESS,\n list\n };\n};\n\nconst searchVacanciesFail = (error) => {\n return {\n type: actionTypes.SEARCH_VACANCIES_FAIL,\n error\n };\n};\n\nexport const loadVacanciesByEmployerId = (id, page = 0, size, status = 'Active') => {\n return dispatch => {\n dispatch(fetchVacanciesStart());\n VacanciesApi.getAllByEmployer(id, status, page, size)\n .then(response => {\n dispatch(fetchVacanciesSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchVacanciesFail(m));\n });\n };\n};\n\nexport const getVacanciesSummary = (filter) => {\n return dispatch => {\n dispatch(fetchVacanciesStart());\n VacanciesApi.getSummary(filter)\n .then(response => {\n dispatch(fetchVacanciesSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchVacanciesFail(m));\n });\n };\n};\n\nexport const searchVacancies = (filter, page = 0, size) => {\n return dispatch => {\n if (isObject(filter) && !isEmptyObject(filter)) {\n dispatch(searchVacanciesStart());\n const f = { ...filter }\n if (filter.type) {\n f.status = filter.type\n }\n const fn = filter.isOwn ? VacanciesApi.searchOwn : VacanciesApi.search;\n fn(f, page, size)\n .then(response => {\n dispatch(searchVacanciesSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchVacanciesFail(m));\n });\n };\n }\n};\n\n\nexport const searchVacanciesIds = (filter) => {\n return dispatch => {\n if (isObject(filter) && !isEmptyObject(filter)) {\n dispatch(searchVacanciesStart());\n const f = { ...filter }\n if (filter.type) {\n f.status = filter.type\n }\n const fn = filter.isOwn ? VacanciesApi.searchOwnIds : VacanciesApi.searchIds;\n fn(f)\n .then(response => {\n dispatch(searchVacanciesSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchVacanciesFail(m));\n });\n };\n }\n};\n\n\nexport const getGroupedPositions = () => {\n return dispatch => {\n dispatch(fetchPositionsStart());\n VacanciesApi.getGroupedPositions()\n .then(response => {\n dispatch(fetchPositionsSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchPositionsFail(m));\n });\n };\n};\n\nexport const getOneVacancyById = (id) => {\n return dispatch => {\n dispatch(fetchVacanciesStart());\n VacanciesApi.getOneById(id)\n .then(response => {\n dispatch(fetchOneVacancySuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchVacanciesFail(m));\n });\n };\n};\n\nexport const createVacancy = (object) => {\n return dispatch => {\n dispatch(createVacancyStart());\n VacanciesApi.create(object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(createVacancySuccess('/vacancies'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createVacancyFail(m));\n });\n };\n};\n\nexport const saveVacancy = (id, object) => {\n return dispatch => {\n dispatch(createVacancyStart());\n VacanciesApi.save(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveVacancySuccess('/vacancies'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createVacancyFail(m));\n });\n };\n};\n\nexport const updateStatusVacancy = (id, object) => {\n return dispatch => {\n dispatch(createVacancyStart());\n VacanciesApi.update(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveVacancySuccess('/vacancies'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createVacancyFail(m));\n });\n };\n};\n\nexport const setVacancyFilter = filter => ({\n type: 'SET_VACANCY_FILTER',\n filter\n});\n","const getRoot = () => (typeof window !== 'undefined')\n ? window.location.protocol + '//' + window.location.host\n : ''\nconst getHostname = () => (typeof window !== 'undefined')\n ? window.location.protocol + '//' + window.location.hostname\n : ''\nexport const REACT_APP_BASE_URL = getRoot() || '';\nexport const API_BASE_URL = getHostname(); //+ ':' + process.env.REACT_APP_API_PORT || '8080';\n\nexport const ACCESS_TOKEN = 'accessToken';\n\nexport const OAUTH2_REDIRECT_URI = `${REACT_APP_BASE_URL}/oauth2/redirect`\nexport const AZURE_AUTH_URL = API_BASE_URL + '/oauth2/authorize/azure?redirect_uri=' + OAUTH2_REDIRECT_URI;\n\nexport const SING_IN_ADD = \"Увійти за допомогою облікового запису\";\nexport const SUCCESS_SING_UP = \"Ви зареєструвалися. Будь ласка, виконайте вхід\";\nexport const SIGNED_UP = 'Я вже зареєстрованний';\nexport const NOT_SIGNED_UP = 'Я ще не зареєстрованний';\nexport const SIGN_UP = 'Реєстрація';\nexport const LOGIN = 'Вхід';\nexport const LOGOUT = 'Вихід';\nexport const OR = 'АБО';\nexport const SIGN_AS_JOBSEEKER = 'Я з ДонНУ';\nexport const SIGN_AS_EMPLOYER = 'Партнер ДонНУ';\nexport const AUTH = 'Авторизація';\n","import * as actionTypes from './actionTypes';\n\nimport {resumePath, employerPath, profilePath} from '../../constants/path';\nimport {getCurrentUser, login} from '../../util/APIUtils';\nimport {ACCESS_TOKEN} from '../../constants/common/auth';\nimport {getRole} from '../../util/userHelpers';\nimport {onCatch} from '../../util/helpers';\nimport * as actions from './index';\n\nexport const authStart = () => {\n return {\n type: actionTypes.AUTH_START\n };\n};\n\nexport const authSuccess = (token, me = null) => {\n return {\n type: actionTypes.AUTH_SUCCESS,\n idToken: token,\n me\n };\n};\n\nexport const authFail = (error) => {\n return {\n type: actionTypes.AUTH_FAIL,\n error: error\n };\n};\n\nexport const logout = () => {\n console.log('[ logout ]');\n localStorage.removeItem(ACCESS_TOKEN);\n return {\n type: actionTypes.AUTH_LOGOUT\n };\n};\n\nexport const checkAuthTimeout = (expirationTime) => {\n return dispatch => {\n setTimeout(() => {\n dispatch(logout());\n }, expirationTime * 1000);\n };\n};\n\nexport const setAuthRedirectPath = (path) => {\n return {\n type: actionTypes.SET_AUTH_REDIRECT_PATH,\n path: path\n };\n};\n\nexport const authCheckState = () => {\n console.log('[ auth check ]');\n return dispatch => {\n dispatch(authStart());\n const token = localStorage.getItem(ACCESS_TOKEN);\n if (!token) {\n dispatch(logout());\n } else {\n getCurrentUser()\n .then(response => {\n const role = getRole(response)\n if (role === 'JOBSEEKER') {\n dispatch(\n actions.getActiveOneJobSeekerByUserId(\n response.id,\n profilePath.path.view,\n [resumePath.path.create]\n )\n )\n }\n if (role === 'EMPLOYER') {\n dispatch(\n actions.getActiveOneEmployerByUserId(\n response.id,\n profilePath.path.view,\n [employerPath.path.create]\n )\n )\n }\n dispatch(authSuccess(token, response));\n }).catch(error => {\n const m = onCatch(error);\n dispatch(logout());\n dispatch(authFail(m));\n })\n }\n };\n};\n\nexport const auth = (loginRequest) => {\n console.log('[ auth ]');\n return dispatch => {\n dispatch(authStart());\n login(loginRequest)\n .then(response => {\n localStorage.setItem(ACCESS_TOKEN, response.accessToken);\n dispatch(authSuccess(response.accessToken));\n dispatch(authCheckState());\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(authFail(m));\n });\n };\n};\n","import {isEmptyObject, isObject} from \"./variableTypes\";\n\nexport const getUserName = (object) => {\n if (isObject(object) && !isEmptyObject(object)) {\n const {name = {} } = object;\n const { lastName, middleName, firstName } = name;\n return ([lastName, middleName, firstName].filter(n => n) || []).join(' ');\n }\n return ''\n};\n\nexport const calculateAge = (dob) => {\n const diff_ms = Date.now() - dob.getTime();\n const age_dt = new Date(diff_ms);\n\n return Math.abs(age_dt.getUTCFullYear() - 1970);\n}\n\nexport const getRole = (object) => {\n if (isObject(object) && !isEmptyObject(object)) {\n const {role: {name: role = ''} = {} } = object;\n return role;\n }\n return ''\n};\n","export const RESPONSES = {\n 500: 'Не вдалося отримати ресурс',\n 400: 'Невірні дані',\n 401: 'Авторизація не виконана',\n};\n\nexport const NOT_FOUND = 'Not found';\nexport const FAILED_TO_FETCH = 'Failed to fetch';\nexport const BAD_CREDENTIALS = 'Bad credentials';\nexport const AGREE_TERMS = 'Agree to the terms and conditions is not confirmed';\nexport const MISSING_EMPLOYER = 'Missing employer';\n\nexport const RESPONSES_DESC = {\n [NOT_FOUND]: 'Спроба отримати дані, яких не існує',\n [FAILED_TO_FETCH]: 'Не вдалося отримати ресурс',\n [BAD_CREDENTIALS]: 'Невірний логін чи пароль. Якщо Ви ще не зареєстровані, пройдіть реєстранію',\n [AGREE_TERMS]: 'Не прийнята згода на обробку персональних данних.',\n [MISSING_EMPLOYER]: 'Анкета роботодавця не знайдена'\n};\n\nexport const ERROR = 'Невдала спроба';\nexport const ERROR_DESC = 'На жаль, сталася помилка. Будь ласка, спробуйте ще';\n\n","import {ACCESS_TOKEN, API_BASE_URL} from \"../constants/common/auth\";\n\nexport const getAccessToken = () => (\n localStorage.getItem(ACCESS_TOKEN)\n);\n\nconst request = (options) => {\n const headers = new Headers({\n 'Content-Type': 'application/json',\n });\n\n if (localStorage.getItem(ACCESS_TOKEN)) {\n headers.append('Authorization', 'Bearer ' + localStorage.getItem(ACCESS_TOKEN))\n }\n\n const defaults = {headers: headers};\n options = Object.assign({}, defaults, options);\n\n return fetch(options.url, options)\n .then(response => response.json().then(json => {\n if (!response.ok) {\n return Promise.reject(json);\n }\n return json;\n })\n );\n};\n\n\nconst validateResponse = (response) => {\n if (!response.ok) {\n throw Error(response.statusText);\n }\n return response;\n}\n\nconst requestBlob = (options) => {\n const headers = new Headers({});\n\n if (localStorage.getItem(ACCESS_TOKEN)) {\n headers.append('Authorization', 'Bearer ' + localStorage.getItem(ACCESS_TOKEN))\n }\n\n return fetch(options.url, options)\n .then(validateResponse)\n .then(response => response.blob())\n .then(blob => {\n return URL.createObjectURL(blob);\n });\n};\n\nexport const getCurrentUser = () => {\n if (!localStorage.getItem(ACCESS_TOKEN)) {\n return Promise.reject(\"No access token set.\");\n }\n if (!API_BASE_URL) {\n return Promise.reject(\"No API_BASE_URL set.\");\n }\n\n return request({\n url: API_BASE_URL + \"/api/user/me\",\n method: 'GET'\n });\n};\n\n\nexport const getEducationLevels = () => {\n return request({\n url: API_BASE_URL + \"/api/education-levels\",\n method: 'GET'\n });\n}\n\nexport const getEducationForms = () => {\n return request({\n url: API_BASE_URL + \"/api/education-forms\",\n method: 'GET'\n });\n}\n\nexport const getCategories = () => {\n return request({\n url: API_BASE_URL + \"/api/categories\",\n method: 'GET'\n });\n}\n\nexport const getEducationYears = () => {\n return request({\n url: API_BASE_URL + \"/api/education-years\",\n method: 'GET'\n });\n}\n\nexport const getEmploymentStabilities = () => {\n return request({\n url: API_BASE_URL + \"/api/employment-stabilities\",\n method: 'GET'\n });\n}\n\nexport const getEmploymentTypes = () => {\n return request({\n url: API_BASE_URL + \"/api/employment-types\",\n method: 'GET'\n });\n}\n\nexport const getFaculties = () => {\n return request({\n url: API_BASE_URL + \"/api/faculties\",\n method: 'GET'\n });\n}\n\nexport const getSpecialitiesByFacultyId = (id) => {\n return request({\n url: API_BASE_URL + \"/api/faculties/\" + id + \"/specialities\",\n method: 'GET'\n });\n}\n\nexport const getAllSpecialitiesByFacultyInIds = (ids) => {\n return request({\n url: API_BASE_URL + \"/api/faculties/specialities\",\n method: 'POST',\n body: JSON.stringify(ids)\n });\n}\n\nexport const getSpecialities = () => {\n return request({\n url: API_BASE_URL + \"/api/specialities\",\n method: 'GET'\n });\n}\n\nexport const getExperiences = () => {\n return request({\n url: API_BASE_URL + \"/api/experiences\",\n method: 'GET'\n });\n}\n\nexport const login = (loginRequest) => {\n return request({\n url: API_BASE_URL + \"/auth/login\",\n method: 'POST',\n body: JSON.stringify(loginRequest)\n });\n}\n\nexport const signup = (signupRequest) => {\n return request({\n url: API_BASE_URL + \"/auth/signup\",\n method: 'POST',\n body: JSON.stringify(signupRequest)\n });\n}\n\nexport const EmployersApi = {\n search: (object, page = 0, size = 2) => {\n return request({\n url: API_BASE_URL + `/api/employers/search?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n getActiveOneByUserId: (id) => {\n return request({\n url: API_BASE_URL + \"/api/employers/activeOne/\" + id,\n method: 'GET'\n });\n },\n getAllByUser: (id) => {\n return request({\n url: API_BASE_URL + \"/api/employers/user\" + id,\n method: 'GET'\n });\n },\n getAllActiveByUser: (id) => {\n return request({\n url: API_BASE_URL + \"/api/employers/active/\" + id,\n method: 'GET'\n });\n },\n getOneById: (id) => {\n return request({\n url: API_BASE_URL + \"/api/employers/\" + id,\n method: 'GET'\n });\n },\n create: (object) => {\n return request({\n url: API_BASE_URL + \"/api/employers\",\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n getEmployersSummary: () => {\n return request({\n url: API_BASE_URL + \"/api/employers/summary\",\n method: 'GET'\n });\n },\n save: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/employers/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n }\n}\n\nexport const JobseekersApi = {\n getJobSeekersSummary: () => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/summary\",\n method: 'GET'\n });\n },\n search: (object, page = 0, size = 5) => {\n return request({\n url: API_BASE_URL + `/api/jobseekers/search?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n searchIds: (object) => {\n return request({\n url: API_BASE_URL + `/api/jobseekers/search-ids`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n getAllByUser: (id) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/user\" + id,\n method: 'GET'\n });\n },\n getAllActiveByUser: (id) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/active/\" + id,\n method: 'GET'\n });\n },\n getActiveOneByUserId: (id) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/activeOne/\" + id,\n method: 'GET'\n });\n },\n getOneById: (id) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/\" + id,\n method: 'GET'\n });\n },\n create: (object) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers\",\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n save: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/jobseekers/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n }\n};\n\nexport const VacanciesApi = {\n getAllByEmployer: (id, status, page = 0, size = 2) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/employer/\" + id + `?status=${status}&page=${page}&size=${size}`,\n method: 'GET'\n });\n },\n getSummary: (object = {}) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/summary\",\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n getGroupedPositions: () => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/positions\",\n method: 'GET'\n });\n },\n getOneById: (id) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/\" + id,\n method: 'GET'\n });\n },\n create: (object) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies\",\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n searchOwn: (object, page = 0, size = 6) => {\n return request({\n url: API_BASE_URL + `/api/vacancies/search/own?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n search: (object, page = 0, size = 6) => {\n return request({\n url: API_BASE_URL + `/api/vacancies/search?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n searchIds: (object) => {\n return request({\n url: API_BASE_URL + `/api/vacancies/search-ids`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n searchOwnIds: (object) => {\n return request({\n url: API_BASE_URL + `/api/vacancies/search-ids/own`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n save: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n update: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/vacancies/update/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n }\n}\n\nexport const MeetingsApi = {\n getOneById: (id) => {\n return request({\n url: API_BASE_URL + \"/api/meetings/\" + id,\n method: 'GET'\n });\n },\n search: (object, page = 0, size = 10) => {\n return request({\n url: API_BASE_URL + `/api/meetings/search?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n create: (object) => {\n return request({\n url: API_BASE_URL + \"/api/meetings\",\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n save: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/meetings/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n }\n}\n\nexport const UsersApi = {\n getOneById: (id) => {\n return request({\n url: API_BASE_URL + \"/api/users/\" + id,\n method: 'GET'\n });\n },\n search: (object, page = 0, size = 10) => {\n return request({\n url: API_BASE_URL + `/api/users/search?page=${page}&size=${size}`,\n method: 'POST',\n body: JSON.stringify(object)\n });\n },\n save: (id, object) => {\n return request({\n url: API_BASE_URL + \"/api/users/\" + id,\n method: 'POST',\n body: JSON.stringify(object)\n });\n }\n};\n\nexport const UploadApi = {\n upload: (formData) => {\n return request({\n url: API_BASE_URL + \"/api/uploadFile\",\n method: 'POST',\n headers: undefined,\n body: formData\n });\n },\n download: (url) => {\n return requestBlob({\n url: API_BASE_URL + \"/api/downloadFile/\" + url,\n method: 'GET'\n });\n }\n};\n","import {NEW_PROFILE, PROFILE, PROFILES} from '../common/profile';\nimport {EDITING, USER} from '../common/notification';\nimport {HOME} from '../common/common';\n\nconst path = {\n credential: \"/profile/credential/:id\",\n create: \"/profile/create\",\n edit: \"/profile/edit/:id\",\n view: \"/profile\",\n list: \"/profiles\"\n};\n\nconst items = {\n create: {\n title: NEW_PROFILE,\n path: path.create,\n allowedRoles: ['JOBSEEKER', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.view, label: PROFILE},\n {to: path.create, label: NEW_PROFILE}\n ]\n },\n edit: {\n title: EDITING,\n path: path.edit,\n allowedRoles: ['JOBSEEKER', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.view, label: PROFILE},\n {to: path.create, label: EDITING}\n ]\n },\n credential: {\n title: USER,\n path: path.credential,\n allowedRoles: ['ADMIN'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.view, label: PROFILE},\n {to: path.create, label: USER}\n ]\n },\n view: {\n title: PROFILE,\n path: path.view,\n allowedRoles: ['JOBSEEKER', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.view, label: PROFILE}\n ]\n },\n list: {\n title: PROFILES,\n path: path.list,\n allowedRoles: ['ADMIN']\n }\n};\n\nexport default {path, items}\n","import { notification } from 'antd';\nimport * as actionTypes from \"./actionTypes\";\nimport {MeetingsApi} from \"../../util/APIUtils\";\nimport {SUCCESS_SAVED} from \"../../constants/common/notification\";\nimport meetingPath from \"../../constants/path/meeting\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchMeetingsStart = () => {\n return {\n type: actionTypes.FETCH_MEETINGS_START\n };\n};\n\n// const fetchMeetingsSuccess = (list) => {\n// return {\n// type: actionTypes.FETCH_MEETINGS_SUCCESS,\n// list\n// };\n// };\n\nconst fetchOneMeetingSuccess = (object) => {\n return {\n type: actionTypes.FETCH_ONE_MEETINGS_SUCCESS,\n object\n };\n};\n\nconst fetchMeetingsFail = (error) => {\n return {\n type: actionTypes.FETCH_MEETINGS_FAIL,\n error\n };\n};\n\nconst createMeetingsStart = () => {\n return {\n type: actionTypes.CREATE_MEETINGS_START\n };\n};\n\nconst createMeetingSuccess = (pathRedirect) => {\n return {\n type: actionTypes.CREATE_MEETINGS_SUCCESS,\n pathRedirect\n };\n};\n\nconst saveMeetingSuccess = (pathRedirect) => {\n return {\n type: actionTypes.SAVE_MEETINGS_SUCCESS,\n pathRedirect\n };\n};\n\nconst createMeetingFail = (error) => {\n return {\n type: actionTypes.CREATE_MEETINGS_FAIL,\n error\n };\n};\n\n\nexport const resetMeetings = () => {\n return {\n type: actionTypes.RESET_MEETINGS\n };\n};\n\nconst searchMeetingStart = () => {\n return {\n type: actionTypes.SEARCH_MEETINGS_START\n };\n};\n\nconst searchMeetingSuccess = (list) => {\n return {\n type: actionTypes.SEARCH_MEETINGS_SUCCESS,\n list\n };\n};\n\nconst searchMeetingFail = (error) => {\n return {\n type: actionTypes.SEARCH_MEETINGS_FAIL,\n error\n };\n};\n\nexport const getOneMeetingById = (id) => {\n return dispatch => {\n dispatch(fetchMeetingsStart());\n MeetingsApi.getOneById(id)\n .then(response => {\n dispatch(fetchOneMeetingSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchMeetingsFail(m));\n });\n };\n};\n\nexport const createMeeting = (object) => {\n return dispatch => {\n dispatch(createMeetingsStart());\n MeetingsApi.create(object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(createMeetingSuccess(object.pathRedirect || meetingPath.path.list));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createMeetingFail(m));\n });\n };\n};\n\nexport const saveMeeting = (id, object) => {\n return dispatch => {\n dispatch(createMeetingsStart());\n MeetingsApi.save(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveMeetingSuccess(object.pathRedirect || '/meetings/feature'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createMeetingFail(m));\n });\n };\n};\n\nexport const setMeetingFilter = filter => ({\n type: 'SET_MEETING_FILTER',\n filter\n});\n\nexport const searchMeetings = (filter, page = 0, size) => {\n return dispatch => {\n dispatch(searchMeetingStart());\n MeetingsApi.search(filter, page, size)\n .then(response => {\n dispatch(searchMeetingSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchMeetingFail(m));\n });\n };\n};\n","import {notification} from 'antd';\n\nimport {ERROR, ERROR_DESC, RESPONSES, RESPONSES_DESC} from \"../constants/common/apiResponse\";\n\nexport function formatDate(dateString) {\n const date = new Date(dateString);\n\n const monthNames = [\n \"January\", \"February\", \"March\",\n \"April\", \"May\", \"June\", \"July\",\n \"August\", \"September\", \"October\",\n \"November\", \"December\"\n ];\n\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n\n return monthNames[monthIndex] + ' ' + year;\n}\n\nexport function formatDateTime(dateTimeString) {\n const date = new Date(dateTimeString);\n\n const monthNames = [\n \"Jan\", \"Feb\", \"Mar\", \"Apr\",\n \"May\", \"Jun\", \"Jul\", \"Aug\",\n \"Sep\", \"Oct\", \"Nov\", \"Dec\"\n ];\n\n const monthIndex = date.getMonth();\n const year = date.getFullYear();\n\n return date.getDate() + ' ' + monthNames[monthIndex] + ' ' + year + ' - ' + date.getHours() + ':' + date.getMinutes();\n}\n\nexport const onCatch = (response, customDescription = '') => {\n const {message, description} = badResponseHandler(response);\n notification.error({\n message: message,\n description: customDescription || description\n });\n return message;\n}\n\nexport const badResponseHandler = (response) => {\n const { message = '', status = '' } = response;\n const m = RESPONSES[status] || ERROR;\n const d = RESPONSES_DESC[message] || message || ERROR_DESC;\n return { message: m, description: d }\n}","import React from 'react';\nimport {Link} from 'react-router-dom';\nimport {Icon} from \"antd\";\n\nconst Button = ({\n id,\n icon = '',\n className = '',\n style = {},\n to = false,\n type = 'primary',\n label = '',\n children,\n onClick,\n disabled = false,\n size = false,\n target = '',\n actionType = ''\n }) => {\n const others = {};\n others.disabled = disabled;\n others.target = target;\n others.type = actionType;\n\n return (\n !to ? (\n \n \n {icon ? : ''}\n {icon && label ?   : null}\n {label ? ({label}) : ''}\n {children ? ({children}) : ''}\n \n \n ) : (\n \n {icon ? : ''}\n {icon && label ?   : null}\n {label ? ({label}) : ''}\n {children ? ({children}) : ''}\n \n )\n );\n};\n\nexport default Button;\n","import * as actionTypes from './actionTypes';\nimport { notification } from 'antd';\n\nimport {SUCCESS_SAVED} from '../../constants/common/notification';\nimport { UsersApi } from '../../util/APIUtils';\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchUsersStart = () => {\n return {\n type: actionTypes.FETCH_USERS_START\n };\n};\n\nconst fetchOneUserSuccess = (object) => {\n return {\n type: actionTypes.FETCH_ONE_USERS_SUCCESS,\n object\n };\n};\n\nconst fetchUsersFail = (error) => {\n return {\n type: actionTypes.FETCH_USERS_FAIL,\n error\n };\n};\n\nconst saveUserSuccess = (pathRedirect) => {\n return {\n type: actionTypes.SAVE_USERS_SUCCESS,\n pathRedirect\n };\n};\n\nconst searchUsersStart = () => {\n return {\n type: actionTypes.SEARCH_USERS_START\n };\n};\n\nconst searchUsersSuccess = (list) => {\n return {\n type: actionTypes.SEARCH_USERS_SUCCESS,\n list\n };\n};\n\nconst searchUsersFail = (error) => {\n return {\n type: actionTypes.SEARCH_USERS_FAIL,\n error\n };\n};\n\n\nexport const resetUsers = () => {\n return {\n type: actionTypes.RESET_USERS\n };\n};\n\nexport const getOneUserById = (id) => {\n return dispatch => {\n dispatch(fetchUsersStart());\n UsersApi.getOneById(id)\n .then(response => {\n dispatch(fetchOneUserSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchUsersFail(m));\n });\n };\n};\n\nexport const searchUsers = (filter, page = 0, size) => {\n return dispatch => {\n dispatch(searchUsersStart());\n UsersApi.search(filter, page, size)\n .then(response => {\n dispatch(searchUsersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchUsersFail(m));\n });\n };\n};\n\nexport const saveUser = (id, object) => {\n return dispatch => {\n dispatch(fetchUsersStart());\n UsersApi.save(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveUserSuccess('/profile'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchUsersFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nconst setActions = (list) => {\n return {\n type: actionTypes.SET_PAGE_ACTIONS,\n list\n };\n};\n\nconst setTags = (list) => {\n return {\n type: actionTypes.SET_PAGE_TAGS,\n list\n };\n};\n\nconst setPathRedirect = (value) => {\n return {\n type: actionTypes.SET_PAGE_PATH_REDIRECT,\n value\n };\n};\n\nconst resetTags = () => {\n return {\n type: actionTypes.RESET_PAGE_TAGS\n };\n};\n\nconst resetActions = () => {\n return {\n type: actionTypes.RESET_PAGE_ACTIONS\n };\n};\n\nconst resetPathRedirect = () => {\n return {\n type: actionTypes.RESET_PAGE_PATH_REDIRECT\n };\n};\n\nconst reset = () => {\n return {\n type: actionTypes.RESET_PAGE\n };\n};\n\nexport const setPageActions = (list) => {\n return dispatch => {\n dispatch(setActions(list));\n };\n};\n\nexport const setPagePathRedirect = (value) => {\n return dispatch => {\n dispatch(setPathRedirect(value));\n };\n};\n\nexport const setPageTags = (list) => {\n return dispatch => {\n dispatch(setTags(list));\n };\n};\n\n\nexport const resetPageTags = () => {\n return dispatch => {\n dispatch(resetTags());\n };\n};\n\nexport const resetPageActions = () => {\n return dispatch => {\n dispatch(resetActions());\n };\n};\n\nexport const resetPagePathRedirect = () => {\n return dispatch => {\n dispatch(resetPathRedirect());\n };\n};\n\nexport const resetPage = () => {\n return dispatch => {\n dispatch(reset());\n };\n};\n","import * as actionTypes from './actionTypes';\nimport { notification } from 'antd';\n\nimport { JobseekersApi } from \"../../util/APIUtils\";\nimport {SUCCESS_SAVED} from \"../../constants/common/notification\";\nimport {resetPagePathRedirect, setPagePathRedirect} from \"./page\";\nimport {badResponseHandler, onCatch} from \"../../util/helpers\";\n\nconst fetchJobSeekersStart = () => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_START\n };\n};\n\nconst fetchJobSeekersSuccess = (list) => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_SUCCESS,\n list\n };\n};\n\nconst fetchOneJobSeekerSuccess = (object) => {\n return {\n type: actionTypes.FETCH_ONE_JOB_SEEKERS_SUCCESS,\n object\n };\n};\n\nconst fetchJobSeekersFail = (error) => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_FAIL,\n error\n };\n};\n\nconst createJobSeekersStart = () => {\n return {\n type: actionTypes.CREATE_JOB_SEEKERS_START\n };\n};\n\nconst createJobSeekerSuccess = (pathRedirect) => {\n return {\n type: actionTypes.CREATE_JOB_SEEKERS_SUCCESS,\n pathRedirect\n };\n};\n\nconst saveJobSeekerSuccess = (pathRedirect) => {\n return {\n type: actionTypes.SAVE_JOB_SEEKERS_SUCCESS,\n pathRedirect\n };\n};\n\nconst createJobSeekerFail = (error) => {\n return {\n type: actionTypes.CREATE_JOB_SEEKERS_FAIL,\n error\n };\n};\n\nconst fetchJobSeekersSummaryStart = () => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_SUMMARY_START\n };\n};\n\nconst fetchJobSeekersSummarySuccess = (list) => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_SUMMARY_SUCCESS,\n list\n };\n};\n\nconst fetchJobSeekersSummaryFail = (error) => {\n return {\n type: actionTypes.FETCH_JOB_SEEKERS_SUMMARY_FAIL,\n error\n };\n};\n\nconst searchJobSeekersStart = () => {\n return {\n type: actionTypes.SEARCH_JOB_SEEKERS_START\n };\n};\n\nconst searchJobSeekersSuccess = (list) => {\n return {\n type: actionTypes.SEARCH_JOB_SEEKERS_SUCCESS,\n list\n };\n};\n\nconst searchJobSeekersFail = (error) => {\n return {\n type: actionTypes.SEARCH_JOB_SEEKERS_FAIL,\n error\n };\n};\n\nexport const resetJobSeekers = () => {\n return {\n type: actionTypes.RESET_JOB_SEEKERS\n };\n};\n\nexport const searchJobSeekers = (filter, page = 0, size) => {\n return dispatch => {\n dispatch(searchJobSeekersStart());\n JobseekersApi.search(filter, page, size)\n .then(response => {\n dispatch(searchJobSeekersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchJobSeekersFail(m));\n });\n };\n};\n\nexport const searchJobSeekerIds = (filter) => {\n return dispatch => {\n dispatch(searchJobSeekersStart());\n JobseekersApi.searchIds(filter)\n .then(response => {\n dispatch(searchJobSeekersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchJobSeekersFail(m));\n });\n };\n};\n\nexport const getJobSeekersSummary = () => {\n return dispatch => {\n dispatch(fetchJobSeekersSummaryStart());\n JobseekersApi.getJobSeekersSummary()\n .then(response => {\n dispatch(fetchJobSeekersSummarySuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchJobSeekersSummaryFail(m));\n });\n };\n};\n\nexport const getJobSeekerProfilesByUserId = (id) => {\n return dispatch => {\n dispatch(fetchJobSeekersStart());\n JobseekersApi.getAllByUser(id)\n .then(response => {\n dispatch(fetchJobSeekersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchJobSeekersFail(m));\n });\n };\n};\n\nexport const getActiveOneJobSeekerByUserId = (id, pathRedirect, allowedPath = []) => {\n return dispatch => {\n dispatch(fetchJobSeekersStart());\n JobseekersApi.getActiveOneByUserId(id)\n .then(response => {\n dispatch(resetPagePathRedirect());\n dispatch(fetchOneJobSeekerSuccess(response));\n })\n .catch(error => {\n const {message} = badResponseHandler(error);\n if (error && error.status === 400 && pathRedirect) {\n dispatch(setPagePathRedirect([pathRedirect, allowedPath]));\n }\n dispatch(fetchJobSeekersFail(message));\n });\n };\n};\n\nexport const getJobSeekerActiveProfilesByUserId = (id) => {\n return dispatch => {\n dispatch(fetchJobSeekersStart());\n JobseekersApi.getAllActiveByUser(id)\n .then(response => {\n dispatch(fetchJobSeekersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchJobSeekersFail(m));\n });\n };\n};\n\nexport const getOneJobSeekerById = (id) => {\n return dispatch => {\n dispatch(fetchJobSeekersStart());\n JobseekersApi.getOneById(id)\n .then(response => {\n dispatch(fetchOneJobSeekerSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchJobSeekersFail(m));\n });\n };\n};\n\nexport const createJobSeekerProfile = (object) => {\n return dispatch => {\n dispatch(createJobSeekersStart());\n JobseekersApi.create(object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(createJobSeekerSuccess('/profile'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createJobSeekerFail(m));\n });\n };\n};\n\nexport const saveJobSeekerProfile = (id, object) => {\n return dispatch => {\n dispatch(createJobSeekersStart());\n JobseekersApi.save(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveJobSeekerSuccess('/profile'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createJobSeekerFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\nimport { notification } from 'antd';\n\nimport {profilePath} from '../../constants/path';\nimport {EmployersApi} from '../../util/APIUtils';\nimport {resetPagePathRedirect, setPagePathRedirect} from './page';\nimport {SUCCESS_SAVED} from '../../constants/common/notification';\nimport {onCatch} from \"../../util/helpers\";\nimport {MISSING_EMPLOYER, RESPONSES_DESC} from \"../../constants/common/apiResponse\";\n\nexport const fetchEmployersStart = () => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_START\n };\n};\n\nconst fetchEmployersSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_SUCCESS,\n list\n };\n};\n\nexport const fetchOneEmployerSuccess = (object) => {\n return {\n type: actionTypes.FETCH_ONE_EMPLOYERS_SUCCESS,\n object\n };\n};\n\nexport const fetchEmployersFail = (error) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_FAIL,\n error\n };\n};\n\nconst createEmployerStart = () => {\n return {\n type: actionTypes.CREATE_EMPLOYERS_START\n };\n};\n\nconst createEmployerSuccess = (pathRedirect) => {\n return {\n type: actionTypes.CREATE_EMPLOYERS_SUCCESS,\n pathRedirect\n };\n};\n\nconst createEmployerFail = (error) => {\n return {\n type: actionTypes.CREATE_EMPLOYERS_FAIL,\n error\n };\n};\n\nconst saveEmployerSuccess = (pathRedirect) => {\n return {\n type: actionTypes.SAVE_EMPLOYERS_SUCCESS,\n pathRedirect\n };\n};\n\n\nexport const resetEmployers = () => {\n return {\n type: actionTypes.RESET_EMPLOYERS\n };\n};\n\nconst fetchEmployersSummaryStart = () => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_SUMMARY_START\n };\n};\n\nconst fetchEmployersSummarySuccess = (list) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_SUMMARY_SUCCESS,\n list\n };\n};\n\nconst fetchEmployersSummaryFail = (error) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_SUMMARY_FAIL,\n error\n };\n};\n\nconst searchEmployersStart = () => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_START\n };\n};\n\nconst searchEmployersSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_SUCCESS,\n list\n };\n};\n\nconst searchEmployersFail = (error) => {\n return {\n type: actionTypes.FETCH_EMPLOYERS_FAIL,\n error\n };\n};\n\nexport const searchEmployers = (filter, page = 0, size) => {\n return dispatch => {\n dispatch(searchEmployersStart());\n EmployersApi.search(filter, page, size)\n .then(response => {\n dispatch(searchEmployersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(searchEmployersFail(m));\n });\n };\n};\n\nexport const getEmployersSummary = () => {\n return dispatch => {\n dispatch(fetchEmployersSummaryStart());\n EmployersApi.getEmployersSummary()\n .then(response => {\n dispatch(fetchEmployersSummarySuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchEmployersSummaryFail(m));\n });\n };\n};\n\nexport const getAllEmployersByUserId = (id) => {\n return dispatch => {\n dispatch(fetchEmployersStart());\n EmployersApi.getAllByUser(id)\n .then(response => {\n dispatch(fetchEmployersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchEmployersFail(m));\n });\n };\n};\n\nexport const getAllActiveEmployersByUserId = (id) => {\n return dispatch => {\n dispatch(fetchEmployersStart());\n EmployersApi.getAllActiveByUser(id)\n .then(response => {\n dispatch(fetchEmployersSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchEmployersFail(m));\n });\n };\n};\n\nexport const getOneEmployerById = (id) => {\n return dispatch => {\n dispatch(fetchEmployersStart());\n EmployersApi.getOneById(id)\n .then(response => {\n dispatch(fetchOneEmployerSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchEmployersFail(m));\n });\n };\n};\n\nexport const getActiveOneEmployerByUserId = (id, pathRedirect, allowedPath = []) => {\n return dispatch => {\n dispatch(fetchEmployersStart());\n EmployersApi.getActiveOneByUserId(id)\n .then(response => {\n dispatch(fetchOneEmployerSuccess(response));\n dispatch(resetPagePathRedirect());\n })\n .catch(error => {\n const m = onCatch(error, RESPONSES_DESC[MISSING_EMPLOYER])\n if (error && error.status === 400 && pathRedirect) {\n dispatch(setPagePathRedirect([pathRedirect, allowedPath]));\n }\n dispatch(fetchEmployersFail(m));\n });\n };\n};\n\nexport const createEmployerProfile = (object) => {\n return dispatch => {\n dispatch(createEmployerStart());\n EmployersApi.create(object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(createEmployerSuccess(profilePath.path.view));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createEmployerFail(m));\n });\n };\n};\n\nexport const saveEmployerProfile = (id, object) => {\n return dispatch => {\n dispatch(createEmployerStart());\n EmployersApi.save(id, object)\n .then(response => {\n const m = (response && response.response) || '';\n notification.success({\n message: SUCCESS_SAVED,\n description: m\n });\n dispatch(saveEmployerSuccess('/profile'));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(createEmployerFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getCategories } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_CATEGORIES_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_CATEGORIES_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_CATEGORIES_FAIL,\n error\n };\n};\n\nexport const getAllCategories = () => {\n return dispatch => {\n dispatch(fetchStart());\n getCategories()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getEducationForms } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EDUCATION_FORM_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EDUCATION_FORM_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EDUCATION_FORM_FAIL,\n error\n };\n};\n\nexport const getAllEducationForms = () => {\n return dispatch => {\n dispatch(fetchStart());\n getEducationForms()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getEducationLevels } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EDUCATION_LEVEL_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EDUCATION_LEVEL_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EDUCATION_LEVEL_FAIL,\n error\n };\n};\n\nexport const getAllEducationLevels = () => {\n return dispatch => {\n dispatch(fetchStart());\n getEducationLevels()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getEducationYears } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EDUCATION_YEAR_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EDUCATION_YEAR_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EDUCATION_YEAR_FAIL,\n error\n };\n};\n\nexport const getAllEducationYears = () => {\n return dispatch => {\n dispatch(fetchStart());\n getEducationYears()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getEmploymentStabilities } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_STABILITY_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_STABILITY_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_STABILITY_FAIL,\n error\n };\n};\n\nexport const getAllEmploymentStabilities = () => {\n return dispatch => {\n dispatch(fetchStart());\n getEmploymentStabilities()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getEmploymentTypes } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_TYPE_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_TYPE_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EMPLOYMENT_TYPE_FAIL,\n error\n };\n};\n\nexport const getAllEmploymentTypes = () => {\n return dispatch => {\n dispatch(fetchStart());\n getEmploymentTypes()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getExperiences } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_EXPERIENCE_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_EXPERIENCE_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_EXPERIENCE_FAIL,\n error\n };\n};\n\nexport const getAllExperiences = () => {\n return dispatch => {\n dispatch(fetchStart());\n getExperiences()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport { getFaculties } from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_FACULTIES_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_FACULTIES_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_FACULTIES_FAIL,\n error\n };\n};\n\nexport const getAllFaculties = () => {\n return dispatch => {\n dispatch(fetchStart());\n getFaculties()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import * as actionTypes from './actionTypes';\n\nimport {getAllSpecialitiesByFacultyInIds, getSpecialities, getSpecialitiesByFacultyId} from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst fetchStart = () => {\n return {\n type: actionTypes.FETCH_SPECIALITIES_START\n };\n};\n\nconst fetchSuccess = (list) => {\n return {\n type: actionTypes.FETCH_SPECIALITIES_SUCCESS,\n list\n };\n};\n\nconst fetchByFacultyIdSuccess = (list) => {\n return {\n type: actionTypes.FETCH_SPECIALITIES_BY_FACULTY_SUCCESS,\n list\n };\n};\n\nconst fetchFail = (error) => {\n return {\n type: actionTypes.FETCH_SPECIALITIES_FAIL,\n error\n };\n};\n\nexport const getAllSpecialities = () => {\n return dispatch => {\n dispatch(fetchStart());\n getSpecialities()\n .then(response => {\n dispatch(fetchSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n\nexport const getAllSpecialitiesByFacultyId = (id) => {\n return dispatch => {\n dispatch(fetchStart());\n getSpecialitiesByFacultyId(id)\n .then(response => {\n dispatch(fetchByFacultyIdSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n\nexport const getAllSpecialitiesByFacultyIds = (ids) => {\n return dispatch => {\n dispatch(fetchStart());\n getAllSpecialitiesByFacultyInIds(ids)\n .then(response => {\n dispatch(fetchByFacultyIdSuccess(response));\n })\n .catch(error => {\n const m = onCatch(error);\n dispatch(fetchFail(m));\n });\n };\n};\n","import employerPath from './employer'\nimport meetingPath from './meeting'\nimport profilePath from './profile'\nimport vacancyPath from './vacancy'\nimport resumePath from './resume'\n\nexport {vacancyPath, resumePath, profilePath, employerPath, meetingPath}\n","import * as actionTypes from './actionTypes';\nimport {UploadApi} from \"../../util/APIUtils\";\nimport {onCatch} from \"../../util/helpers\";\n\nconst uploadStart = () => {\n return {\n type: actionTypes.UPLOAD_FILE_START\n };\n};\n\nconst uploadSuccess = (object) => {\n return {\n type: actionTypes.UPLOAD_FILE_SUCCESS,\n object\n };\n};\n\nconst downloadedSuccess = (data, imageUrl) => {\n return {\n type: actionTypes.DOWNLOADED_FILE_SUCCESS,\n file: {imageUrl, data}\n };\n};\n\nconst uploadFail = (error) => {\n return {\n type: actionTypes.UPLOAD_FILE_FAIL,\n error\n };\n};\n\nexport const resetUploadFile = () => {\n return {\n type: actionTypes.UPLOAD_FILE_RESET\n };\n};\n\nexport const uploadFile = (data) => {\n return dispatch => {\n dispatch(uploadStart());\n UploadApi.upload(data)\n .then(response => {\n if(response && response.fileDownloadUri) {\n dispatch(uploadSuccess(response))\n } else {\n const error = (response && response.message) || \"Some Error Occurred\";\n dispatch(uploadFail(error));\n }\n }).catch(error => {\n const m = onCatch(error);\n dispatch(uploadFail(m));\n });\n };\n};\n\nexport const downloadFile = (imageUrl) => {\n return dispatch => {\n dispatch(uploadStart());\n UploadApi.download(imageUrl)\n .then(response => {\n if(response) {\n dispatch(downloadedSuccess(response, imageUrl))\n } else {\n const error = (response && response.message) || \"Some Error Occurred\";\n dispatch(uploadFail(error));\n }\n }).catch(error => {\n const m = onCatch(error);\n dispatch(uploadFail(m));\n });\n };\n};\n","import {EDITING} from \"../common/notification\";\nimport {HOME} from \"../common/common\";\nimport {ARCHIVE} from \"../common/buttons\";\nimport {EXPIRED_MEETINGS, MEETING, NEW_MEETING, NEW_MEETING_REQUESTS, NEXT_MEETINGS} from \"../common/meeting\";\n\nconst path = {\n create: \"/meetings/create\",\n view: \"/meetings/:id\",\n edit: \"/meetings/edit/:id\",\n createByJobSeeker: \"/jobseeker/:id/meetings/create\",\n feature: \"/meetings/feature\",\n requests: \"/meetings/requests\",\n expired: \"/meetings/expired\",\n list: \"/meetings\",\n}\n\nconst items = {\n create: {\n title: NEW_MEETING,\n path: path.create,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: MEETING},\n {to: path.create, label: NEW_MEETING}\n ]\n },\n createByJobSeeker: {\n title: NEW_MEETING,\n path: path.createByJobSeeker,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: MEETING},\n {to: path.createByJobSeeker, label: NEW_MEETING}\n ]\n },\n edit: {\n title: EDITING,\n path: path.edit,\n redirect: path.view,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: MEETING},\n {to: path.edit, label: EDITING}\n ]\n },\n view: {\n title: MEETING,\n path: path.view,\n redirect: path.edit,\n allowedRoles: ['JOBSEEKER'],\n breadcrumb: [\n {to: '/', label: HOME},\n {to: path.list, label: MEETING}\n ]\n },\n feature: {\n title: NEXT_MEETINGS,\n path: path.feature,\n allowedRoles: ['ADMIN', 'EMPLOYER', 'JOBSEEKER'],\n },\n requests: {\n title: NEW_MEETING_REQUESTS,\n path: path.requests,\n redirect: path.feature,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n },\n expired: {\n title: EXPIRED_MEETINGS,\n path: path.expired,\n redirect: path.feature,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n },\n list: {\n title: ARCHIVE,\n path: path.list,\n redirect: path.feature,\n allowedRoles: ['ADMIN', 'EMPLOYER'],\n },\n};\n\nexport default {path, items}\n","\nexport const QUICK_ACTION = 'Дія';\nexport const ARCHIVE = 'Архів';\n"],"sourceRoot":""}