{"version":3,"sources":["utils.js","serviceWorker.js","fake-db/mock.js","fake-db/db/invoice.js","fake-db/db/calendarEvents.js","fake-db/db/users.js","fake-db/db/inbox.js","fake-db/db/chat.js","fake-db/db/todos.js","fake-db/db/list.js","fake-db/db/scrumBoard.js","fake-db/db/notification.js","fake-db/db/ecommerce.js","fake-db/index.js","app/MatxLayout/MatxTheme/MatxTheme.jsx","app/views/dashboard/DashboardRoutes.js","app/views/utilities/UtilitiesRoutes.js","app/views/sessions/SignUp.jsx","app/services/firebase/firebaseConfig.js","app/services/firebase/firebaseAuthService.js","app/redux/actions/LoginActions.js","app/views/sessions/SignIn.jsx","app/views/sessions/NotFound.jsx","app/views/sessions/ForgotPassword.jsx","app/redux/actions/ProjectActions.js","app/views/projet/dialog/CreateProject.jsx","app/views/projet/dialog/SynchronizeProjects.jsx","app/views/projet/dialog/DeleteProject.jsx","app/views/projet/ProjectPage.jsx","app/views/projet/dialog/AffectPanelistToUser.jsx","app/views/projet/accordion/PanelistGroupExpansionPanel.jsx","app/views/projet/dialog/UpdateQuizKoboLink.jsx","app/views/projet/dialog/UpdateQuiz.jsx","app/views/projet/accordion/QuizExpansionPanel.jsx","app/views/projet/dialog/AddQuizToProject.jsx","app/views/projet/ProjectDashboardLineChart.jsx","app/views/projet/ProjectDetailPage.jsx","app/views/projet/QuizResponsePage.jsx","app/views/sessions/SessionRoutes.js","app/views/material-kit/MaterialRoutes.js","app/views/Drag&Drop/DragAndDropRoute.jsx","app/views/forms/FormsRoutes.js","app/views/map/MapRoutes.js","app/RootRoutes.jsx","app/views/account/UserRoutes.js","app/views/roles/RoleRoutes.js","app/views/panelists/PanelistRoot.js","app/views/groups/PanelistGroupRoutes.js","app/views/panelistCategories/PanelistCategoryRoutes.js","app/redux/reducers/LoginReducer.js","app/redux/reducers/UserReducer.js","app/redux/reducers/RoleReducer.js","app/MatxLayout/Layout1/Layout1Settings.js","app/MatxLayout/MatxTheme/themeColors.js","app/MatxLayout/MatxTheme/themeOptions.js","app/MatxLayout/settings.js","app/redux/reducers/LayoutReducer.js","app/redux/actions/ScrumBoardActions.js","app/redux/reducers/ScrumBoardReducer.js","app/redux/reducers/NotificationReducer.js","app/redux/reducers/EcommerceReducer.js","app/redux/reducers/PanelistReducer.js","app/redux/reducers/PanelistGroupReducer.js","app/redux/reducers/PanelistCategoryReducer.js","app/redux/reducers/ProjectReducer.js","app/redux/reducers/DashboardReducer.js","app/redux/reducers/RootReducer.js","app/redux/Store.js","app/auth/Auth.jsx","app/MatxLayout/index.js","app/MatxLayout/MatxLayout.jsx","app/auth/AuthGuard.jsx","app/App.jsx","index.jsx","app/views/account/dialogs/CreateUser.jsx","app/views/account/dialogs/UpdateUser.jsx","app/views/account/dialogs/DeleteUser.jsx","app/views/account/popovers/UserRolesPopover.jsx","app/views/account/UserListPage.jsx","app/views/roles/dialogs/CreateRole.jsx","app/views/roles/dialogs/RenameRole.jsx","app/views/roles/dialogs/DeleteRole.jsx","app/views/roles/components/RoleAndPermissionLineItem.jsx","app/views/roles/RoleListPage.jsx","app/services/localStorageService.js","app/redux/actions/EcommerceActions.js","matx/components/Breadcrumb.jsx","matx/components/MatxMenu.jsx","matx/components/MatxToolbarMenu.jsx","matx/components/MatxLoadable/Loading.js","matx/components/MatxLoadable/MatxLoadable.jsx","matx/components/MatxSearchBox.jsx","matx/components/MatxVerticalNav/MatxVerticalNavExpansionPanel.jsx","matx/components/MatxVerticalNav/MatxVerticalNav.jsx","matx/components/RectangleAvatar.jsx","matx/components/MatxListItem1.jsx","matx/components/MatxSnackbar.jsx","matx/theme/EchartTheme.jsx","matx/components/charts/EchartCreator.jsx","matx/components/charts/RechartCreator.jsx","matx/components/RichTextEditor.jsx","matx/components/ConfirmationDialog.jsx","matx/components/MatxProgressBar.jsx","matx/components/cards/SimpleCard.jsx","matx/index.js","app/redux/actions/LayoutActions.js","app/appContext.js","app/services/authentificationService.js","app/services/apiHelpers.js","app/views/panelists/alert/SnackbarContentWrapper.jsx","app/views/panelists/dialogs/DeletePanelist.jsx","app/redux/actions/NotificationActions.js","app/redux/actions/DashboardActions.js","app/redux/actions/RoleActions.js","app/redux/actions/PanelistGroupActions.js","app/redux/actions/UserActions.js","app/redux/actions/PanelistActions.js","app/services/jwtAuthService.js","app/redux/actions/PanelistCategoryActions.js","history.js","app/views/panelists/PanelistDetailPage.jsx","app/views/panelistCategories/dialog/CreatePanelistCategory.jsx","app/views/panelistCategories/dialog/DeletePanelistCategory.jsx","app/views/panelistCategories/dialog/UpdatePanelistCategory.jsx","app/views/panelistCategories/PanelistCategoryPage.jsx","app/views/groups/dialog/CreatePanelistGroup.jsx","app/views/groups/dialog/DeletePanelistGroup.jsx","app/views/groups/PanelistGroupPage.jsx","app/views/account/dialogs/ChangeUserPassord.jsx","app/views/account/UserProfilePage.jsx","app/views/panelists/dialogs/CreateNaturalPersonPanellist.jsx","app/views/panelists/PanelistAsNaturalPersonPage.jsx","app/views/panelists/dialogs/CreateLegalPersonPanellist.jsx","app/views/panelists/PanelistAsLegalPersonPage.jsx","app/views/panelists/dialogs/CreatePanelistGroup.jsx","app/views/panelists/PanelistAdvancedSearchPage.jsx","app/views/groups/dialog/DeletePanelistFromGroup.jsx","app/views/groups/PanelistGroupDetail.jsx","app/views/alert/SnackbarContentWrapper.jsx"],"names":["__webpack_require__","d","__webpack_exports__","isMobile","isMdScreen","getTimeDifference","getQueryParam","classList","moment__WEBPACK_IMPORTED_MODULE_0__","moment__WEBPACK_IMPORTED_MODULE_0___default","n","window","matchMedia","matches","date","difference","moment","Date","diff","concat","Math","floor","toFixed","prop","params","decodeURIComponent","location","href","slice","indexOf","split","forEach","val","key","parts","classes","Object","entries","filter","entry","map","join","Boolean","hostname","match","Mock","require","invoiceDB","invoices","id","shortid","generate","orderNo","status","currency","vat","buyer","name","address","seller","item","unit","price","onGet","reply","config","data","find","invoice","onPost","JSON","parse","index","i","element","splice","push","calendarEventDB","events","title","start","getFullYear","getMonth","end","getDate","_JSON$parse","others","objectWithoutProperties","event","objectSpread2","updatedEvent","note","userDB","users","guid","isActive","balance","age","gender","company","email","phone","bd","imgUrl","user","inboxDB","messages","sender","photo","selected","subject","message","ChatDB","avatar","chatInfo","chatId","contactId","unread","lastChatTime","contacts","mood","chatCollection","chats","text","time","collection","chat","temp","currentUser","chatRoom","messageList","recentListUpdated","shortId","now","contact","chatDetails","TodoDB","todo","important","starred","done","read","startDate","toISOString","dueDate","tag","parseInt","todoList","t","_","ListDB","list","userName","projectName","toLocaleString","projectImage","userImage","comment","revision","ScrumBoardDB","boardList","cardList","coverImage","members","labels","description","attachments","size","url","comments","uid","color","reorder","startIndex","endIndex","result","Array","from","_result$splice","removed","slicedToArray","getBoardWithMemberDetails","board","member","boardId","memberId","_JSON$parse2","_JSON$parse3","listTitle","_JSON$parse4","listId","column","_JSON$parse5","deleteIndex","_JSON$parse6","cardTitle","_JSON$parse7","card","_JSON$parse8","_JSON$parse9","_JSON$parse10","sourcelistId","destinationlistId","source","destination","_board$list$find$card","movedItem","NotificationDB","heading","icon","timestamp","subtitle","path","console","log","response","notification","EcommerceDB","productList","category","brand","rating","freeShipping","product","rate","cart","productId","amount","userList","getDetailedCartList","userCart","cartList","onAny","passThrough","connect","state","settings","layout","setLayoutSettings","PropTypes","func","isRequired","Component","componentWillReceiveProps","componentWillUpdate","render","_this$props","this","props","children","activeTheme","themes","react_default","a","createElement","ThemeProvider","theme","Helmet","palette","primary","main","secondary","error","background","default","paper","hint","shadows","shadow","dashboardRoutes","component","MatxLoadable","loader","e","then","bind","utilitiesRoutes","Promise","all","[object Object]","args","super","username","password","agreement","handleChange","persist","setState","target","value","handleFormSubmit","_this$state","className","Card","Grid","container","lg","md","sm","xs","src","alt","react_material_ui_form_validator_lib","ref","onSubmit","variant","label","onChange","type","validators","errorMessages","FormControlLabel","control","Checkbox","Button","onClick","history","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","instance","constructor","init","firebase","initializeApp","checkAuthStatus","callback","auth","onAuthStateChanged","signUpWithEmailAndPassword","createUserWithEmailAndPassword","signInWithEmailAndPassword","signInWithPopup","media","googleProvider","facebookProvider","twitterProvider","signInWithPhoneNumber","phoneNumber","getUserData","docId","firestore","doc","get","getAllUser","docList","signOut","LOGIN_ERROR","LOGIN_SUCCESS","LOGIN_LOADING","RESET_PASSWORD","withStyles","wrapper","position","buttonProgress","top","left","marginTop","marginLeft","withTheme","withRouter","loginWithEmailAndPassword","login","dispatch","authentificationService","resp","setUserData","Success","pathname","payload","Message","catch","disabled","loading","CircularProgress","NotFound","style","maxWidth","resetPassword","getProjectList","resolve","reject","axios","api","res","ProjectList","QuizList","createProject","project","setTimeout","post","affectQuizAndPanelistGroupToProject","request","Project","updateQuiz","getQuizResponsesList","hideAlert","DialogTitle","root","backgroundColor","margin","padding","spacing","closeButton","right","onClose","disableTypography","Typography_Typography","IconButton","aria-label","Close_default","DialogContent","MuiDialogContent","DialogActions","MuiDialogActions","storeProject","storeUser","_storeUser$currentUse","_storeUser$currentUse2","_props$storeUser","_props$disabled","_React$useState","React","useState","_React$useState2","open","setOpen","_React$useState3","_React$useState4","hasMissingValue","setHasMissingValue","_React$useState5","_React$useState6","isSubmitting","setIsSubmitting","_React$useState7","_React$useState8","_React$useState9","Author","User","FirstName","LastName","Name","Description","_React$useState10","setRequest","useEffect","handleClose","handleSubmit","prevState","Fragment","Icon","Dialog","disableBackdropClick","aria-labelledby","fullWidth","CreateProject_DialogTitle","CreateProject_DialogContent","dividers","onError","errors","_e$target","_e$target2","CreateProject_DialogActions","SynchronizeQuizzesFromKobotoolbox","projectToDelete","SynchronizeProjects_DialogTitle","SynchronizeProjects_DialogContent","DialogContentText","SynchronizeProjects_DialogActions","deleteProject","_props$projectToDelet","Delete_default","DeleteProject_DialogTitle","DeleteProject_DialogContent","DeleteProject_DialogActions","ProjectId","useStyles2","makeStyles","popover","pointerEvents","projectLoaded","getRoleList","_storeProject$project","_props$storeProject","setMessage","isLoading","setIsLoading","rowsPerPage","setRowsPerPage","page","setPage","_React$useState11","_React$useState12","anchorEl","_React$useState13","_React$useState14","_React$useState15","_React$useState16","_React$useState17","_React$useState18","_React$useState19","_React$useState20","_React$useState21","_React$useState22","isAllChecked","_React$useState23","_React$useState24","setIsLoadingTableBody","_React$useState25","_React$useState26","setIsLoadingTableHead","_React$useState27","_React$useState28","permissions","setPermissions","showAlert","alertMessage","undefined","Permissions","success","length","textAlign","fontSize","width","height","Snackbar","anchorOrigin","vertical","horizontal","autoHideDuration","SnackbarContentWrapper","alertVariant","matx","routeSegments","float","some","dialog_SynchronizeProjects","dialog_CreateProject","Table","whiteSpace","TableHead","TableRow","TableCell","TableBody","projectList","react_router_dom","to","dialog_DeleteProject","TablePagination","rowsPerPageOptions","count","backIconButtonProps","nextIconButtonProps","onChangePage","newPage","onChangeRowsPerPage","getUserList","storePanelistGroup","panelistgroup","_props$panelistGroupI","panelistGroupId","_props$userListOption","userListOptions","onAffectPanelistToUserSubmit","userId","setUserId","AffectPanelistToUser_DialogTitle","AffectPanelistToUser_DialogContent","Autocomplete","options","getOptionLabel","option","renderInput","TextField","assign","AffectPanelistToUser_DialogActions","ExpansionPanel","border","boxShadow","&:not(:last-child)","borderBottom","&:before","display","&$expanded","expanded","MuiExpansionPanel","ExpansionPanelSummary","marginBottom","minHeight","content","MuiExpansionPanelSummary","ExpansionPanelDetails","MuiExpansionPanelDetails","affectPanelistToUser","_props$projectId","_props$quizId","quizId","_props$responseUrl","responseUrl","_props$panelistGroupL","panelistGroupList","_props$permissions","_props$logedUser","logedUser","allCheckRef","useRef","setExpanded","selectedPanelist","setSelectedPanelist","userListOption","setUserListOption","panelistGroups","setPanelistGroups","setCurrentUser","allChecked","setAllChecked","panel","getUserListOptions","UserList","UserId","panelistGroup","PanelistGroupExpansionPanel_ExpansionPanel","square","PanelistGroupId","PanelistGroupExpansionPanel_ExpansionPanelSummary","aria-controls","expandIcon","ExpandMore_default","ExpansionPanelActions","dialog_AffectPanelistToUser","QuizId","PanelistIds","quiz","q","PanelistGroups","handleAffectPanelistToUserSubmit","PanelistGroupExpansionPanel_ExpansionPanelDetails","Type","checked","Panelists","p","PanelistId","PanelistAssignments","r","panelist","_e$target3","newArray","BirthDate","format","Gender","PhoneNumber1","AssignedTo","Replied","quizIdParam","panelistIdParam","panelistGroupIdParam","_e$target4","Email","updateQuizResponseUrl","_props$currentLink","currentLink","QuizResponseUrl","UpdateQuizKoboLink_DialogTitle","UpdateQuizKoboLink_DialogContent","stopPropagation","UpdateQuizKoboLink_DialogActions","getGroupList","_props$storePanelistG","_props$quizList","quizList","onHandleUpdateQuiz","quizListOption","setQuizListOption","panelistGroupListOption","setPanelistGroupListOption","ResponseUrl","PanelistGroupIds","getPanelistGroupListOption","PanelistGroupList","getQuizListOption","handleClickOpen","UpdateQuiz_DialogTitle","UpdateQuiz_DialogContent","defaultValue","opt","multiple","UpdateQuiz_DialogActions","useStyles","typography","pxToRem","fontWeight","fontWeightRegular","mergeKoboExcelResponsesWithPanelistsData","file","formData","FormData","append","Url","_props$quizzes","quizzes","onSyncHandleChange","quizzesList","setQuizzesList","importInputRef","setSelectedFile","useHistory","handleUpdateQuiz","_data$Project","Quizzes","QuizKoboId","dialog_UpdateQuiz","accept","files","handleMergeKoboExcelResponses","htmlFor","current","click","includes","syncButtonClick","accordion_PanelistGroupExpansionPanel","AddQuizToProject_DialogTitle","AddQuizToProject_DialogContent","AddQuizToProject_DialogActions","grid","bottom","legend","itemGap","textStyle","fontFamily","tooltip","xAxis","axisLine","show","axisTick","axisLabel","yAxis","splitLine","lineStyle","opacity","series","stack","smooth","symbolSize","echarts_for_react_lib_default","borderRadius","colorPrimary","bar","LinearProgress","updateProject","getProject","_storeUser$currentUse3","snackbarOpen","setProjectId","setQuizList","ResponsesCountByMonthInYear","projectToUpdate","setProjectToUpdate","projectFromStore","projectFromRequest","alert_SnackbarContentWrapper","projet_ProjectDashboardLineChart","CreatedDate","dialog_AddQuizToProject","accordion_QuizExpansionPanel","setQuiz","setQuizId","quizColumns","setQuizColumns","quizRows","setQuizRows","quizResponses","setQuizResponses","projects","setProjects","_quiz$QuizColumns","_quiz$QuizResponses","QuizColumns","field","resizable","QuizResponses","row","raw","QuizResponseLineItems","Label","Value","dist_index_esm","rows","columns","pageSize","autoHeight","components","Toolbar","GridToolbar","activeLayout","layout1Settings","topbar","leftSidebar","mode","layout2Settings","navbar","secondarySidebar","footer","sessionRoutes","SignUp","SessionRoutes_settings","SignIn","ForgotPassword","UserProfilePage","PanelistAsNaturalPersonPage","PanelistAsLegalPersonPage","PanelistDetailPage","PanelistAdvancedSearchPage","PanelistGroupPage","PanelistGroupDetail","PanelistCategoryPage","ProjectPage","ProjectDetailPage","QuizResponsePage","AppSnackbar","AppDialog","AppExpansionPanel","AppAutoComplete","AppSlider","AppRadio","AppSwitch","AppCheckbox","AppMenu","AppProgress","AppIcon","AppButton","AppForm","materialRoutes","dragAndDropRoute","formsRoutes","mapRoutes","routes","lazy","exact","react_router","initialState","LoginReducer","action","failed","submitting","errorMessage","userListTableContentLoading","userReducer","SET_USER_DATA","REMOVE_USER_DATA","USER_LOGGED_OUT","USER_ACTION_LOADING","USER_ACTION_SUCCESS","USER_ACTION_ERROR","USER_ACTION_SUBMITING","USER_ACTION_SUBMITED","GET_USER_LIST","SHOW_ALERT","HIDE_ALERT","USER_TABLE_CONTENT_LOADING","USER_TABLE_CONTENT_LOADED","CHANGE_USER_PASSWORD","showUpdatedAlert","showAddedAlert","showDeletedAlert","roleList","permissionList","someRoleisEditing","rolesPermissionId","roleListTableContentLoading","roleReducer","ROLE_ACTION_LOADING","ROLE_ACTION_SUCCESS","ROLE_ACTION_SUBMITING","ROLE_ACTION_SUBMITED","ROLE_IS_EDITING","ROLE_IS_EDITED","ROLE_TABLE_CONTENT_LOADING","ROLE_TABLE_CONTENT_LOADED","ROLE_ACTION_ERROR","GET_ROLE_LIST","GET_PERMISSION_LIST","Layout1Settings","bgOpacity","bgImgURL","fixed","textLight","themeColors","white","contrastText","slateDark1","slateDark2","purple1","purple2","purpleDark1","purpleDark2","blue","blueDark","red","themeOptions","body1","danger","overrides","MuiTable","tableLayout","MuiTableCell","head","MuiButton","textTransform","contained","MuiFab","MuiCard","MuiTooltip","MuiMenuItem","MatxLayoutSettings","perfectScrollbar","createMuiTheme","merge","createMatxThemes","defaultSettings","LayoutReducer","SET_LAYOUT_SETTINGS","SET_DEFAULT_LAYOUT_SETTINGS","ScrumBoardReducer","memberList","labelList","NotificationReducer","GET_NOTIFICATION","CREATE_NOTIFICATION","DELETE_NOTIFICATION","DELETE_ALL_NOTIFICATION","EcommerceReducer","GET_PRODUCT_LIST","GET_CATEGORY_LIST","categoryList","GET_RATING_LIST","ratingList","GET_BRAND_LIST","brandList","GET_CART_LIST","ADD_PRODUCT_TO_CART","DELETE_PRODUCT_FROM_CART","UPDATE_CART_AMOUNT","panelistList","panelistAsNaturalPersonList","panelistAsLegalPersonList","currentPanelist","panelistAdvancedSearchTableContentLoading","regionList","advancedSearchTermList","educationLevelOptions","incomeOptions","professionOptions","PanelistReducer","PANELIST_ACTION_SUBMITTING","PANELIST_ACTION_SUBMITED","PANELIST_ACTION_LOADING","PANELIST_ACTION_SUCCESS","PANELIST_ACTION_ERROR","PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING","PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED","GET_PANELIST","GET_PANELIST_LIST","ADD_PANELIST_TO_LIST","DELETE_PANELIST_FROM_LIST","UPDATE_PANELIST","GET_REGIONLIST","storeCurrentPanelistGroup","groupListTableContentLoading","PanelistGroupReducer","PANELISTGROUP_ACTION_LOADING","PANELISTGROUP_ACTION_SUCCESS","PANELISTGROUP_ACTION_SUBMITING","PANELISTGROUP_ACTION_SUBMITED","PANELISTGROUP_TABLE_CONTENT_LOADING","PANELISTGROUP_TABLE_CONTENT_LOADED","PANELISTGROUP_ACTION_ERROR","GET_PANELISTGROUP","GET_PANELISTGROUP_LIST","someGroupisEditing","categories","PanelistCategoryReducer","PANELISTCATEGORY_ACTION_SUBMITTING","PANELISTCATEGORY_ACTION_SUBMITED","PANELISTCATEGORY_ACTION_LOADING","PANELISTCATEGORY_ACTION_SUCCESS","PANELISTCATEGORY_ACTION_ERROR","GET_PANELISTCATEGORY_LIST","ADD_PANELISTCATEGORY_TO_LIST","DELETE_PANELISTCATEGORY_FROM_LIST","UPDATE_PANELISTCATEGORY","quizResponseList","storeCurrentProject","projectListTableContentLoading","ProjectReducer","dashboard","DashboardReducer","DASHBOARD_ACTION_LOADING","DASHBOARD_ACTION_SUCCESS","DASHBOARD_ACTION_ERROR","GET_DASHBOARD","RootReducer","combineReducers","UserReducer","role","RoleReducer","scrumboard","ecommerce","panelistcategory","middlewares","thunk","Store","createStore","compose","applyMiddleware","checkJwtAuth","localStorageService","getItem","checkFirebaseAuth","firebaseAuthService","emailVerified","react","MatxLayouts","layout1","MatxLayout","context","setLayoutFromQuery","settingsFromQuery","setDefaultSettings","updatedSettings","listenWindowResize","_this$props2","appContext","updateSettingsFromRouter","componentDidUpdate","prevProps","componentWillMount","addEventListener","componentWillUnmount","removeEventListener","matched","matchRoutes","_this$props3","route","isEqual","Layout","contextType","AppContext","AuthGuard","authenticated","componentDidMount","redirectRoute","shouldComponentUpdate","nextProps","nextState","keys","redirectUrl","App","Provider","es","store","MatxLayout_MatxTheme_MatxTheme","auth_Auth","auth_AuthGuard","app_MatxLayout_MatxLayout","ReactDOM","app_App","document","getElementById","navigator","serviceWorker","ready","registration","unregister","Typography","createUser","setTableContentLoading","storeRole","handleSave","PhoneNumber2","Password","ConfirmPassword","Roles","RoleId","userCopy","handleSelectListChange","getOptionsFromRoleList","roles","RoleList","ValidatorForm","addValidationRule","_this$state$user","CreateUser_DialogTitle","CreateUser_DialogContent","lib","filterSelectedOptions","CreateUser_DialogActions","updateUser","userToUpdate","defaultSelectedRoleList","_this$state$userToUpd","Edit_default","UpdateUser_DialogTitle","UpdateUser_DialogContent","UpdateUser_DialogActions","deleteUser","handleConfirm","userToDelete","DeleteUser_DialogTitle","DeleteUser_DialogContent","DeleteUser_DialogActions","UserRolePopover","setAnchorEl","handlePopoverClose","aria-owns","aria-haspopup","onMouseEnter","currentTarget","onMouseLeave","Popover","transformOrigin","disableRestoreFocus","rolePop","roleIndex","roleListLoaded","userListLoaded","_props$storeRole","dialogs_CreateUser","dialogs_UpdateUser","dialogs_DeleteUser","createRole","roleCopy","checkboxHandleChange","permission","permissionsCopy","_this$state$role","CreateRole_DialogTitle","CreateRole_DialogContent","PermissionId","ShortDescription","CreateRole_DialogActions","renameRole","NewName","RoleOptionList","RenameRole_DialogTitle","RenameRole_DialogContent","RenameRole_DialogActions","deleteRole","DeleteRole_DialogTitle","DeleteRole_DialogContent","DeleteRole_DialogActions","roleIsEditing","updateRole","roleId","updatingLineItem","PermissionName","Checked","stringify","initialLineItem","valuesAreChange","setInitialLineItemValue","sort","b","defaultChecked","dialogs_DeleteRole","dialogs_RenameRole","dialogs_CreateRole","components_RoleAndPermissionLineItem","ls","localStorage","setItem","getCartList","deleteProductFromCart","updateCartAmount","axios__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_0___default","Breadcrumb","MatxMenu","Children","toArray","_props$shouldCloseOnI","shouldCloseOnItemClick","_props$horizontalPosi","horizontalPosition","menuButton","Menu","elevation","getContentAnchorEl","child","MatxToolbarMenu","& img","Loading","opts","Loadable","delay","timeout","toggle","placeholder","autoFocus","transition","transform","collapseIcon","expansion-panel","overflow","highlight","collapsed","elementRef","createRef","componentHeight","handleClick","calcaulateHeight","node","_step","_iterator","createForOfIteratorHelper","s","err","f","clientHeight","_step2","_iterator2","getAttribute","_this$props$item","badge","ButtonBase","nav-item flex-middle h-48 w-100 has-submenu","el","maxHeight","logedUserInformation","renderLevels","_this$state$logedUser","_this$state$logedUser2","authorization","MatxVerticalNav_MatxVerticalNavExpansionPanel","iconText","navigation","RectangleAvatar","textIcon","cursor","&:hover","paddingLeft","& .action-icon, & .rectangle-box","iconColor","bulletIcon","actionIcon","components_RectangleAvatar","MatxSnackbar","EchartTheme","MuiTheme","echarts","graphic","LinearGradient","offset","EchartCreator","registerTheme","lazyUpdate","prototype","string","object","RechartCreator","RichTextEditor","handleContentChange","react_quill_lib_default","modules","formats","toolbar","font","header","script","align","indent","direction","clipboard","matchVisual","ConfirmationDialog","CustomLinearProgress","MatxProgressBar","coloredText","alignItems","SimpleCard","card-title","mb-4","components_Breadcrumb","components_MatxMenu","MatxLoadable_MatxLoadable","components_MatxSearchBox","components_MatxVerticalNav_MatxVerticalNav","components_RichTextEditor","components_MatxProgressBar","cards_SimpleCard","react__WEBPACK_IMPORTED_MODULE_0__","createContext","_localStorageService__WEBPACK_IMPORTED_MODULE_1__","_apiHelpers__WEBPACK_IMPORTED_MODULE_2__","Token","setSession","setUser","loginWithToken","logout","removeUser","token","defaults","headers","common","removeItem","toLowerCase","getApiUrl","variantIcon","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","useStyles1","green","dark","amber","iconVariant","marginRight","other","D_a_1_s_src_Frontend_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_1___default","_material_ui_core_SnackbarContent__WEBPACK_IMPORTED_MODULE_10__","clsx","aria-describedby","_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_9__","_material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_6___default","_material_ui_core_DialogTitle__WEBPACK_IMPORTED_MODULE_4__","_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_9__","_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_7__","_material_ui_icons_Close__WEBPACK_IMPORTED_MODULE_8___default","storePanelist","_props$panelistToDele","panelistToDelete","_props$storePanelist","onDeletePanelist","getUsertList","hideAddedAlert","D_a_1_s_src_Frontend_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_0__","_material_ui_icons_Delete__WEBPACK_IMPORTED_MODULE_15___default","_material_ui_core_Dialog__WEBPACK_IMPORTED_MODULE_3__","_material_ui_core_DialogContentText__WEBPACK_IMPORTED_MODULE_14__","_material_ui_core__WEBPACK_IMPORTED_MODULE_10__","_material_ui_core__WEBPACK_IMPORTED_MODULE_11__","getNotification","deleteNotification","deleteAllNotification","getDashboard","app_services_apiHelpers__WEBPACK_IMPORTED_MODULE_1__","panelistId","history_js__WEBPACK_IMPORTED_MODULE_0__","axios__WEBPACK_IMPORTED_MODULE_2__","axios__WEBPACK_IMPORTED_MODULE_2___default","app_services_apiHelpers__WEBPACK_IMPORTED_MODULE_3__","PermissionList","createGroup","updateGroup","deleteGroup","deletePanelistFromPanelistGroup","history_js__WEBPACK_IMPORTED_MODULE_2__","PanelistGroup","panelistgroupId","logoutUser","changeUserPassword","_services_authentificationService__WEBPACK_IMPORTED_MODULE_2__","axios__WEBPACK_IMPORTED_MODULE_3__","axios__WEBPACK_IMPORTED_MODULE_3___default","app_services_apiHelpers__WEBPACK_IMPORTED_MODULE_4__","getPanelist","Panelist","PanelistList","getPanelistList","createPanelist","importPanelistFromExcel","panelistType","deletePanelist","updatePanelist","getRegions","Regions","displayName","photoURL","getCategory","getCategories","createCategory","deleteCategory","updateCategory","categoryId","Category","Categories","history__WEBPACK_IMPORTED_MODULE_0__","createBrowserHistory","react__WEBPACK_IMPORTED_MODULE_0___default","matx__WEBPACK_IMPORTED_MODULE_1__","react_material_ui_form_validator__WEBPACK_IMPORTED_MODULE_2__","_material_ui_core__WEBPACK_IMPORTED_MODULE_3__","_material_ui_core__WEBPACK_IMPORTED_MODULE_4__","_material_ui_core__WEBPACK_IMPORTED_MODULE_5__","_material_ui_core__WEBPACK_IMPORTED_MODULE_6__","_material_ui_core__WEBPACK_IMPORTED_MODULE_7__","_material_ui_core__WEBPACK_IMPORTED_MODULE_8__","_material_ui_core__WEBPACK_IMPORTED_MODULE_9__","react_redux__WEBPACK_IMPORTED_MODULE_12__","_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_13__","prop_types__WEBPACK_IMPORTED_MODULE_14__","prop_types__WEBPACK_IMPORTED_MODULE_14___default","react_router_dom__WEBPACK_IMPORTED_MODULE_15__","_alert_SnackbarContentWrapper__WEBPACK_IMPORTED_MODULE_16__","_material_ui_core_Snackbar__WEBPACK_IMPORTED_MODULE_17__","_material_ui_lab__WEBPACK_IMPORTED_MODULE_18__","_material_ui_lab__WEBPACK_IMPORTED_MODULE_19__","_material_ui_pickers__WEBPACK_IMPORTED_MODULE_20__","_material_ui_pickers__WEBPACK_IMPORTED_MODULE_21__","_date_io_date_fns__WEBPACK_IMPORTED_MODULE_22__","app_redux_actions_PanelistActions__WEBPACK_IMPORTED_MODULE_25__","app_redux_actions_PanelistCategoryActions__WEBPACK_IMPORTED_MODULE_26__","_material_ui_core_Radio__WEBPACK_IMPORTED_MODULE_27__","_material_ui_core_RadioGroup__WEBPACK_IMPORTED_MODULE_28__","history_js__WEBPACK_IMPORTED_MODULE_29__","storePanelistCategory","SnackbarOpen","panelistToUpdate","handleAddChip","chip","panelistCopy","extendedValue","v","handleDeleteChip","getTownToDisplayOption","getDistrictToDisplayOption","regionId","CategoryId","handleDateChange","createFilterOptions","filterOptions","filtered","inputValue","handleAutocompleteChange","newValue","Status","getRegionOption","RegionList","region","RegionId","RegionOptions","Towns","town","TownId","TownToDisplayOption","townId","Districts","district","DistrictId","DistrictToDisplayOption","getPanelistGroupIsNamesDefaultOption","PanelistGroupIsNamesDefaultOption","getPanelistCategoryDefaultOption","PanelistCategories","PanelistCategoryOption","CreateDate","LastModifiedDate","EducationLevel","Profession","Income","LocationName","PanelistCategoryDefaultOption","showSnackbar","ProfessionList","EducationLevelList","_this$state$panelistT","EmployeesCount","utils","DateFnsUtils","inputVariant","autoOk","KeyboardButtonProps","o","labelPlacement","cat","onCreateCategory","panelistCategory","setPanelistCategory","CreatePanelistCategory_DialogTitle","CreatePanelistCategory_DialogContent","CreatePanelistCategory_DialogActions","_props$panelistCatego","panelistCategoryToDelete","onDeleteCategory","DeletePanelistCategory_DialogTitle","DeletePanelistCategory_DialogContent","DeletePanelistCategory_DialogActions","panelistCategoryToUpdate","onUpdateCategory","UpdatePanelistCategory_DialogTitle","UpdatePanelistCategory_DialogContent","UpdatePanelistCategory_DialogActions","_props$storePanelistC","setCategories","handleUpdateCategory","handleDeleteCategory","dialog_CreatePanelistCategory","panelistCategorie","dialog_UpdatePanelistCategory","dialog_DeletePanelistCategory","onCreatePanelistGroup","CreatePanelistGroup_DialogTitle","CreatePanelistGroup_DialogContent","CreatePanelistGroup_DialogActions","_props$panelistGroupT","panelistGroupToDelete","onDeletePanelistGroup","DeletePanelistGroup_DialogTitle","DeletePanelistGroup_DialogContent","DeletePanelistGroup_DialogActions","setPanelistGroupList","handleDeletePanelistGroup","dialog_DeletePanelistGroup","passwordItem","itemCopy","OldPassword","NewPassword","seconds","timer","startTimer","countDown","timeLeftVar","secondsToTime","secs","divisor_for_minutes","divisor_for_seconds","h","m","ceil","setInterval","clearInterval","_this$state$passwordI","ChangeUserPassord_DialogTitle","ChangeUserPassord_DialogContent","ChangeUserPassord_DialogActions","storeUsers","snackbarHandleClose","_this$state$currentUs","ChangeUserPassord","_props$regionList","_props$categories","onCreatePanelist","setSubmitting","regionOptions","setRegionOptions","townToDisplayOptions","setTownToDisplayOptions","districtToDisplayOptions","setDistrictToDisplayOptions","categoryOptions","setCategoryOptions","districtDefaultValue","setDistrictDefaultValue","townDefaultValue","setTownDefaultValue","setPanelist","getCategoryOptions","_townToDisplayOptions","_townToDisplayOptions2","_districtToDisplayOpt","CreateNaturalPersonPanellist_DialogTitle","CreateNaturalPersonPanellist_DialogContent","RadioGroup","Radio","useUtils_cfb96ac9","DatePicker","disableFuture","onInput","max","toString","_e$target5","_e$target6","CreateNaturalPersonPanellist_DialogActions","setRegionList","setPanelistList","initialPanelistList","setInitialPanelistList","showSearch","setShowSearch","_React$useState29","_React$useState30","_React$useState31","_React$useState32","setSearchValue","handleDeletePanelist","exportPanelistListToExcel","_ref","asyncToGenerator","regenerator_default","mark","_callee","wrap","_context","prev","next","body","appendChild","removeChild","stop","_x","apply","arguments","getGenderInEnglish","dialogs_CreateNaturalPersonPanellist","handleImportPanelist","searchTerm","panelistUniqueByKey","Map","values","SearchItems","onBlur","getGenderInFrench","DeletePanelist","CreateLegalPersonPanellist_DialogTitle","CreateLegalPersonPanellist_DialogContent","CreateLegalPersonPanellist_DialogActions","dialogs_CreateLegalPersonPanellist","_props$panelistIdList","panelistIdList","_props$panelistGroupO","panelistGroupOptions","setPanelistgroup","panelistAsLegalPersonColumns","hide","headerName","valueGetter","getValue","panelistAsNaturalPersonColumns","renderCell","getAllColumns","c","isResetting","setIsResetting","isSearching","setIsSearching","filteredPanelist","setFilteredPanelist","currentUserPermissions","setCurrentUserPermissions","advancedSearchTermOptions","setAdvancedSearchTermOptions","_React$useState33","_React$useState34","_React$useState35","_React$useState36","_React$useState37","_React$useState38","setPanelistGroupOptions","_React$useState39","value1","value2","_React$useState40","setPanelistType","_React$useState41","_React$useState42","_React$useState43","_React$useState44","_React$useState45","_React$useState46","advancedSearchLineItems","setAdvancedSearchLineItems","_React$useState47","_React$useState48","setColumns","getAdvancedSearchTermOptions","every","getPanelistGroupOptions","term","regionLine","townLine","townLineIndex","findIndex","districtLine","districtLineIndex","filteredResult","isSameOrBefore","isSameOrAfter","startsWith","group","line","searchItem","getOptionDisabled","_event$target","currentValue","_event$target2","_event$target3","views","maxDate","minDate","_event$target4","_event$target5","dialogs_CreatePanelistGroup","_props$panelistFromGr","panelistFromGroupToDelete","DeletePanelistFromGroup_DialogTitle","DeletePanelistFromGroup_DialogContent","DeletePanelistFromGroup_DialogActions","_panelistGroupToUpdat","setId","panelistGroupToUpdate","setPanelistGroupToUpdate","groupFromRequest","g","groupFromStore","handleDeletePanelistFromPanelistGroup","dialog_DeletePanelistFromGroup"],"mappings":"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","file":"static/js/main.78bd1e60.chunk.js","sourcesContent":["import moment from \"moment\";\r\n\r\nexport function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function() {\r\n var context = this,\r\n args = arguments;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n }, wait);\r\n if (immediate && !timeout) func.apply(context, args);\r\n };\r\n}\r\n\r\nexport function isMobile() {\r\n if (window) {\r\n return window.matchMedia(`(max-width: 767px)`).matches;\r\n }\r\n return false;\r\n}\r\n\r\nexport function isMdScreen() {\r\n if (window) {\r\n return window.matchMedia(`(max-width: 1199px)`).matches;\r\n }\r\n return false;\r\n}\r\n\r\nfunction currentYPosition() {\r\n if (!window) {\r\n return;\r\n }\r\n // Firefox, Chrome, Opera, Safari\r\n if (window.pageYOffset) return window.pageYOffset;\r\n // Internet Explorer 6 - standards mode\r\n if (document.documentElement && document.documentElement.scrollTop)\r\n return document.documentElement.scrollTop;\r\n // Internet Explorer 6, 7 and 8\r\n if (document.body.scrollTop) return document.body.scrollTop;\r\n return 0;\r\n}\r\n\r\nfunction elmYPosition(elm) {\r\n var y = elm.offsetTop;\r\n var node = elm;\r\n while (node.offsetParent && node.offsetParent !== document.body) {\r\n node = node.offsetParent;\r\n y += node.offsetTop;\r\n }\r\n return y;\r\n}\r\n\r\nexport function scrollTo(scrollableElement, elmID) {\r\n var elm = document.getElementById(elmID);\r\n if (!elmID || !elm) {\r\n return;\r\n }\r\n var startY = currentYPosition();\r\n var stopY = elmYPosition(elm);\r\n var distance = stopY > startY ? stopY - startY : startY - stopY;\r\n if (distance < 100) {\r\n scrollTo(0, stopY);\r\n return;\r\n }\r\n var speed = Math.round(distance / 50);\r\n if (speed >= 20) speed = 20;\r\n var step = Math.round(distance / 25);\r\n var leapY = stopY > startY ? startY + step : startY - step;\r\n var timer = 0;\r\n if (stopY > startY) {\r\n for (var i = startY; i < stopY; i += step) {\r\n setTimeout(\r\n (function(leapY) {\r\n return () => {\r\n scrollableElement.scrollTo(0, leapY);\r\n };\r\n })(leapY),\r\n timer * speed\r\n );\r\n leapY += step;\r\n if (leapY > stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return;\r\n }\r\n for (let i = startY; i > stopY; i -= step) {\r\n setTimeout(\r\n (function(leapY) {\r\n return () => {\r\n scrollableElement.scrollTo(0, leapY);\r\n };\r\n })(leapY),\r\n timer * speed\r\n );\r\n leapY -= step;\r\n if (leapY < stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return false;\r\n}\r\n\r\nexport function getTimeDifference(date) {\r\n let difference =\r\n moment(new Date(), \"DD/MM/YYYY HH:mm:ss\").diff(\r\n moment(date, \"DD/MM/YYYY HH:mm:ss\")\r\n ) / 1000;\r\n\r\n if (difference < 60) return `${Math.floor(difference)} seconds`;\r\n else if (difference < 3600) return `${Math.floor(difference / 60)} minutes`;\r\n else if (difference < 86400) return `${Math.floor(difference / 3660)} hours`;\r\n else if (difference < 86400 * 30)\r\n return `${Math.floor(difference / 86400)} days`;\r\n else if (difference < 86400 * 30 * 12)\r\n return `${Math.floor(difference / 86400 / 30)} months`;\r\n else return `${(difference / 86400 / 30 / 12).toFixed(1)} years`;\r\n}\r\n\r\nexport function generateRandomId() {\r\n let tempId = Math.random().toString();\r\n let uid = tempId.substr(2, tempId.length - 1);\r\n return uid;\r\n}\r\n\r\nexport function getQueryParam(prop) {\r\n var params = {};\r\n var search = decodeURIComponent(\r\n window.location.href.slice(window.location.href.indexOf(\"?\") + 1)\r\n );\r\n var definitions = search.split(\"&\");\r\n definitions.forEach(function(val, key) {\r\n var parts = val.split(\"=\", 2);\r\n params[parts[0]] = parts[1];\r\n });\r\n return prop && prop in params ? params[prop] : params;\r\n}\r\n\r\nexport function classList(classes) {\r\n return Object.entries(classes)\r\n .filter(entry => entry[1])\r\n .map(entry => entry[0])\r\n .join(\" \");\r\n}\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","const MockAdapter = require('axios-mock-adapter');\r\nconst axios = require('axios');\r\nconst Mock = new MockAdapter(axios);\r\nexport default Mock;\r\n","import Mock from \"../mock\";\r\nimport shortid from \"shortid\";\r\n\r\nconst invoiceDB = {\r\n invoices: [\r\n {\r\n id: shortid.generate(),\r\n orderNo: \"232\",\r\n status: \"pending\",\r\n date: new Date(),\r\n currency: \"$\",\r\n vat: 10,\r\n buyer: {\r\n name: \"Schoen, Conn and Mills\",\r\n address:\r\n \"rodriguez.trent@senger.com \\n 61 Johnson St. Shirley, NY 11967. \\n \\n +202-555-0170\"\r\n },\r\n seller: {\r\n name: \"UI Lib\",\r\n address:\r\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\r\n },\r\n item: [\r\n {\r\n name: \"Item 1\",\r\n unit: 9,\r\n price: 200\r\n },\r\n {\r\n name: \"Item 2\",\r\n unit: 15,\r\n price: 300\r\n }\r\n ]\r\n },\r\n {\r\n id: shortid.generate(),\r\n orderNo: \"233\",\r\n status: \"processing\",\r\n date: new Date(),\r\n currency: \"$\",\r\n vat: 10,\r\n buyer: {\r\n name: \"New Age Inc.\",\r\n address:\r\n \"this is a test address \\n 7664 Rockcrest Road. Longview, TX 75604. \\n \\n +1-202-555-0153\"\r\n },\r\n seller: {\r\n name: \"UI Lib\",\r\n address:\r\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\r\n },\r\n item: [\r\n {\r\n name: \"Item 1\",\r\n unit: 3,\r\n price: 2000\r\n },\r\n {\r\n name: \"Item 2\",\r\n unit: 2,\r\n price: 4000\r\n }\r\n ]\r\n },\r\n {\r\n id: shortid.generate(),\r\n orderNo: \"234\",\r\n status: \"delivered\",\r\n date: new Date(),\r\n currency: \"$\",\r\n vat: 10,\r\n buyer: {\r\n name: \"Predovic, Schowalter and Haag\",\r\n address:\r\n \"linwood53@price.com \\n 7178 Plumb Branch Dr. South Bend, IN 46614 \\n \\n +999 9999 9999\"\r\n },\r\n seller: {\r\n name: \"UI Lib\",\r\n address:\r\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\r\n },\r\n item: [\r\n {\r\n name: \"Item 1\",\r\n unit: 5,\r\n price: 1000\r\n },\r\n {\r\n name: \"Item 2\",\r\n unit: 2,\r\n price: 4000\r\n }\r\n ]\r\n },\r\n {\r\n id: shortid.generate(),\r\n orderNo: \"235\",\r\n status: \"delivered\",\r\n date: new Date(),\r\n currency: \"$\",\r\n vat: 10,\r\n buyer: {\r\n name: \"Hane PLC\",\r\n address:\r\n \"nader.savanna@lindgren.org \\n 858 8th St. Nanuet, NY 10954. \\n \\n +202-555-0131\"\r\n },\r\n seller: {\r\n name: \"UI Lib\",\r\n address:\r\n \"sales@ui-lib.com \\n 8254 S. Garfield Street. Villa Rica, GA 30180. \\n \\n +1-202-555-0170\"\r\n },\r\n item: [\r\n {\r\n name: \"Item 1\",\r\n unit: 3,\r\n price: 4000\r\n },\r\n {\r\n name: \"Item 2\",\r\n unit: 1,\r\n price: 5000\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/invoices/all\").reply(config => {\r\n return [200, invoiceDB.invoices];\r\n});\r\n\r\nMock.onGet(\"/api/invoices\").reply(config => {\r\n const id = config.data;\r\n const response = invoiceDB.invoices.find(invoice => invoice.id === id);\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/invoices/delete\").reply(config => {\r\n let invoice = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n invoiceDB.invoices.forEach(element => {\r\n if (element.id === invoice.id) {\r\n return [200, invoiceDB.invoices.splice(index.i, 1)];\r\n }\r\n index.i++;\r\n });\r\n return [200, invoiceDB.invoices];\r\n});\r\n\r\nMock.onPost(\"/api/invoices/update\").reply(config => {\r\n let invoice = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n invoiceDB.invoices.forEach(element => {\r\n if (element.id === invoice.id) {\r\n invoiceDB.invoices[index.i] = invoice;\r\n return [200, invoiceDB.invoices];\r\n }\r\n index.i++;\r\n });\r\n return [200, invoiceDB.invoices];\r\n});\r\n\r\nMock.onPost(\"/api/invoices/add\").reply(config => {\r\n let invoice = JSON.parse(config.data);\r\n invoiceDB.invoices.push(invoice);\r\n return [200, invoiceDB.invoices];\r\n});\r\n","import Mock from \"../mock\";\r\nconst date = new Date();\r\n\r\nconst calendarEventDB = {\r\n events: [\r\n {\r\n id: \"344jdfher3wh23\",\r\n title: \"Meeting with all employees\",\r\n start: new Date(date.getFullYear(), date.getMonth(), 1),\r\n end: new Date(date.getFullYear(), date.getMonth(), 3)\r\n },\r\n {\r\n id: \"344jdfher3wh23\",\r\n title: \"A trip to Bali Island\",\r\n start: new Date(),\r\n end: new Date(date.getFullYear(), date.getMonth(), date.getDate() + 2)\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/calendar/events/all\").reply(config => {\r\n return [200, calendarEventDB.events];\r\n});\r\n\r\nMock.onPost(\"/api/calendar/events/add\").reply(config => {\r\n let { start, end, ...others } = JSON.parse(config.data);\r\n let event = {\r\n start: new Date(start),\r\n end: new Date(end),\r\n ...others\r\n };\r\n calendarEventDB.events.push(event);\r\n return [200, calendarEventDB.events];\r\n});\r\n\r\nMock.onPost(\"/api/calendar/events/update\").reply(config => {\r\n let updatedEvent = JSON.parse(config.data);\r\n\r\n if (updatedEvent.event) {\r\n // resize or move event handling\r\n calendarEventDB.events.map(event => {\r\n if (event.id === updatedEvent.event.id) {\r\n event.start = new Date(updatedEvent.start);\r\n event.end = new Date(updatedEvent.end);\r\n }\r\n return event;\r\n });\r\n } else {\r\n calendarEventDB.events.map(event => {\r\n if (event.id === updatedEvent.id) {\r\n event.start = new Date(updatedEvent.start);\r\n event.end = new Date(updatedEvent.end);\r\n event.title = updatedEvent.title;\r\n event.location = updatedEvent.location;\r\n event.note = updatedEvent.note;\r\n }\r\n\r\n return event;\r\n });\r\n }\r\n\r\n return [200, calendarEventDB.events];\r\n});\r\n\r\nMock.onPost(\"/api/calendar/events/delete\").reply(config => {\r\n let event = JSON.parse(config.data);\r\n\r\n let index = { i: 0 };\r\n\r\n calendarEventDB.events.forEach(element => {\r\n if (element.id === event.id) {\r\n return [200, calendarEventDB.events.splice(index.i, 1)];\r\n }\r\n index.i++;\r\n });\r\n\r\n return [200, calendarEventDB.events];\r\n});\r\n","import Mock from '../mock';\r\n\r\nconst userDB = {\r\n users: [\r\n {\r\n 'id': '5a7b73f76bed15c94d1e46d4',\r\n 'index': 0,\r\n 'guid': 'c01da2d1-07f8-4acc-a1e3-72dda7310af8',\r\n 'isActive': false,\r\n 'balance': 2838.08,\r\n 'age': 30,\r\n 'name': 'Stefanie Marsh',\r\n 'gender': 'female',\r\n 'company': 'ACIUM',\r\n 'email': 'stefaniemarsh@acium.com',\r\n 'phone': '+1 (857) 535-2066',\r\n 'address': '163 Poplar Avenue, Cliffside, Virginia, 4592',\r\n 'bd': '2015-02-08T04:28:44 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7f79f4250b96a355a',\r\n 'index': 1,\r\n 'guid': '3f04aa40-62da-466d-ac14-2b8a5da3d1ce',\r\n 'isActive': true,\r\n 'balance': 3043.81,\r\n 'age': 39,\r\n 'name': 'Elena Bennett',\r\n 'gender': 'female',\r\n 'company': 'FIBRODYNE',\r\n 'email': 'elenabennett@fibrodyne.com',\r\n 'phone': '+1 (994) 570-2070',\r\n 'address': '526 Grace Court, Cherokee, Oregon, 7017',\r\n 'bd': '2017-11-15T09:04:57 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78b64a02a67204d6e',\r\n 'index': 2,\r\n 'guid': 'e7d9d61e-b657-4fcf-b069-2eb9bfdc44fa',\r\n 'isActive': true,\r\n 'balance': 1796.92,\r\n 'age': 23,\r\n 'name': 'Joni Cabrera',\r\n 'gender': 'female',\r\n 'company': 'POWERNET',\r\n 'email': 'jonicabrera@powernet.com',\r\n 'phone': '+1 (848) 410-2368',\r\n 'address': '554 Barlow Drive, Alamo, Michigan, 3686',\r\n 'bd': '2017-10-15T12:55:51 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7572e59b231149b94',\r\n 'index': 3,\r\n 'guid': '47673d82-ab31-48a1-8a16-2c6701573c67',\r\n 'isActive': false,\r\n 'balance': 2850.27,\r\n 'age': 37,\r\n 'name': 'Gallagher Shaw',\r\n 'gender': 'male',\r\n 'company': 'ZILLAR',\r\n 'email': 'gallaghershaw@zillar.com',\r\n 'phone': '+1 (896) 422-3786',\r\n 'address': '111 Argyle Road, Graball, Idaho, 7272',\r\n 'bd': '2017-11-19T03:38:30 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f70f9d074552e13090',\r\n 'index': 4,\r\n 'guid': 'bc9c7cd3-04e0-4095-a933-af28efaf3b3e',\r\n 'isActive': false,\r\n 'balance': 3743.48,\r\n 'age': 26,\r\n 'name': 'Blanchard Knapp',\r\n 'gender': 'male',\r\n 'company': 'ACRODANCE',\r\n 'email': 'blanchardknapp@acrodance.com',\r\n 'phone': '+1 (867) 542-2772',\r\n 'address': '707 Malta Street, Yukon, Wyoming, 6861',\r\n 'bd': '2014-05-28T01:33:58 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78988bd6e92650473',\r\n 'index': 5,\r\n 'guid': '08cb947c-e49c-4736-9687-0fca0992ec38',\r\n 'isActive': false,\r\n 'balance': 3453.79,\r\n 'age': 34,\r\n 'name': 'Parker Rivas',\r\n 'gender': 'male',\r\n 'company': 'SLAMBDA',\r\n 'email': 'parkerrivas@slambda.com',\r\n 'phone': '+1 (997) 413-2418',\r\n 'address': '543 Roosevelt Place, Tibbie, Minnesota, 6944',\r\n 'bd': '2015-01-05T09:55:23 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f72488770f90649570',\r\n 'index': 6,\r\n 'guid': '771c85d5-7762-4bae-96fd-09892a9c4374',\r\n 'isActive': false,\r\n 'balance': 3334.73,\r\n 'age': 20,\r\n 'name': 'Alexandria Forbes',\r\n 'gender': 'female',\r\n 'company': 'EQUITOX',\r\n 'email': 'alexandriaforbes@equitox.com',\r\n 'phone': '+1 (869) 521-2533',\r\n 'address': '663 Minna Street, Omar, Alabama, 5265',\r\n 'bd': '2017-03-09T05:48:57 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7c576e368b321a705',\r\n 'index': 7,\r\n 'guid': '2455a7ef-a537-46e1-a210-75e5e2187460',\r\n 'isActive': false,\r\n 'balance': 3488.64,\r\n 'age': 37,\r\n 'name': 'Lessie Wise',\r\n 'gender': 'female',\r\n 'company': 'AFFLUEX',\r\n 'email': 'lessiewise@affluex.com',\r\n 'phone': '+1 (820) 404-2967',\r\n 'address': '752 Woodhull Street, Utting, Oklahoma, 2739',\r\n 'bd': '2014-10-21T03:09:34 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f705f8a9c6e35c8ca2',\r\n 'index': 8,\r\n 'guid': 'a90d65a8-681d-462f-bf08-eceeef366375',\r\n 'isActive': true,\r\n 'balance': 3786.67,\r\n 'age': 36,\r\n 'name': 'Carrie Gates',\r\n 'gender': 'female',\r\n 'company': 'VIRVA',\r\n 'email': 'carriegates@virva.com',\r\n 'phone': '+1 (845) 463-3986',\r\n 'address': '561 Boulevard Court, Rote, Louisiana, 8458',\r\n 'bd': '2017-03-30T02:06:23 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7a3e2be2dbb7b093e',\r\n 'index': 9,\r\n 'guid': 'fb3d0f97-91ae-4336-b0b4-19f4a00fe567',\r\n 'isActive': false,\r\n 'balance': 3335.5,\r\n 'age': 33,\r\n 'name': 'Dalton Spears',\r\n 'gender': 'male',\r\n 'company': 'MIRACLIS',\r\n 'email': 'daltonspears@miraclis.com',\r\n 'phone': '+1 (919) 541-3528',\r\n 'address': '167 Lester Court, Glasgow, Arkansas, 6311',\r\n 'bd': '2017-04-01T01:41:12 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f716de69a9217c1273',\r\n 'index': 10,\r\n 'guid': '129a92fd-848f-48eb-98a1-aebf6e92b079',\r\n 'isActive': false,\r\n 'balance': 3811.15,\r\n 'age': 30,\r\n 'name': 'Delia Merrill',\r\n 'gender': 'female',\r\n 'company': 'COMTEST',\r\n 'email': 'deliamerrill@comtest.com',\r\n 'phone': '+1 (879) 401-2304',\r\n 'address': '761 Polhemus Place, Kidder, Puerto Rico, 5901',\r\n 'bd': '2014-08-29T08:42:59 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7ed19007bed2d29fb',\r\n 'index': 11,\r\n 'guid': 'd799b69a-192d-4ee3-9a69-9e8e5afc45b0',\r\n 'isActive': false,\r\n 'balance': 3935.82,\r\n 'age': 28,\r\n 'name': 'Vance Aguilar',\r\n 'gender': 'male',\r\n 'company': 'CYCLONICA',\r\n 'email': 'vanceaguilar@cyclonica.com',\r\n 'phone': '+1 (972) 549-2681',\r\n 'address': '653 Billings Place, Gardners, Connecticut, 7805',\r\n 'bd': '2015-02-21T03:06:14 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78d0dc0858a70c44a',\r\n 'index': 12,\r\n 'guid': '8cbb37bb-7644-4993-b48b-df3a69deb339',\r\n 'isActive': true,\r\n 'balance': 3868.95,\r\n 'age': 28,\r\n 'name': 'Adams Harper',\r\n 'gender': 'male',\r\n 'company': 'NORSUP',\r\n 'email': 'adamsharper@norsup.com',\r\n 'phone': '+1 (824) 494-3395',\r\n 'address': '571 Turner Place, Norris, Mississippi, 3829',\r\n 'bd': '2014-01-30T02:05:53 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7e929494a8568a885',\r\n 'index': 13,\r\n 'guid': '22ec32d7-0ba9-4366-b6d8-ca16389a2cd9',\r\n 'isActive': false,\r\n 'balance': 3954.41,\r\n 'age': 34,\r\n 'name': 'Bass Sexton',\r\n 'gender': 'male',\r\n 'company': 'CIRCUM',\r\n 'email': 'basssexton@circum.com',\r\n 'phone': '+1 (930) 476-3634',\r\n 'address': '563 Victor Road, Richmond, Kansas, 7742',\r\n 'bd': '2014-05-04T10:16:32 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f767e97ce3136444fd',\r\n 'index': 14,\r\n 'guid': '031d282f-0be9-49e1-a211-9aa59d449d91',\r\n 'isActive': false,\r\n 'balance': 3287.33,\r\n 'age': 24,\r\n 'name': 'Howard Velez',\r\n 'gender': 'male',\r\n 'company': 'ECOSYS',\r\n 'email': 'howardvelez@ecosys.com',\r\n 'phone': '+1 (920) 556-2885',\r\n 'address': '378 Grimes Road, Websterville, Marshall Islands, 3506',\r\n 'bd': '2015-12-19T08:17:58 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7fba076653cc18925',\r\n 'index': 15,\r\n 'guid': 'd76ab6d6-d1db-4286-8516-ce6c9db3972a',\r\n 'isActive': false,\r\n 'balance': 3279.98,\r\n 'age': 21,\r\n 'name': 'Lola Morton',\r\n 'gender': 'female',\r\n 'company': 'PROVIDCO',\r\n 'email': 'lolamorton@providco.com',\r\n 'phone': '+1 (963) 458-2788',\r\n 'address': '991 Ashland Place, Richville, New York, 3529',\r\n 'bd': '2016-11-29T07:58:24 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7c6d408bc853be87c',\r\n 'index': 16,\r\n 'guid': '30c2d1c7-770b-4adb-b6df-cc205d748323',\r\n 'isActive': false,\r\n 'balance': 3955.55,\r\n 'age': 37,\r\n 'name': 'Bishop Rutledge',\r\n 'gender': 'male',\r\n 'company': 'DAYCORE',\r\n 'email': 'bishoprutledge@daycore.com',\r\n 'phone': '+1 (886) 539-3156',\r\n 'address': '870 Vanderveer Place, Bridgetown, California, 7593',\r\n 'bd': '2014-11-10T04:47:00 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7abe6c78719d2f494',\r\n 'index': 17,\r\n 'guid': '2d8e77a1-4a88-4642-b6a8-693de296661c',\r\n 'isActive': true,\r\n 'balance': 1832.83,\r\n 'age': 23,\r\n 'name': 'Lea Reese',\r\n 'gender': 'female',\r\n 'company': 'GLUID',\r\n 'email': 'leareese@gluid.com',\r\n 'phone': '+1 (866) 413-2199',\r\n 'address': '811 Dunne Place, Vowinckel, Rhode Island, 8646',\r\n 'bd': '2014-03-16T04:30:06 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f72d64af126b8080be',\r\n 'index': 18,\r\n 'guid': 'e1e8ee63-6d08-48fc-a077-2265cee34f23',\r\n 'isActive': true,\r\n 'balance': 2419.18,\r\n 'age': 23,\r\n 'name': 'Knox Moses',\r\n 'gender': 'male',\r\n 'company': 'BRAINCLIP',\r\n 'email': 'knoxmoses@brainclip.com',\r\n 'phone': '+1 (982) 519-2486',\r\n 'address': '917 Turnbull Avenue, Shasta, Virgin Islands, 7016',\r\n 'bd': '2015-11-09T10:11:15 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f789b4e9086d34b255',\r\n 'index': 19,\r\n 'guid': '13552b7d-928c-4b92-a2ae-5ccbee807594',\r\n 'isActive': false,\r\n 'balance': 1220.91,\r\n 'age': 22,\r\n 'name': 'Marsha Jacobs',\r\n 'gender': 'female',\r\n 'company': 'COMSTAR',\r\n 'email': 'marshajacobs@comstar.com',\r\n 'phone': '+1 (858) 511-2546',\r\n 'address': '580 Hampton Avenue, Ilchester, New Hampshire, 2191',\r\n 'bd': '2016-02-11T01:34:23 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f737eea8e94089b7b4',\r\n 'index': 20,\r\n 'guid': 'cf577c87-b40c-4c09-9fac-d04c9a824b86',\r\n 'isActive': false,\r\n 'balance': 2446.07,\r\n 'age': 25,\r\n 'name': 'Bell Emerson',\r\n 'gender': 'male',\r\n 'company': 'MULTIFLEX',\r\n 'email': 'bellemerson@multiflex.com',\r\n 'phone': '+1 (806) 496-2473',\r\n 'address': '238 Oxford Walk, Monument, New Mexico, 1345',\r\n 'bd': '2016-10-07T01:07:21 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f76bc821dc6ee56ee2',\r\n 'index': 21,\r\n 'guid': 'b6c685c2-a497-4261-9217-622723d5235f',\r\n 'isActive': false,\r\n 'balance': 3694.63,\r\n 'age': 33,\r\n 'name': 'Cecelia Graham',\r\n 'gender': 'female',\r\n 'company': 'ZOXY',\r\n 'email': 'ceceliagraham@zoxy.com',\r\n 'phone': '+1 (933) 429-3129',\r\n 'address': '954 Lawton Street, Terlingua, New Jersey, 6723',\r\n 'bd': '2017-12-01T04:36:13 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f794c27c4048290cbf',\r\n 'index': 22,\r\n 'guid': '7e887403-8ff5-41b4-9902-bb63ff714fee',\r\n 'isActive': true,\r\n 'balance': 2804.02,\r\n 'age': 29,\r\n 'name': 'Anthony Pennington',\r\n 'gender': 'male',\r\n 'company': 'NAMEGEN',\r\n 'email': 'anthonypennington@namegen.com',\r\n 'phone': '+1 (860) 458-3988',\r\n 'address': '287 Auburn Place, Gardiner, Northern Mariana Islands, 7131',\r\n 'bd': '2018-02-04T11:06:51 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f720a5781f7d19597a',\r\n 'index': 23,\r\n 'guid': '9e108687-e1ca-4385-bdd5-62ab006f8aa3',\r\n 'isActive': true,\r\n 'balance': 1984.1,\r\n 'age': 36,\r\n 'name': 'Mayo Justice',\r\n 'gender': 'male',\r\n 'company': 'SLOFAST',\r\n 'email': 'mayojustice@slofast.com',\r\n 'phone': '+1 (854) 428-2270',\r\n 'address': '648 Melba Court, Dodge, Pennsylvania, 7596',\r\n 'bd': '2016-12-29T07:28:10 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7f0a4c5e6c9807fb2',\r\n 'index': 24,\r\n 'guid': '93b0b383-dd69-4453-be26-f13ae361ce67',\r\n 'isActive': true,\r\n 'balance': 1845.13,\r\n 'age': 22,\r\n 'name': 'Vaughn Salazar',\r\n 'gender': 'male',\r\n 'company': 'ZAGGLE',\r\n 'email': 'vaughnsalazar@zaggle.com',\r\n 'phone': '+1 (986) 415-3294',\r\n 'address': '382 Dewitt Avenue, Goodville, Palau, 711',\r\n 'bd': '2014-10-31T12:32:59 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7e6c45298c709371c',\r\n 'index': 25,\r\n 'guid': '5a059bbb-3f6d-47bc-ba2b-c13eeaaa93b4',\r\n 'isActive': false,\r\n 'balance': 3684.79,\r\n 'age': 31,\r\n 'name': 'Calhoun Bradshaw',\r\n 'gender': 'male',\r\n 'company': 'OVERPLEX',\r\n 'email': 'calhounbradshaw@overplex.com',\r\n 'phone': '+1 (964) 594-2363',\r\n 'address': '527 Seton Place, Wedgewood, Wisconsin, 8306',\r\n 'bd': '2016-05-27T10:46:17 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f79468759d25ecdcf4',\r\n 'index': 26,\r\n 'guid': '68d7f78e-5001-480b-a67d-72b370a5c2de',\r\n 'isActive': false,\r\n 'balance': 1831.14,\r\n 'age': 29,\r\n 'name': 'Dianne Bauer',\r\n 'gender': 'female',\r\n 'company': 'XUMONK',\r\n 'email': 'diannebauer@xumonk.com',\r\n 'phone': '+1 (866) 510-2479',\r\n 'address': '540 Moffat Street, Emison, South Carolina, 7329',\r\n 'bd': '2014-09-02T04:57:23 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7346b1bbab11524fa',\r\n 'index': 27,\r\n 'guid': '0729eef8-36c5-4aa2-8e31-f5e2ca19b94b',\r\n 'isActive': false,\r\n 'balance': 1719.77,\r\n 'age': 22,\r\n 'name': 'Hebert Bryan',\r\n 'gender': 'male',\r\n 'company': 'COMTRAIL',\r\n 'email': 'hebertbryan@comtrail.com',\r\n 'phone': '+1 (838) 579-3709',\r\n 'address': '669 Hausman Street, Gerber, Kentucky, 7779',\r\n 'bd': '2017-11-29T12:22:59 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f75116874002de08de',\r\n 'index': 28,\r\n 'guid': '63014b40-3f1e-40ff-b2f7-f55ef6a5a599',\r\n 'isActive': true,\r\n 'balance': 1973.27,\r\n 'age': 20,\r\n 'name': 'Cash Bean',\r\n 'gender': 'male',\r\n 'company': 'SUPREMIA',\r\n 'email': 'cashbean@supremia.com',\r\n 'phone': '+1 (846) 551-2291',\r\n 'address': '152 Garnet Street, Boling, Nevada, 4867',\r\n 'bd': '2014-01-06T10:18:37 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f739be4dc1f743993c',\r\n 'index': 29,\r\n 'guid': 'ae498760-b43b-4c9c-8575-820f419984f6',\r\n 'isActive': true,\r\n 'balance': 2118.14,\r\n 'age': 36,\r\n 'name': 'Candy Hopper',\r\n 'gender': 'female',\r\n 'company': 'ACCUFARM',\r\n 'email': 'candyhopper@accufarm.com',\r\n 'phone': '+1 (841) 425-2442',\r\n 'address': '695 Nassau Avenue, Nutrioso, Maryland, 2026',\r\n 'bd': '2016-01-03T02:15:56 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f70b86f2969d762be2',\r\n 'index': 30,\r\n 'guid': 'f19cb86e-ab4f-4d07-833a-4adb8a19d0af',\r\n 'isActive': false,\r\n 'balance': 3794.89,\r\n 'age': 37,\r\n 'name': 'Fisher Powell',\r\n 'gender': 'male',\r\n 'company': 'ENOMEN',\r\n 'email': 'fisherpowell@enomen.com',\r\n 'phone': '+1 (876) 562-2932',\r\n 'address': '616 Tapscott Avenue, Crucible, Nebraska, 4900',\r\n 'bd': '2018-01-31T05:15:13 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7394648a68c2a6ae3',\r\n 'index': 31,\r\n 'guid': 'a88e5389-0b07-4d19-ac6c-718ce9e0de55',\r\n 'isActive': false,\r\n 'balance': 3343.45,\r\n 'age': 38,\r\n 'name': 'Rosemary Sloan',\r\n 'gender': 'female',\r\n 'company': 'PHORMULA',\r\n 'email': 'rosemarysloan@phormula.com',\r\n 'phone': '+1 (924) 517-3289',\r\n 'address': '687 Navy Walk, Edmund, Delaware, 1419',\r\n 'bd': '2018-01-23T11:32:25 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f77ad97f4e1c2fa65a',\r\n 'index': 32,\r\n 'guid': 'fb915568-2875-49b3-96d7-6b54b2b186a1',\r\n 'isActive': true,\r\n 'balance': 2680.62,\r\n 'age': 30,\r\n 'name': 'Elba Glover',\r\n 'gender': 'female',\r\n 'company': 'APPLICA',\r\n 'email': 'elbaglover@applica.com',\r\n 'phone': '+1 (857) 495-3565',\r\n 'address': '279 Bridgewater Street, Edneyville, Utah, 9246',\r\n 'bd': '2015-10-03T12:24:56 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f72598106a97fbf7d5',\r\n 'index': 33,\r\n 'guid': 'fac3cd4b-2d42-4b4f-9d6f-0bac689bd47b',\r\n 'isActive': false,\r\n 'balance': 3286.46,\r\n 'age': 37,\r\n 'name': 'Mildred Short',\r\n 'gender': 'female',\r\n 'company': 'NIXELT',\r\n 'email': 'mildredshort@nixelt.com',\r\n 'phone': '+1 (980) 530-3588',\r\n 'address': '434 Elm Place, Coloma, West Virginia, 1990',\r\n 'bd': '2016-03-22T10:13:26 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7b88290b05f53faa1',\r\n 'index': 34,\r\n 'guid': 'b1c6a3a3-00bd-4bc6-87df-69eecd909ab5',\r\n 'isActive': false,\r\n 'balance': 1484.16,\r\n 'age': 24,\r\n 'name': 'Karin Schultz',\r\n 'gender': 'female',\r\n 'company': 'PLASMOS',\r\n 'email': 'karinschultz@plasmos.com',\r\n 'phone': '+1 (904) 544-2796',\r\n 'address': '380 Rockaway Avenue, Faxon, American Samoa, 5776',\r\n 'bd': '2016-03-27T09:30:36 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7d2f7429d0caec5fe',\r\n 'index': 35,\r\n 'guid': '62c961ac-49b1-4a69-b4bf-13a396ec4fd9',\r\n 'isActive': false,\r\n 'balance': 3450.17,\r\n 'age': 23,\r\n 'name': 'Addie Rose',\r\n 'gender': 'female',\r\n 'company': 'XYQAG',\r\n 'email': 'addierose@xyqag.com',\r\n 'phone': '+1 (838) 549-3147',\r\n 'address': '999 Coleridge Street, Golconda, Vermont, 9575',\r\n 'bd': '2016-10-01T06:50:42 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78a4c54ff8334e053',\r\n 'index': 36,\r\n 'guid': '4f2f7ae5-0bd1-4665-b97f-c556e5162349',\r\n 'isActive': false,\r\n 'balance': 1797.89,\r\n 'age': 23,\r\n 'name': 'Janie Ellison',\r\n 'gender': 'female',\r\n 'company': 'SPLINX',\r\n 'email': 'janieellison@splinx.com',\r\n 'phone': '+1 (947) 460-2254',\r\n 'address': '114 Landis Court, Genoa, Indiana, 5198',\r\n 'bd': '2017-07-28T12:45:44 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7c87f7e86fcb00055',\r\n 'index': 37,\r\n 'guid': 'b7236378-8129-44b5-bcc6-0369290ffad6',\r\n 'isActive': false,\r\n 'balance': 3776.51,\r\n 'age': 38,\r\n 'name': 'Elisabeth Campbell',\r\n 'gender': 'female',\r\n 'company': 'GOKO',\r\n 'email': 'elisabethcampbell@goko.com',\r\n 'phone': '+1 (849) 430-3377',\r\n 'address': '832 Kermit Place, Lutsen, Georgia, 9145',\r\n 'bd': '2015-04-26T06:40:08 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f712f9208f145fa6ea',\r\n 'index': 38,\r\n 'guid': '5c955e3a-5f3a-4ead-96ee-80a5de6dc479',\r\n 'isActive': true,\r\n 'balance': 3794.93,\r\n 'age': 27,\r\n 'name': 'Noble Holland',\r\n 'gender': 'male',\r\n 'company': 'NUTRALAB',\r\n 'email': 'nobleholland@nutralab.com',\r\n 'phone': '+1 (888) 573-3730',\r\n 'address': '408 Roosevelt Court, Hiwasse, North Dakota, 281',\r\n 'bd': '2014-03-25T12:24:34 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7aa1f371de59df90b',\r\n 'index': 39,\r\n 'guid': '94698a81-61a6-4e23-a952-76a50fba71ef',\r\n 'isActive': true,\r\n 'balance': 2205.55,\r\n 'age': 35,\r\n 'name': 'Laverne Brock',\r\n 'gender': 'female',\r\n 'company': 'ICOLOGY',\r\n 'email': 'lavernebrock@icology.com',\r\n 'phone': '+1 (821) 600-3174',\r\n 'address': '391 Conover Street, Cassel, Tennessee, 6566',\r\n 'bd': '2016-01-27T09:40:41 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7c45c697931199945',\r\n 'index': 40,\r\n 'guid': 'a05a215f-be1c-49d1-89ca-c821b118f923',\r\n 'isActive': true,\r\n 'balance': 2397.12,\r\n 'age': 29,\r\n 'name': 'Irene Frost',\r\n 'gender': 'female',\r\n 'company': 'RODEMCO',\r\n 'email': 'irenefrost@rodemco.com',\r\n 'phone': '+1 (918) 539-2612',\r\n 'address': '401 Moore Place, Groton, Arizona, 3415',\r\n 'bd': '2017-09-14T09:46:55 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7ef55416e92ebc818',\r\n 'index': 41,\r\n 'guid': '1ae8ceac-e8d0-4417-9f6f-04cd4e4738ad',\r\n 'isActive': false,\r\n 'balance': 3335.51,\r\n 'age': 35,\r\n 'name': 'Beard Hendricks',\r\n 'gender': 'male',\r\n 'company': 'QUONK',\r\n 'email': 'beardhendricks@quonk.com',\r\n 'phone': '+1 (847) 521-3952',\r\n 'address': '576 Bayard Street, Chloride, Federated States Of Micronesia, 8070',\r\n 'bd': '2016-11-01T12:47:26 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7cbeecfe6febd672d',\r\n 'index': 42,\r\n 'guid': 'afdf3298-77bd-46b3-ae8d-232f815c5f01',\r\n 'isActive': false,\r\n 'balance': 2205.01,\r\n 'age': 37,\r\n 'name': 'Nelson Shields',\r\n 'gender': 'male',\r\n 'company': 'ARTWORLDS',\r\n 'email': 'nelsonshields@artworlds.com',\r\n 'phone': '+1 (956) 534-3050',\r\n 'address': '581 Maple Street, Needmore, Colorado, 2062',\r\n 'bd': '2014-07-21T08:22:01 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f71803de25c5f754ad',\r\n 'index': 43,\r\n 'guid': '5b872cad-4388-496b-8ede-5f86990dec00',\r\n 'isActive': true,\r\n 'balance': 1001.05,\r\n 'age': 21,\r\n 'name': 'Luella Duffy',\r\n 'gender': 'female',\r\n 'company': 'KROG',\r\n 'email': 'luelladuffy@krog.com',\r\n 'phone': '+1 (973) 451-2222',\r\n 'address': '349 Bryant Street, Tioga, South Dakota, 6493',\r\n 'bd': '2016-04-27T02:46:46 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f77f2a05eacb331c74',\r\n 'index': 44,\r\n 'guid': '7d6b7650-10d7-435d-87ca-33a1fe12cd57',\r\n 'isActive': false,\r\n 'balance': 1926.79,\r\n 'age': 27,\r\n 'name': 'Rosa Guthrie',\r\n 'gender': 'female',\r\n 'company': 'COMTOURS',\r\n 'email': 'rosaguthrie@comtours.com',\r\n 'phone': '+1 (814) 528-2701',\r\n 'address': '719 Kathleen Court, Morriston, Guam, 4011',\r\n 'bd': '2015-07-02T08:22:18 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7727afbb0fc15653b',\r\n 'index': 45,\r\n 'guid': 'ebbc985b-227e-4954-a8a6-588b2a2bff22',\r\n 'isActive': false,\r\n 'balance': 2464.9,\r\n 'age': 29,\r\n 'name': 'Dillard Carlson',\r\n 'gender': 'male',\r\n 'company': 'COMCUR',\r\n 'email': 'dillardcarlson@comcur.com',\r\n 'phone': '+1 (847) 469-3741',\r\n 'address': '918 Oceanic Avenue, Cochranville, Missouri, 1018',\r\n 'bd': '2016-06-11T11:31:54 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f71dd7612e967e01ae',\r\n 'index': 46,\r\n 'guid': '63a2ee7f-2141-4ec5-b1e2-fcdcd62f28ed',\r\n 'isActive': false,\r\n 'balance': 3917.74,\r\n 'age': 25,\r\n 'name': 'Faye Walls',\r\n 'gender': 'female',\r\n 'company': 'EMERGENT',\r\n 'email': 'fayewalls@emergent.com',\r\n 'phone': '+1 (964) 527-3791',\r\n 'address': '947 Judge Street, Nescatunga, Maine, 4928',\r\n 'bd': '2014-06-23T12:46:21 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7b33c73c425db7ee0',\r\n 'index': 47,\r\n 'guid': '61d40a89-af0c-40ca-8970-c54978134e6b',\r\n 'isActive': true,\r\n 'balance': 2213.18,\r\n 'age': 32,\r\n 'name': 'Norma Hooper',\r\n 'gender': 'female',\r\n 'company': 'PARCOE',\r\n 'email': 'normahooper@parcoe.com',\r\n 'phone': '+1 (827) 503-2742',\r\n 'address': '470 Fenimore Street, Hatteras, Texas, 1582',\r\n 'bd': '2015-01-15T12:22:00 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7c30aa4064670cf21',\r\n 'index': 48,\r\n 'guid': '969d77af-b251-4924-82cf-7c787752161d',\r\n 'isActive': false,\r\n 'balance': 3673.94,\r\n 'age': 23,\r\n 'name': 'Lee Wiggins',\r\n 'gender': 'female',\r\n 'company': 'NITRACYR',\r\n 'email': 'leewiggins@nitracyr.com',\r\n 'phone': '+1 (941) 478-3536',\r\n 'address': '958 Flatbush Avenue, Clara, North Carolina, 970',\r\n 'bd': '2018-01-09T11:09:34 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7ecd5a4859f2d94dc',\r\n 'index': 49,\r\n 'guid': 'cdf9b8de-a309-4cb7-80bb-f1b830b8b640',\r\n 'isActive': true,\r\n 'balance': 2166.21,\r\n 'age': 27,\r\n 'name': 'Alvarez Lynch',\r\n 'gender': 'male',\r\n 'company': 'KIGGLE',\r\n 'email': 'alvarezlynch@kiggle.com',\r\n 'phone': '+1 (929) 528-3805',\r\n 'address': '901 Stratford Road, Derwood, Iowa, 1402',\r\n 'bd': '2015-01-08T04:28:57 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7216c8cabc849eea7',\r\n 'index': 50,\r\n 'guid': 'c4175d6a-1560-468e-b682-701c1549b6b1',\r\n 'isActive': false,\r\n 'balance': 3479.39,\r\n 'age': 39,\r\n 'name': 'Oneal Rosario',\r\n 'gender': 'male',\r\n 'company': 'UBERLUX',\r\n 'email': 'onealrosario@uberlux.com',\r\n 'phone': '+1 (951) 572-3027',\r\n 'address': '267 Rockaway Parkway, Chapin, Montana, 7813',\r\n 'bd': '2014-02-10T05:08:13 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78841719bf955b2d9',\r\n 'index': 51,\r\n 'guid': '966c9ce6-9151-47cb-8c71-98c4cd0d2f40',\r\n 'isActive': false,\r\n 'balance': 1625.49,\r\n 'age': 36,\r\n 'name': 'Olsen Stevens',\r\n 'gender': 'male',\r\n 'company': 'EMPIRICA',\r\n 'email': 'olsenstevens@empirica.com',\r\n 'phone': '+1 (871) 403-3377',\r\n 'address': '704 Lamont Court, Saranap, Massachusetts, 3171',\r\n 'bd': '2014-09-17T05:13:13 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7b7b8e578dff0f85c',\r\n 'index': 52,\r\n 'guid': '8269a34f-3a02-47d6-bcb1-8f076bb478f0',\r\n 'isActive': true,\r\n 'balance': 1143.73,\r\n 'age': 27,\r\n 'name': 'Marian Henson',\r\n 'gender': 'female',\r\n 'company': 'ENDIPINE',\r\n 'email': 'marianhenson@endipine.com',\r\n 'phone': '+1 (995) 406-2592',\r\n 'address': '803 Ellery Street, Boykin, Alaska, 8624',\r\n 'bd': '2016-08-28T01:22:51 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f737459ec79c91ca75',\r\n 'index': 53,\r\n 'guid': 'badb9342-10fd-4520-ae66-c246e47add8f',\r\n 'isActive': false,\r\n 'balance': 1458.01,\r\n 'age': 23,\r\n 'name': 'Dudley Dickson',\r\n 'gender': 'male',\r\n 'company': 'POLARIA',\r\n 'email': 'dudleydickson@polaria.com',\r\n 'phone': '+1 (860) 428-3250',\r\n 'address': '833 Revere Place, Rockbridge, Illinois, 4628',\r\n 'bd': '2017-01-19T12:36:59 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f70ddc6fc11ebf043a',\r\n 'index': 54,\r\n 'guid': '52b1be89-8186-4685-81b7-203c17ed9f89',\r\n 'isActive': true,\r\n 'balance': 2815.76,\r\n 'age': 25,\r\n 'name': 'Earnestine Oneil',\r\n 'gender': 'female',\r\n 'company': 'CYTREK',\r\n 'email': 'earnestineoneil@cytrek.com',\r\n 'phone': '+1 (879) 541-3490',\r\n 'address': '442 Emerald Street, Graniteville, Hawaii, 1302',\r\n 'bd': '2017-07-07T10:34:33 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f78b816185ccd2b4b3',\r\n 'index': 55,\r\n 'guid': 'e66850ea-546b-4eb5-ae76-d66b0e727f44',\r\n 'isActive': true,\r\n 'balance': 3645.09,\r\n 'age': 21,\r\n 'name': 'Nicholson Mason',\r\n 'gender': 'male',\r\n 'company': 'TELEQUIET',\r\n 'email': 'nicholsonmason@telequiet.com',\r\n 'phone': '+1 (861) 528-3215',\r\n 'address': '261 Aitken Place, Cecilia, Ohio, 1381',\r\n 'bd': '2016-03-20T08:31:34 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f780f8bf8fbe24d75c',\r\n 'index': 56,\r\n 'guid': '40b999cd-00bf-46e0-9107-b44906d832e0',\r\n 'isActive': false,\r\n 'balance': 2477.66,\r\n 'age': 36,\r\n 'name': 'Linda Shaffer',\r\n 'gender': 'female',\r\n 'company': 'ZORK',\r\n 'email': 'lindashaffer@zork.com',\r\n 'phone': '+1 (828) 524-3011',\r\n 'address': '350 Plymouth Street, Waterford, Washington, 6715',\r\n 'bd': '2017-07-09T05:51:11 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f741e22fc19ffa6952',\r\n 'index': 57,\r\n 'guid': 'cc2ac19d-7d67-4f60-973a-369160a9c377',\r\n 'isActive': false,\r\n 'balance': 2651.39,\r\n 'age': 20,\r\n 'name': 'Montoya Riggs',\r\n 'gender': 'male',\r\n 'company': 'MARKETOID',\r\n 'email': 'montoyariggs@marketoid.com',\r\n 'phone': '+1 (809) 562-3786',\r\n 'address': '633 Monitor Street, Chicopee, District Of Columbia, 550',\r\n 'bd': '2016-02-05T12:36:05 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7de56ead40c26e69a',\r\n 'index': 58,\r\n 'guid': '6e0b06b8-1199-498c-8002-41f4972aa2d2',\r\n 'isActive': false,\r\n 'balance': 3463.92,\r\n 'age': 28,\r\n 'name': 'Walker Duran',\r\n 'gender': 'male',\r\n 'company': 'GEOFORM',\r\n 'email': 'walkerduran@geoform.com',\r\n 'phone': '+1 (868) 502-2553',\r\n 'address': '550 Kensington Walk, Wyano, Virginia, 7703',\r\n 'bd': '2017-08-18T12:39:37 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f70a04fe142269ea8d',\r\n 'index': 59,\r\n 'guid': 'c6733cd5-1e73-4317-b4bc-1a9e597581a4',\r\n 'isActive': true,\r\n 'balance': 3846.35,\r\n 'age': 26,\r\n 'name': 'Suzanne House',\r\n 'gender': 'female',\r\n 'company': 'SYBIXTEX',\r\n 'email': 'suzannehouse@sybixtex.com',\r\n 'phone': '+1 (892) 533-2739',\r\n 'address': '367 Harwood Place, Twilight, Oregon, 9799',\r\n 'bd': '2016-11-26T11:57:18 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7339943d94af3b39d',\r\n 'index': 60,\r\n 'guid': '4ff2c2aa-0573-4be1-a1c8-f684af8a5fbf',\r\n 'isActive': false,\r\n 'balance': 2717.94,\r\n 'age': 26,\r\n 'name': 'Lewis Oconnor',\r\n 'gender': 'male',\r\n 'company': 'EXOZENT',\r\n 'email': 'lewisoconnor@exozent.com',\r\n 'phone': '+1 (954) 582-2660',\r\n 'address': '717 Sutter Avenue, Bartley, Michigan, 1142',\r\n 'bd': '2017-08-21T08:25:00 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7d8e266ad1bc5daa8',\r\n 'index': 61,\r\n 'guid': '94667aad-86fc-4a2c-94fb-11b572307c75',\r\n 'isActive': false,\r\n 'balance': 2725.58,\r\n 'age': 39,\r\n 'name': 'Shelley Bonner',\r\n 'gender': 'female',\r\n 'company': 'INDEXIA',\r\n 'email': 'shelleybonner@indexia.com',\r\n 'phone': '+1 (965) 490-3768',\r\n 'address': '896 Clinton Avenue, Canoochee, Idaho, 1154',\r\n 'bd': '2016-04-11T06:08:29 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7e74a5af674e4cbdd',\r\n 'index': 62,\r\n 'guid': 'ec68c47e-7cbd-485e-8d54-fab1bb6ea008',\r\n 'isActive': true,\r\n 'balance': 1343.87,\r\n 'age': 29,\r\n 'name': 'Mccall Morales',\r\n 'gender': 'male',\r\n 'company': 'QUILITY',\r\n 'email': 'mccallmorales@quility.com',\r\n 'phone': '+1 (939) 455-2610',\r\n 'address': '325 Crystal Street, Harleigh, Wyoming, 5658',\r\n 'bd': '2014-11-20T07:30:04 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7efb231e53a0c94cd',\r\n 'index': 63,\r\n 'guid': '6a8b3f55-406c-4ae8-be59-94a0f8fbd180',\r\n 'isActive': false,\r\n 'balance': 1092.69,\r\n 'age': 37,\r\n 'name': 'Vera Mcpherson',\r\n 'gender': 'female',\r\n 'company': 'CIPROMOX',\r\n 'email': 'veramcpherson@cipromox.com',\r\n 'phone': '+1 (890) 500-3729',\r\n 'address': '771 Beard Street, Rivera, Minnesota, 4726',\r\n 'bd': '2017-07-13T02:47:50 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7e345c5dfc5d636e4',\r\n 'index': 64,\r\n 'guid': '46879caf-76e6-46e0-9b8b-bc17667a81ea',\r\n 'isActive': true,\r\n 'balance': 2077.12,\r\n 'age': 36,\r\n 'name': 'Gregory Roth',\r\n 'gender': 'male',\r\n 'company': 'EARWAX',\r\n 'email': 'gregoryroth@earwax.com',\r\n 'phone': '+1 (806) 595-2477',\r\n 'address': '349 Dunham Place, Sardis, Alabama, 3320',\r\n 'bd': '2017-11-08T02:26:23 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f77f5f9d730fab11e0',\r\n 'index': 65,\r\n 'guid': '9cfb8f58-7acf-4a39-bf2b-c90269c33db0',\r\n 'isActive': true,\r\n 'balance': 3503.58,\r\n 'age': 31,\r\n 'name': 'Russell Carver',\r\n 'gender': 'male',\r\n 'company': 'PREMIANT',\r\n 'email': 'russellcarver@premiant.com',\r\n 'phone': '+1 (849) 521-2335',\r\n 'address': '851 Noble Street, Holcombe, Oklahoma, 311',\r\n 'bd': '2016-07-10T10:08:35 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7cab10f461153989c',\r\n 'index': 66,\r\n 'guid': '2562a818-4451-4193-94cd-650d131ff097',\r\n 'isActive': false,\r\n 'balance': 1652.9,\r\n 'age': 21,\r\n 'name': 'Darlene Hurley',\r\n 'gender': 'female',\r\n 'company': 'STELAECOR',\r\n 'email': 'darlenehurley@stelaecor.com',\r\n 'phone': '+1 (868) 492-2270',\r\n 'address': '627 Wilson Street, Loveland, Louisiana, 765',\r\n 'bd': '2017-05-20T12:39:31 -06:00',\r\n 'imgUrl': \"/assets/images/face-1.png\"\r\n },\r\n {\r\n 'id': '5a7b73f7ecccc997e4160a59',\r\n 'index': 67,\r\n 'guid': '0050170f-0283-481d-9633-dc9d134be121',\r\n 'isActive': true,\r\n 'balance': 3692.88,\r\n 'age': 21,\r\n 'name': 'Lela Bailey',\r\n 'gender': 'female',\r\n 'company': 'AQUOAVO',\r\n 'email': 'lelabailey@aquoavo.com',\r\n 'phone': '+1 (917) 449-2329',\r\n 'address': '121 Adams Street, Malo, Arkansas, 7435',\r\n 'bd': '2016-11-06T04:55:46 -06:00'\r\n }\r\n ]\r\n}\r\n\r\n\r\n\r\nMock.onGet('/api/user/all').reply(config => {\r\n return [200, userDB.users]\r\n});\r\n\r\nMock.onGet('/api/user').reply((config) => {\r\n const id = config.data;\r\n const response = userDB.users.find((user) => user.id === id);\r\n return [200, response];\r\n});\r\n\r\nMock.onPost('/api/user/delete').reply(config => {\r\n let user = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n userDB.users.forEach(element => {\r\n if (element.id === user.id) {\r\n return [200, userDB.users.splice(index.i, 1)]\r\n }\r\n index.i++\r\n });\r\n return [200, userDB.users]\r\n});\r\n\r\n\r\nMock.onPost('/api/user/update').reply((config) => {\r\n let user = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n userDB.users.forEach(element => {\r\n if (element.id === user.id) {\r\n userDB.users[index.i] = user\r\n return [200, userDB.users]\r\n }\r\n index.i++\r\n });\r\n return [200, userDB.users]\r\n});\r\n\r\nMock.onPost('/api/user/add').reply((config) => {\r\n let user = JSON.parse(config.data);\r\n userDB.users.push(user)\r\n return [200, userDB.users]\r\n});","import Mock from \"../mock\";\r\nimport shortid from \"shortid\";\r\n\r\nconst inboxDB = {\r\n messages: [\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Henrik Gevorg\",\r\n photo: \"assets/images/face-1.jpg\"\r\n },\r\n date: new Date(\"1/25/2018\"),\r\n selected: false,\r\n subject: \"Welcome to Matx React Admin\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Gevorg Spartak\",\r\n photo: \"assets/images/face-2.jpg\"\r\n },\r\n date: new Date(\"4/3/2017\"),\r\n selected: false,\r\n subject: \"Confirm your email address\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n

\r\n Thanks
\r\n Mark`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Petros Toros\",\r\n photo: \"assets/images/face-3.jpg\"\r\n },\r\n date: new Date(\"1/20/2017\"),\r\n selected: false,\r\n subject: \"New order informations\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Henrik Gevorg\",\r\n photo: \"assets/images/face-1.jpg\"\r\n },\r\n date: new Date(\"1/8/2017\"),\r\n selected: false,\r\n subject: \"Welcome to Matx React Admin\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Gevorg Spartak\",\r\n photo: \"assets/images/face-2.jpg\"\r\n },\r\n date: new Date(\"10/3/2016\"),\r\n selected: false,\r\n subject: \"Confirm your email address\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n

\r\n Thanks
\r\n Mark`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Petros Toros\",\r\n photo: \"assets/images/face-4.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"New order informations\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Henrik Gevorg\",\r\n photo: \"assets/images/face-1.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"Welcome to Matx React Admin\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Gevorg Spartak\",\r\n photo: \"assets/images/face-2.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"Confirm your email address\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n

\r\n Thanks
\r\n Mark`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Petros Toros\",\r\n photo: \"assets/images/face-4.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"New order informations\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Gevorg Spartak\",\r\n photo: \"assets/images/face-2.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"Confirm your email address\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n

\r\n Thanks
\r\n Mark`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Petros Toros\",\r\n photo: \"assets/images/face-4.jpg\"\r\n },\r\n date: new Date(\"10/3/2015\"),\r\n selected: false,\r\n subject: \"New order informations\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.


\r\n Thanks
\r\n Jhone`\r\n },\r\n {\r\n id: shortid.generate(),\r\n sender: {\r\n name: \"Gevorg Spartak\",\r\n photo: \"assets/images/face-2.jpg\"\r\n },\r\n date: new Date(\"10/3/2012\"),\r\n selected: false,\r\n subject: \"Confirm your email address\",\r\n message: `

Natus consequuntur perspiciatis esse beatae illo quos eaque.

\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n
\r\n

Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi. Iusto ipsam, nihil? Eveniet modi maxime animi excepturi a dignissimos doloribus, \r\n inventore sed ratione, ducimus atque earum maiores tenetur officia commodi dicta tempora consequatur non nesciunt ipsam, \r\n consequuntur quia fuga aspernatur impedit et? Natus, earum.

\r\n
\r\n Earum, quisquam, fugit? Numquam dolor magni nisi? Suscipit odit, ipsam iusto enim culpa, \r\n temporibus vero possimus error voluptates sequi.\r\n

\r\n Thanks
\r\n Mark`\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/inbox/all\").reply(config => {\r\n return [200, inboxDB.messages];\r\n});\r\n\r\nMock.onGet(\"/api/inbox\").reply(config => {\r\n const id = config.data;\r\n const response = inboxDB.messages.find(message => message.id === id);\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/inbox/delete\").reply(config => {\r\n let message = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n inboxDB.messages.forEach(element => {\r\n if (element.id === message.id) {\r\n return [200, inboxDB.messages.splice(index.i, 1)];\r\n }\r\n index.i++;\r\n });\r\n return [200, inboxDB.messages];\r\n});\r\n\r\nMock.onPost(\"/api/inbox/update\").reply(config => {\r\n let message = JSON.parse(config.data);\r\n let index = { i: 0 };\r\n inboxDB.messages.forEach(element => {\r\n if (element.id === message.id) {\r\n inboxDB.messages[index.i] = message;\r\n return [200, inboxDB.messages];\r\n }\r\n index.i++;\r\n });\r\n return [200, inboxDB.messages];\r\n});\r\n\r\nMock.onPost(\"/api/inbox/add\").reply(config => {\r\n let message = JSON.parse(config.data);\r\n inboxDB.messages.push(message);\r\n return [200, inboxDB.messages];\r\n});\r\n","import Mock from \"../mock\";\r\nimport shortId from \"shortid\";\r\nimport * as _ from \"lodash\";\r\n\r\nconst ChatDB = {\r\n user: [\r\n {\r\n id: \"7863a6802ez0e277a0f98534\",\r\n name: \"John Doe\",\r\n avatar: \"assets/images/face-1.jpg\",\r\n status: \"online\",\r\n chatInfo: [\r\n {\r\n chatId: \"89564a680b3249760ea21fe77\",\r\n contactId: \"323sa680b3249760ea21rt47\",\r\n unread: 4,\r\n lastChatTime: \"2017-06-12T02:10:18.931Z\"\r\n },\r\n {\r\n chatId: \"3289564a680b2134760ea21fe7753\",\r\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\r\n unread: 0,\r\n lastChatTime: \"2019-03-10T02:10:18.931Z\"\r\n }\r\n ]\r\n }\r\n ],\r\n\r\n contacts: [\r\n {\r\n id: \"323sa680b3249760ea21rt47\",\r\n name: \"Frank Powell\",\r\n avatar: \"assets/images/faces/13.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"7863a6802ez0e277a0f98534\",\r\n name: \"John Doe\",\r\n avatar: \"assets/images/face-1.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"14663a3406eb47ffa63d4fec9429cb71\",\r\n name: \"Betty Diaz\",\r\n avatar: \"assets/images/faces/12.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n name: \"Brian Stephens\",\r\n avatar: \"assets/images/faces/3.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"3fc8e01f3ce649d1caf884fbf4f698e4\",\r\n name: \"Jacqueline Day\",\r\n avatar: \"assets/images/faces/16.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"e929b1d790ab49968ed8e34648553df4\",\r\n name: \"Arthur Mendoza\",\r\n avatar: \"assets/images/faces/10.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"d6caf04bba614632b5fecf91aebf4564\",\r\n name: \"Jeremy Lee\",\r\n avatar: \"assets/images/faces/9.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"be0fb188c8e242f097fafa24632107e4\",\r\n name: \"Johnny Newman\",\r\n avatar: \"assets/images/faces/5.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"dea902191b964a68ba5f2d93cff37e13\",\r\n name: \"Jeffrey Little\",\r\n avatar: \"assets/images/faces/15.jpg\",\r\n status: \"online\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"0bf58f5ccc4543a9f8747350b7bda3c7\",\r\n name: \"Barbara Romero\",\r\n avatar: \"assets/images/faces/4.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\r\n name: \"Daniel James\",\r\n avatar: \"assets/images/faces/2.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n },\r\n {\r\n id: \"97bfbdd9413e46efdaca2010400fe18c\",\r\n name: \"Alice Sanders\",\r\n avatar: \"assets/images/faces/17.jpg\",\r\n status: \"offline\",\r\n mood: \"\"\r\n }\r\n ],\r\n\r\n chatCollection: [\r\n {\r\n id: \"89564a680b3249760ea21fe77\",\r\n chats: [\r\n {\r\n contactId: \"323sa680b3249760ea21rt47\",\r\n text: \"Do you ever find yourself falling into the “discount trap?”\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Giving away your knowledge or product just to gain clients?\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"323sa680b3249760ea21rt47\",\r\n text: \"Yes\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Don’t feel bad. It happens to a lot of us\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"323sa680b3249760ea21rt47\",\r\n text: \"Do you ever find yourself falling into the “discount trap?”\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Giving away your knowledge or product just to gain clients?\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"323sa680b3249760ea21rt47\",\r\n text: \"Yes\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Don’t feel bad. It happens to a lot of us\",\r\n time: \"2018-02-10T08:45:28.291Z\"\r\n }\r\n ]\r\n },\r\n {\r\n id: \"3289564a680b2134760ea21fe7753\",\r\n chats: [\r\n {\r\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\r\n text: \"Do you ever find yourself falling into the “discount trap?”\",\r\n time: \"2019-03-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Giving away your knowledge or product just to gain clients?\",\r\n time: \"2019-03-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"14663a3406eb47ffa63d4fec9429cb71\",\r\n text: \"Yes\",\r\n time: \"2019-03-10T08:45:28.291Z\"\r\n },\r\n {\r\n contactId: \"7863a6802ez0e277a0f98534\",\r\n text: \"Don’t feel bad. It happens to a lot of us\",\r\n time: \"2019-03-10T08:45:28.291Z\"\r\n }\r\n ]\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/chat\").reply(config => {\r\n const id = config.data;\r\n const chats = ChatDB.chatCollection.find(collection => collection.id === id)\r\n .chats;\r\n const response = chats.map(chat => {\r\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\r\n return { ...chat, ...temp };\r\n });\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/chat/chat-room\").reply(config => {\r\n const { currentUser, contactId } = JSON.parse(config.data);\r\n\r\n const chatUser = ChatDB.user.find(user => user.id === currentUser);\r\n const chatRoom = chatUser.chatInfo.find(chat => chat.contactId === contactId);\r\n\r\n if (chatRoom) {\r\n const chats = ChatDB.chatCollection.find(\r\n collection => collection.id === chatRoom.chatId\r\n ).chats;\r\n const messageList = chats.map(chat => {\r\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\r\n return { ...chat, ...temp };\r\n });\r\n const response = {\r\n chatId: chatRoom.chatId,\r\n messageList,\r\n recentListUpdated: false\r\n };\r\n return [200, response];\r\n } else {\r\n let chatId = shortId.generate();\r\n ChatDB.user.map(user => {\r\n if (currentUser === user.id) {\r\n user.chatInfo.push({\r\n chatId,\r\n contactId,\r\n lastChatTime: Date.now(),\r\n unread: 0\r\n });\r\n }\r\n });\r\n ChatDB.chatCollection.push({\r\n id: chatId,\r\n chats: []\r\n });\r\n\r\n const response = {\r\n chatId,\r\n messageList: [],\r\n recentListUpdated: true\r\n };\r\n\r\n return [200, response];\r\n }\r\n});\r\n\r\nMock.onGet(\"/api/chat/contacts/recent\").reply(config => {\r\n let temp = { contact: \"\" };\r\n const id = config.data;\r\n const contacts = ChatDB.user.find(user => user.id === id).chatInfo;\r\n const response = contacts.map(contact => {\r\n temp.contact = ChatDB.contacts.find(user => user.id === contact.contactId);\r\n return { ...temp.contact, ...contact };\r\n });\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/chat/contacts/all\").reply(config => {\r\n const id = config.data;\r\n const response = ChatDB.contacts.filter(contact => contact.id !== id);\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/chat/contacts\").reply(config => {\r\n const id = config.data;\r\n const response = ChatDB.contacts.find(contact => contact.id === id);\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/chat/add\").reply(config => {\r\n let chatDetails = JSON.parse(config.data);\r\n let { chatId } = chatDetails;\r\n ChatDB.chatCollection.map(chatRoom => {\r\n if (chatId === chatRoom.id) {\r\n delete chatDetails.chatId;\r\n chatRoom.chats.push({ ...chatDetails });\r\n }\r\n });\r\n let chats = ChatDB.chatCollection.find(chatRoom => chatRoom.id === chatId)\r\n .chats;\r\n\r\n let response = chats.map(chat => {\r\n let temp = ChatDB.contacts.find(user => user.id === chat.contactId);\r\n return { ...chat, ...temp };\r\n });\r\n return [200, response];\r\n});\r\n","import Mock from \"../mock\";\r\nimport * as _ from \"lodash\";\r\n\r\nconst TodoDB = {\r\n todo: [\r\n {\r\n id: 1,\r\n title: \"API problem\",\r\n note: \"API is malfunctioning. kindly fix it\",\r\n important: true,\r\n starred: true,\r\n done: false,\r\n read: false,\r\n selected: false,\r\n startDate: new Date().toISOString(),\r\n dueDate: new Date().toISOString(),\r\n\r\n tag: [1, 2]\r\n },\r\n {\r\n id: 2,\r\n title: \"Mobile problem\",\r\n note: \"Mobile is malfunctioning. fix it\",\r\n important: false,\r\n starred: false,\r\n done: true,\r\n read: true,\r\n selected: false,\r\n startDate: new Date().toISOString(),\r\n dueDate: new Date().toISOString(),\r\n\r\n tag: [2]\r\n },\r\n {\r\n id: 3,\r\n title: \"API problem\",\r\n note: \"API is malfunctioning. fix it\",\r\n important: false,\r\n starred: false,\r\n done: true,\r\n read: false,\r\n selected: false,\r\n startDate: new Date().toISOString(),\r\n dueDate: new Date().toISOString(),\r\n\r\n tag: [1]\r\n },\r\n {\r\n id: 4,\r\n title: \"API problem\",\r\n note: \"API is malfunctioning. fix it\",\r\n important: false,\r\n starred: false,\r\n done: false,\r\n read: true,\r\n selected: false,\r\n startDate: new Date().toISOString(),\r\n dueDate: new Date().toISOString(),\r\n\r\n tag: [1, 2, 3]\r\n },\r\n {\r\n id: 5,\r\n title: \"API problem\",\r\n note: \"API is malfunctioning. fix it\",\r\n important: false,\r\n starred: false,\r\n done: true,\r\n read: false,\r\n selected: false,\r\n startDate: new Date().toISOString(),\r\n dueDate: new Date().toISOString(),\r\n\r\n tag: [1]\r\n }\r\n ],\r\n\r\n tag: [\r\n {\r\n id: 1,\r\n name: \"frontend\"\r\n },\r\n {\r\n id: 2,\r\n name: \"backend\"\r\n },\r\n {\r\n id: 3,\r\n name: \"API\"\r\n },\r\n {\r\n id: 4,\r\n name: \"issue\"\r\n },\r\n {\r\n id: 5,\r\n name: \"mobile\"\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/todo/all\").reply(config => {\r\n const response = TodoDB.todo;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/todo/tag\").reply(config => {\r\n const response = TodoDB.tag;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/todo\").reply(config => {\r\n const id = parseInt(config.data);\r\n\r\n const response = TodoDB.todo.find(todo => todo.id === id);\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/reorder\").reply(config => {\r\n let { todoList } = JSON.parse(config.data);\r\n\r\n TodoDB.todo = [...todoList];\r\n let response = TodoDB.todo;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/add\").reply(config => {\r\n let { todo } = JSON.parse(config.data);\r\n TodoDB.todo.push({ ...todo });\r\n let response = TodoDB.todo;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/tag/add\").reply(config => {\r\n let { tag } = JSON.parse(config.data);\r\n TodoDB.tag.push({ ...tag });\r\n let response = TodoDB.tag;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/update\").reply(config => {\r\n let { todo } = JSON.parse(config.data);\r\n\r\n TodoDB.todo.map((t, index) => {\r\n if (t.id === todo.id) {\r\n TodoDB.todo[index] = { ...todo };\r\n }\r\n return \"dummy value\";\r\n });\r\n\r\n let response = TodoDB.todo;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/delete\").reply(config => {\r\n let { todo } = JSON.parse(config.data);\r\n _.remove(TodoDB.todo, t => t.id === todo.id);\r\n let response = TodoDB.todo;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/todo/tag/delete\").reply(config => {\r\n let { tag } = JSON.parse(config.data);\r\n _.remove(TodoDB.tag, t => t.id === tag.id);\r\n let response = TodoDB.tag;\r\n return [200, response];\r\n});\r\n\r\n// Mock.onPost(\"/api/chat/create-chat-room\").reply(config => {\r\n// let data = JSON.parse(config.data);\r\n// let { id, chatId, ...rest } = data;\r\n// ChatDB.user.map(user => {\r\n// if (id === user.id) {\r\n// user.chatInfo.push({ chatId, ...rest });\r\n// }\r\n// });\r\n// ChatDB.chatCollection.push({\r\n// id: chatId,\r\n// chats: []\r\n// });\r\n\r\n// let temp;\r\n// let response = ChatDB.user\r\n// .find(user => user.id === id)\r\n// .chatInfo.map(contact => {\r\n// temp = ChatDB.contacts.find(user => user.id === contact.contactId);\r\n// return { ...temp, ...contact };\r\n// });\r\n// response = _.orderBy(response, [\"lastChatTime\"], [\"desc\"]);\r\n// console.log(response);\r\n\r\n// return [200, response];\r\n// });\r\n","import Mock from \"../mock\";\r\n\r\nconst ListDB = {\r\n list: [\r\n {\r\n id: 1,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Matx development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-2.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 2,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Matx development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-2.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 3,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Matx development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-3.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 5,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Gull development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-2.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 6,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Evalynn development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/iphone-1.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 7,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Dexum development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-2.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 8,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Matx development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-3.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n },\r\n {\r\n id: 9,\r\n email: \"uilib@gmail.com\",\r\n userName: \"ui lib\",\r\n projectName: \"Matx development\",\r\n date: new Date().toLocaleString(),\r\n projectImage: \"/assets/images/products/headphone-3.jpg\",\r\n userImage: \"/assets/images/face-1.jpg\",\r\n comment: 0,\r\n revision: 5\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/list/all\").reply(config => {\r\n const response = ListDB.list;\r\n return [200, response];\r\n});\r\n","import Mock from \"../mock\";\r\nimport * as _ from \"lodash\";\r\nimport shortId from \"shortid\";\r\n\r\n// board => list => cardList\r\n\r\nconst ScrumBoardDB = {\r\n boardList: [\r\n {\r\n id: \"c5d7498bbcb84d81fc7454448871ac6a6e\",\r\n title: \"Matx React\",\r\n list: [\r\n {\r\n id: shortId.generate(),\r\n title: \"Drag and Drop\",\r\n cardList: [\r\n {\r\n id: shortId.generate(),\r\n title: \"Beautiful DnD\",\r\n coverImage: \"/assets/images/sq-9.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"7863a6802ez0e277a0f98534\",\r\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n time: new Date()\r\n }\r\n ]\r\n },\r\n {\r\n id: shortId.generate(),\r\n title: \"Nested DnD\",\r\n coverImage: \"/assets/images/sq-11.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"323sa680b3249760ea21rt47\",\r\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n time: new Date()\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n id: shortId.generate(),\r\n title: \"Chat App\",\r\n cardList: [\r\n {\r\n id: shortId.generate(),\r\n title: \"Beautiful DnD\",\r\n coverImage: \"/assets/images/sq-11.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"e929b1d790ab49968ed8e34648553df4\",\r\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n time: new Date()\r\n }\r\n ]\r\n },\r\n {\r\n id: shortId.generate(),\r\n title: \"Nested DnD\",\r\n coverImage: \"/assets/images/sq-13.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"e929b1d790ab49968ed8e34648553df4\",\r\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n time: new Date()\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n members: [\r\n // only member id\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ]\r\n },\r\n {\r\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\r\n title: \"Matx Angular\",\r\n list: [\r\n {\r\n id: shortId.generate(),\r\n title: \"Drag and Drop\",\r\n cardList: [\r\n {\r\n id: shortId.generate(),\r\n title: \"Beautiful DnD\",\r\n coverImage: \"/assets/images/sq-9.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever s\",\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"e929b1d790ab49968ed8e34648553df4\",\r\n text: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.`,\r\n time: new Date()\r\n }\r\n ]\r\n },\r\n {\r\n id: shortId.generate(),\r\n title: \"Nested DnD\",\r\n coverImage: \"/assets/images/sq-11.jpg\",\r\n members: [\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ],\r\n labels: [2, 3, 4],\r\n description:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever s\",\r\n attachments: [\r\n {\r\n name: \"sky-life.jpg\",\r\n size: \"1.2 MB\",\r\n url: \"/assets/images/sq-9.jpg\"\r\n },\r\n {\r\n name: \"stair.jpg\",\r\n size: \"2.8 MB\",\r\n url: \"/assets/images/sq-11.jpg\"\r\n }\r\n ],\r\n comments: [\r\n {\r\n id: shortId.generate(),\r\n uid: \"e929b1d790ab49968ed8e34648553df4\",\r\n text:\r\n \"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.\",\r\n time: new Date()\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ],\r\n members: [\r\n // only member id\r\n \"323sa680b3249760ea21rt47\",\r\n \"7863a6802ez0e277a0f98534\",\r\n \"14663a3406eb47ffa63d4fec9429cb71\",\r\n \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n \"e929b1d790ab49968ed8e34648553df4\"\r\n ]\r\n }\r\n ],\r\n\r\n labels: [\r\n {\r\n id: 1,\r\n title: \"Active\",\r\n color: \"primary\"\r\n },\r\n {\r\n id: 2,\r\n title: \"Complete\",\r\n color: \"green\"\r\n },\r\n {\r\n id: 3,\r\n title: \"Ready\",\r\n color: \"secondary\"\r\n },\r\n {\r\n id: 4,\r\n title: \"High Priority\",\r\n color: \"error\"\r\n }\r\n ],\r\n\r\n members: [\r\n {\r\n id: \"1\",\r\n name: \"John Doe\",\r\n avatar: \"/assets/images/face-7.jpg\"\r\n },\r\n {\r\n id: \"323sa680b3249760ea21rt47\",\r\n name: \"Frank Powell\",\r\n avatar: \"/assets/images/faces/13.jpg\"\r\n },\r\n {\r\n id: \"7863a6802ez0e277a0f98534\",\r\n name: \"John Doe\",\r\n avatar: \"/assets/images/face-1.jpg\"\r\n },\r\n {\r\n id: \"14663a3406eb47ffa63d4fec9429cb71\",\r\n name: \"Betty Diaz\",\r\n avatar: \"/assets/images/faces/12.jpg\"\r\n },\r\n {\r\n id: \"43bd9bc59d164b5aea498e3ae1c24c3c\",\r\n name: \"Brian Stephens\",\r\n avatar: \"/assets/images/faces/3.jpg\"\r\n },\r\n {\r\n id: \"3fc8e01f3ce649d1caf884fbf4f698e4\",\r\n name: \"Jacqueline Day\",\r\n avatar: \"/assets/images/faces/16.jpg\"\r\n },\r\n {\r\n id: \"e929b1d790ab49968ed8e34648553df4\",\r\n name: \"Arthur Mendoza\",\r\n avatar: \"/assets/images/faces/10.jpg\"\r\n },\r\n {\r\n id: \"d6caf04bba614632b5fecf91aebf4564\",\r\n name: \"Jeremy Lee\",\r\n avatar: \"/assets/images/faces/9.jpg\"\r\n },\r\n {\r\n id: \"be0fb188c8e242f097fafa24632107e4\",\r\n name: \"Johnny Newman\",\r\n avatar: \"/assets/images/faces/5.jpg\"\r\n },\r\n {\r\n id: \"dea902191b964a68ba5f2d93cff37e13\",\r\n name: \"Jeffrey Little\",\r\n avatar: \"/assets/images/faces/15.jpg\"\r\n },\r\n {\r\n id: \"0bf58f5ccc4543a9f8747350b7bda3c7\",\r\n name: \"Barbara Romero\",\r\n avatar: \"/assets/images/faces/4.jpg\"\r\n },\r\n {\r\n id: \"c5d7498bbcb84d81fc72168871ac6a6e\",\r\n name: \"Daniel James\",\r\n avatar: \"/assets/images/faces/2.jpg\"\r\n },\r\n {\r\n id: \"97bfbdd9413e46efdaca2010400fe18c\",\r\n name: \"Alice Sanders\",\r\n avatar: \"/assets/images/faces/17.jpg\"\r\n }\r\n ]\r\n};\r\n\r\n// a little function to help us with reordering the result\r\nconst reorder = (list, startIndex, endIndex) => {\r\n const result = Array.from(list);\r\n const [removed] = result.splice(startIndex, 1);\r\n result.splice(endIndex, 0, removed);\r\n\r\n return result;\r\n};\r\n\r\n// Moves an item from one list to another list.\r\nconst move = (source, destination, droppableSource, droppableDestination) => {\r\n const sourceClone = Array.from(source);\r\n const destClone = Array.from(destination);\r\n const [removed] = sourceClone.splice(droppableSource.index, 1);\r\n\r\n destClone.splice(droppableDestination.index, 0, removed);\r\n\r\n const result = {};\r\n result[droppableSource.droppableId] = sourceClone;\r\n result[droppableDestination.droppableId] = destClone;\r\n\r\n return result;\r\n};\r\n\r\nconst getBoardWithMemberDetails = board => {\r\n const members = board.members.map(id => {\r\n return ScrumBoardDB.members.find(member => member.id === id);\r\n });\r\n return { ...board, members };\r\n};\r\n\r\nMock.onGet(\"/api/scrum-board/all-member\").reply(config => {\r\n return [200, [...ScrumBoardDB.members]];\r\n});\r\n\r\nMock.onGet(\"/api/scrum-board/all-label\").reply(config => {\r\n return [200, [...ScrumBoardDB.labels]];\r\n});\r\n\r\nMock.onGet(\"/api/scrum-board/all-board\").reply(config => {\r\n const response = ScrumBoardDB.boardList.map(board =>\r\n _.pick(board, [\"id\", \"title\"])\r\n );\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/add-board\").reply(config => {\r\n let title = config.data;\r\n ScrumBoardDB.boardList.push({\r\n id: shortId.generate(),\r\n title,\r\n list: [],\r\n members: []\r\n });\r\n\r\n const response = ScrumBoardDB.boardList.map(board =>\r\n _.pick(board, [\"id\", \"title\"])\r\n );\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/scrum-board\").reply(config => {\r\n const id = config.data;\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === id);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/scrum-board\").reply(config => {\r\n const id = config.data;\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === id);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/add-member\").reply(config => {\r\n let { boardId, memberId } = JSON.parse(config.data);\r\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n\r\n board.members.push(memberId);\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/delete-member\").reply(config => {\r\n let { boardId, memberId } = JSON.parse(config.data);\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n board.members.splice(board.members.indexOf(memberId), 1);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/add-column\").reply(config => {\r\n let { boardId, listTitle } = JSON.parse(config.data);\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n board.list.push({\r\n id: shortId.generate(),\r\n title: listTitle,\r\n cardList: []\r\n });\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/rename-column\").reply(config => {\r\n let { boardId, listTitle, listId } = JSON.parse(config.data);\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n board.list.map(column => {\r\n if (column.id === listId) {\r\n column.title = listTitle;\r\n }\r\n return column;\r\n });\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/delete-column\").reply(config => {\r\n let { boardId, listId } = JSON.parse(config.data);\r\n\r\n const board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n let deleteIndex = null;\r\n\r\n board.list.map((column, index) => {\r\n if (column.id === listId) deleteIndex = index;\r\n });\r\n\r\n board.list.splice(deleteIndex, 1);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/add-card\").reply(config => {\r\n let { boardId, cardTitle, listId } = JSON.parse(config.data);\r\n\r\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n let column = board.list.find(column => column.id === listId);\r\n\r\n column.cardList.push({\r\n id: shortId.generate(),\r\n title: cardTitle,\r\n members: [],\r\n labels: [],\r\n comments: [],\r\n attachments: []\r\n });\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/update-card\").reply(config => {\r\n let { boardId, listId, card } = JSON.parse(config.data);\r\n\r\n let boardList = ScrumBoardDB.boardList.map(board => {\r\n if (board.id === boardId) {\r\n return {\r\n ...board,\r\n list: board.list.map(column => {\r\n if (column.id === listId) {\r\n return {\r\n ...column,\r\n cardList: column.cardList.map(item => {\r\n if (item.id === card.id) {\r\n return { ...card };\r\n }\r\n return { ...item };\r\n })\r\n };\r\n }\r\n return column;\r\n })\r\n };\r\n }\r\n return board;\r\n });\r\n\r\n ScrumBoardDB.boardList = [...boardList];\r\n\r\n let board = boardList.find(item => item.id === boardId);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/reorder-list\").reply(config => {\r\n let { boardId, startIndex, endIndex } = JSON.parse(config.data);\r\n\r\n ScrumBoardDB.boardList = ScrumBoardDB.boardList.map(board => {\r\n if (board.id === boardId) {\r\n return {\r\n ...board,\r\n list: reorder(board.list, startIndex, endIndex)\r\n };\r\n }\r\n return board;\r\n });\r\n\r\n let board = ScrumBoardDB.boardList.find(item => item.id === boardId);\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/reorder-card\").reply(config => {\r\n let { boardId, listId, startIndex, endIndex } = JSON.parse(config.data);\r\n\r\n ScrumBoardDB.boardList = ScrumBoardDB.boardList.map(board => {\r\n if (board.id === boardId) {\r\n return {\r\n ...board,\r\n list: board.list.map(list => {\r\n if (list.id === listId) {\r\n return {\r\n ...list,\r\n cardList: reorder(list.cardList, startIndex, endIndex)\r\n };\r\n }\r\n return list;\r\n })\r\n };\r\n }\r\n return board;\r\n });\r\n\r\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/scrum-board/move-card\").reply(config => {\r\n let {\r\n boardId,\r\n sourcelistId,\r\n destinationlistId,\r\n source,\r\n destination\r\n } = JSON.parse(config.data);\r\n let board = ScrumBoardDB.boardList.find(board => board.id === boardId);\r\n\r\n let [movedItem] = board.list\r\n .find(list => list.id === sourcelistId)\r\n .cardList.splice(source.index, 1);\r\n\r\n board.list\r\n .find(list => list.id === destinationlistId)\r\n .cardList.splice(destination.index, 0, movedItem);\r\n\r\n const response = getBoardWithMemberDetails(board);\r\n\r\n return [200, response];\r\n});\r\n","import Mock from \"../mock\";\r\nimport shortId from \"shortid\";\r\n\r\nconst NotificationDB = {\r\n list: [\r\n {\r\n id: shortId.generate(),\r\n heading: \"Message\",\r\n icon: {\r\n name: \"chat\",\r\n color: \"primary\"\r\n },\r\n timestamp: 1570702802573,\r\n title: \"New message from Devid\",\r\n subtitle: \"Hello, Let's chit chat...\",\r\n path: \"chat\"\r\n },\r\n {\r\n id: shortId.generate(),\r\n heading: \"Alert\",\r\n icon: {\r\n name: \"notifications\",\r\n color: \"error\"\r\n },\r\n timestamp: 1570702702573,\r\n title: \"Server overloaded\",\r\n subtitle: \"Traffice reached 2M\",\r\n path: \"page-layouts/user-profile\"\r\n },\r\n {\r\n id: shortId.generate(),\r\n heading: \"Message\",\r\n icon: {\r\n name: \"chat\",\r\n color: \"primary\"\r\n },\r\n timestamp: 1570502502573,\r\n title: \"New message from Goustove\",\r\n subtitle: \"Hello, Let's chit chat...\",\r\n path: \"chat\"\r\n }\r\n ]\r\n};\r\n\r\nMock.onGet(\"/api/notification\").reply(config => {\r\n const response = NotificationDB.list;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/notification/add\").reply(config => {\r\n const response = NotificationDB.list;\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/notification/delete\").reply(config => {\r\n let { id } = JSON.parse(config.data);\r\n console.log(id);\r\n\r\n const response = NotificationDB.list.filter(\r\n notification => notification.id !== id\r\n );\r\n NotificationDB.list = [...response];\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/notification/delete-all\").reply(config => {\r\n NotificationDB.list = [];\r\n const response = NotificationDB.list;\r\n return [200, response];\r\n});\r\n","import Mock from \"../mock\";\r\nimport shortId from \"shortid\";\r\n\r\nconst EcommerceDB = {\r\n productList: [\r\n {\r\n id: \"323sa680b32497dsfdsgga21rt47\",\r\n imgUrl: \"/assets/images/products/speaker-1.jpg\",\r\n price: 324.0,\r\n title: \"Bass Speaker Venue 8 - 8 - Intel Atom - 16GB - Black\",\r\n category: \"audio\",\r\n brand: \"Microlab\",\r\n rating: 1,\r\n freeShipping: false,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: \"323sa680b324976dfgga21rt47\",\r\n imgUrl: \"/assets/images/products/speaker-2.jpg\",\r\n price: 454.0,\r\n title: \"Bass Speaker\",\r\n category: \"audio\",\r\n brand: \"Microlab\",\r\n rating: 3,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/headphone-1.jpg\",\r\n price: 134.0,\r\n title: \"Bass Speaker\",\r\n category: \"audio\",\r\n brand: \"Sony\",\r\n rating: 4,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/headphone-2.jpg\",\r\n price: 987.0,\r\n title: \"Bit Bass Headphone\",\r\n category: \"audio\",\r\n brand: \"Sony\",\r\n rating: 5,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/headphone-3.jpg\",\r\n price: 870.0,\r\n title: \"Sony Headphone\",\r\n category: \"audio\",\r\n brand: \"Sony\",\r\n rating: 4,\r\n freeShipping: false,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/watch-1.jpg\",\r\n price: 23.0,\r\n title: \"Comlion Watch\",\r\n category: \"fashion\",\r\n brand: \"Comlion\",\r\n rating: 3,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: \"323sa680b32497dfdfgga21rt47\",\r\n imgUrl: \"/assets/images/products/speaker-2.jpg\",\r\n price: 454.0,\r\n title: \"Bass Speaker\",\r\n category: \"audio\",\r\n brand: \"Microlab\",\r\n rating: 1,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/headphone-4.jpg\",\r\n price: 299.0,\r\n title: \"Beats Headphone\",\r\n category: \"audio\",\r\n brand: \"Beats\",\r\n rating: 5,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/iphone-1.jpg\",\r\n price: 978.0,\r\n title: \"Iphone 11 Max Pro\",\r\n category: \"cellphone\",\r\n brand: \"Iphone\",\r\n rating: 2,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/iphone-2.jpg\",\r\n price: 12.0,\r\n title: \"IPhone 11 Max Pro Case\",\r\n category: \"accessories\",\r\n brand: \"Iphone\",\r\n rating: 4,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/watch-1.jpg\",\r\n price: 23.0,\r\n title: \"Comlion Watch\",\r\n category: \"fashion\",\r\n brand: \"Comlion\",\r\n rating: 1,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/watch-2.jpg\",\r\n price: 75.0,\r\n title: \"Kurren Watch\",\r\n category: \"fashion\",\r\n brand: \"Kurren\",\r\n rating: 3,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n },\r\n {\r\n id: shortId.generate(),\r\n imgUrl: \"/assets/images/products/iphone-1.jpg\",\r\n price: 978.0,\r\n title: \"Iphone 11 Max Pro\",\r\n category: \"cellphone\",\r\n brand: \"Iphone\",\r\n rating: 5,\r\n freeShipping: true,\r\n description: `Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.`\r\n }\r\n ],\r\n\r\n category: [\r\n {\r\n title: \"audio\",\r\n product: 321\r\n },\r\n {\r\n title: \"fashion\",\r\n product: 123\r\n },\r\n {\r\n title: \"cellphone\",\r\n product: 546\r\n },\r\n {\r\n title: \"accessories\",\r\n product: 76\r\n }\r\n ],\r\n\r\n brand: [\r\n {\r\n title: \"Microlab\",\r\n product: 32\r\n },\r\n {\r\n title: \"Sony\",\r\n product: 534\r\n },\r\n {\r\n title: \"Beats\",\r\n product: 23\r\n },\r\n {\r\n title: \"Iphone\",\r\n product: 65\r\n },\r\n {\r\n title: \"Comlion\",\r\n product: 198\r\n }\r\n ],\r\n\r\n rating: [\r\n {\r\n rate: 5,\r\n product: 345\r\n },\r\n {\r\n rate: 4,\r\n product: 53\r\n },\r\n {\r\n rate: 3,\r\n product: 765\r\n },\r\n {\r\n rate: 2,\r\n product: 32\r\n },\r\n {\r\n rate: 1,\r\n product: 64\r\n }\r\n ],\r\n\r\n cart: [\r\n {\r\n uid: \"1\",\r\n list: [\r\n {\r\n productId: \"323sa680b324976dfgga21rt47\",\r\n amount: 1\r\n }\r\n ]\r\n }\r\n ],\r\n\r\n userList: [\r\n {\r\n id: \"1\",\r\n name: \"John Doe\",\r\n avatar: \"/assets/images/face-7.jpg\"\r\n },\r\n {\r\n id: \"323sa680b3249760ea21rt47\",\r\n name: \"Frank Powell\",\r\n avatar: \"/assets/images/faces/13.jpg\"\r\n },\r\n {\r\n id: \"7863a6802ez0e277a0f98534\",\r\n name: \"John Doe\",\r\n avatar: \"/assets/images/face-1.jpg\"\r\n }\r\n ]\r\n};\r\n\r\nconst getDetailedCartList = uid => {\r\n let cartList = EcommerceDB.cart.find(userCart => userCart.uid == uid).list;\r\n return cartList.map(product => ({\r\n amount: product.amount,\r\n ...EcommerceDB.productList.find(item => item.id === product.productId)\r\n }));\r\n};\r\n\r\nMock.onGet(\"/api/ecommerce/get-product-list\").reply(config => {\r\n const response = EcommerceDB.productList;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/ecommerce/get-category-list\").reply(config => {\r\n const response = EcommerceDB.category;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/ecommerce/get-rating-list\").reply(config => {\r\n const response = EcommerceDB.rating;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/ecommerce/get-brand-list\").reply(config => {\r\n const response = EcommerceDB.brand;\r\n return [200, response];\r\n});\r\n\r\nMock.onGet(\"/api/ecommerce/get-cart-list\").reply(config => {\r\n let uid = config.data;\r\n let response = [];\r\n\r\n if (uid) {\r\n response = getDetailedCartList(uid);\r\n }\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/ecommerce/add-to-cart\").reply(config => {\r\n let { uid, productId } = JSON.parse(config.data);\r\n\r\n let cartList = EcommerceDB.cart.map(userCart => {\r\n if (userCart.uid === uid) {\r\n let product = userCart.list.find(\r\n product => product.productId === productId\r\n );\r\n if (product) {\r\n return {\r\n ...userCart,\r\n list: userCart.list.map(product => {\r\n if (product.productId === productId) {\r\n return {\r\n ...product,\r\n amount: product.amount + 1\r\n };\r\n } else return product;\r\n })\r\n };\r\n } else {\r\n userCart.list.push({\r\n productId,\r\n amount: 1\r\n });\r\n return userCart;\r\n }\r\n } else return userCart;\r\n });\r\n\r\n EcommerceDB.cart = cartList;\r\n\r\n const response = getDetailedCartList(uid);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/ecommerce/delete-from-cart\").reply(config => {\r\n let { uid, productId } = JSON.parse(config.data);\r\n\r\n let cartList = EcommerceDB.cart.map(userCart => {\r\n if (userCart.uid === uid) {\r\n return {\r\n ...userCart,\r\n list: userCart.list.filter(product => product.productId !== productId)\r\n };\r\n } else return userCart;\r\n });\r\n\r\n EcommerceDB.cart = cartList;\r\n\r\n const response = getDetailedCartList(uid);\r\n\r\n return [200, response];\r\n});\r\n\r\nMock.onPost(\"/api/ecommerce/update-cart-amount\").reply(config => {\r\n let { uid, productId, amount } = JSON.parse(config.data);\r\n\r\n let cartList = EcommerceDB.cart.map(userCart => {\r\n if (userCart.uid === uid) {\r\n return {\r\n ...userCart,\r\n list: userCart.list.map(product => {\r\n if (product.productId === productId) {\r\n product.amount = amount;\r\n }\r\n return product;\r\n })\r\n };\r\n } else return userCart;\r\n });\r\n\r\n EcommerceDB.cart = cartList;\r\n\r\n const response = getDetailedCartList(uid);\r\n\r\n return [200, response];\r\n});\r\n","import Mock from \"./mock\";\r\n\r\nimport \"./db/invoice\";\r\nimport \"./db/calendarEvents\";\r\nimport \"./db/users\";\r\nimport \"./db/inbox\";\r\nimport \"./db/chat\";\r\nimport \"./db/todos\";\r\nimport \"./db/list\";\r\nimport \"./db/scrumBoard\";\r\nimport \"./db/notification\";\r\nimport \"./db/ecommerce\";\r\n\r\nMock.onAny().passThrough();\r\n","import React, { Component } from \"react\";\r\nimport { MuiThemeProvider } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { setLayoutSettings } from \"app/redux/actions/LayoutActions\";\r\n// import cssVars from \"css-vars-ponyfill\";\r\n\r\nimport { Helmet } from \"react-helmet\";\r\n\r\nclass MatxTheme extends Component {\r\n componentWillReceiveProps() {\r\n // cssVars();\r\n }\r\n\r\n componentWillUpdate() {\r\n // cssVars();\r\n }\r\n\r\n render() {\r\n let { children, settings } = this.props;\r\n let activeTheme = { ...settings.themes[settings.activeTheme] };\r\n // console.log(activeTheme);\r\n\r\n // activeTheme.direction = settings.direction;\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nMatxTheme.propTypes = {\r\n setLayoutSettings: PropTypes.func.isRequired,\r\n settings: PropTypes.object.isRequired\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n settings: state.layout.settings,\r\n setLayoutSettings: PropTypes.func.isRequired\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n { setLayoutSettings }\r\n)(MatxTheme);\r\n","import { MatxLoadable } from \"matx\";\r\nimport { authRoles } from \"../../auth/authRoles\";\r\n\r\nconst Analytics = MatxLoadable({\r\n loader: () => import(\"./Analytics\")\r\n})\r\n\r\nconst dashboardRoutes = [\r\n {\r\n path: \"/dashboard/analytics\",\r\n component: Analytics,\r\n // auth: ['AllowedToManageAccount']\r\n }\r\n];\r\n\r\nexport default dashboardRoutes;\r\n","import {MatxLoadable} from \"matx\";\r\n\r\nconst Color = MatxLoadable({\r\n loader: () => import(\"./Color\")\r\n});\r\nconst Spacing = MatxLoadable({\r\n loader: () => import(\"./Spacing\")\r\n});\r\nconst Typography = MatxLoadable({\r\n loader: () => import(\"./Typography\")\r\n});\r\nconst Display = MatxLoadable({\r\n loader: () => import(\"./Display\")\r\n});\r\n\r\nconst utilitiesRoutes = [\r\n {\r\n path: '/utilities/color',\r\n component: Color\r\n },\r\n {\r\n path: \"/utilities/spacing\",\r\n component: Spacing\r\n },\r\n {\r\n path: \"/utilities/typography\",\r\n component: Typography\r\n },\r\n {\r\n path: \"/utilities/display\",\r\n component: Display\r\n },\r\n]\r\n\r\nexport default utilitiesRoutes;","import React, { Component } from \"react\";\r\nimport {\r\n Card,\r\n Checkbox,\r\n FormControlLabel,\r\n Grid,\r\n Button\r\n} from \"@material-ui/core\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { connect } from \"react-redux\";\r\n\r\nclass SignUp extends Component {\r\n state = {\r\n username: \"\",\r\n email: \"\",\r\n password: \"\",\r\n agreement: \"\"\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n this.setState({\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n\r\n handleFormSubmit = event => {};\r\n render() {\r\n let { username, email, password } = this.state;\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n }\r\n label=\"I have read and agree to the terms of service.\"\r\n />\r\n
\r\n \r\n Sign up\r\n \r\n or\r\n \r\n this.props.history.push(\"/session/signin\")\r\n }\r\n >\r\n Sign in\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n // setUser: PropTypes.func.isRequired\r\n});\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n {}\r\n)(SignUp);\r\n","const firebaseConfig = {\r\n apiKey: \"YOUR API KEY\",\r\n authDomain: \"AUTH DOMAIN\",\r\n databaseURL: \"DATABASE URL\",\r\n projectId: \"PROJECT ID\",\r\n storageBucket: \"STORAGE BUCKET\",\r\n messagingSenderId: \"MESSAGING SENDER ID\",\r\n appId: \"APP ID\"\r\n};\r\n\r\nexport default firebaseConfig;\r\n","import firebase from \"firebase/app\";\r\nimport \"firebase/auth\";\r\nimport \"firebase/firebase-firestore\";\r\nimport firebaseConfig from \"./firebaseConfig\";\r\n\r\nclass FirebaseAuthService {\r\n auth;\r\n firestore;\r\n // database;\r\n // storage;\r\n\r\n googleProvider;\r\n facebookProvider;\r\n twitterProvider;\r\n\r\n constructor() {\r\n // UNCOMMENT IF YOU WANT TO USE FIREBASE\r\n\r\n // this.init();\r\n // this.auth = firebase.auth();\r\n // this.firestore = firebase.firestore();\r\n\r\n // this.database = firebase.database();\r\n // this.storage = firebase.storage();\r\n \r\n // this.googleProvider = new firebase.auth.GoogleAuthProvider();\r\n // this.facebookProvider = new firebase.auth.FacebookAuthProvider();\r\n // this.twitterProvider = new firebase.auth.TwitterAuthProvider();\r\n }\r\n\r\n init = () => {\r\n firebase.initializeApp(firebaseConfig);\r\n };\r\n\r\n checkAuthStatus = callback => {\r\n this.auth.onAuthStateChanged(callback);\r\n };\r\n\r\n signUpWithEmailAndPassword = (email, password) => {\r\n return this.auth.createUserWithEmailAndPassword(email, password);\r\n };\r\n\r\n signInWithEmailAndPassword = (email, password) => {\r\n return this.auth.signInWithEmailAndPassword(email, password);\r\n };\r\n\r\n signInWithPopup = media => {\r\n switch (media) {\r\n case \"google\":\r\n return this.auth.signInWithPopup(this.googleProvider);\r\n\r\n case \"facebook\":\r\n return this.auth.signInWithPopup(this.facebookProvider);\r\n\r\n case \"twitter\":\r\n return this.auth.signInWithPopup(this.twitterProvider);\r\n\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n signInWithPhoneNumber = phoneNumber => {\r\n return this.auth.signInWithPhoneNumber(phoneNumber);\r\n };\r\n\r\n getUserData = docId => {\r\n // generally it's better to use uid for docId\r\n this.firestore\r\n .collection(\"users\")\r\n .doc(docId)\r\n .get()\r\n .then(doc => {\r\n console.log(doc.data());\r\n });\r\n };\r\n\r\n getAllUser = () => {\r\n this.firestore\r\n .collection(\"users\")\r\n .get()\r\n .then(docList => {\r\n docList.forEach(doc => {\r\n console.log(doc.data());\r\n });\r\n });\r\n };\r\n\r\n signOut = () => {\r\n return this.auth.signOut();\r\n };\r\n}\r\n\r\nconst instance = new FirebaseAuthService();\r\n\r\nexport default instance;\r\n","import jwtAuthService from \"../../services/jwtAuthService\";\r\nimport authentificationService from \"../../services/authentificationService\";\r\nimport FirebaseAuthService from \"../../services/firebase/firebaseAuthService\";\r\nimport { setUserData } from \"./UserActions\";\r\nimport history from \"history.js\";\r\n\r\nexport const LOGIN_ERROR = \"LOGIN_ERROR\";\r\nexport const LOGIN_SUCCESS = \"LOGIN_SUCCESS\";\r\nexport const LOGIN_LOADING = \"LOGIN_LOADING\";\r\nexport const RESET_PASSWORD = \"RESET_PASSWORD\";\r\n\r\nexport function loginWithEmailAndPassword({ email, password }) {\r\n return dispatch => {\r\n dispatch({\r\n type: LOGIN_LOADING\r\n });\r\n\r\n authentificationService\r\n .loginWithEmailAndPassword(email, password)\r\n .then(resp => {\r\n dispatch(setUserData(resp));\r\n if (resp.Success) {\r\n history.push({\r\n pathname: \"/\"\r\n });\r\n return dispatch({\r\n type: LOGIN_SUCCESS\r\n });\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/session/signin\"\r\n });\r\n return dispatch({\r\n type: LOGIN_ERROR,\r\n payload: resp.Message\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: LOGIN_ERROR,\r\n payload: error\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport function resetPassword({ email }) {\r\n return dispatch => {\r\n dispatch({\r\n payload: email,\r\n type: RESET_PASSWORD\r\n });\r\n };\r\n}\r\n\r\nexport function firebaseLoginEmailPassword({ email, password }) {\r\n return dispatch => {\r\n FirebaseAuthService.signInWithEmailAndPassword(email, password)\r\n .then(user => {\r\n if (user) {\r\n dispatch(\r\n setUserData({\r\n // userId: \"1\",\r\n // role: \"ADMIN\",\r\n // displayName: \"Watson Joyce\",\r\n // email: \"watsonjoyce@gmail.com\",\r\n // photoURL: \"/assets/images/face-7.jpg\",\r\n // age: 25,\r\n // token: \"faslkhfh423oiu4h4kj432rkj23h432u49ufjaklj423h4jkhkjh\",\r\n // ...user\r\n })\r\n );\r\n\r\n history.push({\r\n pathname: \"/\"\r\n });\r\n\r\n return dispatch({\r\n type: LOGIN_SUCCESS\r\n });\r\n } else {\r\n return dispatch({\r\n type: LOGIN_ERROR,\r\n payload: \"Login Failed\"\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: LOGIN_ERROR,\r\n payload: error\r\n });\r\n });\r\n };\r\n}\r\n","import React, { Component } from \"react\";\r\nimport {\r\n Card,\r\n Checkbox,\r\n FormControlLabel,\r\n Grid,\r\n Button,\r\n withStyles,\r\n CircularProgress\r\n} from \"@material-ui/core\";\r\nimport { TextValidator, ValidatorForm } from \"react-material-ui-form-validator\";\r\nimport { connect } from \"react-redux\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport { loginWithEmailAndPassword } from \"../../redux/actions/LoginActions\";\r\n\r\nconst styles = theme => ({\r\n wrapper: {\r\n position: \"relative\"\r\n },\r\n\r\n buttonProgress: {\r\n position: \"absolute\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n});\r\n\r\nclass SignIn extends Component {\r\n state = {\r\n email: \"\",\r\n password: \"\",\r\n agreement: \"\"\r\n };\r\n handleChange = event => {\r\n event.persist();\r\n this.setState({\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n handleFormSubmit = event => {\r\n this.props.loginWithEmailAndPassword({ ...this.state });\r\n };\r\n render() {\r\n let { email, password } = this.state;\r\n let { classes } = this.props;\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n Connexion\r\n \r\n {this.props.login.loading && (\r\n \r\n )}\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n loginWithEmailAndPassword: PropTypes.func.isRequired,\r\n login: state.login\r\n});\r\nexport default withStyles(styles, { withTheme: true })(\r\n withRouter(\r\n connect(\r\n mapStateToProps,\r\n { loginWithEmailAndPassword }\r\n )(SignIn)\r\n )\r\n);\r\n","import React, { Component } from \"react\";\r\nimport { Button } from \"@material-ui/core\";\r\n\r\nclass NotFound extends Component {\r\n state = {};\r\n render() {\r\n return (\r\n
\r\n
\r\n \"\"\r\n this.props.history.push(\"/\")}\r\n >\r\n Back to Dashboard\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default NotFound;\r\n","import React, { Component } from \"react\";\r\nimport {\r\n Card,\r\n Grid,\r\n Button,\r\n withStyles,\r\n CircularProgress\r\n} from \"@material-ui/core\";\r\nimport { TextValidator, ValidatorForm } from \"react-material-ui-form-validator\";\r\nimport { connect } from \"react-redux\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport { resetPassword } from \"../../redux/actions/LoginActions\";\r\n\r\nclass ForgotPassword extends Component {\r\n state = {\r\n email: \"watson@example.com\"\r\n };\r\n handleChange = event => {\r\n event.persist();\r\n this.setState({\r\n [event.target.name]: event.target.value\r\n });\r\n };\r\n handleFormSubmit = () => {\r\n this.props.resetPassword({ ...this.state });\r\n };\r\n render() {\r\n let { email } = this.state;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n or\r\n \r\n this.props.history.push(\"/session/signin\")\r\n }\r\n >\r\n Sign in\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n resetPassword: PropTypes.func.isRequired,\r\n login: state.login\r\n});\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n { resetPassword }\r\n )(ForgotPassword)\r\n);\r\n","import axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\nimport history from \"history.js\";\r\n\r\n// Quiz Actions\r\nexport const GET_QUIZ_LIST = \"GET_QUIZ_LIST\";\r\nexport const QUIZ_ACTION_LOADING = \"QUIZ_ACTION_LOADING\";\r\nexport const QUIZ_ACTION_ERROR = \"QUIZ_ACTION_ERROR\";\r\nexport const QUIZ_ACTION_SUCCESS = \"QUIZ_ACTION_SUCCESS\";\r\n\r\n// Response Actions\r\nexport const GET_QUIZ_RESPONSE_LIST = \"GET_QUIZ_RESPONSE_LIST\";\r\n\r\n// Project Actions\r\nexport const GET_PROJECT = \"GET_PROJECT\";\r\nexport const GET_PROJECT_LIST = \"GET_PROJECT_LIST\";\r\nexport const PROJECT_ACTION_LOADING = \"PROJECT_ACTION_LOADING\";\r\nexport const PROJECT_ACTION_SUCCESS = \"PROJECT_ACTION_SUCCESS\";\r\nexport const PROJECT_ACTION_ERROR = \"PROJECT_ACTION_ERROR\";\r\nexport const PROJECT_ACTION_SUBMITING = \"PROJECT_ACTION_SUBMITING\"; //\r\nexport const PROJECT_ACTION_SUBMITED = \"PROJECT_ACTION_SUBMITED\";\r\n\r\n// Generic Actions\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\n\r\nexport const getProject = (projectId) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"project/getproject/\" + projectId).then(res => {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_QUIZ_LIST,\r\n data: res.data.QuizList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUCCESS\r\n });\r\n resolve(res.data.Project);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 0);\r\n }).then(data => {\r\n if (data !== null) {\r\n dispatch({\r\n type: PROJECT_ACTION_SUCCESS\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: \"aucun projet correspondant n'a ete trouve\"\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const getProjectList = () => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"project/list\").then(res => {\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: GET_QUIZ_LIST,\r\n data: res.data.QuizList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUCCESS\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n\r\n\r\n};\r\n\r\nexport const mergeKoboExcelResponsesWithPanelistsData = (file, projectId) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_LOADING\r\n });\r\n let formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"projectId\", projectId);\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"project/mergeKoboExcelResponsesWithPanelistsData\", formData).then(res => {\r\n console.log(res);\r\n if (res.data.Success) {\r\n window.open(res.data.Url, '_blank');\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 0);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PROJECT_ACTION_SUCCESS\r\n });\r\n \r\n } \r\n return data;\r\n });\r\n };\r\n\r\nexport const SynchronizeQuizzesFromKobotoolbox = () => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"project/synchronizequizzesfromkobotoolbox\").then(res => {\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: GET_QUIZ_LIST,\r\n data: res.data.QuizList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUCCESS\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport const createProject = (project) => dispatch => {\r\n dispatch({ // informe le reducer du rôle qu'un formulaire le concernant est en cours de soumission \r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"project/createproject\", project).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste de rôles au reducer pour sa mise à jour \r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n dispatch({ // informe le reducer du rôle que le formulaire le concernant est traité\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n if (data.Success) {\r\n dispatch({ // informe le reducer du rôle qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été ajouté avec succès\"\r\n });\r\n history.push({\r\n pathname: \"/projet/list\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const updateProject = (project) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"project/updateproject\", project).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const deleteProject = projectId => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"project/deleteproject/\" + projectId).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été supprimer avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const affectQuizAndPanelistGroupToProject = (request) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"project/affectpanelistgrouptoproject\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const updateQuiz = (request) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"project/updatequiz\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un questionnaire a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const updateQuizResponseUrl = (request) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${api}` + \"project/updatequizresponseurl\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const affectPanelistToUser = (request) => dispatch => {\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${api}` + \"project/affectpanelisttouser\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PROJECT,\r\n data: res.data.Project\r\n });\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data.ProjectList\r\n });\r\n dispatch({\r\n type: PROJECT_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Un projet a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PROJECT_ACTION_ERROR,\r\n data: res.data.Message\r\n });\r\n }\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PROJECT_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n}\r\n\r\nexport const getQuizList = () => dispatch => {\r\n dispatch({\r\n type: QUIZ_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"quiz/list\").then(res => {\r\n\r\n dispatch({\r\n type: GET_QUIZ_LIST,\r\n data: res.data.QuizList\r\n });\r\n dispatch({\r\n type: QUIZ_ACTION_SUCCESS\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: QUIZ_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport const getQuizResponsesList = () => dispatch => {\r\n dispatch({\r\n type: QUIZ_ACTION_LOADING\r\n });\r\n\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"project/syncproject\").then(res => {\r\n dispatch({\r\n type: GET_PROJECT_LIST,\r\n data: res.data\r\n });\r\n dispatch({\r\n type: QUIZ_ACTION_SUCCESS\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: QUIZ_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\nexport const exportQuizResponsesListToExcel = async (id) => {\r\n\r\n // Its important to set the 'Content-Type': 'blob' and responseType:'arraybuffer'.\r\n const headers = { 'Content-Type': 'blob' };\r\n const config: AxiosRequestConfig = { method: 'GET', url: (`${api}` +\"project/responses/export/\"+ id), responseType: 'arraybuffer', headers };\r\n\r\n try {\r\n const response = await axios(config);\r\n\r\n const outputFilename = `${Date.now()}.xls`;\r\n\r\n // If you want to download file automatically using link attribute.\r\n const url = URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', outputFilename);\r\n link.setAttribute('hidden', true);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n \r\n // OR you can save/write file locally.\r\n // fs.writeFileSync(outputFilename, response.data);\r\n } catch (error) {\r\n throw Error(error);\r\n }\r\n\r\n \r\n}\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createProject } from \"app/redux/actions/ProjectActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\n\r\nfunction CreateProject(props) {\r\n\r\n const {\r\n storeUser = {},\r\n ProjectList = [],\r\n createProject,\r\n disabled = false\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [projectListOption, setProjectListOption] = React.useState([]);\r\n const [request, setRequest] = React.useState({\r\n Author: storeUser.currentUser.User?.FirstName + \" \" + storeUser.currentUser.User?.LastName,\r\n Name: \"\",\r\n Description: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n if (request.Name == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [request])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n createProject(request).then(data => {\r\n if (data) {\r\n setRequest(prevState => { return { ...prevState, Name: \"\", Description: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n let getProjectListOption = () => {\r\n let result = [];\r\n let projectOrder = 0;\r\n if (ProjectList?.length && storeUser.currentUser?.Permissions?.some(p => p == \"AllowedToUpdateProject\")) {\r\n ProjectList.forEach(project => {\r\n projectOrder += 1;\r\n result.push({ label: project.Name, id: project.ProjectId, order: projectOrder })\r\n })\r\n if (storeUser.currentUser?.Permissions?.some(p => p == \"AllowedToCreateProject\")) {\r\n result.push({ label: \"Autre\", id: \"other\" })\r\n }\r\n }\r\n else {\r\n result.push({ label: \"Autre\", id: \"other\" })\r\n }\r\n setProjectListOption(result);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouveau projet\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n\r\n <>\r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={request?.Name}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={request?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n createProject: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, {\r\n createProject\r\n })(CreateProject))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { SynchronizeQuizzesFromKobotoolbox } from \"app/redux/actions/ProjectActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction SynchronizeProjects(props) {\r\n\r\n const {\r\n storeProject = {},\r\n projectToDelete = {},\r\n disabled = false,\r\n SynchronizeQuizzesFromKobotoolbox\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleConfirm = value => {\r\n setIsSubmitting(true);\r\n SynchronizeQuizzesFromKobotoolbox().then(data => {\r\n if (data) {\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n sync\r\n \r\n \r\n \r\n Synchroniser les projets\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir synchroniser les projets ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n SynchronizeQuizzesFromKobotoolbox: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { SynchronizeQuizzesFromKobotoolbox })(SynchronizeProjects))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deleteProject } from \"app/redux/actions/ProjectActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction DeleteProject(props) {\r\n\r\n const {\r\n storeProject = {},\r\n projectToDelete = {},\r\n disabled = false,\r\n deleteProject\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleConfirm = value => {\r\n setIsSubmitting(true);\r\n deleteProject(projectToDelete.ProjectId).then(data => {\r\n if (data) {\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Suppression du projet : {projectToDelete.Name}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer ce projet ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n deleteProject: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deleteProject })(DeleteProject))\r\n);","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList, } from \"app/redux/actions/RoleActions\";\r\nimport { getProjectList, hideAlert } from \"app/redux/actions/ProjectActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination, Popover, Checkbox } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport moment from 'moment';\r\nimport 'moment/locale/fr';\r\nimport CreateProject from \"./dialog/CreateProject\";\r\nimport SynchronizeProjects from \"./dialog/SynchronizeProjects\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport DeleteProject from \"./dialog/DeleteProject\";\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n },\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nlet projectLoaded = false;\r\n\r\nfunction ProjectPage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storeProject = {},\r\n getProjectList,\r\n hideAlert,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [isChecked, setIsChecked] = React.useState(false);\r\n const [selectedProject, setSelectedProject] = React.useState([]);\r\n const [regionList, setRegionList] = React.useState([]);\r\n const [selectedProjectCount, setSelectedProjectCount] = React.useState(0);\r\n const [isAllChecked, setIsAllChecked] = React.useState(false);\r\n const [isLoadingTableBody, setIsLoadingTableBody] = React.useState(false);\r\n const [isLoadingTableHead, setIsLoadingTableHead] = React.useState(false);\r\n const [permissions, setPermissions] = React.useState([]);\r\n\r\n const openPop = Boolean(anchorEl);\r\n\r\n const handlePopoverOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (storeProject.showAlert) {\r\n setMessage(storeProject.alertMessage);\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n\r\n }\r\n if (storeProject.loading || storeUser.loading || storeUser.currentUser.Permissions == undefined) {\r\n setIsLoading(true);\r\n }\r\n else if (storeProject.success && storeUser.currentUser && storeUser.currentUser.Permissions && storeUser.currentUser.Permissions.length > 0) {\r\n setIsLoading(false);\r\n if (storeUser.currentUser && storeUser.currentUser.Permissions) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n }\r\n if (isAllChecked) {\r\n setIsLoadingTableBody(true);\r\n setIsLoadingTableHead(true);\r\n }\r\n else {\r\n setIsLoadingTableBody(true);\r\n setIsLoadingTableHead(true);\r\n }\r\n\r\n }, [storeProject, storeUser, isAllChecked])\r\n\r\n useEffect(() => {\r\n console.log(\"permission\", permissions);\r\n })\r\n\r\n if (!projectLoaded) {\r\n getProjectList();\r\n projectLoaded = true;\r\n }\r\n\r\n function handleClose(event) {\r\n setOpen(false);\r\n hideAlert();\r\n }\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n const handleCheckbox = (e, projectId) => {\r\n let selectedProjectCountCopy = selectedProjectCount;\r\n if (e.target.checked) {\r\n let result = [...selectedProject];\r\n result.push(projectId);\r\n setSelectedProject(result);\r\n setSelectedProjectCount(selectedProjectCountCopy + 1);\r\n } else {\r\n if (isAllChecked) {\r\n setIsAllChecked(false);\r\n }\r\n let result = selectedProject.filter((x) => x !== projectId.toString());\r\n setSelectedProject(result);\r\n setSelectedProjectCount(selectedProjectCountCopy - 1);\r\n }\r\n };\r\n\r\n const handleSelectAllClick = e => {\r\n if (e.target.checked) {\r\n let result = [];\r\n storeProject.ProjectList.forEach(element => {\r\n result.push(element.ProjectId);\r\n });\r\n setSelectedProject(result);\r\n setIsAllChecked(true);\r\n }\r\n else {\r\n setSelectedProject([]);\r\n setIsAllChecked(false);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storeProject.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n {permissions?.some(item => item == \"AllowedToSynchronizeProjectFromKobo\") && (\r\n \r\n )}\r\n {permissions?.some(item => item == \"AllowedToCreateProject\") && (\r\n \r\n )}\r\n }\r\n >\r\n \r\n \r\n \r\n\r\n Nom\r\n Description\r\n Crée par \r\n \r\n \r\n \r\n \r\n \r\n\r\n {storeProject.projectList.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((project, index) =>\r\n (\r\n \r\n {project.Name}\r\n {project.Description}\r\n {project.Author}\r\n \r\n
\r\n \r\n edit\r\n \r\n
\r\n
\r\n \r\n {storeUser.currentUser.Permissions.some(item => item == \"AllowedToDeleteProject\") && (\r\n \r\n )}\r\n \r\n
\r\n\r\n ))\r\n }\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nProjectPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storeProject: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getProjectList: PropTypes.func.isRequired, // getRegions \r\n hideAlert: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n});\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps, { getProjectList, getRoleList, hideAlert })(ProjectPage));\r\n","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { getUserList } from \"app/redux/actions/UserActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\n\r\nfunction AffectPanelistToUser(props) {\r\n const {\r\n storeUser = {},\r\n disabled = false,\r\n panelistGroupId = \"\",\r\n userListOptions = [],\r\n onAffectPanelistToUserSubmit,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [userId, setUserId] = React.useState(\"\");\r\n\r\n useEffect(() => {\r\n if (userId == \"\" || userId == undefined) {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [userId])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onAffectPanelistToUserSubmit(userId, panelistGroupId).then(resp => {\r\n if (resp) {\r\n setUserId(\"\");\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n Affecter\r\n \r\n \r\n \r\n Affectation de panélistes\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setUserId(value?.id);\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n\r\n\r\n}\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n getUserList: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { getUserList })(AffectPanelistToUser))\r\n);","import React, { useEffect, useRef } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport MuiExpansionPanel from \"@material-ui/core/ExpansionPanel\";\r\nimport MuiExpansionPanelSummary from \"@material-ui/core/ExpansionPanelSummary\";\r\nimport MuiExpansionPanelDetails from \"@material-ui/core/ExpansionPanelDetails\";\r\nimport ExpansionPanelActions from '@material-ui/core/ExpansionPanelActions';\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { DataGrid, GridColDef, GridApi, GridCellValue } from '@material-ui/data-grid';\r\nimport { Button, Grid, Icon, Table, TableBody, TableCell, TableRow, TableHead, TablePagination, Checkbox } from \"@material-ui/core\";\r\nimport { getRoleList, } from \"app/redux/actions/RoleActions\";\r\nimport { getUserList, } from \"app/redux/actions/UserActions\";\r\nimport { getGroupList, hideAlert } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { affectPanelistToUser } from \"app/redux/actions/ProjectActions\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link } from \"react-router-dom\";\r\nimport AffectPanelistToUser from '../dialog/AffectPanelistToUser';\r\nimport moment from 'moment';\r\n\r\n\r\n\r\nconst ExpansionPanel = withStyles({\r\n root: {\r\n border: \"1px solid rgba(0, 0, 0, .125)\",\r\n boxShadow: \"none\",\r\n \"&:not(:last-child)\": {\r\n borderBottom: 0\r\n },\r\n \"&:before\": {\r\n display: \"none\"\r\n },\r\n \"&$expanded\": {\r\n margin: \"auto\"\r\n }\r\n },\r\n expanded: {}\r\n})(MuiExpansionPanel);\r\n\r\nconst ExpansionPanelSummary = withStyles({\r\n root: {\r\n backgroundColor: \"rgba(0, 0, 0, .03)\",\r\n borderBottom: \"1px solid rgba(0, 0, 0, .125)\",\r\n marginBottom: -1,\r\n minHeight: 56,\r\n \"&$expanded\": {\r\n minHeight: 56\r\n }\r\n },\r\n content: {\r\n \"&$expanded\": {\r\n margin: \"12px 0\"\r\n }\r\n },\r\n expanded: {}\r\n})(MuiExpansionPanelSummary);\r\n\r\nconst ExpansionPanelDetails = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiExpansionPanelDetails);\r\n\r\n\r\n\r\n\r\n\r\nfunction PanelistGroupExpansionPanel(props) {\r\n const {\r\n projectId = \"\",\r\n quizId = \"\",\r\n responseUrl = \"\",\r\n panelistGroupList = [],\r\n permissions = [],\r\n storeUser = {},\r\n logedUser = {},\r\n storePanelistGroup = {},\r\n affectPanelistToUser,\r\n getUserList,\r\n } = props;\r\n\r\n const allCheckRef = React.useRef();\r\n\r\n const [expanded, setExpanded] = React.useState(\"\");\r\n const [selectedPanelist, setSelectedPanelist] = React.useState([]);\r\n const [userListOption, setUserListOption] = React.useState([]);\r\n const [panelistGroups, setPanelistGroups] = React.useState(panelistGroupList);\r\n const [currentUser, setCurrentUser] = React.useState(null);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [allChecked, setAllChecked] = React.useState(false);\r\n\r\n const handleChange = panel => (event, expanded) => {\r\n if (allChecked) {\r\n setAllChecked(false);\r\n setSelectedPanelist([]);\r\n console.log(\"hi hi hi \");\r\n }\r\n else {\r\n\r\n\r\n }\r\n setExpanded(expanded ? panel : false);\r\n };\r\n\r\n useEffect(() => {\r\n if (storeUser.currentUser.User != null && currentUser == null) {\r\n setCurrentUser(storeUser.currentUser.User);\r\n }\r\n if (storeUser.userList.length == 0 && userListOption.length == 0) {\r\n getUserList().then(response => {\r\n if (response.Success) {\r\n getUserListOptions(response.UserList);\r\n }\r\n })\r\n }\r\n else if (storeUser.userList.length > 0 && userListOption.length == 0) {\r\n getUserListOptions(storeUser.userList);\r\n }\r\n }, [])\r\n\r\n const handleAffectPanelistToUserSubmit = (userId, panelistGroupId) => {\r\n return new Promise((resolve, reject) => {\r\n let request = { UserId: userId, ProjectId: projectId, QuizId: quizId, PanelistGroupId: panelistGroupId, PanelistIds: selectedPanelist };\r\n affectPanelistToUser(request).then(data => {\r\n if (data.Success) {\r\n let quiz = data.QuizList.find(q => q.QuizId == quizId);\r\n if (quiz) {\r\n setPanelistGroups(quiz.PanelistGroups)\r\n setAllChecked(false);\r\n setSelectedPanelist([]);\r\n }\r\n\r\n }\r\n resolve(true);\r\n });\r\n });\r\n }\r\n\r\n const getUserListOptions = (userList) => {\r\n let result = [];\r\n userList.forEach(element => {\r\n result.push({ label: element.FirstName + \" \" + element.LastName, id: element.UserId })\r\n });\r\n setUserListOption(result);\r\n }\r\n\r\n\r\n\r\n return (\r\n
\r\n {panelistGroups?.map((panelistGroup, index) => (\r\n \r\n }\r\n >\r\n \r\n {panelistGroup.Name}\r\n \r\n \r\n \r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n 0}\r\n panelistGroupId={panelistGroup.PanelistGroupId} onClick={() => { setExpanded(!expanded) }}\r\n onAffectPanelistToUserSubmit={(userId, panelistGroupId) => handleAffectPanelistToUserSubmit(userId, panelistGroupId)}\r\n userListOptions={userListOption}\r\n />\r\n )}\r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n {panelistGroup.Type == \"NaturalPerson\" ?\r\n (\r\n <>\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n \r\n 0)}\r\n className=\"firstcheckbox\"\r\n ref={allCheckRef}\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n setAllChecked(val);\r\n if (val) {\r\n let result = [];\r\n panelistGroup.Panelists.forEach(p => {\r\n result.push(p.PanelistId)\r\n });\r\n setSelectedPanelist(result);\r\n }\r\n else {\r\n setSelectedPanelist([]);\r\n }\r\n\r\n }}\r\n />\r\n\r\n \r\n )}\r\n\r\n Prénom\r\n Nom\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n <>\r\n Date de naissance \r\n Sexe\r\n \r\n )}\r\n Téléphone\r\n Assigné à\r\n \r\n \r\n )\r\n :\r\n (\r\n <>\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n \r\n {\r\n let val = e.target?.checked;\r\n setAllChecked(val);\r\n if (val) {\r\n let result = [];\r\n panelistGroup.Panelists.forEach(p => {\r\n result.push(p.PanelistId)\r\n });\r\n setSelectedPanelist(result);\r\n }\r\n else {\r\n setSelectedPanelist([]);\r\n }\r\n\r\n }}\r\n />\r\n\r\n \r\n )}\r\n\r\n Nom\r\n Email \r\n Téléphone\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n <>\r\n Date de création\r\n Assigné à\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {(permissions.some(item => item == \"AllowedToAffectPanelist\") ?\r\n panelistGroup.Panelists :\r\n panelistGroup.Panelists.filter(p => p?.PanelistAssignments.some(r => r?.UserId == logedUser?.UserId && r?.QuizId == quizId))) \r\n .map((panelist, index) =>\r\n (\r\n \r\n {panelistGroup.Type == \"NaturalPerson\" ?\r\n (\r\n <>\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n \r\n id == panelist.PanelistId)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n if (val) {\r\n let newArray = [...selectedPanelist];\r\n newArray.push(panelist.PanelistId);\r\n setSelectedPanelist(newArray);\r\n }\r\n else {\r\n let newArray = [...selectedPanelist];\r\n setSelectedPanelist(newArray.filter(id => id != panelist.PanelistId));\r\n if (allChecked) {\r\n setAllChecked(false);\r\n }\r\n }\r\n }}\r\n />\r\n\r\n \r\n )}\r\n {panelist.FirstName}\r\n {panelist.LastName}\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n <>\r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n {panelist.Gender == \"Male\" ? \"Masculin\" : \"Féminin\"} \r\n \r\n )}\r\n {panelist.PhoneNumber1} \r\n {panelist.AssignedTo} \r\n \r\n {\r\n let quizIdParam = \"d[QuizId]=\" + quizId;\r\n let panelistIdParam = \"d[PanelistId]=\" + panelist.PanelistId;\r\n let panelistGroupIdParam = \"d[PanelistGroupId]=\" + panelistGroup.PanelistGroupId;\r\n window.open(responseUrl + \"/?\" + quizIdParam + \"&\" + panelistGroupIdParam + \"&\" + panelistIdParam, '_blank');\r\n }}\r\n >\r\n {panelist.Replied ? \"Répondu\" : \"Répondre\"}\r\n \r\n \r\n \r\n )\r\n :\r\n (\r\n <>\r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n \r\n id == panelist.PanelistId)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n if (val) {\r\n let newArray = [...selectedPanelist];\r\n newArray.push(panelist.PanelistId);\r\n setSelectedPanelist(newArray);\r\n }\r\n else {\r\n let newArray = [...selectedPanelist];\r\n setSelectedPanelist(newArray.filter(id => id != panelist.PanelistId));\r\n if (allChecked) {\r\n setAllChecked(false);\r\n }\r\n }\r\n }}\r\n />\r\n\r\n \r\n )}\r\n {panelist.LastName}\r\n {panelist.Email}\r\n {panelist.PhoneNumber1} \r\n {permissions?.some(item => item == \"AllowedToAffectPanelist\") && (\r\n <>\r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n {panelist.AssignedTo} \r\n \r\n )}\r\n\r\n \r\n {\r\n let quizIdParam = \"d[QuizId]=\" + quizId;\r\n let panelistIdParam = \"d[PanelistId]=\" + panelist.PanelistId;\r\n let panelistGroupIdParam = \"d[PanelistGroupId]=\" + panelistGroup.PanelistGroupId;\r\n window.open(responseUrl + \"/?\" + quizIdParam + \"&\" + panelistGroupIdParam + \"&\" + panelistIdParam, '_blank');\r\n }}\r\n >\r\n {panelist.Replied ? \"Répondu\" : \"Répondre\"}\r\n \r\n \r\n \r\n )}\r\n \r\n ))\r\n }\r\n \r\n
\r\n
\r\n
\r\n \r\n ))}\r\n
\r\n );\r\n}\r\n\r\nPanelistGroupExpansionPanel.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n getUserList: PropTypes.func.isRequired,\r\n storePanelistGroup: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n affectPanelistToUser: PropTypes.func.isRequired,\r\n getUserList: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user,\r\n});\r\n\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps, { getUserList, affectPanelistToUser, getRoleList, hideAlert })(PanelistGroupExpansionPanel));\r\n\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { updateQuizResponseUrl } from \"app/redux/actions/ProjectActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\n\r\nfunction UpdateQuizKoboLink(props) {\r\n\r\n const {\r\n projectId = \"\",\r\n quizId = \"\",\r\n currentLink = \"\",\r\n updateQuizResponseUrl\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [request, setRequest] = React.useState({\r\n ProjectId: projectId,\r\n QuizId: quizId,\r\n QuizResponseUrl: \"\"\r\n });\r\n\r\n let handleClickOpen = (e) => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = (e) => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n updateQuizResponseUrl(request).then(resp => {\r\n if (resp) {\r\n setRequest(prevState => { return { ...prevState, QuizResponseUrl: \"\" } });\r\n }\r\n setIsSubmitting(false);\r\n handleClose();\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n edit\r\n \r\n \r\n \r\n Modification du lien Kobo\r\n \r\n \r\n null} style={{ marginTop: \"10px\" }}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n e.stopPropagation();\r\n let val = e.target.value;\r\n setRequest(prevState => {\r\n return { ...prevState, QuizResponseUrl: val }\r\n });\r\n }}\r\n type=\"text\"\r\n name=\"newLink\"\r\n value={request?.QuizResponseUrl}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n updateQuizResponseUrl: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { updateQuizResponseUrl })(UpdateQuizKoboLink))\r\n);","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createProject, affectQuizAndPanelistGroupToProject, updateQuiz } from \"app/redux/actions/ProjectActions\";\r\nimport { getGroupList } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction UpdateQuiz(props) {\r\n\r\n const {\r\n storeUser = {},\r\n storePanelistGroup = {},\r\n quizList = [],\r\n panelistGroupList = [],\r\n projectId = \"\",\r\n quizId = \"\",\r\n currentLink = \"\",\r\n getGroupList,\r\n affectQuizAndPanelistGroupToProject,\r\n updateQuiz,\r\n onHandleUpdateQuiz,\r\n\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [quizListOption, setQuizListOption] = React.useState([]);\r\n const [panelistGroupListOption, setPanelistGroupListOption] = React.useState([]);\r\n const [request, setRequest] = React.useState({\r\n ProjectId: projectId,\r\n QuizId: quizId,\r\n ResponseUrl: currentLink,\r\n PanelistGroupIds: panelistGroupList.map(a => a.PanelistGroupId)\r\n });\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.panelistGroupList.length == 0 && panelistGroupListOption.length == 0) {\r\n getGroupList().then(response => {\r\n if (response.Success) {\r\n getPanelistGroupListOption(response.PanelistGroupList);\r\n }\r\n })\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupListOption.length == 0) {\r\n getPanelistGroupListOption(storePanelistGroup.panelistGroupList);\r\n }\r\n console.log(\"request\", request);\r\n console.log(\"panelistGroupList\", panelistGroupList);\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (request.QuizId == \"\" ||\r\n request.QuizId == undefined ||\r\n request.ResponseUrl == \"\" ||\r\n request.ProjectId == \"\" ||\r\n request.PanelistGroupIds.length == 0) {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n }\r\n console.log(\"request\", request);\r\n }, [request])\r\n\r\n useEffect(() => {\r\n if (panelistGroupList.length > 0 && request.PanelistGroupIds.length == 0) {\r\n let result = [];\r\n\r\n }\r\n console.log(\"quizList\", quizList);\r\n }, [quizList])\r\n\r\n useEffect(() => {\r\n if (quizList.length > 0 && quizListOption.length == 0) {\r\n getQuizListOption();\r\n }\r\n console.log(\"quizList\", quizList);\r\n }, [quizList])\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupListOption.length == 0) {\r\n getPanelistGroupListOption(storePanelistGroup.panelistGroupList);\r\n }\r\n }, [storePanelistGroup])\r\n\r\n let handleClickOpen = (e) => {\r\n e.stopPropagation();\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onHandleUpdateQuiz(request).then(data => {\r\n if (data) {\r\n // setRequest(prevState => { return { ...prevState, Name: \"\", Description: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n let getQuizListOption = () => {\r\n let result = [];\r\n quizList.forEach(element => {\r\n result.push({ label: element.Name, id: element.QuizId })\r\n });\r\n setQuizListOption(result);\r\n }\r\n\r\n let getPanelistGroupListOption = (panelistGroupList) => {\r\n let result = [];\r\n panelistGroupList.forEach(element => {\r\n result.push({ label: element.Name, id: element.PanelistGroupId })\r\n });\r\n setPanelistGroupListOption(result);\r\n }\r\n\r\n\r\n return (\r\n <>\r\n handleClickOpen(e)} \r\n >\r\n edit\r\n \r\n \r\n \r\n Modifier un questionnaire\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n <>\r\n \r\n opt.id == request.QuizId)}\r\n className=\"mb-16 w-100\"\r\n options={quizListOption}\r\n getOptionLabel={option => option.label}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n request.PanelistGroupIds.some(item => item == opt.id))}\r\n className=\"mb-16 w-100\"\r\n options={panelistGroupListOption}\r\n getOptionLabel={option => option.label}\r\n onChange={(event, value) => {\r\n let result = [];\r\n value.forEach(element => {\r\n result.push(element.id);\r\n });\r\n setRequest(prevState => { return { ...prevState, PanelistGroupIds: result } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, ResponseUrl: val } })\r\n }}\r\n type=\"text\"\r\n name=\"ResponseUrl\"\r\n value={request?.ResponseUrl}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n createProject: PropTypes.func.isRequired,\r\n getGroupList: PropTypes.func.isRequired,\r\n affectQuizAndPanelistGroupToProject: PropTypes.func.isRequired,\r\n updateQuiz: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n storePanelistGroup: state.panelistgroup,\r\n});\r\nexport default (withRouter(connect(mapStateToProps, {\r\n createProject,\r\n getGroupList,\r\n affectQuizAndPanelistGroupToProject,\r\n updateQuiz\r\n})(UpdateQuiz)));","import React, { useEffect } from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport ExpansionPanel from \"@material-ui/core/ExpansionPanel\";\r\nimport ExpansionPanelSummary from \"@material-ui/core/ExpansionPanelSummary\";\r\nimport ExpansionPanelDetails from \"@material-ui/core/ExpansionPanelDetails\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\nimport PanelistGroupExpansionPanel from \"./PanelistGroupExpansionPanel\";\r\nimport UpdateQuizKoboLink from \"../dialog/UpdateQuizKoboLink\";\r\nimport UpdateQuiz from \"../dialog/UpdateQuiz\";\r\nimport { Button, Grid, Icon, CircularProgress } from \"@material-ui/core\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ViewListIcon from '@material-ui/icons/ViewList';\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport { useHistory } from 'react-router';\r\nimport { affectPanelistToUser, updateQuiz, exportQuizResponsesListToExcel, mergeKoboExcelResponsesWithPanelistsData } from \"app/redux/actions/ProjectActions\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { set } from \"lodash\";\r\nimport axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: \"100%\"\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n fontWeight: theme.typography.fontWeightRegular\r\n }\r\n}));\r\n\r\nfunction QuizExpansionPanel(props) {\r\n const classes = useStyles();\r\n const {\r\n projectId = \"\",\r\n quizzes = [],\r\n onSyncHandleChange,\r\n permissions = [],\r\n logedUser = {},\r\n updateQuiz, \r\n mergeKoboExcelResponsesWithPanelistsData,\r\n // exportQuizResponsesListToExcel\r\n } = props;\r\n\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [quizzesList, setQuizzesList] = React.useState([]);\r\n const importInputRef = React.useRef();\r\n const [selectedFile, setSelectedFile] = React.useState(null);\r\n\r\n useEffect(() => {\r\n if (quizzesList.length == 0 && quizzes?.length > 0) {\r\n setQuizzesList(quizzes);\r\n setIsLoading(false);\r\n }\r\n }, []);\r\n\r\n const editButtonClick = (e) => {\r\n e.stopPropagation();\r\n alert(\"TODODODODODO\");\r\n }\r\n\r\n const routerHistory = useHistory();\r\n\r\n const seeQuizResponseButtonClick = (projectId, quizId) => {\r\n var url = \"/projet/quizResponse/\" + projectId + \"/\" + quizId;\r\n console.log(url);\r\n routerHistory.push(url);\r\n }\r\n\r\n const syncButtonClick = (e) => {\r\n e.stopPropagation();\r\n onSyncHandleChange();\r\n }\r\n\r\n let handleUpdateQuiz = value => {\r\n setIsLoading(true);\r\n return new Promise((resolve, reject) => {\r\n updateQuiz(value).then(data => {\r\n resolve(data);\r\n setQuizzesList(data.Project?.Quizzes)\r\n setIsLoading(false);\r\n });\r\n });\r\n };\r\n\r\n const exportQuizResponsesListToExcel = async (e, id) => {\r\n e.stopPropagation();\r\n const a = window.document.createElement('a');\r\n a.href = `${api}` +\"project/responses/export/\"+ id;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a); \r\n }\r\n\r\n const handleMergeKoboExcelResponses = (e, id) => { \r\n e.stopPropagation();\r\n setSelectedFile(e.target.files[0]);\r\n mergeKoboExcelResponsesWithPanelistsData(e.target.files[0], id).then(\r\n (response) => {\r\n setSelectedFile(null);\r\n }\r\n );\r\n };\r\n\r\n return (\r\n
\r\n {isLoading ?\r\n (\r\n
\r\n \r\n
\r\n )\r\n :\r\n (\r\n <>\r\n {quizzesList.map((quiz, index) => (\r\n \r\n }\r\n aria-controls={quiz.QuizKoboId + \"content\"}\r\n id={quiz.QuizKoboId + \"header\"}\r\n expandIcon={}\r\n >\r\n \r\n {quiz.Name}\r\n \r\n \r\n
\r\n
\r\n {permissions?.some(item => item == \"AllowedToUpdateQuiz\") && (\r\n // \r\n \r\n )}\r\n {\r\n e.stopPropagation();\r\n handleMergeKoboExcelResponses(e, projectId);\r\n }}\r\n onClick={(e) => {\r\n e.target.value = null;\r\n }}\r\n // value={selectedFile}\r\n ref={importInputRef}\r\n />\r\n \r\n {window.location.hostname.includes(\"localhost\") && (\r\n syncButtonClick(e)}\r\n >\r\n sync\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n ))}\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n updateQuiz: PropTypes.func.isRequired,\r\n mergeKoboExcelResponsesWithPanelistsData:PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n storePanelistGroup: state.panelistgroup,\r\n});\r\nexport default (withRouter(connect(mapStateToProps, {\r\n updateQuiz,\r\n mergeKoboExcelResponsesWithPanelistsData\r\n})(QuizExpansionPanel)));\r\n","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createProject, affectQuizAndPanelistGroupToProject } from \"app/redux/actions/ProjectActions\";\r\nimport { getGroupList } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction AddQuizToProject(props) {\r\n\r\n const {\r\n storeUser = {},\r\n storePanelistGroup = {},\r\n quizList = [],\r\n projectId = \"\",\r\n getGroupList,\r\n affectQuizAndPanelistGroupToProject\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [quizListOption, setQuizListOption] = React.useState([]);\r\n const [panelistGroupListOption, setPanelistGroupListOption] = React.useState([]);\r\n const [request, setRequest] = React.useState({\r\n ProjectId: projectId,\r\n QuizId: \"\",\r\n ResponseUrl: \"\",\r\n PanelistGroupIds: []\r\n });\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.panelistGroupList.length == 0 && panelistGroupListOption.length == 0) {\r\n getGroupList().then(response => {\r\n if (response.Success) {\r\n getPanelistGroupListOption(response.PanelistGroupList);\r\n }\r\n })\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupListOption.length == 0) {\r\n getPanelistGroupListOption(storePanelistGroup.panelistGroupList);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (request.QuizId == \"\" || request.QuizId == undefined || request.ResponseUrl == \"\" || request.ProjectId == \"\" || request.PanelistGroupIds.length == 0) {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n }\r\n }, [request])\r\n\r\n useEffect(() => {\r\n if (quizList.length > 0 && quizListOption.length == 0) {\r\n getQuizListOption();\r\n }\r\n console.log(\"quizList\", quizList);\r\n }, [quizList])\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupListOption.length == 0) {\r\n getPanelistGroupListOption(storePanelistGroup.panelistGroupList);\r\n }\r\n }, [storePanelistGroup])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n console.log(\"request\", request);\r\n affectQuizAndPanelistGroupToProject(request).then(data => {\r\n if (data) {\r\n setRequest(prevState => { return { ...prevState, Name: \"\", Description: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n let getQuizListOption = () => {\r\n let result = [];\r\n quizList.forEach(element => {\r\n result.push({ label: element.Name, id: element.QuizId })\r\n });\r\n setQuizListOption(result);\r\n }\r\n\r\n let getPanelistGroupListOption = (panelistGroupList) => {\r\n let result = [];\r\n panelistGroupList.forEach(element => {\r\n result.push({ label: element.Name, id: element.PanelistGroupId })\r\n });\r\n setPanelistGroupListOption(result);\r\n }\r\n\r\n\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n Ajouter un nouveau questionnaire au projet\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n <>\r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n let val = value?.id;\r\n setRequest(prevState => { return { ...prevState, QuizId: val } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n let result = [];\r\n value.forEach(element => {\r\n result.push(element.id);\r\n });\r\n setRequest(prevState => { return { ...prevState, PanelistGroupIds: result } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, ResponseUrl: val } })\r\n }}\r\n type=\"text\"\r\n name=\"ResponseUrl\"\r\n value={request?.ResponseUrl}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n createProject: PropTypes.func.isRequired,\r\n getGroupList: PropTypes.func.isRequired,\r\n affectQuizAndPanelistGroupToProject: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n storePanelistGroup: state.panelistgroup,\r\n});\r\nexport default (withRouter(connect(mapStateToProps, {\r\n createProject,\r\n getGroupList,\r\n affectQuizAndPanelistGroupToProject\r\n})(AddQuizToProject)));","import React from \"react\";\r\nimport ReactEcharts from \"echarts-for-react\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\n\r\nconst ProjectDashboardLineChart = ({ data, height, color = [], theme }) => {\r\n const option = {\r\n grid: {\r\n top: \"10%\",\r\n bottom: \"10%\",\r\n left: \"5%\",\r\n right: \"5%\"\r\n },\r\n legend: {\r\n itemGap: 10,\r\n icon: \"circle\",\r\n textStyle: {\r\n color: theme.palette.text.secondary,\r\n fontSize: 13,\r\n fontFamily: \"roboto\"\r\n }\r\n },\r\n tooltip: {},\r\n xAxis: {\r\n type: \"category\",\r\n data: [\r\n \"Jan\",\r\n \"Feb\",\r\n \"Mar\",\r\n \"Apr\",\r\n \"May\",\r\n \"Jun\",\r\n \"Jul\",\r\n \"Aug\",\r\n \"Sep\",\r\n \"Oct\",\r\n \"Nov\",\r\n \"Dec\"\r\n ],\r\n axisLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n show: false\r\n },\r\n axisLabel: {\r\n color: theme.palette.text.secondary,\r\n fontSize: 14,\r\n fontFamily: \"roboto\"\r\n }\r\n },\r\n yAxis: {\r\n type: \"value\",\r\n axisLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n show: false\r\n },\r\n splitLine: {\r\n // show: false\r\n lineStyle: {\r\n color: theme.palette.text.secondary,\r\n opacity: 0.15\r\n }\r\n },\r\n axisLabel: {\r\n color: theme.palette.text.secondary,\r\n fontSize: 13,\r\n fontFamily: \"roboto\"\r\n }\r\n },\r\n series: [\r\n {\r\n data: data,\r\n type: \"line\",\r\n stack: \"This month\",\r\n name: \"This month\",\r\n smooth: true,\r\n symbolSize: 4,\r\n lineStyle: {\r\n width: 4,\r\n color: \"primary\"\r\n }\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default withStyles({}, { withTheme: true })(ProjectDashboardLineChart);\r\n","import React, { useEffect } from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Icon, Grid, CircularProgress, LinearProgress, Table, TableBody, TableCell, TableRow, TableHead, MenuItem, Checkbox } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport SnackbarContentWrapper from \"../panelists/alert/SnackbarContentWrapper\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport _, { without } from 'underscore';\r\nimport { getProject, updateProject, hideAlert, getQuizResponsesList, getProjectList, updateQuiz } from \"app/redux/actions/ProjectActions\";\r\nimport guid from \"guid\";\r\nimport moment from 'moment';\r\nimport QuizExpansionPanel from \"./accordion/QuizExpansionPanel\";\r\nimport AddQuizToProject from \"./dialog/AddQuizToProject\";\r\nimport { MatxMenu, MatxSearchBox } from \"matx\";\r\nimport { reject } from \"lodash\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport ProjectDashboardLineChart from \"./ProjectDashboardLineChart\";\r\n\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst BorderLinearProgress = withStyles((theme) => ({\r\n root: {\r\n height: 15,\r\n borderRadius: 5,\r\n },\r\n colorPrimary: {\r\n backgroundColor: \"#EEEEEE\",\r\n },\r\n bar: {\r\n borderRadius: 5,\r\n backgroundColor: '#1a90ff',\r\n },\r\n}))(LinearProgress);\r\n\r\n\r\n\r\nfunction ProjectDetail(props) {\r\n\r\n const {\r\n storeUser = {},\r\n storeProject = {},\r\n getProjectList,\r\n getQuizResponsesList,\r\n hideAlert,\r\n updateProject,\r\n updateQuiz\r\n } = props;\r\n\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [snackbarOpen, setSnackbarOpen] = React.useState(false);\r\n const [showSnackbar, setShowSnackbar] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [projectId, setProjectId] = React.useState(\"\");\r\n const [quizList, setQuizList] = React.useState([]);\r\n const [quizListOption, setQuizListOption] = React.useState([]);\r\n const [panelistGroupListOption, setPanelistGroupListOption] = React.useState([]);\r\n\r\n const [projectToUpdate, setProjectToUpdate] = React.useState({\r\n ProjectId: \"\",\r\n Name: \"\",\r\n Description: \"\",\r\n Author: \"\",\r\n ResponsesCountByMonthInYear: [],\r\n Quizzes: [\r\n {\r\n QuizId: \"\",\r\n QuizKoboId: \"\",\r\n Name: \"\",\r\n Url: \"\",\r\n PanelistGroups: [\r\n {\r\n PanelistGroupId: \"\",\r\n Name: \"\",\r\n Panelists: []\r\n }\r\n ]\r\n }\r\n ]\r\n });\r\n\r\n useEffect(() => {\r\n let match = props.match;\r\n if (match != undefined) {\r\n let params = match.params;\r\n if (params != undefined && params.id != undefined) {\r\n setProjectId(params.id);\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (projectId != \"\" && projectToUpdate.ProjectId == \"\") {\r\n if (storeProject.projectList.length > 0 && storeProject.quizList.length == 0) {\r\n setQuizList(storeProject.quizList);\r\n let projectFromStore = storeProject.projectList.find(p => p.ProjectId == projectId);\r\n if (projectFromStore) {\r\n setProjectToUpdate(projectFromStore);\r\n }\r\n }\r\n else {\r\n getProjectList().then(response => {\r\n if (response.Success) {\r\n setQuizList(response.QuizList);\r\n let projectFromRequest = response.ProjectList.find(p => p.ProjectId == projectId);\r\n if (projectFromRequest) {\r\n setProjectToUpdate(projectFromRequest);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }, [projectId])\r\n\r\n useEffect(() => {\r\n if (projectToUpdate && projectToUpdate.ProjectId != \"\" && isLoading) {\r\n setIsLoading(false);\r\n console.log(\"project\", projectToUpdate);\r\n }\r\n }, [projectToUpdate])\r\n\r\n let handleClose = () => {\r\n\r\n }\r\n\r\n let handleSave = event => {\r\n handleSubmit(projectToUpdate)\r\n }\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n updateProject(projectToUpdate).then(data => {\r\n setIsSubmitting(false);\r\n if (data) {\r\n }\r\n });\r\n };\r\n\r\n let handleChange = event => {\r\n // event.persist();\r\n // let projectCopy = this.state.projectToUpdate;\r\n // for (let key in projectCopy) {\r\n // if (key === event.target.name) {\r\n // projectCopy[`${key}`] = event.target.value\r\n // }\r\n // }\r\n // this.setState({ projectToUpdate: projectCopy });\r\n };\r\n\r\n let snackbarHandleClose = () => {\r\n setSnackbarOpen(false);\r\n };\r\n\r\n let syncHandleChange = () => {\r\n setIsLoading(true);\r\n getQuizResponsesList().then(resp => {\r\n let project = resp.find(p => p.ProjectId == projectId);\r\n if (project != undefined) {\r\n setProjectToUpdate(project);\r\n setIsLoading(false);\r\n }\r\n });\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storeProject.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n {storeUser.currentUser.Permissions?.some(item => item == \"AllowedToAccessProjectDashboard\") && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n {storeUser.currentUser.Permissions?.some(item => item == \"AllowedToUpdateProject\") && (\r\n \r\n
\r\n null}\r\n >\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setProjectToUpdate(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={projectToUpdate?.Name}\r\n fullWidth\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setProjectToUpdate(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={projectToUpdate?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )}\r\n\r\n
\r\n
\r\n \r\n {storeUser.currentUser.Permissions?.some(item => item == \"AllowedToCreateQuiz\") && (\r\n \r\n )}\r\n }\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n updateProject: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n getProjectList: PropTypes.func.isRequired,\r\n getProject: PropTypes.func.isRequired,\r\n updateQuiz: PropTypes.func.isRequired,\r\n getQuizResponsesList: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n});\r\nexport default (withRouter(connect(mapStateToProps, {\r\n getProject,\r\n updateProject,\r\n hideAlert,\r\n getQuizResponsesList,\r\n getProjectList,\r\n updateQuiz,\r\n})(ProjectDetail)));","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList, } from \"app/redux/actions/RoleActions\";\r\nimport { getQuizResponsesList, hideAlert } from \"app/redux/actions/ProjectActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination, Popover, Checkbox } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport moment from 'moment';\r\nimport 'moment/locale/fr';\r\nimport CreateProject from \"./dialog/CreateProject\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport DeleteProject from \"./dialog/DeleteProject\";\r\nimport { DataGrid, GridToolbar } from '@material-ui/data-grid';\r\nimport guid from \"guid\";\r\nimport { XGrid } from '@material-ui/x-grid';\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n },\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\nlet projectLoaded = false;\r\nconst columns = [\r\n { field: 'Question', headerName: 'Questions' },\r\n { field: 'Response', headerName: 'Réponses', width: 500 },\r\n\r\n // { field: 'Profession', headerName: 'Profession', width: 260 },\r\n];\r\nconst rows = [\r\n {\r\n id: \"71216460-9de2-4aef-980a-015440045ce1\",\r\n Question: \"Aliou\",\r\n Response: \"Samaké\",\r\n\r\n\r\n },\r\n {\r\n id: \"02ec9255-9705-446a-b709-088afb6c53e2\",\r\n Question: \"Hamidou\",\r\n Response: \"Soumaré\",\r\n\r\n\r\n },\r\n\r\n\r\n]\r\n\r\nfunction QuizResponsePage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storeProject = {},\r\n getQuizResponsesList,\r\n hideAlert,\r\n project = {},\r\n quizzes = []\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [quiz, setQuiz] = React.useState(null);\r\n const [quizId, setQuizId] = React.useState(\"\");\r\n const [quizColumns, setQuizColumns] = React.useState([]);\r\n const [quizRows, setQuizRows] = React.useState([]);\r\n const [quizResponses, setQuizResponses] = React.useState([]);\r\n const [projectId, setProjectId] = React.useState(\"\");\r\n const [projects, setProjects] = React.useState([]);\r\n const openPop = Boolean(anchorEl);\r\n\r\n const handlePopoverOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (projects.length > 0 && quiz == null && quizId != \"\" && projectId != \"\") {\r\n let project = projects.find(p => p.ProjectId == projectId);\r\n let quiz = project.Quizzes.find(q => q.QuizKoboId == quizId);\r\n if (quiz != undefined) {\r\n setQuiz(quiz);\r\n console.log(\"storeProject 123456\", storeProject);\r\n }\r\n }\r\n }, [quizId, projectId, projects])\r\n\r\n useEffect(() => {\r\n let match = props.match;\r\n if (match != undefined) {\r\n let params = match.params;\r\n if (params != undefined && params.id != undefined) {\r\n setQuizId(params.id);\r\n }\r\n if (params != undefined && params.projectId != undefined) {\r\n setProjectId(params.projectId);\r\n }\r\n }\r\n if (storeProject.projectList.length == 0) {\r\n getQuizResponsesList().then(resp => {\r\n setProjects(resp);\r\n });\r\n }\r\n else {\r\n setProjects(storeProject.projectList);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n }, [storeProject])\r\n\r\n useEffect(() => {\r\n if (quiz != null) {\r\n if (quiz.QuizColumns?.length > 0 && quizColumns.length == 0) {\r\n let result = [];\r\n quiz.QuizColumns.forEach(element => {\r\n result.push({ field: element, width: 120, resizable: true });\r\n })\r\n setQuizColumns(result);\r\n }\r\n if (quiz.QuizResponses?.length > 0 && quizRows.length == 0) {\r\n setQuizResponses(quiz.QuizResponses)\r\n }\r\n }\r\n }, [quiz])\r\n\r\n useEffect(() => {\r\n if (quizResponses.length > 0) {\r\n let result = [];\r\n quizResponses.forEach(response => {\r\n let row = {};\r\n row[\"id\"] = guid.raw();\r\n if (response.QuizResponseLineItems.length) {\r\n response.QuizResponseLineItems.forEach(item => {\r\n row[item.Label] = item.Value;\r\n })\r\n }\r\n result.push(row);\r\n })\r\n setQuizRows(result);\r\n setIsLoading(false);\r\n }\r\n }, [quizResponses])\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nQuizResponsePage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storeProject: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getQuizResponsesList: PropTypes.func.isRequired, // getRegions \r\n hideAlert: PropTypes.func.isRequired,\r\n storeProject: state.project,\r\n storeUser: state.user,\r\n});\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps, { getQuizResponsesList, getRoleList, hideAlert })(QuizResponsePage));\r\n","import SignUp from \"./SignUp\";\r\nimport SignIn from \"./SignIn\";\r\nimport UserListPage from \"../account/UserListPage\";\r\nimport RoleListPage from \"../roles/RoleListPage\";\r\nimport NotFound from \"./NotFound\";\r\nimport ForgotPassword from \"./ForgotPassword\";\r\nimport UserProfilePage from \"../account/UserProfilePage\";\r\nimport PanelistAsNaturalPersonPage from \"../panelists/PanelistAsNaturalPersonPage\";\r\nimport PanelistAsLegalPersonPage from \"../panelists/PanelistAsLegalPersonPage\";\r\nimport PanelistDetailPage from \"../panelists/PanelistDetailPage\";\r\nimport PanelistAdvancedSearchPage from \"../panelists/PanelistAdvancedSearchPage\";\r\nimport PanelistGroupPage from \"../groups/PanelistGroupPage\";\r\nimport PanelistGroupDetail from \"../groups/PanelistGroupDetail\";\r\nimport PanelistCategoryPage from \"../panelistCategories/PanelistCategoryPage\";\r\nimport ProjectPage from \"../projet/ProjectPage\";\r\nimport ProjectDetailPage from \"../projet/ProjectDetailPage\";\r\nimport QuizResponsePage from \"../projet/QuizResponsePage\";\r\n\r\nconst settings = {\r\n activeLayout: \"layout1\",\r\n layout1Settings: {\r\n topbar: {\r\n show: false\r\n },\r\n leftSidebar: {\r\n show: false,\r\n mode: \"close\"\r\n }\r\n },\r\n layout2Settings: {\r\n mode: \"full\",\r\n topbar: {\r\n show: false\r\n },\r\n navbar: { show: false }\r\n },\r\n secondarySidebar: { show: false },\r\n footer: { show: false }\r\n};\r\n\r\nconst sessionRoutes = [\r\n {\r\n path: \"/session/signup\",\r\n component: SignUp,\r\n settings\r\n },\r\n {\r\n path: \"/session/signin\",\r\n component: SignIn,\r\n settings\r\n },\r\n {\r\n path: \"/session/forgot-password\",\r\n component: ForgotPassword,\r\n settings\r\n },\r\n {\r\n path: \"/session/404\",\r\n component: NotFound,\r\n settings\r\n },\r\n // {\r\n // path: \"/account/roles\",\r\n // component: RoleListPage,\r\n // },\r\n // {\r\n // path: \"/account/users\",\r\n // component: UserListPage\r\n // },\r\n {\r\n path: \"/account/profile\",\r\n component: UserProfilePage\r\n },\r\n {\r\n path: \"/panelist/list\",\r\n component: PanelistAsNaturalPersonPage\r\n },\r\n {\r\n path: \"/panelist/company\",\r\n component: PanelistAsLegalPersonPage\r\n },\r\n {\r\n path: \"/panelist/detail/:id\",\r\n component: PanelistDetailPage,\r\n\r\n },\r\n {\r\n path: \"/panelist/AdvancedSearch\",\r\n component: PanelistAdvancedSearchPage,\r\n\r\n },\r\n {\r\n path: \"/panelist/groups\",\r\n component: PanelistGroupPage,\r\n },\r\n {\r\n path: \"/panelistgroup/detail/:id\",\r\n component: PanelistGroupDetail,\r\n },\r\n {\r\n path: \"/category/list\",\r\n component: PanelistCategoryPage,\r\n },\r\n {\r\n path: \"/projet/list\",\r\n component: ProjectPage\r\n },\r\n {\r\n path: \"/projet/detail/:id\",\r\n component: ProjectDetailPage,\r\n\r\n },\r\n {\r\n path: \"/projet/quizResponse/:projectId/:id\",\r\n component: QuizResponsePage,\r\n }\r\n];\r\n\r\nexport default sessionRoutes;\r\n","import {MatxLoadable} from \"matx\";\r\n\r\nconst AppSnackbar = MatxLoadable({\r\n loader: () => import(\"./snackbar/AppSnackbar\")\r\n});\r\nconst AppDialog = MatxLoadable({\r\n loader: () => import(\"./dialog/AppDialog\")\r\n});\r\nconst AppExpansionPanel = MatxLoadable({\r\n loader: () => import(\"./expansion-panel/AppExpansionPanel\")\r\n});\r\nconst AppAutoComplete = MatxLoadable({\r\n loader: () => import(\"./auto-complete/AppAutoComplete\")\r\n});\r\nconst AppSlider = MatxLoadable({\r\n loader: () => import(\"./slider/AppSlider\")\r\n});\r\nconst AppRadio = MatxLoadable({\r\n loader: () => import(\"./radio/AppRadio\")\r\n});\r\nconst AppSwitch = MatxLoadable({\r\n loader: () => import(\"./switch/AppSwitch\")\r\n});\r\nconst AppCheckbox = MatxLoadable({\r\n loader: () => import(\"./checkbox/AppCheckbox\")\r\n});\r\nconst AppMenu = MatxLoadable({\r\n loader: () => import(\"./menu/AppMenu\")\r\n});\r\nconst AppProgress = MatxLoadable({\r\n loader: () => import(\"./AppProgress\")\r\n});\r\nconst AppIcon = MatxLoadable({\r\n loader: () => import(\"./icons/AppIcon\")\r\n});\r\nconst AppButton = MatxLoadable({\r\n loader: () => import(\"./buttons/AppButton\")\r\n});\r\nconst AppForm = MatxLoadable({\r\n loader: () => import(\"./forms/AppForm\")\r\n});\r\nconst AppTable = MatxLoadable({\r\n loader: () => import(\"./tables/AppTable\")\r\n});\r\n\r\n\r\nconst materialRoutes = [\r\n {\r\n path: \"/material/table\",\r\n component: AppTable\r\n },\r\n {\r\n path: \"/material/form\",\r\n component: AppForm\r\n },\r\n {\r\n path: \"/material/buttons\",\r\n component: AppButton\r\n },\r\n {\r\n path: \"/material/icons\",\r\n component: AppIcon\r\n },\r\n {\r\n path: \"/material/progress\",\r\n component: AppProgress\r\n },\r\n {\r\n path: \"/material/menu\",\r\n component: AppMenu\r\n },\r\n {\r\n path: \"/material/checkbox\",\r\n component: AppCheckbox\r\n },\r\n {\r\n path: \"/material/switch\",\r\n component: AppSwitch\r\n },\r\n {\r\n path: \"/material/radio\",\r\n component: AppRadio\r\n },\r\n {\r\n path: \"/material/slider\",\r\n component: AppSlider\r\n },\r\n {\r\n path: \"/material/autocomplete\",\r\n component: AppAutoComplete\r\n },\r\n {\r\n path: \"/material/expansion-panel\",\r\n component: AppExpansionPanel\r\n },\r\n {\r\n path: \"/material/dialog\",\r\n component: AppDialog\r\n },\r\n {\r\n path: \"/material/snackbar\",\r\n component: AppSnackbar\r\n },\r\n]\r\n\r\nexport default materialRoutes;\r\n","import {MatxLoadable} from \"matx\";\r\n\r\nconst AppDragAndDrop = MatxLoadable({\r\n loader: () => import(\"./AppDragAndDrop\")\r\n});\r\n\r\nconst dragAndDropRoute = [\r\n {\r\n path: \"/others/drag-and-drop\",\r\n component: AppDragAndDrop\r\n }\r\n];\r\n\r\nexport default dragAndDropRoute;\r\n","import { MatxLoadable } from \"matx\";\r\n\r\nconst BasicForm = MatxLoadable({\r\n loader: () => import(\"./BasicForm\")\r\n});\r\n\r\nconst EditorForm = MatxLoadable({\r\n loader: () => import(\"./EditorForm\")\r\n});\r\n\r\nconst formsRoutes = [\r\n {\r\n path: \"/forms/basic\",\r\n component: BasicForm\r\n },\r\n {\r\n path: \"/forms/editor\",\r\n component: EditorForm\r\n }\r\n];\r\n\r\nexport default formsRoutes;\r\n","import { MatxLoadable } from \"matx\";\r\n\r\nconst AppMap = MatxLoadable({\r\n loader: () => import(\"./AppMap\")\r\n});\r\n\r\nconst mapRoutes = [\r\n {\r\n path: \"/map\",\r\n component: AppMap\r\n }\r\n];\r\n\r\nexport default mapRoutes;\r\n","import React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport dashboardRoutes from \"./views/dashboard/DashboardRoutes\";\r\nimport utilitiesRoutes from \"./views/utilities/UtilitiesRoutes\";\r\nimport sessionRoutes from \"./views/sessions/SessionRoutes\";\r\n\r\nimport materialRoutes from \"./views/material-kit/MaterialRoutes\";\r\nimport dragAndDropRoute from \"./views/Drag&Drop/DragAndDropRoute\";\r\n\r\nimport formsRoutes from \"./views/forms/FormsRoutes\";\r\nimport mapRoutes from \"./views/map/MapRoutes\";\r\n\r\nimport UserRoutes from \"./views/account/UserRoutes\";\r\nimport RoleRoutes from \"./views/roles/RoleRoutes\";\r\nimport PanelistRoutes from \"./views/panelists/PanelistRoot\";\r\nimport PanelistGroupRoutes from \"./views/groups/PanelistGroupRoutes\";\r\nimport PanelistCategoryRoutes from \"./views/panelistCategories/PanelistCategoryRoutes\";\r\n\r\nconst redirectRoute = [\r\n {\r\n path: \"/\",\r\n exact: true,\r\n component: () => \r\n },\r\n {\r\n path: \"/account/roles\",\r\n exact: true,\r\n component: () => \r\n },\r\n {\r\n path: \"/account/users\",\r\n exact: true,\r\n component: () => \r\n },\r\n {\r\n path: \"/panelist/AdvancedSearch\",\r\n exact: true,\r\n component: () => \r\n },\r\n {\r\n path: \"/category/list\",\r\n exact: true,\r\n component: () => \r\n },\r\n];\r\n\r\nconst errorRoute = [\r\n {\r\n component: () => \r\n }\r\n];\r\n\r\nconst routes = [\r\n ...sessionRoutes,\r\n ...dashboardRoutes,\r\n ...UserRoutes,\r\n ...RoleRoutes,\r\n ...materialRoutes,\r\n ...utilitiesRoutes,\r\n ...dragAndDropRoute,\r\n ...formsRoutes,\r\n ...mapRoutes,\r\n ...redirectRoute,\r\n ...errorRoute,\r\n ...PanelistRoutes,\r\n ...PanelistGroupRoutes,\r\n ...PanelistCategoryRoutes\r\n];\r\n\r\nexport default routes;\r\n","import React from \"react\";\r\nimport { MatxLoadable } from \"matx\";\r\n\r\nconst UserListPage = MatxLoadable({\r\n loader: () => import(\"./UserListPage\")\r\n})\r\n\r\nconst UserRoutes = [\r\n {\r\n path: \"/account/users\",\r\n component: UserListPage,\r\n auth: ['AllowedToManageAccount']\r\n },\r\n {\r\n path: \"/account/profile\",\r\n component: React.lazy(() => import(\"./UserProfilePage\"))\r\n }\r\n]\r\nexport default UserRoutes;","import React from \"react\";\r\nimport { MatxLoadable } from \"matx\";\r\nimport { authRoles } from \"../../auth/authRoles\";\r\n\r\nconst RoleListPage = MatxLoadable({\r\n loader: () => import(\"./RoleListPage\")\r\n})\r\n\r\nconst RoleRoutes = [\r\n {\r\n path: \"/account/roles\",\r\n component: RoleListPage,\r\n auth: ['AllowedToManageAccount']\r\n }\r\n]\r\nexport default RoleRoutes;","import React from \"react\";\r\n\r\nconst PanelistRoutes = [\r\n {\r\n path: \"/panelist/list\",\r\n component: React.lazy(() => import(\"./PanelistAsNaturalPersonPage\"))\r\n },\r\n {\r\n path: \"/panelist/company\",\r\n component: React.lazy(() => import(\"./PanelistAsLegalPersonPage\"))\r\n },\r\n {\r\n path: \"/panelist/detail/:id\",\r\n component: React.lazy(() => import(\"./PanelistDetailPage\")),\r\n },\r\n {\r\n path: \"/panelist/AdvancedSearch\",\r\n component: React.lazy(() => import(\"./PanelistAdvancedSearchPage\")),\r\n },\r\n]\r\nexport default PanelistRoutes;","import React from \"react\";\r\n\r\nconst PanelistGroupRoutes = [\r\n {\r\n path: \"/panelist/groups\",\r\n component: React.lazy(() => import(\"./PanelistGroupPage\"))\r\n },\r\n {\r\n path: \"/panelistgroup/detail/:id\",\r\n component: React.lazy(() => import(\"./PanelistGroupDetail\")),\r\n },\r\n]\r\nexport default PanelistGroupRoutes;","import React from \"react\";\r\n\r\nconst PanelistCategoryRoutes = [\r\n {\r\n path: \"/category/list\",\r\n component: React.lazy(() => import(\"./PanelistCategoryPage\"))\r\n }\r\n]\r\nexport default PanelistCategoryRoutes;","import {\r\n LOGIN_SUCCESS,\r\n LOGIN_ERROR,\r\n LOGIN_LOADING,\r\n RESET_PASSWORD\r\n} from \"../actions/LoginActions\";\r\n\r\nconst initialState = {\r\n success: false,\r\n loading: false,\r\n error: {\r\n username: null,\r\n password: null\r\n }\r\n};\r\n\r\nconst LoginReducer = function(state = initialState, action) {\r\n switch (action.type) {\r\n case LOGIN_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n case LOGIN_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false\r\n };\r\n }\r\n case RESET_PASSWORD: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false\r\n };\r\n }\r\n case LOGIN_ERROR: {\r\n return {\r\n success: false,\r\n loading: false,\r\n error: action.data\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default LoginReducer;\r\n","import {\r\n SET_USER_DATA,\r\n REMOVE_USER_DATA,\r\n USER_LOGGED_OUT,\r\n GET_USER_LIST,\r\n USER_ACTION_LOADING,\r\n USER_ACTION_SUCCESS,\r\n USER_ACTION_ERROR,\r\n USER_ACTION_SUBMITING,\r\n USER_ACTION_SUBMITED,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n USER_TABLE_CONTENT_LOADING,\r\n USER_TABLE_CONTENT_LOADED, CHANGE_USER_PASSWORD\r\n} from \"../actions/UserActions\";\r\n\r\nconst initialState = {\r\n currentUser: {},\r\n userList: [],\r\n loading: false,\r\n success: false,\r\n failed: false,\r\n submitting: false,\r\n errorMessage: \"\",\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n userListTableContentLoading: false\r\n};\r\n\r\nconst userReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case SET_USER_DATA: {\r\n return {\r\n ...state,\r\n currentUser: { ...action.data }\r\n };\r\n }\r\n case REMOVE_USER_DATA: {\r\n return {\r\n ...state\r\n };\r\n }\r\n case USER_LOGGED_OUT: {\r\n return state;\r\n }\r\n case USER_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case USER_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false,\r\n };\r\n }\r\n case USER_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n case USER_ACTION_SUBMITING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case USER_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n }\r\n case GET_USER_LIST: {\r\n return {\r\n ...state,\r\n userList: [...action.data]\r\n };\r\n }\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n case USER_TABLE_CONTENT_LOADING: {\r\n return {\r\n ...state,\r\n userListTableContentLoading: true\r\n };\r\n }\r\n case USER_TABLE_CONTENT_LOADED: {\r\n return {\r\n ...state,\r\n userListTableContentLoading: false\r\n };\r\n }\r\n case CHANGE_USER_PASSWORD: {\r\n return {\r\n ...state,\r\n showUpdatedAlert: true,\r\n showAddedAlert: false,\r\n showDeletedAlert: false\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default userReducer;\r\n","import {\r\n GET_ROLE_LIST,\r\n ROLE_ACTION_LOADING,\r\n ROLE_ACTION_SUCCESS,\r\n ROLE_ACTION_ERROR,\r\n ROLE_ACTION_SUBMITING,\r\n ROLE_ACTION_SUBMITED,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n ROLE_IS_EDITING,\r\n ROLE_IS_EDITED,\r\n GET_PERMISSION_LIST,\r\n ROLE_TABLE_CONTENT_LOADING,\r\n ROLE_TABLE_CONTENT_LOADED\r\n} from \"../actions/RoleActions\";\r\n\r\nconst initialState = {\r\n roleList: [],\r\n permissionList: [],\r\n loading: false,\r\n success: false,\r\n failed: false,\r\n submitting: false,\r\n errorMessage: \"\",\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n someRoleisEditing: false,\r\n rolesPermissionId: \"\",\r\n roleListTableContentLoading: false\r\n};\r\n\r\nconst roleReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n // Statut des actions\r\n case ROLE_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case ROLE_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false,\r\n };\r\n }\r\n case ROLE_ACTION_SUBMITING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case ROLE_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n }\r\n case ROLE_IS_EDITING: {\r\n return {\r\n ...state,\r\n someRoleisEditing: true,\r\n rolesPermissionId: action.data\r\n };\r\n }\r\n case ROLE_IS_EDITED: {\r\n return {\r\n ...state,\r\n someRoleisEditing: false,\r\n rolesPermissionId: \"\"\r\n };\r\n }\r\n case ROLE_TABLE_CONTENT_LOADING: {\r\n return {\r\n ...state,\r\n roleListTableContentLoading: true\r\n };\r\n }\r\n case ROLE_TABLE_CONTENT_LOADED: {\r\n return {\r\n ...state,\r\n roleListTableContentLoading: false\r\n };\r\n }\r\n case ROLE_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n // Les différentes actions permissionList\r\n\r\n case GET_ROLE_LIST: { // Ce cas de reducer est appelé pour 4 actions: getRoleList, createRole, updateRole et removeRole car le service repond toujours avec la list mise à jour\r\n return {\r\n ...state,\r\n roleList: [...action.data],\r\n someRoleisEditing: false,\r\n rolesPermissionId: \"\"\r\n };\r\n }\r\n case GET_PERMISSION_LIST: {\r\n return {\r\n ...state,\r\n permissionList: [...action.data],\r\n someRoleisEditing: false,\r\n rolesPermissionId: \"\"\r\n };\r\n }\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default roleReducer;\r\n","const Layout1Settings = {\r\n leftSidebar: {\r\n show: true,\r\n mode: 'full', // full, close, compact, mobile,\r\n theme: 'white', // View all valid theme colors inside MatxTheme/themeColors.js\r\n bgOpacity: .96, // 0 ~ 1\r\n bgImgURL: '/assets/images/sidebar/sidebar-bg-dark.jpg'\r\n },\r\n topbar: {\r\n show: true,\r\n fixed: true,\r\n theme: 'purpleDark1' // View all valid theme colors inside MatxTheme/themeColors.js\r\n }\r\n}\r\n\r\nexport default Layout1Settings;","const textLight = {\r\n primary: \"rgba(74, 70, 109, 0.87)\",\r\n secondary: \"rgba(74, 70, 109, 0.54)\",\r\n disabled: \"rgba(74, 70, 109, 0.38)\",\r\n hint: \"rgba(74, 70, 109, 0.38)\"\r\n};\r\n\r\nexport const themeColors = {\r\n white: {\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main: \"#ffffff\",\r\n contrastText: textLight.primary\r\n },\r\n secondary: {\r\n main: \"#540f00\",\r\n contrastText: textLight.primary\r\n },\r\n text: textLight\r\n }\r\n },\r\n slateDark1: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#540f00\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n background: {\r\n paper: \"#540f00\",\r\n default: \"#1a2038\"\r\n }\r\n }\r\n },\r\n slateDark2: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#1a2038\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n background: {\r\n paper: \"#540f00\",\r\n default: \"#1a2038\"\r\n }\r\n }\r\n },\r\n purple1: {\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main: \"#540f00\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n text: textLight\r\n }\r\n },\r\n purple2: {\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main: \"#6a75c9\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n text: textLight\r\n }\r\n },\r\n purpleDark1: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#540f00\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n background: {\r\n paper: \"#540f00\",\r\n default: \"#1a2038\"\r\n }\r\n }\r\n },\r\n purpleDark2: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#6a75c9\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#c11718\",\r\n contrastText: textLight.primary\r\n },\r\n background: {\r\n paper: \"#540f00\",\r\n default: \"#1a2038\"\r\n }\r\n }\r\n },\r\n blue: {\r\n palette: {\r\n type: \"light\",\r\n primary: {\r\n main: \"#3366FF\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#FFAF38\",\r\n contrastText: textLight.primary\r\n },\r\n text: textLight\r\n }\r\n },\r\n blueDark: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#3366FF\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#FF4F30\",\r\n contrastText: textLight.primary\r\n },\r\n background: {\r\n paper: \"#540f00\",\r\n default: \"#1a2038\"\r\n }\r\n }\r\n },\r\n red: {\r\n palette: {\r\n type: \"dark\",\r\n primary: {\r\n main: \"#e53935\",\r\n contrastText: \"#ffffff\"\r\n },\r\n secondary: {\r\n main: \"#FFAF38\",\r\n contrastText: textLight.primary\r\n }\r\n }\r\n }\r\n};\r\n","import { red } from \"@material-ui/core/colors\";\r\n\r\nconst shadows = [\r\n \"none\",\r\n \"0px 2px 1px -1px rgba(0, 0, 0, 0.06),0px 1px 1px 0px rgba(0, 0, 0, 0.042),0px 1px 3px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 3px 1px -2px rgba(0, 0, 0, 0.06),0px 2px 2px 0px rgba(0, 0, 0, 0.042),0px 1px 5px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 3px 3px -2px rgba(0, 0, 0, 0.06),0px 3px 4px 0px rgba(0, 0, 0, 0.042),0px 1px 8px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 2px 4px -1px rgba(0, 0, 0, 0.06),0px 4px 5px 0px rgba(0, 0, 0, 0.042),0px 1px 10px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 3px 5px -1px rgba(0, 0, 0, 0.06),0px 5px 8px 0px rgba(0, 0, 0, 0.042),0px 1px 14px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 3px 5px -1px rgba(0, 0, 0, 0.06),0px 6px 10px 0px rgba(0, 0, 0, 0.042),0px 1px 18px 0px rgba(0, 0, 0, 0.036)\",\r\n \"0px 4px 5px -2px rgba(0, 0, 0, 0.06),0px 7px 10px 1px rgba(0, 0, 0, 0.042),0px 2px 16px 1px rgba(0, 0, 0, 0.036)\",\r\n \"0px 5px 5px -3px rgba(0, 0, 0, 0.06),0px 8px 10px 1px rgba(0, 0, 0, 0.042),0px 3px 14px 2px rgba(0, 0, 0, 0.036)\",\r\n \"0px 5px 6px -3px rgba(0, 0, 0, 0.06),0px 9px 12px 1px rgba(0, 0, 0, 0.042),0px 3px 16px 2px rgba(0, 0, 0, 0.036)\",\r\n \"0px 6px 6px -3px rgba(0, 0, 0, 0.06),0px 10px 14px 1px rgba(0, 0, 0, 0.042),0px 4px 18px 3px rgba(0, 0, 0, 0.036)\",\r\n \"0px 6px 7px -4px rgba(0, 0, 0, 0.06),0px 11px 15px 1px rgba(0, 0, 0, 0.042),0px 4px 20px 3px rgba(0, 0, 0, 0.036)\",\r\n \"0px 7px 8px -4px rgba(0, 0, 0, 0.06),0px 12px 17px 2px rgba(0, 0, 0, 0.042),0px 5px 22px 4px rgba(0, 0, 0, 0.036)\",\r\n \"0px 7px 8px -4px rgba(0, 0, 0, 0.06),0px 13px 19px 2px rgba(0, 0, 0, 0.042),0px 5px 24px 4px rgba(0, 0, 0, 0.036)\",\r\n \"0px 7px 9px -4px rgba(0, 0, 0, 0.06),0px 14px 21px 2px rgba(0, 0, 0, 0.042),0px 5px 26px 4px rgba(0, 0, 0, 0.036)\",\r\n \"0px 8px 9px -5px rgba(0, 0, 0, 0.06),0px 15px 22px 2px rgba(0, 0, 0, 0.042),0px 6px 28px 5px rgba(0, 0, 0, 0.036)\",\r\n \"0px 8px 10px -5px rgba(0, 0, 0, 0.06),0px 16px 24px 2px rgba(0, 0, 0, 0.042),0px 6px 30px 5px rgba(0, 0, 0, 0.036)\",\r\n \"0px 8px 11px -5px rgba(0, 0, 0, 0.06),0px 17px 26px 2px rgba(0, 0, 0, 0.042),0px 6px 32px 5px rgba(0, 0, 0, 0.036)\",\r\n \"0px 9px 11px -5px rgba(0, 0, 0, 0.06),0px 18px 28px 2px rgba(0, 0, 0, 0.042),0px 7px 34px 6px rgba(0, 0, 0, 0.036)\",\r\n \"0px 9px 12px -6px rgba(0, 0, 0, 0.06),0px 19px 29px 2px rgba(0, 0, 0, 0.042),0px 7px 36px 6px rgba(0, 0, 0, 0.036)\",\r\n \"0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)\",\r\n \"0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)\",\r\n \"0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)\",\r\n \"0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)\",\r\n \"0px 10px 13px -6px rgba(0, 0, 0, 0.06),0px 20px 31px 3px rgba(0, 0, 0, 0.042),0px 8px 38px 7px rgba(0, 0, 0, 0.036)\"\r\n];\r\n\r\nconst themeOptions = {\r\n typography: {\r\n fontSize: 14,\r\n body1: {\r\n fontSize: \"14px\"\r\n }\r\n },\r\n\r\n status: {\r\n danger: red[500]\r\n },\r\n shadows,\r\n overrides: {\r\n MuiTable: {\r\n root: {\r\n tableLayout: \"fixed\"\r\n }\r\n },\r\n\r\n MuiTableCell: {\r\n head: {\r\n fontSize: \"13px\",\r\n padding: \"12px 0px\"\r\n },\r\n root: {\r\n fontSize: \"14px\",\r\n whiteSpace: \"pre-wrap\",\r\n padding: \"8px 0px\"\r\n }\r\n },\r\n\r\n MuiExpansionPanelSummary: {\r\n content: {\r\n margin: \"0px\"\r\n }\r\n },\r\n\r\n MuiButton: {\r\n root: {\r\n fontSize: \"14px\",\r\n textTransform: \"none\",\r\n fontWeight: \"400\"\r\n },\r\n contained: {\r\n boxShadow: shadows[8]\r\n }\r\n },\r\n MuiFab: {\r\n root: {\r\n boxShadow: shadows[12]\r\n }\r\n },\r\n MuiCard: {\r\n root: {\r\n borderRadius: \"8px\"\r\n }\r\n },\r\n MuiTooltip: {\r\n tooltip: {\r\n fontSize: \"11px\"\r\n }\r\n },\r\n MuiMenuItem: {\r\n root: {\r\n fontSize: \"0.875rem\"\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default themeOptions;\r\n","import layout1Settings from \"./Layout1/Layout1Settings\";\r\nimport { themeColors } from \"./MatxTheme/themeColors\";\r\nimport { createMuiTheme } from \"@material-ui/core\";\r\nimport { forEach, merge } from \"lodash\";\r\nimport themeOptions from \"./MatxTheme/themeOptions\";\r\n\r\nfunction createMatxThemes() {\r\n let themes = {};\r\n\r\n forEach(themeColors, (value, key) => {\r\n themes[key] = createMuiTheme(merge({}, themeOptions, value));\r\n });\r\n return themes;\r\n}\r\nconst themes = createMatxThemes();\r\n\r\nexport const MatxLayoutSettings = {\r\n activeLayout: \"layout1\", // Check out Matx pro for more options\r\n activeTheme: \"purple1\", // View all valid theme colors inside MatxTheme/themeColors.js\r\n perfectScrollbar: true,\r\n\r\n themes: themes,\r\n layout1Settings, // open Layout1/Layout1Settings.js\r\n\r\n secondarySidebar: { // Check out Matx pro for secondary sidebar\r\n show: true,\r\n theme: \"slateDark1\" // View all valid theme colors inside MatxTheme/themeColors.js\r\n },\r\n // Footer options\r\n footer: {\r\n show: true,\r\n fixed: false,\r\n theme: \"slateDark1\" // View all valid theme colors inside MatxTheme/themeColors.js\r\n }\r\n};\r\n","import {\r\n SET_LAYOUT_SETTINGS,\r\n SET_DEFAULT_LAYOUT_SETTINGS\r\n} from \"../actions/LayoutActions\";\r\nimport { MatxLayoutSettings } from \"../../MatxLayout/settings\";\r\n\r\nconst initialState = {\r\n settings: {\r\n ...MatxLayoutSettings\r\n },\r\n defaultSettings: {\r\n ...MatxLayoutSettings\r\n }\r\n};\r\n\r\nconst LayoutReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case SET_LAYOUT_SETTINGS:\r\n return {\r\n ...state,\r\n settings: { ...action.data }\r\n };\r\n case SET_DEFAULT_LAYOUT_SETTINGS:\r\n return {\r\n ...state,\r\n defaultSettings: { ...action.data }\r\n };\r\n default:\r\n return { ...state };\r\n }\r\n};\r\n\r\nexport default LayoutReducer;\r\n","import axios from \"axios\";\r\n\r\nexport const GET_ALL_BOARD = \"GET_ALL_BOARD\";\r\nexport const GET_BOARD_BY_ID = \"GET_BOARD_BY_ID\";\r\nexport const ADD_BOARD = \"ADD_BOARD\";\r\nexport const ADD_MEMBER_IN_BOARD = \"ADD_MEMBER_IN_BOARD\";\r\nexport const DELETE_MEMBER_FROM_BOARD = \"DELETE_MEMBER_FROM_BOARD\";\r\nexport const GET_ALL_MEMBERS = \"GET_ALL_MEMBERS\";\r\nexport const GET_ALL_LABELS = \"GET_ALL_LABELS\";\r\n\r\nexport const ADD_LIST = \"ADD_LIST\";\r\nexport const RENAME_LIST = \"RENAME_LIST\";\r\nexport const REORDER_LIST = \"REORDER_LIST\";\r\nexport const DELETE_LIST = \"DELETE_LIST\";\r\n\r\nexport const ADD_CARD = \"ADD_CARD\";\r\nexport const UPDATE_CARD = \"UPDATE_CARD\";\r\nexport const REORDER_CARD = \"REORDER_CARD\";\r\nexport const REORDER_CARD_LIST = \"REORDER_CARD_LIST\";\r\nexport const MOVE_CARD = \"MOVE_CARD\";\r\nexport const DELETE_CARD = \"DELETE_CARD\";\r\n\r\nexport const getAllMembers = () => {\r\n return dispatch => {\r\n axios.get(\"/api/scrum-board/all-member\").then(res => {\r\n dispatch({\r\n type: GET_ALL_MEMBERS,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const getAllLabels = () => {\r\n return dispatch => {\r\n axios.get(\"/api/scrum-board/all-label\").then(res => {\r\n dispatch({\r\n type: GET_ALL_LABELS,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\n// BOARD RELATED ACTIONS\r\nexport const getAllBoard = () => {\r\n return dispatch => {\r\n axios.get(\"/api/scrum-board/all-board\").then(res => {\r\n dispatch({\r\n type: GET_ALL_BOARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const addNewBoard = boardTitle => {\r\n return dispatch => {\r\n axios.post(\"/api/scrum-board/add-board\", boardTitle).then(res => {\r\n dispatch({\r\n type: ADD_BOARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const getBoardById = id => {\r\n return dispatch => {\r\n axios.get(\"/api/scrum-board\", { data: id }).then(res => {\r\n dispatch({\r\n type: GET_BOARD_BY_ID,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const addMemberInBoard = ({ boardId, memberId }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/add-member\", { boardId, memberId })\r\n .then(res => {\r\n dispatch({\r\n type: ADD_MEMBER_IN_BOARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const deleteMemberFromBoard = ({ boardId, memberId }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/delete-member\", { boardId, memberId })\r\n .then(res => {\r\n dispatch({\r\n type: DELETE_MEMBER_FROM_BOARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const addListInBoard = ({ boardId, listTitle }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/add-column\", { boardId, listTitle })\r\n .then(res => {\r\n dispatch({\r\n type: ADD_LIST,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const renameListInBoard = ({ boardId, listTitle, listId }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/rename-column\", { boardId, listTitle, listId })\r\n .then(res => {\r\n dispatch({\r\n type: RENAME_LIST,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const reorderList = (boardId, startIndex, endIndex) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/reorder-list\", { boardId, startIndex, endIndex })\r\n .then(res => {\r\n dispatch({\r\n type: REORDER_LIST,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const deleteListFromBoard = ({ boardId, listId }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/delete-column\", { boardId, listId })\r\n .then(res => {\r\n dispatch({\r\n type: DELETE_LIST,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const addNewCardInList = ({ listId, boardId, cardTitle }) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/add-card\", { listId, boardId, cardTitle })\r\n .then(res => {\r\n dispatch({\r\n type: ADD_CARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const reorderCardInList = (boardId, listId, startIndex, endIndex) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/reorder-card\", {\r\n boardId,\r\n listId,\r\n startIndex,\r\n endIndex\r\n })\r\n .then(res => {\r\n dispatch({\r\n type: REORDER_CARD_LIST,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const moveCardInList = (\r\n boardId,\r\n sourcelistId,\r\n destinationlistId,\r\n source,\r\n destination\r\n) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/move-card\", {\r\n boardId,\r\n sourcelistId,\r\n destinationlistId,\r\n source,\r\n destination\r\n })\r\n .then(res => {\r\n dispatch({\r\n type: MOVE_CARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n\r\nexport const updateCardInList = (boardId, listId, card) => {\r\n return dispatch => {\r\n axios\r\n .post(\"/api/scrum-board/update-card\", { boardId, listId, card })\r\n .then(res => {\r\n dispatch({\r\n type: UPDATE_CARD,\r\n payload: res.data\r\n });\r\n });\r\n };\r\n};\r\n","import {\r\n GET_ALL_BOARD,\r\n ADD_BOARD,\r\n GET_BOARD_BY_ID,\r\n ADD_LIST,\r\n RENAME_LIST,\r\n DELETE_LIST,\r\n ADD_CARD,\r\n GET_ALL_MEMBERS,\r\n GET_ALL_LABELS,\r\n ADD_MEMBER_IN_BOARD,\r\n DELETE_MEMBER_FROM_BOARD,\r\n UPDATE_CARD,\r\n REORDER_CARD,\r\n MOVE_CARD,\r\n REORDER_LIST,\r\n REORDER_CARD_LIST\r\n} from \"../actions/ScrumBoardActions\";\r\n\r\nconst initialState = {};\r\n\r\nconst ScrumBoardReducer = function(state = initialState, action) {\r\n switch (action.type) {\r\n case GET_ALL_MEMBERS: {\r\n return {\r\n ...state,\r\n memberList: [...action.payload]\r\n };\r\n }\r\n case GET_ALL_LABELS: {\r\n return {\r\n ...state,\r\n labelList: [...action.payload]\r\n };\r\n }\r\n case GET_ALL_BOARD: {\r\n return {\r\n ...state,\r\n boardList: [...action.payload]\r\n };\r\n }\r\n case ADD_BOARD: {\r\n return {\r\n ...state,\r\n boardList: [...action.payload]\r\n };\r\n }\r\n case GET_BOARD_BY_ID: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case ADD_MEMBER_IN_BOARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case DELETE_MEMBER_FROM_BOARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case ADD_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case RENAME_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case DELETE_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case REORDER_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case ADD_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case UPDATE_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case REORDER_CARD_LIST: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n case MOVE_CARD: {\r\n return {\r\n ...state,\r\n board: { ...action.payload }\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default ScrumBoardReducer;\r\n","import {\r\n GET_NOTIFICATION,\r\n CREATE_NOTIFICATION,\r\n DELETE_ALL_NOTIFICATION,\r\n DELETE_NOTIFICATION\r\n} from \"../actions/NotificationActions\";\r\n\r\nconst initialState = [];\r\n\r\nconst NotificationReducer = function(state = initialState, action) {\r\n switch (action.type) {\r\n case GET_NOTIFICATION: {\r\n return [...action.payload];\r\n }\r\n case CREATE_NOTIFICATION: {\r\n return [...action.payload];\r\n }\r\n case DELETE_NOTIFICATION: {\r\n return [...action.payload];\r\n }\r\n case DELETE_ALL_NOTIFICATION: {\r\n return [...action.payload];\r\n }\r\n default: {\r\n return [...state];\r\n }\r\n }\r\n};\r\n\r\nexport default NotificationReducer;\r\n","import {\r\n GET_PRODUCT_LIST,\r\n GET_CART_LIST,\r\n ADD_PRODUCT_TO_CART,\r\n DELETE_PRODUCT_FROM_CART,\r\n UPDATE_CART_AMOUNT,\r\n GET_CATEGORY_LIST,\r\n GET_RATING_LIST,\r\n GET_BRAND_LIST\r\n} from \"../actions/EcommerceActions\";\r\n\r\nconst initialState = {\r\n productList: [],\r\n cartList: []\r\n};\r\n\r\nconst EcommerceReducer = function(state = initialState, action) {\r\n switch (action.type) {\r\n case GET_PRODUCT_LIST: {\r\n return {\r\n ...state,\r\n productList: [...action.payload]\r\n };\r\n }\r\n case GET_CATEGORY_LIST: {\r\n return {\r\n ...state,\r\n categoryList: [...action.payload]\r\n };\r\n }\r\n case GET_RATING_LIST: {\r\n return {\r\n ...state,\r\n ratingList: [...action.payload]\r\n };\r\n }\r\n case GET_BRAND_LIST: {\r\n return {\r\n ...state,\r\n brandList: [...action.payload]\r\n };\r\n }\r\n case GET_CART_LIST: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload]\r\n };\r\n }\r\n case ADD_PRODUCT_TO_CART: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload]\r\n };\r\n }\r\n case DELETE_PRODUCT_FROM_CART: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload]\r\n };\r\n }\r\n case UPDATE_CART_AMOUNT: {\r\n return {\r\n ...state,\r\n cartList: [...action.payload]\r\n };\r\n }\r\n default: {\r\n return {\r\n ...state\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default EcommerceReducer;\r\n","import {\r\n GET_PANELIST,\r\n GET_PANELIST_LIST,\r\n ADD_PANELIST_TO_LIST,\r\n DELETE_PANELIST_FROM_LIST,\r\n UPDATE_PANELIST,\r\n PANELIST_ACTION_SUBMITTING,\r\n PANELIST_ACTION_SUBMITED,\r\n PANELIST_ACTION_LOADING,\r\n PANELIST_ACTION_SUCCESS,\r\n PANELIST_ACTION_ERROR,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING,\r\n PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED,\r\n GET_REGIONLIST\r\n} from \"../actions/PanelistActions\";\r\n\r\nconst initialState = {\r\n submitting: false,\r\n success: false,\r\n loading: false,\r\n failed: false,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n panelistList: [],\r\n panelistAsNaturalPersonList: [],\r\n panelistAsLegalPersonList: [],\r\n currentPanelist: {},\r\n panelistAdvancedSearchTableContentLoading: false,\r\n regionList: [],\r\n advancedSearchTermList: [\r\n {\r\n key: \"Type\",\r\n value: \"Type\"\r\n },\r\n {\r\n key: \"Nombre d'employés\",\r\n value: \"EmployeesCount\"\r\n },\r\n {\r\n key: \"Prénom\",\r\n value: \"FirstName\"\r\n },\r\n {\r\n key: \"Nom\",\r\n value: \"LastName\"\r\n },\r\n {\r\n key: \"Date de naissance/création\",\r\n value: \"BirthDate\"\r\n },\r\n {\r\n key: \"Sexe\",\r\n value: \"Gender\"\r\n },\r\n {\r\n key: \"Revenu\",\r\n value: \"Income\"\r\n },\r\n {\r\n key: \"Téléphone 1\",\r\n value: \"PhoneNumber1\"\r\n },\r\n {\r\n key: \"Téléphone 2\",\r\n value: \"PhoneNumber2\"\r\n },\r\n {\r\n key: \"Email\",\r\n value: \"Email\"\r\n },\r\n {\r\n key: \"Niveau d'étude\",\r\n value: \"EducationLevel\"\r\n },\r\n {\r\n key: \"Catégorie\",\r\n value: \"Category\"\r\n },\r\n {\r\n key: \"Profession\",\r\n value: \"Profession\"\r\n },\r\n {\r\n key: \"Région/Vile\",\r\n value: \"RegionName\"\r\n },\r\n {\r\n key: \"Commune\",\r\n value: \"TownName\"\r\n },\r\n {\r\n key: \"Quartier\",\r\n value: \"DistictName\"\r\n },\r\n ],\r\n educationLevelOptions: [\r\n { label: \"Pas d'éducation scolaire\" },\r\n { label: \"Ecole coranique\" },\r\n { label: \"Primaire\" },\r\n { label: \"Secondaire\" },\r\n { label: \"Universitaire\" }\r\n ],\r\n incomeOptions: [\r\n { label: \"Moins de 150 000 FCFA\" },\r\n { label: \"150 000 à 450 000 FCFA\" },\r\n { label: \"450 000 à 750 000 FCFA\" },\r\n { label: \"750 000 à 1 500 000 FCFA\" },\r\n { label: \"Plus de 1 500 000 FCFA\" }\r\n ],\r\n professionOptions: [\r\n { label: \"Agriculture\", type: \"LegalPerson\" },\r\n { label: \"Architecte\", type: \"LegalPerson\" },\r\n { label: \"Artisan\", type: \"LegalPerson\" },\r\n { label: \"Artiste\", type: \"LegalPerson\" },\r\n { label: \"Autres\", type: \"LegalPerson\" },\r\n { label: \"Autre technicien\", type: \"LegalPerson\" },\r\n { label: \"Banquier\", type: \"LegalPerson\" },\r\n { label: \"Cadre d'entreprise\", type: \"LegalPerson\" },\r\n { label: \"Chauffeur, routier\", type: \"LegalPerson\" },\r\n { label: \"Chef d'entreprise\", type: \"LegalPerson\" },\r\n { label: \"Chercheur, scientifique\", type: \"LegalPerson\" },\r\n { label: \"Chimiste\", type: \"LegalPerson\" },\r\n { label: \"Chômeur\", type: \"LegalPerson\" },\r\n { label: \"Clergé,religieux\", type: \"LegalPerson\" },\r\n { label: \"Commerçant\", type: \"LegalPerson\" },\r\n { label: \"Diplomate\", type: \"LegalPerson\" },\r\n { label: \"Electronicien\", type: \"LegalPerson\" },\r\n { label: \"Elève,Etudiant,Stagiaire\", type: \"NaturalPerson\" },\r\n { label: \"Employé\", type: \"NaturalPerson\" },\r\n { label: \"Employé Privé au Service de Diplomate\", type: \"NaturalPerson\" },\r\n { label: \"Enseignant\", type: \"NaturalPerson\" },\r\n { label: \"Fonctionnaire\", type: \"NaturalPerson\" },\r\n { label: \"Homme Politique\", type: \"NaturalPerson\" },\r\n { label: \"Informaticien\", type: \"NaturalPerson\" },\r\n { label: \"Journaliste\", type: \"NaturalPerson\" },\r\n { label: \"Magistrat\", type: \"NaturalPerson\" },\r\n { label: \"Marin\", type: \"NaturalPerson\" },\r\n { label: \"Mode, Cosmétique\", type: \"NaturalPerson\" },\r\n { label: \"Ouvrier\", type: \"NaturalPerson\" },\r\n { label: \"Personnel de Service, Administratif ou Technique (Postes dipl./consul.)\", type: \"NaturalPerson\" },\r\n { label: \"Policier, Militaire\", type: \"NaturalPerson\" },\r\n { label: \"Profession Jurique\", type: \"NaturalPerson\" },\r\n { label: \"Profession Fiscaliste\", type: \"NaturalPerson\" },\r\n { label: \"Profession Libérale\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Programmeur\", type: \"NaturalPerson\" },\r\n // { label: \"Actuaire Tarification\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Réalisateur\", type: \"NaturalPerson\" },\r\n // { label: \"Actuaire Vie\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Adjoint de Direction\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Risques\", type: \"NaturalPerson\" },\r\n // { label: \"Adjoint Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Adjoint Responsable Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Test\", type: \"NaturalPerson\" },\r\n // { label: \"Admin IT\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Base de Données\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur 2D\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur 3D\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Réseau\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Avant-Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Site Web\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Club de Vacances\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Support\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Système\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur de Loisirs\", type: \"NaturalPerson\" },\r\n // { label: \"Administrateur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur de Stand\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Accueil Touristique\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur de Télévision\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur de Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Archivage\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Enfants\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Assainissement\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Fitness\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur HSE\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Call Center\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Radio\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Billetterie\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Réseau\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Blanchisserie\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Socio-Culturel\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Bureau\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Soirée\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Change\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Spectacle\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Classement\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Sportif\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Comptoir\", type: \"NaturalPerson\" },\r\n // { label: \"Animateur Touristique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Contrôle\", type: \"NaturalPerson\" },\r\n // { label: \"Apporteur Affaires\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Copropriété\", type: \"NaturalPerson\" },\r\n // { label: \"Approvisionneur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Développement\", type: \"NaturalPerson\" },\r\n // { label: \"Aquaculteur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Fabrication Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Fabrication Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Auditeur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Facturation\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Décisionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Finition\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Développeur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Liaison\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte d´Intérieur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Lingerie\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Lutte Antiparasitaire\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Infrastructure\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Maintenance des Bâtiments\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Logiciel\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Médiation Sociale\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Paysagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Montage\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Poste de Travail\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Nettoyage Hospitalier\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Phoning\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Réseaux Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Piste Aéroport\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Planification\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte SI\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Planning Transport\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Système\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Pointage\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Prévention et de Médiation\", type: \"NaturalPerson\" },\r\n // { label: \"Architecte Test\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Archiviste\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Programmation\", type: \"NaturalPerson\" },\r\n // { label: \"Area Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Promotion\", type: \"NaturalPerson\" },\r\n // { label: \"Area Sales Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Propreté et d´Hygiène\", type: \"NaturalPerson\" },\r\n // { label: \"Art Thérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Quai\", type: \"NaturalPerson\" },\r\n // { label: \"Artisan\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Recensement\", type: \"NaturalPerson\" },\r\n // { label: \"Artiste Peintre\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Recouvrement\", type: \"NaturalPerson\" },\r\n // { label: \"Ascensoriste\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Réservation\", type: \"NaturalPerson\" },\r\n // { label: \"Assembleur Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Restauration\", type: \"NaturalPerson\" },\r\n // { label: \"Assembleur Monteur de Meubles\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Assembleur Soudeur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Sécurité et de Surveillance\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Service Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Achats et Approvisionnements...\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Service en Restauration...\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Service Hospitalier\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Administratif et Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Stérilisation\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Administration des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Sûreté Aéroportuaire\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Affaires Réglementaires\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Télémarketing\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Back-Office\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Télémarketing à Domicile\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Bilingue\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Tourisme\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Bureau\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Trafic\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Chef de Produit\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Train\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Chef de Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Traitement de l´Eau\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Traitement du Courrier\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Commercial Export\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Transit\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Communication\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Tri\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Agent de Voyage\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Contrôleur de Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Déclarant en Douane\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant de Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Agent des Services Communautaires et...\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Dentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Entretien des Cours d´Eau\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Directeur de Site\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Entretien des Espaces Naturels\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Edition\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Entretien Nature\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Facturation\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Escale\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Funéraire\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation Aérien\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Import Export\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation de Parking\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Juridique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation en Centre de Stockage...\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation en Centre de Tri des...\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation Maritime\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Exploitation Transport\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Paie\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Help Desk\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Hospitalier\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Production\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Immatriculation Véhicule\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Recrutement\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Import Export\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant RH\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Incendie\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Service Social\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Information\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Social\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Inside Sales\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Soins en Gérontologie\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Laboratoire\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Son\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Mailer\", type: \"NaturalPerson\" },\r\n // { label: \"Assistant Technique Clientèle\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Méthodes Habillement\", type: \"NaturalPerson\" },\r\n // { label: \"Assistante de Direction\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Assistante Familiale\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Relogement\", type: \"NaturalPerson\" },\r\n // { label: \"Assistante Maternelle\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Service Après-Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Attaché Administration\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Services Généraux\", type: \"NaturalPerson\" },\r\n // { label: \"Attaché Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Sinistre\", type: \"NaturalPerson\" },\r\n // { label: \"Attaché de Presse\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Supply Chain Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Attaché de Recherche Clinique\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Supply Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Attaché Relations Presse\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Support Administratif RH\", type: \"NaturalPerson\" },\r\n // { label: \"Audioprothésiste\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Support Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Auditeur\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Support Applicatif Achat\", type: \"NaturalPerson\" },\r\n // { label: \"Auditeur Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Technico-Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Auditeur Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Auditeur Interne\", type: \"NaturalPerson\" },\r\n // { label: \"Agent Technique Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Auditeur Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Agriculteur Biologique\", type: \"NaturalPerson\" },\r\n // { label: \"Auxiliaire de Puériculture\", type: \"NaturalPerson\" },\r\n // { label: \"Agriculteur en Grande Culture\", type: \"NaturalPerson\" },\r\n // { label: \"Auxiliaire de Vie\", type: \"NaturalPerson\" },\r\n // { label: \"Agronome\", type: \"NaturalPerson\" },\r\n // { label: \"Auxiliaire de Vie Sociale\", type: \"NaturalPerson\" },\r\n // { label: \"Aide à Domicile\", type: \"NaturalPerson\" },\r\n // { label: \"Avocat\", type: \"NaturalPerson\" },\r\n // { label: \"Aide à la Personne\", type: \"NaturalPerson\" },\r\n // { label: \"Avocat Collaborateur\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Agricole Saisonnier\", type: \"NaturalPerson\" },\r\n // { label: \"Avocat Conseil\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Caissier\", type: \"NaturalPerson\" },\r\n // { label: \"Avocat d´Affaires\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Bagagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Constructeur Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Balayeur\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Cuisinier\", type: \"NaturalPerson\" },\r\n // { label: \"Barista\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Documentaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Barman\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Educatrice\", type: \"NaturalPerson\" },\r\n // { label: \"Batelier\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Enseignante\", type: \"NaturalPerson\" },\r\n // { label: \"Beta Testeur\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Familiale\", type: \"NaturalPerson\" },\r\n // { label: \"Bibliothécaire\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Gouvernante\", type: \"NaturalPerson\" },\r\n // { label: \"Bijoutier\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Laborantin\", type: \"NaturalPerson\" },\r\n // { label: \"Billettiste\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Livreur\", type: \"NaturalPerson\" },\r\n // { label: \"Bio Informaticien\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Médico-Psychologique\", type: \"NaturalPerson\" },\r\n // { label: \"Biochimiste\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Ménagère\", type: \"NaturalPerson\" },\r\n // { label: \"Biologiste\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Menuisier\", type: \"NaturalPerson\" },\r\n // { label: \"Biologiste Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Personnes Agées\", type: \"NaturalPerson\" },\r\n // { label: \"Biostatisticien\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Pharmacien\", type: \"NaturalPerson\" },\r\n // { label: \"Blanchisseur Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Soignante\", type: \"NaturalPerson\" },\r\n // { label: \"Boucher Charcutier\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Vendeur\", type: \"NaturalPerson\" },\r\n // { label: \"Boulanger\", type: \"NaturalPerson\" },\r\n // { label: \"Aide Vétérinaire\", type: \"NaturalPerson\" },\r\n // { label: \"Boulanger Patissier\", type: \"NaturalPerson\" },\r\n // { label: \"Aiguilleur du Ciel\", type: \"NaturalPerson\" },\r\n // { label: \"Boutique Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Aiguilleur du Rail\", type: \"NaturalPerson\" },\r\n // { label: \"Brancardier\", type: \"NaturalPerson\" },\r\n // { label: \"Ajusteur\", type: \"NaturalPerson\" },\r\n // { label: \"Brand Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Ajusteur Monteur\", type: \"NaturalPerson\" },\r\n // { label: \"Brodeur\", type: \"NaturalPerson\" },\r\n // { label: \"Ajusteur Monteur Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Broker\", type: \"NaturalPerson\" },\r\n // { label: \"Ajusteur Mouliste\", type: \"NaturalPerson\" },\r\n // { label: \"Buraliste\", type: \"NaturalPerson\" },\r\n // { label: \"Ambassadeur de Marque\", type: \"NaturalPerson\" },\r\n // { label: \"Business Analyst\", type: \"NaturalPerson\" },\r\n // { label: \"Ambulancier\", type: \"NaturalPerson\" },\r\n // { label: \"Business Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste\", type: \"NaturalPerson\" },\r\n // { label: \"Business Developer\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Concepteur\", type: \"NaturalPerson\" },\r\n // { label: \"Business Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Analyste Crédit\", type: \"NaturalPerson\" },\r\n // { label: \"Business Unit Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Cableur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Education\", type: \"NaturalPerson\" },\r\n // { label: \"Cableur Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Achats\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Création d´Entreprise\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Back-Office\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Défense des Droits\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Bureau d´Etudes\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Efficacité Energétique\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Gestion de Patrimoine\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Image\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre de Santé\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Socio-Anthropologie\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Dirigeant\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller en Transformation Digitale...\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Export\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Evaluation\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Infirmier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Insertion\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Ingénieur Technico-Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Insertion Professionnelle\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Supérieur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Juridique\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Multimedia\", type: \"NaturalPerson\" },\r\n // { label: \"Cadre Trésorier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller National\", type: \"NaturalPerson\" },\r\n // { label: \"Cadreur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Orientation\", type: \"NaturalPerson\" },\r\n // { label: \"Cadreur Audiovisuel\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Orientation Pédagogique\", type: \"NaturalPerson\" },\r\n // { label: \"Caissier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Patrimonial\", type: \"NaturalPerson\" },\r\n // { label: \"Calculateur Projeteur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Pédagogique\", type: \"NaturalPerson\" },\r\n // { label: \"Calligraphe\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Psychologue en Orientation...\", type: \"NaturalPerson\" },\r\n // { label: \"Cambiste\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Recrutement et Mobilité\", type: \"NaturalPerson\" },\r\n // { label: \"Cancérologue\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Ressources Humaines\", type: \"NaturalPerson\" },\r\n // { label: \"Capability Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Sports et Loisirs\", type: \"NaturalPerson\" },\r\n // { label: \"Capitaine de la Marine Marchande\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Technico-Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Capitaine de la Navigation Maritime\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Capitaine de Navire\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Téléphonique\", type: \"NaturalPerson\" },\r\n // { label: \"Cardiologue\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Voyages\", type: \"NaturalPerson\" },\r\n // { label: \"Caricaturiste\", type: \"NaturalPerson\" },\r\n // { label: \"Conservateur Bibliothèque\", type: \"NaturalPerson\" },\r\n // { label: \"Cariste\", type: \"NaturalPerson\" },\r\n // { label: \"Conservateur en Archéologie\", type: \"NaturalPerson\" },\r\n // { label: \"Carreleur\", type: \"NaturalPerson\" },\r\n // { label: \"Conservateur Musée\", type: \"NaturalPerson\" },\r\n // { label: \"Carrossier\", type: \"NaturalPerson\" },\r\n // { label: \"Consignataire Maritime\", type: \"NaturalPerson\" },\r\n // { label: \"Carrossier Réparateur\", type: \"NaturalPerson\" },\r\n // { label: \"Consolideur\", type: \"NaturalPerson\" },\r\n // { label: \"Carrossier Tôlier\", type: \"NaturalPerson\" },\r\n // { label: \"Constructeur Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Cash Collection Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Construction Cost Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Cash Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Category Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Accessibilité\", type: \"NaturalPerson\" },\r\n // { label: \"Céramiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Accompagnement Collectif\", type: \"NaturalPerson\" },\r\n // { label: \"Céramiste Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Accompagnement Individuel\", type: \"NaturalPerson\" },\r\n // { label: \"Change Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Achats\", type: \"NaturalPerson\" },\r\n // { label: \"Chanteur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Actuaire\", type: \"NaturalPerson\" },\r\n // { label: \"Character Designer\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Actuariat Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Clientèle\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Communication\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Advisory Insurance\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Consolidation\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Affaires Internationales\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Contenu Web\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Affaires Techniques\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Développement RH\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant AGILE\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Mission\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Aides et Subventions\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Missions Humanitaires\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Analyste Risque de Crédit\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Planification Ordonnancement...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Appels d´Offres\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Production Audiovisuelle\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Aquaculture et Gestion des...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Assesment\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Promotion des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recherche\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Audit et Contrôle de Gestion...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recherche et Développement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Audit et Systèmes de Gestion...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recherche Pharmaceutique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Avant-Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recouvrement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Banking\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recouvrement Terrain\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Business et Management\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Recrutement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Business Transformation\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Référencement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Centre de Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Sourcing BPO\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Chef de Mission\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Sponsoring\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Commercial en Technologies de l...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Trésorerie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Communication\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé de Veille Stratégique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Communication Interculturelle...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Achats\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Communication Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Recettes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Communication NTIC\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Réclamations\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Communication RH\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Relations Extérieures\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Comptabilité\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Relations Institutionnels\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Comptabilité Paie\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Relations Publiques\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Conduite de Changement\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé des Tests\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Conseil\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé du Reporting\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Conseil et Expertise\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé du Suivi Opérationnel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Consolidation et IFRS\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Accueil\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Construction Passive\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Affaires\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Contrôle Interne Risques Audit...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Affaires Techniques\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Corporate Finance\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Assistance Technique Automobile...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant CRM\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Enquêtes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Dévelopement et Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes en Economie de la...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Développement International...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes Environnement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Développement Rural\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Digital\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes Média\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Directions Financières\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes Statistiques\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant E-Commerce et Places de Marchés...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Etudes Techniques\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Economique Juridique et Fiscal...\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Insertion Socioprofessionnelle...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Education et Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Chargé d´Opérations Immobilières\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Communication Marketing...\", type: \"NaturalPerson\" },\r\n // { label: \"Charpentier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Développement Commercial...\", type: \"NaturalPerson\" },\r\n // { label: \"Charpentier Bois\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Développement des...\", type: \"NaturalPerson\" },\r\n // { label: \"Charpentier Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Diagnostic Economique et...\", type: \"NaturalPerson\" },\r\n // { label: \"Chasseur de Têtes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Droit Foncier\", type: \"NaturalPerson\" },\r\n // { label: \"Chaudronnier Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Economie\", type: \"NaturalPerson\" },\r\n // { label: \"Chaudronnier Tôlier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Entrepreneuriat à l´...\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Environnement\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Finance Internationale\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Camion\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Finances des Marchés\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Coursier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Gestion de Groupe\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur de Bus\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Gestion de Temps\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur de Maître\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Gestion du Stress\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur de Taxi\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Gestion Statutaire\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Entreprise\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Innovation\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Livreur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Lean Management\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Mécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Lean Qualité Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur Particulier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Liquidation\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur SPL\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Chauffeur VL\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management de Projets\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Architecte\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management des Connaissances...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management des Equipes\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Agroalimentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management des Risques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Carrosserie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Chimie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management Industriel et...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management Spécialiste de la...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Impression Cartonnage\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Marketing et Gestion...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Industrie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Marketing Stratégique\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Médiation\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Mobilité\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Atelier Production\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Organisation\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Chantier Métreur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Organisation d´Entreprise...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Performance Commerciale...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Bureau Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Psychologie du Travail\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Cabinet\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Recrutement\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Caisse\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Relations Publiques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Carrière\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Ressources Humaines\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Chantier BTP\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Risques Professionnels\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Chantier Minier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Risques Psychosociaux\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Chœur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Santé\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Cuisine\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Santé Publique\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Fabrication en Imprimerie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Sciences Politiques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Groupe\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Socio-Anthropologie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Laboratoire\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Storytelling\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Mission\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie Développement d´...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Parc Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie Digitale\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Partie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie et Transactions...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Plateau\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie Mergers...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Sûreté Aérienne\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Tourisme\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Digital Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Tourisme Rural\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Industrie Pharmaceutique...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Transactions d´...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Transfert de Technologie...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Prix\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Transformation\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Textile\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Trésorerie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Produit Web\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Voyages\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Energie Renouvelable et...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet AMO\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Entrepreneuriat et Business...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Architecte Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Executive Search\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet CRM\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Expert Bilan Carbone\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Culture et Patrimoine\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Expert en Stratégie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Ecologue\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Fastsourcing\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Energie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Finance\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Finances Publiques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Financial Risk\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Fiscaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Formateur\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Géopolitique\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Poste de Travail\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion de Projets...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Sites et Sols Pollués\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion des Eaux\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion des Risques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion des Risques Marchés...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Télécom\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Gestion Patrimoine\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Transverse\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Hôtellerie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Projet Web\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Hygiène Sécurité du Travail...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Publicité\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Immigration\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Quai\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Industries Agroalimentaires...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Rang\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Innovation Produits et Marchés...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Rayon\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Intelligence Economique et...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Secteur en GMS\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant International\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Service\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Interne\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Service Educatif\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Juridique et Fiscal\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Service Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Lean Six Sigma\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Service Sécurité Incendie et...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Liens Sponsorisés\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Travaux\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Chef de Zone\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Marchés Publics\", type: \"NaturalPerson\" },\r\n // { label: \"Chef des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Chef du Personnel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Marketing Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Agence\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Marketing Opérationnel\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Métier\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe Construction Métallique...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Nutrition\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe Entretien de Locaux\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Opération et Support\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Opérationnel\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe Nettoyage\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Organisation et Management de...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe Production\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Organisation Stratégie\", type: \"NaturalPerson\" },\r\n // { label: \"Chef d´Equipe BTP\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant PME\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Prévention des Risques\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Garde Manger\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Procurement et Sourcing\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Garde Manger\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Produit\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Gérant\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Propriété Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Ingénieur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Psychologue\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Machiniste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Publicité en Ligne\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Magasinier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Réalité Virtuelle\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Mécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Relation Clientèle\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Monteur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Reporting et Consolidation...\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Opérateur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Réseaux Sociaux\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Orchestre\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Retraite\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Projet Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant RH\", type: \"NaturalPerson\" },\r\n // { label: \"Chef Steward\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Risques Environnementaux\", type: \"NaturalPerson\" },\r\n // { label: \"Chercheur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Salesforce\", type: \"NaturalPerson\" },\r\n // { label: \"Chercheur en Sciences Exactes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Santé Social\", type: \"NaturalPerson\" },\r\n // { label: \"Chercheur en Sciences Humaines ou Sociales...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant SAP\", type: \"NaturalPerson\" },\r\n // { label: \"Chimiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Secteur Pharmaceutique\", type: \"NaturalPerson\" },\r\n // { label: \"Chirurgien\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Secteur Public\", type: \"NaturalPerson\" },\r\n // { label: \"Chirurgien Dentiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant SEO\", type: \"NaturalPerson\" },\r\n // { label: \"Chocolatier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Sociologue\", type: \"NaturalPerson\" },\r\n // { label: \"Chocolatier Confiseur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Talent Acquisition\", type: \"NaturalPerson\" },\r\n // { label: \"Chorégraphe\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Technico-Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Chroniqueur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Tests et Mesures Electroniques...\", type: \"NaturalPerson\" },\r\n // { label: \"Claviste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Traitement des Déchets\", type: \"NaturalPerson\" },\r\n // { label: \"Clerc de Notaire\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Transaction Services\", type: \"NaturalPerson\" },\r\n // { label: \"Clown\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Transformation Digitale\", type: \"NaturalPerson\" },\r\n // { label: \"Coach\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Ventes et Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Coach Arts Martiaux\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Yield Management\", type: \"NaturalPerson\" },\r\n // { label: \"Coach en Evolution Professionnelle ou...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Accompagnement au Changement...\", type: \"NaturalPerson\" },\r\n // { label: \"Coach Professionnelle\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Accompagnement Entrepreneurial...\", type: \"NaturalPerson\" },\r\n // { label: \"Coach Sportif\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Actuariat et Risque des...\", type: \"NaturalPerson\" },\r\n // { label: \"Coffreur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Approvisionnement Logistique...\", type: \"NaturalPerson\" },\r\n // { label: \"Coiffeur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Bureaux\", type: \"NaturalPerson\" },\r\n // { label: \"Coiffeuse Visagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Capital Markets\", type: \"NaturalPerson\" },\r\n // { label: \"Collaborateur Architecte\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Category Management\", type: \"NaturalPerson\" },\r\n // { label: \"Collaborateur Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Développement Nouveaux Marchés...\", type: \"NaturalPerson\" },\r\n // { label: \"Collecteur de Fonds\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant E-Commerce\", type: \"NaturalPerson\" },\r\n // { label: \"Comédien\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant E-Santé\", type: \"NaturalPerson\" },\r\n // { label: \"Commandant de Bord\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Accompagnement Comptable de...\", type: \"NaturalPerson\" },\r\n // { label: \"Commerçant\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Accompagnement des...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Actuariat Assurance Vie...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial B to B\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Actuariat Compensation et...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial B to C\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Administration du Personnel...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Export\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Business Modelling\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Grands Comptes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Contrôle de Gestion Sociale...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Credit Management\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Itinérant\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Développement Commercial...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Pièces Détachées et Accessoires...\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Evaluation de Politiques...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Sédentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Expatriation\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Sédentaire en Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Intelligence Collective...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Showroom\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Litigation et Forensic\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Terrain\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Maîtrise des Risques et...\", type: \"NaturalPerson\" },\r\n // { label: \"Commercial Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Management de l´Entreprise...\", type: \"NaturalPerson\" },\r\n // { label: \"Commis\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Optimisation de Charges...\", type: \"NaturalPerson\" },\r\n // { label: \"Commis de Cuisine\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Organisation et Méthodologie...\", type: \"NaturalPerson\" },\r\n // { label: \"Commis de Rang\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en People and Change\", type: \"NaturalPerson\" },\r\n // { label: \"Commis Patissier\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Protection Sociale\", type: \"NaturalPerson\" },\r\n // { label: \"Commissaire aux Comptes\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Relocation\", type: \"NaturalPerson\" },\r\n // { label: \"Community Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Rémunération et en...\", type: \"NaturalPerson\" },\r\n // { label: \"Compliance Officer\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Stratégie CRM\", type: \"NaturalPerson\" },\r\n // { label: \"Compositeur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant en Talent Management\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Finance Risques et Conformité...\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Fonctionnel Supply Chain\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Auxiliaire\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Formation et Documentation...\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Immobilier Bureaux\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Clients Fournisseurs\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Immobilier et Hôtels\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Clients Recouvrement\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Investissement en Immobilier d´...\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Copropriété\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Investment Banking\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Fournisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Maintien dans l’Emploi\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Général\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Organisations Internationales...\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Réassurance\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Outplacement\", type: \"NaturalPerson\" },\r\n // { label: \"Comptable Trésorerie\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Patrimonial Gestion Privée...\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Recrutement Travail Temporaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Dessinateur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Rédaction de Contenu\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Développeur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Restructuring\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Stratégie et Opérations\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Paysagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Strategy Customer and...\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Projeteur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Supervision\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Réalisateur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Support Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Rédacteur\", type: \"NaturalPerson\" },\r\n // { label: \"Consultant Tannerie\", type: \"NaturalPerson\" },\r\n // { label: \"Concepteur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Content Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Concierge\", type: \"NaturalPerson\" },\r\n // { label: \"Content Writer\", type: \"NaturalPerson\" },\r\n // { label: \"Concierge Hôtel\", type: \"NaturalPerson\" },\r\n // { label: \"Contract Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur\", type: \"NaturalPerson\" },\r\n // { label: \"Contremaître\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Autocar de Tourisme\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Camion\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur de Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Chargeuse\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur de Trafic Voyageur\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Chaudière\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Bus\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Général\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Car\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur HSE\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Grue\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Ligne\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Qualité Usine\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Ligne Automatisée\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Ligne Plasturgie\", type: \"NaturalPerson\" },\r\n // { label: \"Contrôleur Travaux\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Ligne Production...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Association\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine à Commande Numérique...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine Agroalimentaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Etudes Cliniques\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine Impression\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Général\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machine Offset\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Import Export\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machines à Imprimer Offset...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machines de Filature Textile...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Machines de Production...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur RH\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Plieuse\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur SAV\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Poids Lourd\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Presse Numérique\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Sécurité Applicative\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Tramway\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Sécurité Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Transport en Commun\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Social\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Travaux\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Support\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Travaux BTP\", type: \"NaturalPerson\" },\r\n // { label: \"Coordinateur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Travaux de Terrassement...\", type: \"NaturalPerson\" },\r\n // { label: \"Coordonnateur Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Travaux Gros Oeuvre\", type: \"NaturalPerson\" },\r\n // { label: \"Coordonnier Serrurier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur de Travaux Paysagers\", type: \"NaturalPerson\" },\r\n // { label: \"Cordonnier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Engins\", type: \"NaturalPerson\" },\r\n // { label: \"Correcteur\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Engins BTP\", type: \"NaturalPerson\" },\r\n // { label: \"Costumier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Engins de Chantier\", type: \"NaturalPerson\" },\r\n // { label: \"Country Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Routier\", type: \"NaturalPerson\" },\r\n // { label: \"Coupeur\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Routier Marchandises\", type: \"NaturalPerson\" },\r\n // { label: \"Coupeur Confection\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Routier Voyageurs\", type: \"NaturalPerson\" },\r\n // { label: \"Coupeur en Cuir\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur Silos\", type: \"NaturalPerson\" },\r\n // { label: \"Coursier\", type: \"NaturalPerson\" },\r\n // { label: \"Conducteur SPL\", type: \"NaturalPerson\" },\r\n // { label: \"Courtier Assurances\", type: \"NaturalPerson\" },\r\n // { label: \"Conférencier\", type: \"NaturalPerson\" },\r\n // { label: \"Couturier\", type: \"NaturalPerson\" },\r\n // { label: \"Confirmateur\", type: \"NaturalPerson\" },\r\n // { label: \"Couvreur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Activités Sportives\", type: \"NaturalPerson\" },\r\n // { label: \"Couvreur Bardeur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Credit Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller aux Entreprises Coopératives...\", type: \"NaturalPerson\" },\r\n // { label: \"Crêpier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Clientèle\", type: \"NaturalPerson\" },\r\n // { label: \"CRM Salesforce Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Clientèle Assurances\", type: \"NaturalPerson\" },\r\n // { label: \"Cuisinier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Clientèle Entreprise\", type: \"NaturalPerson\" },\r\n // { label: \"Cuisinier Restauration Collective\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Commercial Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Cuisinier Saucier\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Commercial Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Cuisiniste\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Conjugal et Familial\", type: \"NaturalPerson\" },\r\n // { label: \"Cultivateur\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller de Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Customer Advisor\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Développement\", type: \"NaturalPerson\" },\r\n // { label: \"Customer Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Conseiller Développement Local\", type: \"NaturalPerson\" },\r\n // { label: \"Customer Relationship Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Déclarant en Douane\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Délégué Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Juridique\", type: \"NaturalPerson\" },\r\n // { label: \"Délégué Vétérinaire\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Designer Produit\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Logistique et Stockage\", type: \"NaturalPerson\" },\r\n // { label: \"Dessinateur Béton Armé\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Dessinateur Projeteur Electricité\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Moyens Généraux\", type: \"NaturalPerson\" },\r\n // { label: \"Dessinateur Projeteur Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Pédagogique\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ABAP\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Régional\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ACCESS\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Régional des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Administrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ANDROID\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Restauration\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur APPLE\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Supply Chain\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur AS3\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Usine\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ASP\", type: \"NaturalPerson\" },\r\n // { label: \"Distributeur de Flyers\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur C\", type: \"NaturalPerson\" },\r\n // { label: \"Docteur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Chef de Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Doctorant\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur COBOL\", type: \"NaturalPerson\" },\r\n // { label: \"Documentaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Décisionnel\", type: \"NaturalPerson\" },\r\n // { label: \"E-Category Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur DOTNET\", type: \"NaturalPerson\" },\r\n // { label: \"E-Marketer\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur DRUPAL\", type: \"NaturalPerson\" },\r\n // { label: \"E-Reputation Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Expert\", type: \"NaturalPerson\" },\r\n // { label: \"Ebéniste\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur FLASH\", type: \"NaturalPerson\" },\r\n // { label: \"Echafaudeur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur FLEX\", type: \"NaturalPerson\" },\r\n // { label: \"Eclairagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur HTML\", type: \"NaturalPerson\" },\r\n // { label: \"Ecologue\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Econome\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Intégrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Economiste\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur IPHONE\", type: \"NaturalPerson\" },\r\n // { label: \"Ecrivain Public\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur J2EE\", type: \"NaturalPerson\" },\r\n // { label: \"Editeur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur JAVA\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur JOOMLA\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur de Jeunes Enfants\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur JQUERY\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur Football\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur LINUX\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur Spécialisé\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Logiciel\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur Sportif\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur LOTUS NOTES\", type: \"NaturalPerson\" },\r\n // { label: \"Educateur Technique Spécialisé\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur MAGENTO\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Mobile\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Multimedia\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur NET\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Câbleur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ORACLE\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Chantier\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Photo\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Chariots Elévateurs\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur PHP\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur PRESTASHOP\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Equipement Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur SAP\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur SHAREPOINT\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Installateur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur SQL\", type: \"NaturalPerson\" },\r\n // { label: \"Electricien Monteur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur SYMFONY\", type: \"NaturalPerson\" },\r\n // { label: \"Electromécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Systèmes Embarqués\", type: \"NaturalPerson\" },\r\n // { label: \"Electromécanicien Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur VB6\", type: \"NaturalPerson\" },\r\n // { label: \"Electronicien\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur VBA\", type: \"NaturalPerson\" },\r\n // { label: \"Electronicien Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur VISUAL BASIC\", type: \"NaturalPerson\" },\r\n // { label: \"Electronicien Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur Web\", type: \"NaturalPerson\" },\r\n // { label: \"Electrotechnicien\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur WINDEV\", type: \"NaturalPerson\" },\r\n // { label: \"Eleveur\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur WORDPRESS\", type: \"NaturalPerson\" },\r\n // { label: \"Eleveur Canins\", type: \"NaturalPerson\" },\r\n // { label: \"Développeur ZEND\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Diététicienne\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Digital Brand Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Employé de Banque\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Achats\", type: \"NaturalPerson\" },\r\n // { label: \"Employé de Libre-Service\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Adjoint\", type: \"NaturalPerson\" },\r\n // { label: \"Employé de Ménage\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Adjoint Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Employé de Pressing\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Etage\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Administratif et Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Librairie\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Agence Bancaire\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Restauration\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Agence de Voyages\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Restauration Rapide\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Agence Immobilière\", type: \"NaturalPerson\" },\r\n // { label: \"Employé Station-Service\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Aménagement\", type: \"NaturalPerson\" },\r\n // { label: \"Encadreur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Artistique\", type: \"NaturalPerson\" },\r\n // { label: \"Energéticien\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Business Unit\", type: \"NaturalPerson\" },\r\n // { label: \"Enquêteur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Enquêteurs Etude de Satisfaction\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Commercial Export\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Communication\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Art Plastique\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Chercheur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Contrôle de Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Chercheur en Médecine\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Bureau d´Etudes\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Chercheur en Sciences Physiques...\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Centre de Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Collège et Lycée\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Centre de Loisirs\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Primaire\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Centre de Profit\", type: \"NaturalPerson\" },\r\n // { label: \"Enseignant Spécialisé\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Clinique\", type: \"NaturalPerson\" },\r\n // { label: \"Entraîneur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Crèche\", type: \"NaturalPerson\" },\r\n // { label: \"Entraîneur de Chevaux\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Département\", type: \"NaturalPerson\" },\r\n // { label: \"Entraîneur de Football\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Filiale\", type: \"NaturalPerson\" },\r\n // { label: \"Entraineur Public Professionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Ergothérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Musée\", type: \"NaturalPerson\" },\r\n // { label: \"Esthéticienne\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Etalagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Etalagiste Décorateur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Projet Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Evaluateur Technique Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Projet Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Event Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Projet Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Administrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Projet Télécom\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Restaurant\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Décisionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Salle de Cinéma\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Développement\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Site\", type: \"NaturalPerson\" },\r\n // { label: \"Expert en Assurance Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Supermarché\", type: \"NaturalPerson\" },\r\n // { label: \"Expert en Assurances\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur de Travaux\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur des Opérations\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur des Ressources Humaines\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Infrastructure Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur d´Agence\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Infrastructure Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur d´Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Judiciaire\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Ecole Maternelle\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Maritime\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Etablissement Scolaire\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Microsoft\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Etablissement Social\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Outils de Test\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Exécutif\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Stockage\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Général\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Général Adjoint\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Groupe\", type: \"NaturalPerson\" },\r\n // { label: \"Expert Windows\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Hébergement\", type: \"NaturalPerson\" },\r\n // { label: \"Expert-Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Hôtel\", type: \"NaturalPerson\" },\r\n // { label: \"Explorateur\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Hypermarché\", type: \"NaturalPerson\" },\r\n // { label: \"Export Sales Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Directeur Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"External Sales Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Facility Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Grossiste\", type: \"NaturalPerson\" },\r\n // { label: \"Facteur\", type: \"NaturalPerson\" },\r\n // { label: \"Grutier\", type: \"NaturalPerson\" },\r\n // { label: \"Femme de Chambre\", type: \"NaturalPerson\" },\r\n // { label: \"Guichetier\", type: \"NaturalPerson\" },\r\n // { label: \"Femme de Ménage\", type: \"NaturalPerson\" },\r\n // { label: \"Guide\", type: \"NaturalPerson\" },\r\n // { label: \"Ferrailleur\", type: \"NaturalPerson\" },\r\n // { label: \"Guide Accompagnateur\", type: \"NaturalPerson\" },\r\n // { label: \"Ferronnier\", type: \"NaturalPerson\" },\r\n // { label: \"Guide de Montagne\", type: \"NaturalPerson\" },\r\n // { label: \"Fiduciaire\", type: \"NaturalPerson\" },\r\n // { label: \"Guide de Randonnée\", type: \"NaturalPerson\" },\r\n // { label: \"Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Guide Musée\", type: \"NaturalPerson\" },\r\n // { label: \"Finisseur sur Bois\", type: \"NaturalPerson\" },\r\n // { label: \"Guide Touristique\", type: \"NaturalPerson\" },\r\n // { label: \"Fiscaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Gynécologue\", type: \"NaturalPerson\" },\r\n // { label: \"Fleuriste\", type: \"NaturalPerson\" },\r\n // { label: \"Gynécologue Obstétricien\", type: \"NaturalPerson\" },\r\n // { label: \"Fondeur\", type: \"NaturalPerson\" },\r\n // { label: \"Herboriste\", type: \"NaturalPerson\" },\r\n // { label: \"Foreur\", type: \"NaturalPerson\" },\r\n // { label: \"Horloger\", type: \"NaturalPerson\" },\r\n // { label: \"Forfaitiste\", type: \"NaturalPerson\" },\r\n // { label: \"Horticulteur\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur\", type: \"NaturalPerson\" },\r\n // { label: \"Horticulteur Pépiniériste\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur Animateur\", type: \"NaturalPerson\" },\r\n // { label: \"Hôtesse\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur en Assurances\", type: \"NaturalPerson\" },\r\n // { label: \"Hôtesse de l'Air\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur en Stylisme Modélisme\", type: \"NaturalPerson\" },\r\n // { label: \"Hôtesse d´Accueil\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur en TIC\", type: \"NaturalPerson\" },\r\n // { label: \"Hotliner\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Hotliner Mobile\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur Relation Abonnés\", type: \"NaturalPerson\" },\r\n // { label: \"HR Business Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Formateur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"HR Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Fraiseur\", type: \"NaturalPerson\" },\r\n // { label: \"Hydraulicien\", type: \"NaturalPerson\" },\r\n // { label: \"Frigoriste\", type: \"NaturalPerson\" },\r\n // { label: \"Hydrothérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Fromager\", type: \"NaturalPerson\" },\r\n // { label: \"Hygiéniste\", type: \"NaturalPerson\" },\r\n // { label: \"Front-Office Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Hygiéniste Dentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Game Designer\", type: \"NaturalPerson\" },\r\n // { label: \"Illustrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Garçon de Café\", type: \"NaturalPerson\" },\r\n // { label: \"Imprimeur\", type: \"NaturalPerson\" },\r\n // { label: \"Garde du Corps\", type: \"NaturalPerson\" },\r\n // { label: \"Infirmier Anesthésie Réanimation\", type: \"NaturalPerson\" },\r\n // { label: \"Gardien\", type: \"NaturalPerson\" },\r\n // { label: \"Infirmier Anesthésiste\", type: \"NaturalPerson\" },\r\n // { label: \"Gardien de Nuit\", type: \"NaturalPerson\" },\r\n // { label: \"Infirmier Bloc Opératoire\", type: \"NaturalPerson\" },\r\n // { label: \"Gardien d´Animaux\", type: \"NaturalPerson\" },\r\n // { label: \"Infirmier Diplômé d´Etat\", type: \"NaturalPerson\" },\r\n // { label: \"Garnisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Infirmier Soins à Domicile\", type: \"NaturalPerson\" },\r\n // { label: \"General Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Infographiste\", type: \"NaturalPerson\" },\r\n // { label: \"Géographe\", type: \"NaturalPerson\" },\r\n // { label: \"Ingénieur\", type: \"NaturalPerson\" },\r\n // { label: \"Géologue\", type: \"NaturalPerson\" },\r\n // { label: \"Ingénieur Support Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Géomaticien\", type: \"NaturalPerson\" },\r\n // { label: \"Inhalothérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Géomètre\", type: \"NaturalPerson\" },\r\n // { label: \"Inséminateur\", type: \"NaturalPerson\" },\r\n // { label: \"Géomètre Expert Foncier\", type: \"NaturalPerson\" },\r\n // { label: \"Inside Sales Executive\", type: \"NaturalPerson\" },\r\n // { label: \"Géomètre Topographe\", type: \"NaturalPerson\" },\r\n // { label: \"Inspecteur Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Géotechnicien\", type: \"NaturalPerson\" },\r\n // { label: \"Inspecteur des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Gérant\", type: \"NaturalPerson\" },\r\n // { label: \"Inspecteur Génie Civil\", type: \"NaturalPerson\" },\r\n // { label: \"Gérant de Portefeuille\", type: \"NaturalPerson\" },\r\n // { label: \"Inspecteur Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Gérant de Pressing\", type: \"NaturalPerson\" },\r\n // { label: \"Installateur en Chauffage Climatisation...\", type: \"NaturalPerson\" },\r\n // { label: \"Gérant de Station Service\", type: \"NaturalPerson\" },\r\n // { label: \"Installateur Matériel Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Gérant Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Installateur Photovoltaique\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Installateur Plomberie Sanitaire\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Back-Office\", type: \"NaturalPerson\" },\r\n // { label: \"Installateur Systèmes Electriques\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Base de Données\", type: \"NaturalPerson\" },\r\n // { label: \"Instructeur\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Comptable et Administratif...\", type: \"NaturalPerson\" },\r\n // { label: \"Instrumentiste\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Contentieux\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Contrats\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur de Logiciels\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Copropriété\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur d´Application\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Campagnes Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur d´Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Configuration\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Paie\", type: \"NaturalPerson\" },\r\n // { label: \"Intégrateur Test\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Patrimoine\", type: \"NaturalPerson\" },\r\n // { label: \"Intendant\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire de Stocks\", type: \"NaturalPerson\" },\r\n // { label: \"International Sales Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire des Risques\", type: \"NaturalPerson\" },\r\n // { label: \"Interprète\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire d´Applications\", type: \"NaturalPerson\" },\r\n // { label: \"Intervenant\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire en Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Jardinier\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Jardinier Paysagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Formation\", type: \"NaturalPerson\" },\r\n // { label: \"Jongleur\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Import Export\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste Radio Télé\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Infrastructures Sportives...\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste Rédacteur\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Locatif\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste Reporteur Images\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Middle-Office\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste Sportif\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Paie et Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Journaliste Web\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Parc Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Portefeuille Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Contentieux\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Prestations de Santé\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Droit Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Sinistres\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Droit International\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire Site\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Droit Social\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaires en Assurance Prévoyance...\", type: \"NaturalPerson\" },\r\n // { label: \"Juriste Entreprise\", type: \"NaturalPerson\" },\r\n // { label: \"Glacier\", type: \"NaturalPerson\" },\r\n // { label: \"Key Account Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Gouvernant Etage\", type: \"NaturalPerson\" },\r\n // { label: \"Kinésithérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Gouvernant Général\", type: \"NaturalPerson\" },\r\n // { label: \"Laborantin\", type: \"NaturalPerson\" },\r\n // { label: \"Gouvernante\", type: \"NaturalPerson\" },\r\n // { label: \"Lamineur\", type: \"NaturalPerson\" },\r\n // { label: \"Graphiste\", type: \"NaturalPerson\" },\r\n // { label: \"Laveur de Vitre\", type: \"NaturalPerson\" },\r\n // { label: \"Graphiste Décorateur\", type: \"NaturalPerson\" },\r\n // { label: \"Liaison Officer\", type: \"NaturalPerson\" },\r\n // { label: \"Graphiste Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Linguiste\", type: \"NaturalPerson\" },\r\n // { label: \"Graphiste Photoshop\", type: \"NaturalPerson\" },\r\n // { label: \"Livreur\", type: \"NaturalPerson\" },\r\n // { label: \"Graphiste Web\", type: \"NaturalPerson\" },\r\n // { label: \"Livreur VL\", type: \"NaturalPerson\" },\r\n // { label: \"Graphologue\", type: \"NaturalPerson\" },\r\n // { label: \"Logisticien\", type: \"NaturalPerson\" },\r\n // { label: \"Graveur\", type: \"NaturalPerson\" },\r\n // { label: \"Loss Prevention Advisor\", type: \"NaturalPerson\" },\r\n // { label: \"Machiniste\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur Natation\", type: \"NaturalPerson\" },\r\n // { label: \"Maçon\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur Sportif\", type: \"NaturalPerson\" },\r\n // { label: \"Maçon Coffreur\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur Tennis\", type: \"NaturalPerson\" },\r\n // { label: \"Magasinier\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur\", type: \"NaturalPerson\" },\r\n // { label: \"Magasinier Cariste\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Maître Chien\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Ascenseurs\", type: \"NaturalPerson\" },\r\n // { label: \"Maître d´Hôtel\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Câbleur\", type: \"NaturalPerson\" },\r\n // { label: \"Maître Nageur\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Câbleur Electronique\", type: \"NaturalPerson\" },\r\n // { label: \"Maître Nageur Sauveteur\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Echafaudage\", type: \"NaturalPerson\" },\r\n // { label: \"Maître Rembourreur\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur en Charpente Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Frigoriste\", type: \"NaturalPerson\" },\r\n // { label: \"Manager de Club\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Image Son\", type: \"NaturalPerson\" },\r\n // { label: \"Manager de Plateau\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Installations Sanitaires\", type: \"NaturalPerson\" },\r\n // { label: \"Manager des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Lignes Electriques\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Equipe\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Mécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Indépendant\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Opérateur de Prise de Vue\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Rayon\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Régleur\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Restauration\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Truquiste\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Retail Innovation\", type: \"NaturalPerson\" },\r\n // { label: \"Monteur Vidéo\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Service Desk\", type: \"NaturalPerson\" },\r\n // { label: \"Motion Designer\", type: \"NaturalPerson\" },\r\n // { label: \"Manager Transition\", type: \"NaturalPerson\" },\r\n // { label: \"Mouleur Plastique\", type: \"NaturalPerson\" },\r\n // { label: \"Manipulateur Radiologie\", type: \"NaturalPerson\" },\r\n // { label: \"Mouliste\", type: \"NaturalPerson\" },\r\n // { label: \"Manoeuvre\", type: \"NaturalPerson\" },\r\n // { label: \"Mouliste Machine d´Injection\", type: \"NaturalPerson\" },\r\n // { label: \"Manoeuvre Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Musicien\", type: \"NaturalPerson\" },\r\n // { label: \"Manucure\", type: \"NaturalPerson\" },\r\n // { label: \"Musicien Intervenant\", type: \"NaturalPerson\" },\r\n // { label: \"Manutentionnaire\", type: \"NaturalPerson\" },\r\n // { label: \"Négociateur\", type: \"NaturalPerson\" },\r\n // { label: \"Manutentionnaire Cariste\", type: \"NaturalPerson\" },\r\n // { label: \"Négociateur Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Maquettiste\", type: \"NaturalPerson\" },\r\n // { label: \"Nettoyeur de Textiles\", type: \"NaturalPerson\" },\r\n // { label: \"Maquilleur\", type: \"NaturalPerson\" },\r\n // { label: \"Notaire\", type: \"NaturalPerson\" },\r\n // { label: \"Maraîcher\", type: \"NaturalPerson\" },\r\n // { label: \"Nutritionniste\", type: \"NaturalPerson\" },\r\n // { label: \"Marchandiseur\", type: \"NaturalPerson\" },\r\n // { label: \"Office Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Marin\", type: \"NaturalPerson\" },\r\n // { label: \"Officier de Port\", type: \"NaturalPerson\" },\r\n // { label: \"Marin Pêcheur\", type: \"NaturalPerson\" },\r\n // { label: \"Officier Marine Marchande\", type: \"NaturalPerson\" },\r\n // { label: \"Maroquinier\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur\", type: \"NaturalPerson\" },\r\n // { label: \"Marqueteur\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Agence\", type: \"NaturalPerson\" },\r\n // { label: \"Matelot\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Cablage\", type: \"NaturalPerson\" },\r\n // { label: \"Mathématicien Informaticien\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Call Center\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Centrale à Béton\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Commande Numérique\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Commande Numérique Aéronautique...\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Conditionnement\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Avion\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Caméra de Surveillance\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Cellules Hydrauliques\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Coupe\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Engins\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Machinerie\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Engins de Chantier\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Engins de Chantier de Levage et...\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Marché Trader\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Industriel Naval\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Production Agroalimentaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Machines à Coudre\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur de Saisie\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Machines Agricoles\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur en Maintenance Industrielle...\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Machines de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Marine Marchande\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Machine d´Injection Plastique...\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Poids Lourd\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Machine Outil à Commande...\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Robinetier\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Marché de Change\", type: \"NaturalPerson\" },\r\n // { label: \"Mécanicien Service Rapide Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Nettoyage Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Anesthésiste Réanimateur\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur PAO\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Biologiste\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Plasturgie Injection Extrusion...\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Comportementaliste\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin du Travail\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Régleur\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Généraliste\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Régleur de Machines\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Radiologue\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur sur Machine\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Spécialiste\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur sur Machine de Finition\", type: \"NaturalPerson\" },\r\n // { label: \"Médecin Urgentiste\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur sur Machines Automatiques en...\", type: \"NaturalPerson\" },\r\n // { label: \"Media Planner\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur sur Machines Spéciales de...\", type: \"NaturalPerson\" },\r\n // { label: \"Media Reporter\", type: \"NaturalPerson\" },\r\n // { label: \"Opérateur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Médiateur Social\", type: \"NaturalPerson\" },\r\n // { label: \"Opératrice Cablage Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Médiathécaire\", type: \"NaturalPerson\" },\r\n // { label: \"Opératrice de Saisie\", type: \"NaturalPerson\" },\r\n // { label: \"Medical Advisor Hospitalier\", type: \"NaturalPerson\" },\r\n // { label: \"Opératrice sur Machine à Coudre\", type: \"NaturalPerson\" },\r\n // { label: \"Membership Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Ophtalmologiste\", type: \"NaturalPerson\" },\r\n // { label: \"Menuisier Aluminium\", type: \"NaturalPerson\" },\r\n // { label: \"Opticien\", type: \"NaturalPerson\" },\r\n // { label: \"Menuisier Atelier\", type: \"NaturalPerson\" },\r\n // { label: \"Optométriste\", type: \"NaturalPerson\" },\r\n // { label: \"Menuisier Ebéniste\", type: \"NaturalPerson\" },\r\n // { label: \"Orfèvre en Argenterie\", type: \"NaturalPerson\" },\r\n // { label: \"Menuisier Poseur\", type: \"NaturalPerson\" },\r\n // { label: \"Orthodontiste\", type: \"NaturalPerson\" },\r\n // { label: \"Menuisier PVC\", type: \"NaturalPerson\" },\r\n // { label: \"Orthophoniste\", type: \"NaturalPerson\" },\r\n // { label: \"Mesureur\", type: \"NaturalPerson\" },\r\n // { label: \"Orthoprothésiste\", type: \"NaturalPerson\" },\r\n // { label: \"Météorologue\", type: \"NaturalPerson\" },\r\n // { label: \"Orthoptiste\", type: \"NaturalPerson\" },\r\n // { label: \"Métreur\", type: \"NaturalPerson\" },\r\n // { label: \"Ostéopathe\", type: \"NaturalPerson\" },\r\n // { label: \"Métrologue\", type: \"NaturalPerson\" },\r\n // { label: \"Outilleur\", type: \"NaturalPerson\" },\r\n // { label: \"Metteur au Point\", type: \"NaturalPerson\" },\r\n // { label: \"Outilleur Mouliste\", type: \"NaturalPerson\" },\r\n // { label: \"Metteur en Scène\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier\", type: \"NaturalPerson\" },\r\n // { label: \"Meunier\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Minier\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Agroalimentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Mixeur Son\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Modeleur\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Construction Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Modérateur Forum Réseaux Sociaux\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Modérateur Site Web\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier en Manutention\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Maraîchage Horticulture\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur Auto-Ecole\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur de Voile\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Production Laitière\", type: \"NaturalPerson\" },\r\n // { label: \"Moniteur Educateur\", type: \"NaturalPerson\" },\r\n // { label: \"Ouvrier Qualifié\", type: \"NaturalPerson\" },\r\n // { label: \"Packageur Intégrateur\", type: \"NaturalPerson\" },\r\n // { label: \"Représentant des Ventes Cosmétiques\", type: \"NaturalPerson\" },\r\n // { label: \"Palefrenier\", type: \"NaturalPerson\" },\r\n // { label: \"Resource Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Paramédical\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Achats\", type: \"NaturalPerson\" },\r\n // { label: \"Paramètreur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Achats Approvisionnement\", type: \"NaturalPerson\" },\r\n // { label: \"Pâtissier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Administratif et Comptable...\", type: \"NaturalPerson\" },\r\n // { label: \"Pâtissier Confiseur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Administratif et Financier...\", type: \"NaturalPerson\" },\r\n // { label: \"Paysagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Administration des Ventes...\", type: \"NaturalPerson\" },\r\n // { label: \"Pédiatre\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Administration du Personnel...\", type: \"NaturalPerson\" },\r\n // { label: \"Pédicure Podologue\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Affaires Réglementaires\", type: \"NaturalPerson\" },\r\n // { label: \"Pédologue\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Aire de Jeux\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Approvisionnement\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Carrossier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Archives\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Assurance Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Pistolet\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Atelier\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre sur Bois\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Audit et Contrôle de Gestion...\", type: \"NaturalPerson\" },\r\n // { label: \"Peintre Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Boutique\", type: \"NaturalPerson\" },\r\n // { label: \"Pépiniériste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Business Intelligence\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Centre de Beauté\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Affaires Réglementaires\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Commercial Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Assurance Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Commercial Export\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Assurance Qualité Système\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Commercial Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Commercial Web\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Responsable\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Communication\", type: \"NaturalPerson\" },\r\n // { label: \"Pharmacien Responsable Production\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Communication Interne\", type: \"NaturalPerson\" },\r\n // { label: \"Photographe\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Comptabilité Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Physicien\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Comptabilité Fournisseurs...\", type: \"NaturalPerson\" },\r\n // { label: \"Pigiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Pilote de Flux\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Comptoir\", type: \"NaturalPerson\" },\r\n // { label: \"Pilote de Ligne\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Conformité et Contrôle Interne...\", type: \"NaturalPerson\" },\r\n // { label: \"Pilote de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Contrôle Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Pilote Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Contrôle Qualité...\", type: \"NaturalPerson\" },\r\n // { label: \"Pilote Projet\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Crèche\", type: \"NaturalPerson\" },\r\n // { label: \"Pisciniste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable de Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Pizzaiolo\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Plagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable de Zone\", type: \"NaturalPerson\" },\r\n // { label: \"Planificateur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Débiteur\", type: \"NaturalPerson\" },\r\n // { label: \"Planneur Stratégique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Déploiement\", type: \"NaturalPerson\" },\r\n // { label: \"Plaquiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Dépôt\", type: \"NaturalPerson\" },\r\n // { label: \"Plâtrier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Développement Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Plombier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Développement RH\", type: \"NaturalPerson\" },\r\n // { label: \"Plombier Chauffagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Digital\", type: \"NaturalPerson\" },\r\n // { label: \"Plongeur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable d´Agence\", type: \"NaturalPerson\" },\r\n // { label: \"Poissonnier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable d´Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Policier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable E-Commerce\", type: \"NaturalPerson\" },\r\n // { label: \"Polisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Editorial\", type: \"NaturalPerson\" },\r\n // { label: \"Pompier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Emailing\", type: \"NaturalPerson\" },\r\n // { label: \"Pompiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Environnement\", type: \"NaturalPerson\" },\r\n // { label: \"Pontier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Equipe Commerciale\", type: \"NaturalPerson\" },\r\n // { label: \"Portier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Espaces Verts\", type: \"NaturalPerson\" },\r\n // { label: \"Poseur Menuiserie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Etudes\", type: \"NaturalPerson\" },\r\n // { label: \"Pré-Vendeur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Evénementiel\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Export\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Fabrication Agroalimentaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur de Commandes\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Fabrication Industrie\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur en Industrie Agroalimentaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Fabrication Industrie...\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur en Pharmacie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Facturation\", type: \"NaturalPerson\" },\r\n // { label: \"Préparateur Physique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Pressier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Flux de Production\", type: \"NaturalPerson\" },\r\n // { label: \"Principal Business Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Food and Beverage\", type: \"NaturalPerson\" },\r\n // { label: \"Producteur Multimédia\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Galerie\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Art\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Gestion du Patrimoine\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Art Dramatique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Hébergement\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Arts Plastiques\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Help Desk\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Danse\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Français\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Juridique\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Mathématiques\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Laboratoire\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Musique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Lean Manufacturing\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Sport\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Ligne de Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur de Technologie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Economie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Maintenance Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Education Musicale\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Maintenance Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Education Physique et Sportive...\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marchés Publics\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Histoire Géographie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Langues Etrangères\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing Digital\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Philosophie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing Direct\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Physique Chimie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing et Communication...\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Sciences de la Vie et de la...\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing International\", type: \"NaturalPerson\" },\r\n // { label: \"Professeur Universitaire\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing Opérationnel\", type: \"NaturalPerson\" },\r\n // { label: \"Programmeur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketing Stratégique\", type: \"NaturalPerson\" },\r\n // { label: \"Project Control Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Marketplace\", type: \"NaturalPerson\" },\r\n // { label: \"Projeteur Autoroutier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Matériel\", type: \"NaturalPerson\" },\r\n // { label: \"Promoteur des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Merchandising\", type: \"NaturalPerson\" },\r\n // { label: \"Property Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Moyens Généraux\", type: \"NaturalPerson\" },\r\n // { label: \"Prospecteur Foncier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Opérationnel d´Activité\", type: \"NaturalPerson\" },\r\n // { label: \"Prospecteur Immobilier\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Ordonnancement Lancement\", type: \"NaturalPerson\" },\r\n // { label: \"Prothésiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Ordonnancement Planification...\", type: \"NaturalPerson\" },\r\n // { label: \"Prothésiste Céramiste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Paie\", type: \"NaturalPerson\" },\r\n // { label: \"Prothésiste Dentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Parc Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Proviseur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Parc Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Proviseur de Lycée\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Partenariats\", type: \"NaturalPerson\" },\r\n // { label: \"Psychanalyste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Pédagogique\", type: \"NaturalPerson\" },\r\n // { label: \"Psychologue\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Pilotage de Projets\", type: \"NaturalPerson\" },\r\n // { label: \"Psychologue Clinicien\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Planification\", type: \"NaturalPerson\" },\r\n // { label: \"Psychologue du Travail\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Plateau\", type: \"NaturalPerson\" },\r\n // { label: \"Psychothérapeute\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Point de Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Puéricultrice\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Pôle Compétences\", type: \"NaturalPerson\" },\r\n // { label: \"Qualiticien\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Promotion Touristique\", type: \"NaturalPerson\" },\r\n // { label: \"Radiologue\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Prospection\", type: \"NaturalPerson\" },\r\n // { label: \"Radioprotectionniste\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable QHSE\", type: \"NaturalPerson\" },\r\n // { label: \"Réalisateur 3D\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Réalisateur de Films\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Qualité et Process\", type: \"NaturalPerson\" },\r\n // { label: \"Réalisateur TV\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Qualité Usine\", type: \"NaturalPerson\" },\r\n // { label: \"Réceptionnaire Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Rayon Fruits Légumes\", type: \"NaturalPerson\" },\r\n // { label: \"Réceptionniste Hôtel\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Recherche et Développement...\", type: \"NaturalPerson\" },\r\n // { label: \"Receveur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Recouvrement\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Recrutement\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur de Scripts\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Référencement SEO SEM\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur en Chef\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Régional\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Gestionnaire en Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Régional des Ventes\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Scientifique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Relations Partenaires...\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Sinistres\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Relations Publiques\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Relations Sociales\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Technique de Documentation\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Ressources Humaines\", type: \"NaturalPerson\" },\r\n // { label: \"Rédacteur Web\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Salle de Jeux\", type: \"NaturalPerson\" },\r\n // { label: \"Rééducateur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Salle de Sport\", type: \"NaturalPerson\" },\r\n // { label: \"Référenceur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Salle des Marchés\", type: \"NaturalPerson\" },\r\n // { label: \"Référent Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Régisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Sécurité des SI\", type: \"NaturalPerson\" },\r\n // { label: \"Régisseur Audiovisuel\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Sécurité Informatique\", type: \"NaturalPerson\" },\r\n // { label: \"Régisseur de Spectacles\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Service Après-Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Service Clients\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur de Machines\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Services Généraux\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur de Machines à Coudre\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Services Techniques\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur Machines Outils\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Showroom\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur Moule et Machine d´Injection...\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Sourcing\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur Plasturgie\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Stratégie Mobile\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur Presse\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Surveillance et Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Régleur Sinistre\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Régulateur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Transit\", type: \"NaturalPerson\" },\r\n // { label: \"Relecteur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Transport\", type: \"NaturalPerson\" },\r\n // { label: \"Relieur Doreur\", type: \"NaturalPerson\" },\r\n // { label: \"Responsable Trésorerie\", type: \"NaturalPerson\" },\r\n // { label: \"Réparateur Electroménager\", type: \"NaturalPerson\" },\r\n // { label: \"Restaurateur\", type: \"NaturalPerson\" },\r\n // { label: \"Reporter\", type: \"NaturalPerson\" },\r\n // { label: \"Retoucheur\", type: \"NaturalPerson\" },\r\n // { label: \"Reporter Radio\", type: \"NaturalPerson\" },\r\n // { label: \"Retoucheur Photo\", type: \"NaturalPerson\" },\r\n // { label: \"Représentant\", type: \"NaturalPerson\" },\r\n // { label: \"Revenue Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Représentant Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Réviseur Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Sage Femme\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire Granulats Béton...\", type: \"NaturalPerson\" },\r\n // { label: \"Salesman\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire Industrie\", type: \"NaturalPerson\" },\r\n // { label: \"Sauveteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoires d´Analyses\", type: \"NaturalPerson\" },\r\n // { label: \"Scaphandrier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laiterie\", type: \"NaturalPerson\" },\r\n // { label: \"Scénariste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Ligne à Haute Tension\", type: \"NaturalPerson\" },\r\n // { label: \"Scieur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Livraison\", type: \"NaturalPerson\" },\r\n // { label: \"Sculpteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Logistique\", type: \"NaturalPerson\" },\r\n // { label: \"Sculpteur sur Pierre\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Automatisme\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Administratif\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Bilingue\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Avion\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Biomédicale\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Chauffage...\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire de Direction\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Climatique\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire de Rédaction\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance de Machines Outils...\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Général\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance d´Eoliennes\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Juridique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Electricité\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Médicale\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Electricité...\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Paie et Facturation\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Electromécaniques...\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Electronique\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Réceptionniste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Standardiste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Itinérant\", type: \"NaturalPerson\" },\r\n // { label: \"Secrétaire Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Maintenance Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Sérigraphe\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Serrurier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Sertisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Menuiserie\", type: \"NaturalPerson\" },\r\n // { label: \"Sertisseur en Joaillerie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Mesure et Régulation\", type: \"NaturalPerson\" },\r\n // { label: \"Serveur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Mesures 3D\", type: \"NaturalPerson\" },\r\n // { label: \"Serveur en Restaurant\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Métallurgie\", type: \"NaturalPerson\" },\r\n // { label: \"Sociologue\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Météo\", type: \"NaturalPerson\" },\r\n // { label: \"Sommelier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Méthodes\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Méthodes Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur Arc\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Méthodes Ordonnancement\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur Inox\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Métrologue\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur Semi Automatique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Meunier\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur Tig\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Montage\", type: \"NaturalPerson\" },\r\n // { label: \"Soudeur Tig Arc\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Multimedia\", type: \"NaturalPerson\" },\r\n // { label: \"Sous-Chef de Cuisine\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Opérateur Régleur\", type: \"NaturalPerson\" },\r\n // { label: \"Souscripteur Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Optique\", type: \"NaturalPerson\" },\r\n // { label: \"Spécialiste SEO\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Ordonnancement Lancement\", type: \"NaturalPerson\" },\r\n // { label: \"Staff Consultant\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Outillage\", type: \"NaturalPerson\" },\r\n // { label: \"Standardiste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Ouvrage d´Art\", type: \"NaturalPerson\" },\r\n // { label: \"Stratifieur Mouliste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Panneaux à Led\", type: \"NaturalPerson\" },\r\n // { label: \"Styliste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Paysagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Styliste de Mode\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Photocopieur\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Caisse\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Piscine\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Centre d´Appels\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Plombier\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Poids Lourds\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur de Vols\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Polyculture Elevage\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur HSE\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Polyvalent\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Pricing\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Poterie\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Production\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Production\", type: \"NaturalPerson\" },\r\n // { label: \"Superviseur Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Production Industries de...\", type: \"NaturalPerson\" },\r\n // { label: \"Support Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Production Pharmaceutique\", type: \"NaturalPerson\" },\r\n // { label: \"Support Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Support Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Qualité Eau\", type: \"NaturalPerson\" },\r\n // { label: \"Support Utilisateur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Radio\", type: \"NaturalPerson\" },\r\n // { label: \"Surveillant\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Radioprotection\", type: \"NaturalPerson\" },\r\n // { label: \"Surveillant de Nuit\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Recherche et Développement...\", type: \"NaturalPerson\" },\r\n // { label: \"Surveillant Général\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Régulation Industrielle\", type: \"NaturalPerson\" },\r\n // { label: \"Tailleur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Tapissier Sellier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Robotique\", type: \"NaturalPerson\" },\r\n // { label: \"Team Leader\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien SAV\", type: \"NaturalPerson\" },\r\n // { label: \"Technical Support Agent\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Scierie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Son\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Acousticien\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Spécialisé\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Stérilisation\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Aérostructure\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Superviseur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Support\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Agroalimentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Support Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Agronome\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Surface\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Aluminium\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Systèmes\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Analyses Biomédicales\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Systèmes de Sécurité\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Antenniste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Systèmes Réseaux\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Ascenseur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Textile\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Assemblage de Faisceaux\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Thermicien\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Audiovisuel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Tissage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Automaticien\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Topographe\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Traitement des Déchets\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Avant-Vente\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Traitement des Eaux\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Aviculteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Travaux\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Usinage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Biochimiste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Ventilation\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Biologiste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Vérificateur d´Extincteurs...\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Biomédical\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Vétérinaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Bureau d´Etudes\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Videosurveillance\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Câblage\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Câblage Structuré\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial Assurance\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Caméraman Monteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial B to B\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien CAO\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial B to C\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Cartographe\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Catenaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial Bois\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Chantier\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial BTP\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Chaudronnier\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Commercial Sédentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Chauffage\", type: \"NaturalPerson\" },\r\n // { label: \"Technico-Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Chimiste\", type: \"NaturalPerson\" },\r\n // { label: \"Teinturier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Circulation des Trains\", type: \"NaturalPerson\" },\r\n // { label: \"Teinturier Blanchisseur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Compresseur\", type: \"NaturalPerson\" },\r\n // { label: \"Téléassistant\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Comptabilité Gestion\", type: \"NaturalPerson\" },\r\n // { label: \"Téléassistant Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Comptable\", type: \"NaturalPerson\" },\r\n // { label: \"Téléconseiller\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Conception Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Téléconseiller Appels Entrants\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Construction Métallique\", type: \"NaturalPerson\" },\r\n // { label: \"Téléconseiller Financier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Contrôle Qualité\", type: \"NaturalPerson\" },\r\n // { label: \"Téléenquêteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Contrôle Qualité...\", type: \"NaturalPerson\" },\r\n // { label: \"Téléopérateur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Contrôle Qualité Chimie\", type: \"NaturalPerson\" },\r\n // { label: \"Téléphoniste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Contrôle Qualité Industrie...\", type: \"NaturalPerson\" },\r\n // { label: \"Téléprospecteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Courant Faible\", type: \"NaturalPerson\" },\r\n // { label: \"Télésecrétaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Cuisiniste\", type: \"NaturalPerson\" },\r\n // { label: \"Télévendeur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien de Laboratoire\", type: \"NaturalPerson\" },\r\n // { label: \"Testeur Applicatif\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien de Maintenance\", type: \"NaturalPerson\" },\r\n // { label: \"Testeur Fonctionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien de Paie\", type: \"NaturalPerson\" },\r\n // { label: \"Testeur Recetteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien de Proximité\", type: \"NaturalPerson\" },\r\n // { label: \"Testeur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien de Transport\", type: \"NaturalPerson\" },\r\n // { label: \"Thermicien\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Dentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Tisserand\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Dessinateur Projeteur\", type: \"NaturalPerson\" },\r\n // { label: \"Topographe\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Développement Carroserie...\", type: \"NaturalPerson\" },\r\n // { label: \"Tourneur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Développement Informatique...\", type: \"NaturalPerson\" },\r\n // { label: \"Tourneur Fraiseur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Diagnostic Automobile\", type: \"NaturalPerson\" },\r\n // { label: \"Trade Marketing Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Documentation\", type: \"NaturalPerson\" },\r\n // { label: \"Traducteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Eclairagiste\", type: \"NaturalPerson\" },\r\n // { label: \"Traducteur Technique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Electricité\", type: \"NaturalPerson\" },\r\n // { label: \"Traffic Manager\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Electromécanicien\", type: \"NaturalPerson\" },\r\n // { label: \"Travailleur Social\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Electroménager\", type: \"NaturalPerson\" },\r\n // { label: \"Trésorier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Electronicien\", type: \"NaturalPerson\" },\r\n // { label: \"Tuyauteur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Electrotechnique\", type: \"NaturalPerson\" },\r\n // { label: \"Tuyauteur Aéronautique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Elevage\", type: \"NaturalPerson\" },\r\n // { label: \"Tuyauteur Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Elevage de Chevaux\", type: \"NaturalPerson\" },\r\n // { label: \"Urbaniste\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Agriculture\", type: \"NaturalPerson\" },\r\n // { label: \"Urbaniste Système d´Information SI\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Architecture\", type: \"NaturalPerson\" },\r\n // { label: \"Valet de Chambre\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Confiserie Industrielle...\", type: \"NaturalPerson\" },\r\n // { label: \"Valet de Lieu Public\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Fluides de Construction...\", type: \"NaturalPerson\" },\r\n // { label: \"Veilleur Stratégique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Gestion des Entreprises...\", type: \"NaturalPerson\" },\r\n // { label: \"Veilleur Technologique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Impression Numérique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Maintenance de Matériel de...\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur à Domicile\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien en Matériaux Composite\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Alimentation Générale\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Entretien Articles Textiles...\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Animalier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Environnement\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Articles de Luxe\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Equipement\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Articles de Sport\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Equipement Electrique...\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Biens Equipement\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Essais\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Boulangerie Patisserie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Essais Mécaniques\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Comptoir\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Etudes\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Conseil\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Etudes Bâtiment\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Conseil en Matériel Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Etudes de Prix\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Conseil en Pièces Détachées\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Etudes en Electricité\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Cuisine Equipée\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Etudes Génie Climatique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur de Livres\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Exploitation\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur de Luxe\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Exploitation de Transport\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur de Matériel de Jardinage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fabrication\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Détail\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fabrication Chimie\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Distributeur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fabrication Industrie...\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Electroménager\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fabrication Mécanique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Equipement de la Personne\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fibre Optique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Librairie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Fluides\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Magasin\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Foncier\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Magasin Spécialisé\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Forestier\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Outillage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Frigoriste\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur en Téléphonie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Froid Climatisation\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Espaces Publicitaires\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Génie Civil\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Fournitures\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Génie Climatique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Instruments de Musique\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Géomatique\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Jouets\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Help Desk\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Matériel Agricole\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien HSE\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Outillage Industriel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Imprimante Copieur Laser\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Outils Bricolage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Industrialisation\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Préparateur en Boulangerie\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Industrie Agroalimentaire\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Produits de Beauté Cosmétiques...\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Industrie du Verre\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Réseau Traditionnel\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Industries Graphiques\", type: \"NaturalPerson\" },\r\n // { label: \"Vendeur Spécialisé en Bricolage\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Inspection Electrique\", type: \"NaturalPerson\" },\r\n // { label: \"Vernisseur Laqueur\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Installateur Systèmes...\", type: \"NaturalPerson\" },\r\n // { label: \"Vernisseur sur Bois\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Installation de Matériels...\", type: \"NaturalPerson\" },\r\n // { label: \"Vétérinaire\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Installations\", type: \"NaturalPerson\" },\r\n // { label: \"Vétérinaire Equin\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Instrumentation\", type: \"NaturalPerson\" },\r\n // { label: \"Vigile\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Intervention Sociale et...\", type: \"NaturalPerson\" },\r\n // { label: \"Visiteur Médical\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire Agroalimentaire...\", type: \"NaturalPerson\" },\r\n // { label: \"Visual Merchandiser\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire Chimie\", type: \"NaturalPerson\" },\r\n // { label: \"Vitrier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire de Contrôle des...\", type: \"NaturalPerson\" },\r\n // { label: \"Vitrier Miroitier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire de Recherche\", type: \"NaturalPerson\" },\r\n // { label: \"Voiturier\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire de Recherche des...\", type: \"NaturalPerson\" },\r\n // { label: \"Webdesigner\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire d´Analyse des Eaux...\", type: \"NaturalPerson\" },\r\n // { label: \"Webmarketer\", type: \"NaturalPerson\" },\r\n // { label: \"Technicien Laboratoire d´Analyses...\", type: \"NaturalPerson\" },\r\n // { label: \"Webmaster\", type: \"NaturalPerson\" },\r\n // { label: \"Étudiant\t\", type: \"NaturalPerson\" },\r\n // { label: \"Entrepreuneur\t\", type: \"NaturalPerson\" },\r\n // { label: \"Ménagère\t\", type: \"NaturalPerson\" },\r\n // { label: \"Femme au Foyer\t\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire\t\", type: \"NaturalPerson\" },\r\n // { label: \"Gestionnaire des Resssoureces Humaines\t\", type: \"NaturalPerson\" },\r\n // { label: \"Sans Emploi\t\", type: \"NaturalPerson\" },\r\n // { label: \"Fonctionnaire\t\", type: \"NaturalPerson\" } \r\n ]\r\n};\r\n\r\nconst PanelistReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n case PANELIST_ACTION_SUBMITTING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case PANELIST_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n }\r\n case PANELIST_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n case PANELIST_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false\r\n };\r\n }\r\n case PANELIST_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n case PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING: {\r\n return {\r\n ...state,\r\n panelistAdvancedSearchTableContentLoading: true\r\n };\r\n }\r\n case PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED: {\r\n return {\r\n ...state,\r\n panelistAdvancedSearchTableContentLoading: false\r\n };\r\n }\r\n case GET_PANELIST: {\r\n return {\r\n ...state,\r\n currentPanelist: { ...action.data }\r\n };\r\n }\r\n case GET_PANELIST_LIST: {\r\n return {\r\n ...state,\r\n panelistList: [...action.data],\r\n panelistAsLegalPersonList: [...action.data.filter(p => p.Type == \"LegalPerson\")],\r\n panelistAsNaturalPersonList: [...action.data.filter(p => p.Type == \"NaturalPerson\")]\r\n };\r\n }\r\n case ADD_PANELIST_TO_LIST: {\r\n return {\r\n ...state,\r\n currentPanelist: { ...action.data },\r\n showAddedAlert: true,\r\n showUpdatedAlert: false,\r\n showDeletedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n case DELETE_PANELIST_FROM_LIST: {\r\n return {\r\n ...state,\r\n panelistList: [...action.data],\r\n showDeletedAlert: true,\r\n showAddedAlert: false,\r\n showUpdatedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n case UPDATE_PANELIST: {\r\n return {\r\n ...state,\r\n currentPanelist: { ...action.data },\r\n showUpdatedAlert: true,\r\n showAddedAlert: false,\r\n showDeletedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n case GET_REGIONLIST: {\r\n return {\r\n ...state,\r\n regionList: [...action.data]\r\n };\r\n }\r\n default: {\r\n return {\r\n ...state\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default PanelistReducer;","import {\r\n GET_PANELISTGROUP_LIST,\r\n PANELISTGROUP_ACTION_LOADING,\r\n PANELISTGROUP_ACTION_SUCCESS,\r\n PANELISTGROUP_ACTION_ERROR,\r\n PANELISTGROUP_ACTION_SUBMITING,\r\n PANELISTGROUP_ACTION_SUBMITED,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n PANELISTGROUP_TABLE_CONTENT_LOADING,\r\n PANELISTGROUP_TABLE_CONTENT_LOADED,\r\n GET_PANELISTGROUP\r\n} from \"../actions/PanelistGroupActions\";\r\n\r\nconst initialState = {\r\n panelistGroupList: [],\r\n storeCurrentPanelistGroup: {},\r\n loading: false,\r\n success: false,\r\n failed: false,\r\n submitting: false,\r\n errorMessage: \"\",\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n groupListTableContentLoading: false\r\n};\r\n\r\nconst PanelistGroupReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n // Statut des actions\r\n case PANELISTGROUP_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case PANELISTGROUP_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false,\r\n };\r\n }\r\n case PANELISTGROUP_ACTION_SUBMITING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case PANELISTGROUP_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n }\r\n case PANELISTGROUP_TABLE_CONTENT_LOADING: {\r\n return {\r\n ...state,\r\n groupListTableContentLoading: true\r\n };\r\n }\r\n case PANELISTGROUP_TABLE_CONTENT_LOADED: {\r\n return {\r\n ...state,\r\n groupListTableContentLoading: false\r\n };\r\n }\r\n case PANELISTGROUP_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n case GET_PANELISTGROUP: {\r\n return {\r\n ...state,\r\n storeCurrentPanelistGroup: { ...action.data }\r\n };\r\n }\r\n case GET_PANELISTGROUP_LIST: { // Ce cas de reducer est appelé pour 4 actions: getGroupList, createGroup, updateGroup et removeGroup car le service repond toujours avec la list mise à jour\r\n return {\r\n ...state,\r\n panelistGroupList: [...action.data],\r\n someGroupisEditing: false,\r\n\r\n };\r\n }\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default PanelistGroupReducer;\r\n","import {\r\n GET_PANELISTCATEGORY,\r\n GET_PANELISTCATEGORY_LIST,\r\n ADD_PANELISTCATEGORY_TO_LIST,\r\n DELETE_PANELISTCATEGORY_FROM_LIST,\r\n UPDATE_PANELISTCATEGORY,\r\n PANELISTCATEGORY_ACTION_SUBMITTING,\r\n PANELISTCATEGORY_ACTION_SUBMITED,\r\n PANELISTCATEGORY_ACTION_LOADING,\r\n PANELISTCATEGORY_ACTION_SUCCESS,\r\n PANELISTCATEGORY_ACTION_ERROR,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n} from \"../actions/PanelistCategoryActions\";\r\n\r\nconst initialState = {\r\n submitting: false,\r\n success: false,\r\n loading: false,\r\n failed: false,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n categories: [],\r\n};\r\n\r\nconst PanelistCategoryReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n case PANELISTCATEGORY_ACTION_SUBMITTING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case PANELISTCATEGORY_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n }\r\n case PANELISTCATEGORY_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true\r\n };\r\n }\r\n case PANELISTCATEGORY_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false\r\n };\r\n }\r\n case PANELISTCATEGORY_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n case GET_PANELISTCATEGORY_LIST: {\r\n return {\r\n ...state,\r\n categories: [...action.data]\r\n };\r\n }\r\n case ADD_PANELISTCATEGORY_TO_LIST: {\r\n return {\r\n ...state,\r\n showAddedAlert: true,\r\n showUpdatedAlert: false,\r\n showDeletedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n case DELETE_PANELISTCATEGORY_FROM_LIST: {\r\n return {\r\n ...state,\r\n categories: [...action.data],\r\n showDeletedAlert: true,\r\n showAddedAlert: false,\r\n showUpdatedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n case UPDATE_PANELISTCATEGORY: {\r\n return {\r\n ...state,\r\n showUpdatedAlert: true,\r\n showAddedAlert: false,\r\n showDeletedAlert: false,\r\n submitting: false\r\n };\r\n }\r\n default: {\r\n return {\r\n ...state\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default PanelistCategoryReducer;","import {\r\n GET_PROJECT_LIST,\r\n PROJECT_ACTION_LOADING,\r\n PROJECT_ACTION_SUCCESS,\r\n PROJECT_ACTION_ERROR,\r\n PROJECT_ACTION_SUBMITING,\r\n PROJECT_ACTION_SUBMITED,\r\n SHOW_ALERT,\r\n HIDE_ALERT,\r\n GET_PROJECT,\r\n GET_QUIZ_LIST,\r\n QUIZ_ACTION_SUCCESS,\r\n QUIZ_ACTION_ERROR,\r\n QUIZ_ACTION_LOADING,\r\n GET_QUIZ_RESPONSE_LIST\r\n} from \"../actions/ProjectActions\";\r\n\r\nconst initialState = {\r\n projectList: [],\r\n quizList: [],\r\n quizResponseList: [],\r\n storeCurrentProject: {},\r\n loading: false,\r\n success: false,\r\n failed: false,\r\n submitting: false,\r\n errorMessage: \"\",\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\",\r\n projectListTableContentLoading: false\r\n};\r\n\r\nconst ProjectReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n // Statut des actions\r\n case PROJECT_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case PROJECT_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false,\r\n };\r\n }\r\n case PROJECT_ACTION_SUBMITING: {\r\n return {\r\n ...state,\r\n submitting: true\r\n };\r\n }\r\n case PROJECT_ACTION_SUBMITED: {\r\n return {\r\n ...state,\r\n submitting: false\r\n };\r\n } \r\n case PROJECT_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n case GET_PROJECT: {\r\n return {\r\n ...state,\r\n storeCurrentProject: { ...action.data }\r\n };\r\n }\r\n case GET_PROJECT_LIST: {\r\n return {\r\n ...state,\r\n projectList: [...action.data],\r\n };\r\n }\r\n case GET_QUIZ_LIST: {\r\n return {\r\n ...state,\r\n quizList: [...action.data]\r\n };\r\n }\r\n case GET_QUIZ_RESPONSE_LIST: {\r\n return {\r\n ...state,\r\n quizResponseList: [...action.data]\r\n };\r\n }\r\n case QUIZ_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case QUIZ_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false,\r\n };\r\n }\r\n case QUIZ_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"error\"\r\n };\r\n }\r\n // Alert action\r\n case SHOW_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: true,\r\n alertMessage: action.data,\r\n alertVariant: \"success\"\r\n };\r\n }\r\n case HIDE_ALERT: {\r\n return {\r\n ...state,\r\n showAlert: false,\r\n alertMessage: \"\",\r\n alertVariant: \"\"\r\n };\r\n }\r\n default: {\r\n return state;\r\n }\r\n }\r\n};\r\n\r\nexport default ProjectReducer;\r\n","import {\r\n GET_DASHBOARD,\r\n DASHBOARD_ACTION_LOADING,\r\n DASHBOARD_ACTION_SUCCESS,\r\n DASHBOARD_ACTION_ERROR,\r\n} from \"../actions/DashboardActions\";\r\n\r\nconst initialState = {\r\n submitting: false,\r\n success: false,\r\n loading: false,\r\n failed: false,\r\n dashboard: {},\r\n\r\n};\r\n\r\nconst DashboardReducer = function (state = initialState, action) {\r\n switch (action.type) {\r\n case DASHBOARD_ACTION_LOADING: {\r\n return {\r\n ...state,\r\n loading: true,\r\n success: false,\r\n failed: false\r\n };\r\n }\r\n case DASHBOARD_ACTION_SUCCESS: {\r\n return {\r\n ...state,\r\n success: true,\r\n loading: false,\r\n failed: false\r\n };\r\n }\r\n case DASHBOARD_ACTION_ERROR: {\r\n return {\r\n ...state,\r\n failed: true,\r\n success: false,\r\n loading: false\r\n };\r\n }\r\n case GET_DASHBOARD: {\r\n return {\r\n ...state,\r\n dashboard: { ...action.data }\r\n };\r\n }\r\n default: {\r\n return {\r\n ...state\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default DashboardReducer;","import { combineReducers } from \"redux\";\r\nimport LoginReducer from \"./LoginReducer\";\r\nimport UserReducer from \"./UserReducer\";\r\nimport RoleReducer from \"./RoleReducer\";\r\nimport LayoutReducer from \"./LayoutReducer\";\r\nimport ScrumBoardReducer from \"./ScrumBoardReducer\";\r\nimport NotificationReducer from \"./NotificationReducer\";\r\nimport EcommerceReducer from \"./EcommerceReducer\";\r\nimport PanelistReducer from \"./PanelistReducer\";\r\nimport PanelistGroupReducer from \"./PanelistGroupReducer\";\r\nimport PanelistCategoryReducer from \"./PanelistCategoryReducer\";\r\nimport ProjectReducer from \"./ProjectReducer\";\r\nimport DashboardReducer from \"./DashboardReducer\";\r\n\r\nconst RootReducer = combineReducers({\r\n login: LoginReducer,\r\n user: UserReducer,\r\n role: RoleReducer,\r\n layout: LayoutReducer,\r\n scrumboard: ScrumBoardReducer,\r\n notification: NotificationReducer,\r\n ecommerce: EcommerceReducer,\r\n panelist: PanelistReducer,\r\n panelistgroup: PanelistGroupReducer,\r\n panelistcategory: PanelistCategoryReducer,\r\n project: ProjectReducer,\r\n dashboard: DashboardReducer,\r\n});\r\n\r\nexport default RootReducer;\r\n","import thunk from \"redux-thunk\";\r\nimport { createStore, applyMiddleware, compose } from \"redux\";\r\nimport RootReducer from \"./reducers/RootReducer\";\r\n\r\nconst initialState = {};\r\n\r\nconst middlewares = [thunk];\r\n\r\nexport const Store = createStore(\r\n RootReducer,\r\n initialState,\r\n compose(\r\n applyMiddleware(...middlewares),\r\n // window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()\r\n )\r\n);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { setUserData } from \"../redux/actions/UserActions\";\r\nimport jwtAuthService from \"../services/jwtAuthService\";\r\nimport authentificationService from \"../services/authentificationService\";\r\nimport localStorageService from \"../services/localStorageService\";\r\nimport firebaseAuthService from \"../services/firebase/firebaseAuthService\";\r\nimport history from \"history.js\";\r\n\r\nclass Auth extends Component {\r\n state = {};\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n // Check current token is valid on page load/reload\r\n this.checkJwtAuth();\r\n }\r\n\r\n checkJwtAuth = () => {\r\n // You need to send token to your server to check token is valid\r\n // modify loginWithToken method in jwtService pathname\r\n let pathname = window.location.pathname;\r\n let user = localStorageService.getItem(\"auth_user\");\r\n if (user) {\r\n this.props.setUserData(user);\r\n history.push({\r\n pathname: pathname\r\n });\r\n }\r\n else {\r\n history.push({\r\n pathname: \"/session/signin\"\r\n });\r\n }\r\n };\r\n\r\n checkFirebaseAuth = () => {\r\n firebaseAuthService.checkAuthStatus(user => {\r\n if (user) {\r\n console.log(user.uid);\r\n console.log(user.email);\r\n console.log(user.emailVerified);\r\n } else {\r\n console.log(\"not logged in\");\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n const { children } = this.props;\r\n return {children};\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n setUserData: PropTypes.func.isRequired,\r\n login: state.login\r\n});\r\n\r\nexport default connect(mapStateToProps, { setUserData })(Auth);\r\n","import {MatxLoadable} from \"matx\";\r\n\r\nconst Layout1 = MatxLoadable({\r\n loader: () => import(\"./Layout1/Layout1\")\r\n});\r\n\r\nexport const MatxLayouts = {\r\n layout1: Layout1\r\n}","import React, { Component } from \"react\";\r\nimport { MatxLayouts } from \"./index\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { matchRoutes } from \"react-router-config\";\r\nimport { connect } from \"react-redux\";\r\nimport AppContext from \"app/appContext\";\r\nimport {\r\n setLayoutSettings,\r\n setDefaultSettings\r\n} from \"app/redux/actions/LayoutActions\";\r\nimport { isEqual, merge } from \"lodash\";\r\nimport { isMdScreen, getQueryParam } from \"utils\";\r\n\r\nclass MatxLayout extends Component {\r\n constructor(props, context) {\r\n super(props);\r\n this.appContext = context;\r\n this.updateSettingsFromRouter();\r\n\r\n // Set settings from query (Only for demo purpose)\r\n this.setLayoutFromQuery();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (this.props.location.pathname !== prevProps.location.pathname) {\r\n this.updateSettingsFromRouter();\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n if (window) {\r\n // LISTEN WINDOW RESIZE\r\n window.addEventListener(\"resize\", this.listenWindowResize);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (window) {\r\n window.removeEventListener(\"resize\", this.listenWindowResize);\r\n }\r\n }\r\n\r\n setLayoutFromQuery = () => {\r\n try {\r\n let settingsFromQuery = getQueryParam(\"settings\");\r\n settingsFromQuery = settingsFromQuery\r\n ? JSON.parse(settingsFromQuery)\r\n : {};\r\n let { settings, setLayoutSettings, setDefaultSettings } = this.props;\r\n let updatedSettings = merge({}, settings, settingsFromQuery);\r\n\r\n setLayoutSettings(updatedSettings);\r\n setDefaultSettings(updatedSettings);\r\n } catch (e) {\r\n // console.log(\"Error! Set settings from query param\", e);\r\n }\r\n };\r\n\r\n listenWindowResize = () => {\r\n let { settings, setLayoutSettings } = this.props;\r\n\r\n if (settings.layout1Settings.leftSidebar.show) {\r\n let mode = isMdScreen() ? \"close\" : \"full\";\r\n setLayoutSettings(\r\n merge({}, settings, { layout1Settings: { leftSidebar: { mode } } })\r\n );\r\n }\r\n };\r\n\r\n updateSettingsFromRouter() {\r\n const { routes } = this.appContext;\r\n const matched = matchRoutes(routes, this.props.location.pathname)[0];\r\n let { defaultSettings, settings, setLayoutSettings } = this.props;\r\n\r\n if (matched && matched.route.settings) {\r\n // ROUTE HAS SETTINGS\r\n const updatedSettings = merge({}, settings, matched.route.settings);\r\n if (!isEqual(settings, updatedSettings)) {\r\n setLayoutSettings(updatedSettings);\r\n // console.log('Route has settings');\r\n }\r\n } else if (!isEqual(settings, defaultSettings)) {\r\n setLayoutSettings(defaultSettings);\r\n // console.log('reset settings', defaultSettings);\r\n }\r\n }\r\n\r\n render() {\r\n const { settings } = this.props;\r\n const Layout = MatxLayouts[settings.activeLayout];\r\n\r\n return ;\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n setLayoutSettings: PropTypes.func.isRequired,\r\n setDefaultSettings: PropTypes.func.isRequired,\r\n settings: state.layout.settings,\r\n defaultSettings: state.layout.defaultSettings\r\n});\r\n\r\nMatxLayout.contextType = AppContext;\r\n\r\nexport default withRouter(\r\n connect(\r\n mapStateToProps,\r\n { setLayoutSettings, setDefaultSettings }\r\n )(MatxLayout)\r\n);\r\n","import React, { Component, Fragment } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport AppContext from \"app/appContext\";\r\nimport { any } from \"underscore\";\r\n\r\nclass AuthGuard extends Component {\r\n constructor(props, context) {\r\n super(props);\r\n let { routes } = context;\r\n\r\n this.state = {\r\n authenticated: false,\r\n routes\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (!this.state.authenticated) {\r\n this.redirectRoute(this.props);\r\n }\r\n }\r\n\r\n componentDidUpdate() {\r\n if (!this.state.authenticated) {\r\n this.redirectRoute(this.props);\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n return nextState.authenticated !== this.state.authenticated;\r\n }\r\n\r\n static getDerivedStateFromProps(props, state) {\r\n const { location, user } = props;\r\n const { pathname } = location;\r\n const matched = state.routes.find(r => r.path === pathname);\r\n const authenticated =\r\n matched && matched.auth && matched.auth.length && Object.keys(user.currentUser).length !== 0 && user.currentUser.Permissions ?\r\n user.currentUser.Permissions.some(p => matched.auth.includes(p)) : true;\r\n return { authenticated };\r\n }\r\n\r\n redirectRoute(props) {\r\n const { location, history } = props;\r\n const { pathname } = location;\r\n history.push({\r\n pathname: \"/session/signin\",\r\n state: { redirectUrl: pathname }\r\n });\r\n }\r\n\r\n render() {\r\n let { children } = this.props;\r\n const { authenticated } = this.state;\r\n return authenticated ? {children} : null;\r\n }\r\n}\r\n\r\nAuthGuard.contextType = AppContext;\r\n\r\nconst mapStateToProps = state => ({\r\n user: state.user\r\n});\r\n\r\nexport default withRouter(connect(mapStateToProps)(AuthGuard));\r\n","import \"../fake-db\";\r\nimport \"../styles/_app.scss\";\r\nimport React from \"react\";\r\nimport { Provider } from \"react-redux\";\r\nimport { Router } from \"react-router-dom\";\r\nimport MatxTheme from \"./MatxLayout/MatxTheme/MatxTheme\";\r\nimport AppContext from \"./appContext\";\r\nimport history from \"history.js\";\r\n\r\nimport routes from \"./RootRoutes\";\r\nimport { Store } from \"./redux/Store\";\r\nimport Auth from \"./auth/Auth\";\r\nimport MatxLayout from \"./MatxLayout/MatxLayout\";\r\nimport AuthGuard from \"./auth/AuthGuard\";\r\n\r\nconst App = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","import \"babel-polyfill\";\r\n// import cssVars from \"css-vars-ponyfill\";\r\n\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./_index.scss\";\r\n\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport App from \"./app/App\";\r\n\r\n// cssVars();\r\n\r\nReactDOM.render(, document.getElementById(\"root\"));\r\n\r\n// for IE-11 support un-comment cssVars() and it's import in this file\r\n// and in MatxTheme file\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { getRoleList } from \"app/redux/actions/RoleActions\";\r\nimport { createUser, setTableContentLoading } from \"app/redux/actions/UserActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass CreateUser extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n user: {\r\n UserId: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n },\r\n RoleList: []\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleSelectListChange = this.handleSelectListChange.bind(this);\r\n this.getOptionsFromRoleList = this.getOptionsFromRoleList.bind(this);\r\n\r\n }\r\n\r\n componentDidMount() {\r\n ValidatorForm.addValidationRule(\"isPasswordMatch\", value => {\r\n if (value !== this.state.user.Password) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n ValidatorForm.addValidationRule(\"isPasswordComplex\", value => {\r\n if (value.match(/[0-9]/g) && value.match(/[A-Z]/g) && value.match(/[a-z]/g) && value.match(/[^a-zA-Z\\d]/g) && value.length >= 8) {\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n if (this.props.storeRole.roleList.length > 0) {\r\n this.getOptionsFromRoleList(this.props.storeRole.roleList);\r\n }\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSave = event => {\r\n this.handleSubmit(this.state.user)\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.createUser(value).then(data => {\r\n if (data) {\r\n this.handleClose();\r\n this.setState({\r\n user: {\r\n UserId: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n Roles: [\r\n {\r\n\r\n RoleId: \"\",\r\n Name: \"\"\r\n }\r\n ]\r\n }\r\n }, () => {\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let userCopy = this.state.user;\r\n for (let key in userCopy) {\r\n if (key === event.target.name) {\r\n userCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ user: userCopy });\r\n };\r\n\r\n handleSelectListChange = (event, value) => {\r\n let result = [];\r\n if (value !== []) {\r\n value.forEach(element => {\r\n result.push({ RoleId: element.id, Name: element.title });\r\n });\r\n let userCopy = this.state.user;\r\n userCopy.Roles = result;\r\n this.setState({ user: userCopy });\r\n }\r\n }\r\n\r\n getOptionsFromRoleList = (roles) => {\r\n if (roles !== undefined && roles.length > 0) {\r\n let result = [];\r\n roles.forEach(element => {\r\n result.push({ title: element.Name, id: element.RoleId });\r\n });\r\n this.setState({ RoleList: result });\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n let { UserId, FirstName, LastName, PhoneNumber1, PhoneNumber2, Email, Password, ConfirmPassword } = this.state.user;\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouvel utilisateur\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n option.title}\r\n filterSelectedOptions\r\n onChange={(event, value) => this.handleSelectListChange(event, value)}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n createUser: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n getRoleList: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n storeUser: state.user,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { getRoleList, createUser, setTableContentLoading })(CreateUser))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, Checkbox, FormControlLabel, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { getRoleList } from \"app/redux/actions/RoleActions\";\r\nimport { updateUser, setTableContentLoading } from \"app/redux/actions/UserActions\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass UpdateUser extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n userToUpdate: this.props.userToUpdate,\r\n RoleList: [],\r\n defaultSelectedRoleList: [],\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleSelectListChange = this.handleSelectListChange.bind(this);\r\n this.getOptionsFromRoleList = this.getOptionsFromRoleList.bind(this);\r\n\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.storeRole.roleList.length > 0) {\r\n this.getOptionsFromRoleList(this.props.storeRole.roleList);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSave = event => {\r\n this.handleSubmit(this.state.userToUpdate)\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.updateUser(value).then(data => {\r\n if (data.Success) {\r\n this.handleClose();\r\n this.setState({\r\n user: {\r\n UserId: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n Password: \"\",\r\n ConfirmPassword: \"\",\r\n Roles: [\r\n {\r\n RoleId: \"\",\r\n Name: \"\"\r\n }\r\n ]\r\n }\r\n }, () => {\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 500);\r\n });\r\n this.getOptionsFromRoleList(this.props.storeRole.roleList);\r\n }\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let userCopy = this.state.userToUpdate;\r\n for (let key in userCopy) {\r\n if (key === event.target.name) {\r\n userCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ user: userCopy });\r\n };\r\n\r\n handleSelectListChange = (event, value) => {\r\n let result = [];\r\n if (value !== []) {\r\n value.forEach(element => {\r\n result.push({ RoleId: element.id, Name: element.title });\r\n });\r\n let userCopy = this.state.userToUpdate;\r\n userCopy.Roles = result;\r\n this.setState({ user: userCopy });\r\n }\r\n }\r\n\r\n getOptionsFromRoleList = (roles) => {\r\n if (roles !== undefined && roles.length > 0) {\r\n let result = [];\r\n roles.forEach(element => {\r\n result.push({ title: element.Name, id: element.RoleId });\r\n });\r\n this.setState({ RoleList: result }, () => {\r\n let defaultSelectedRoleList = [];\r\n if (this.state.userToUpdate.Roles !== null && this.state.userToUpdate.Roles !== undefined && this.state.userToUpdate.Roles.length > 0) {\r\n let userCopy = this.state.userToUpdate;\r\n userCopy.Roles.forEach(element => {\r\n defaultSelectedRoleList.push(this.state.RoleList.find((d) => d.id === element.RoleId));\r\n });\r\n\r\n this.setState({ userToUpdate: userCopy, defaultSelectedRoleList: defaultSelectedRoleList });\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n\r\n render() {\r\n let { UserId, FirstName, LastName, PhoneNumber1, PhoneNumber2, Email } = this.state.userToUpdate;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Modification d'un nouvel utilisateur\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n option.title}\r\n defaultValue={this.state.defaultSelectedRoleList}\r\n filterSelectedOptions\r\n onChange={(event, value) => this.handleSelectListChange(event, value)}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default CreateEntityDialog; setTableContentLoading\r\n\r\nconst mapStateToProps = state => ({\r\n updateUser: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n getRoleList: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n storeUser: state.user,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { getRoleList, updateUser, setTableContentLoading })(UpdateUser))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deleteUser, setTableContentLoading } from \"app/redux/actions/UserActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n \r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass DeleteUser extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n userToDelete: this.props.userToDelete,\r\n }\r\n\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n }\r\n\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleConfirm = (e) => {\r\n this.props.deleteUser(this.props.userToDelete.UserId).then(data => {\r\n if (data) {\r\n this.handleClose();\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n }\r\n });\r\n };\r\n\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Suppression de l'utilisateur : {this.props.userToDelete.FirstName + \" \" + this.props.userToDelete.LastName}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer cet utilisateur ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n deleteUser: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n storeUser: state.user,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deleteUser, setTableContentLoading })(DeleteUser))\r\n);","import React from 'react';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport { Typography, TableCell } from '@material-ui/core';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function UserRolePopover(props) {\r\n const {\r\n user\r\n } = props;\r\n const classes = useStyles();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handlePopoverOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n return (\r\n \r\n {user.Roles[0].Name}...\r\n \r\n {user.Roles.map((rolePop, roleIndex) => (\r\n {rolePop.Name}\r\n ))}\r\n \r\n \r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList, } from \"app/redux/actions/RoleActions\";\r\nimport { getUserList, hideAlert } from \"app/redux/actions/UserActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination, Menu, MenuItem } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport CreateUser from \"./dialogs/CreateUser\";\r\nimport UpdateUser from \"./dialogs/UpdateUser\";\r\nimport DeleteUser from \"./dialogs/DeleteUser\";\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport UserRolePopover from \"./popovers/UserRolesPopover\";\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n },\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\n\r\nlet roleListLoaded = false;\r\nlet userListLoaded = false;\r\n\r\nfunction UserListPage(props) {\r\n const {\r\n theme,\r\n storeRole = {},\r\n storeUser = {},\r\n getRoleList,\r\n getUserList,\r\n hideAlert,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const openPop = Boolean(anchorEl);\r\n\r\n useEffect(() => {\r\n if (storeUser.showAlert) {\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n\r\n }\r\n if (storeRole.loading || storeUser.loading) {\r\n setIsLoading(true);\r\n }\r\n else if (storeRole.success && storeUser.success) {\r\n setIsLoading(false);\r\n }\r\n\r\n }, [storeRole, storeUser])\r\n\r\n if (!roleListLoaded && !userListLoaded) {\r\n getRoleList();\r\n getUserList();\r\n roleListLoaded = true;\r\n userListLoaded = true;\r\n }\r\n\r\n\r\n function handleClose(event) {\r\n setOpen(false);\r\n hideAlert();\r\n }\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storeUser.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n Prénom\r\n Nom\r\n Email\r\n Téléphone\r\n Rôle\r\n \r\n \r\n \r\n \r\n \r\n {storeUser.userListTableContentLoading ? (\r\n \r\n\r\n \r\n ) : (\r\n storeUser.userList\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((user, index) => (\r\n \r\n {user.FirstName}\r\n {user.LastName}\r\n {user.Email}\r\n {user.PhoneNumber1}\r\n {user.Roles.length > 1 ? (\r\n \r\n ) : (\r\n {user.Roles[0].Name}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )}\r\n { }\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nUserListPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storeRole: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getUserList: PropTypes.func.isRequired,\r\n getRoleList: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n storeUser: state.user,\r\n});\r\n\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps, { getRoleList, getUserList, hideAlert })(UserListPage));\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, Checkbox, FormControlLabel, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createRole, setTableContentLoading } from \"app/redux/actions/RoleActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass CreateRole extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n role: {\r\n RoleId: \"\",\r\n Name: \"\",\r\n Permissions: []\r\n }\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);//\r\n this.checkboxHandleChange = this.checkboxHandleChange.bind(this);\r\n\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSave = event => {\r\n this.handleSubmit(this.state.role)\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.createRole(value).then(data => {\r\n if (data) {\r\n this.handleClose();\r\n this.setState({\r\n role: {\r\n RoleId: \"\",\r\n Name: \"\",\r\n Permissions: []\r\n }\r\n }, () => {\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let roleCopy = this.state.role;\r\n for (let key in roleCopy) {\r\n if (key === event.target.name) {\r\n roleCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ role: roleCopy });\r\n };\r\n\r\n checkboxHandleChange = (event, permission) => {\r\n let result = [];\r\n event.persist();\r\n let roleCopy = this.state.role;\r\n let permissionsCopy = roleCopy[\"Permissions\"];\r\n if (permissionsCopy.length == 0) { // Si l'objet rôle ne contient aucune permission on l'ajoute simplement\r\n if (event.target.checked) { // on s'assure que c'est un check\r\n result.push(permission); // On ajoute la permission\r\n }\r\n }\r\n else if (permissionsCopy.length > 0) { // Sinon si le rôle courant contient déjà au moins une permission\r\n if (event.target.checked) { // On vérifie si c'est un check\r\n result = permissionsCopy; // On copie les valeurs existantes dans le tableau de resultat vide\r\n result.push(permission); // puis on ajoute la nouvelle valeur checked\r\n }\r\n else { // Sinon (ça veut dire que c'est un unchecked) \r\n permissionsCopy.forEach(element => { // On loop les permissions courantes dans le rôle\r\n if (element.Name !== event.target.name) { // on s'assure que chaque élément est différent de la valeur unchecked\r\n result.push(element); // On copie chaque élément est différent de la valeur unchecked dans le tableau de resultat vide\r\n }\r\n });\r\n }\r\n }\r\n roleCopy[\"Permissions\"] = result; // On met à jour la liste de permissions de l'objet copie du rôle\r\n this.setState({ role: roleCopy });// On met à jour le rôle dans le state\r\n };\r\n\r\n render() {\r\n let { RoleId, Name, Permissions } = this.state.role;\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouveau role\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n \r\n \r\n {this.props.permissionList.map((item, index) => (\r\n item.Name != \"AllowedToManageAccount\" && (\r\n \r\n this.checkboxHandleChange(e, item)} value={item.PermissionId} />}\r\n label={item.ShortDescription}\r\n />\r\n \r\n )))}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default CreateEntityDialog;\r\n\r\nconst mapStateToProps = state => ({\r\n createRole: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { createRole, setTableContentLoading })(CreateRole))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { renameRole, setTableContentLoading } from \"app/redux/actions/RoleActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass RenameRole extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n role: {\r\n RoleId: \"\",\r\n Name: \"\",\r\n NewName: \"\"\r\n },\r\n RoleOptionList: []\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.roleList && this.props.roleList.length > 0) {\r\n this.getOptionsFromRoleList(this.props.roleList);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.storeRole.roleList != this.props.storeRole.roleList) {\r\n this.getOptionsFromRoleList(nextProps.storeRole.roleList);\r\n }\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSave = event => {\r\n this.handleSubmit(this.state.role)\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.renameRole(value).then(data => {\r\n if (data) {\r\n // this.props.getPermissionList();\r\n this.handleClose();\r\n this.setState({\r\n role: {\r\n RoleId: \"\",\r\n Name: \"\",\r\n NewName: \"\"\r\n }\r\n }, () => {\r\n this.getOptionsFromRoleList(this.props.roleList);\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let roleCopy = this.state.role;\r\n for (let key in roleCopy) {\r\n if (key === event.target.name) {\r\n roleCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ role: roleCopy });\r\n };\r\n\r\n getOptionsFromRoleList = (roles) => {\r\n if (roles != undefined && roles.length > 0) {\r\n let result = [];\r\n roles.forEach(element => {\r\n if (element.Name !== \"Administrateur\") {\r\n result.push({ label: element.Name, id: element.RoleId });\r\n }\r\n });\r\n this.setState({ RoleOptionList: result });\r\n }\r\n }\r\n\r\n handleSelectListChange = (event, value) => {\r\n if (value !== undefined && value !== null) {\r\n let roleCopy = this.state.role;\r\n roleCopy.RoleId = value.id;\r\n roleCopy.Name = value.label;\r\n this.setState({ role: roleCopy });\r\n }\r\n }\r\n\r\n\r\n render() {\r\n let { RoleId, Name, NewName } = this.state.role;\r\n return (\r\n
\r\n \r\n edit\r\n \r\n \r\n \r\n Renommer un rôle\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => this.handleSelectListChange(event, value)}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default CreateEntityDialog;\r\n\r\nconst mapStateToProps = state => ({\r\n renameRole: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { renameRole, setTableContentLoading })(RenameRole))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deleteRole, setTableContentLoading } from \"app/redux/actions/RoleActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass DeleteRole extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n role: {\r\n RoleId: \"\",\r\n Name: \"\"\r\n },\r\n RoleOptionList: []\r\n }\r\n\r\n\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.roleList && this.props.roleList.length > 0) {\r\n this.getOptionsFromRoleList(this.props.roleList);\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.storeRole.roleList != this.props.storeRole.roleList) {\r\n this.getOptionsFromRoleList(nextProps.storeRole.roleList);\r\n }\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n getOptionsFromRoleList = (roles) => {\r\n if (roles != undefined && roles.length > 0) {\r\n let result = [];\r\n roles.forEach(element => {\r\n if (element.Name !== \"Administrateur\") {\r\n result.push({ label: element.Name, id: element.RoleId });\r\n }\r\n });\r\n this.setState({ RoleOptionList: result });\r\n }\r\n }\r\n\r\n handleSelectListChange = (event, value) => {\r\n if (value != undefined && value != null) {\r\n let roleCopy = this.state.role;\r\n roleCopy.RoleId = value.id;\r\n roleCopy.Name = value.label;\r\n this.setState({ role: roleCopy });\r\n }\r\n }\r\n\r\n handleConfirm = (e, value) => {\r\n this.props.deleteRole(value).then(data => {\r\n if (data.Success) {\r\n this.handleClose();\r\n this.getOptionsFromRoleList(this.props.roleList);\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n }\r\n });\r\n };\r\n\r\n\r\n render() {\r\n let { RoleId, Name } = this.state.role;\r\n return (\r\n
\r\n \r\n delete\r\n \r\n \r\n \r\n Supprimer un rôle\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => this.handleSelectListChange(event, value)}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n//export default CreateEntityDialog;\r\n\r\nconst mapStateToProps = state => ({\r\n deleteRole: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deleteRole, setTableContentLoading })(DeleteRole))\r\n);","import React from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Icon, Grid, CircularProgress, Table, TableBody, TableCell, TableRow, TableHead, TextField, Checkbox, IconButton } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { ROLE_IS_EDITING, ROLE_IS_EDITED, roleIsEditing, updateRole, setTableContentLoading } from \".././../../redux/actions/RoleActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n },\r\n SnackbarColor: {\r\n background: \"#7467EE\"\r\n },\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n});\r\n\r\nclass RoleAndPermissionLineItem extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n permission: this.props.permission,\r\n roleList: this.props.roleList,\r\n initialLineItem: [],\r\n updatingLineItem: [],\r\n valuesAreChange: false,\r\n isSubmitting: false,\r\n }\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.checkboxHandleChange = this.checkboxHandleChange.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.permission && this.props.roleList && this.props.roleList.length > 0) {\r\n let result = [];\r\n this.props.roleList.forEach(element => {\r\n result.push({\r\n PermissionId: this.props.permission.PermissionId,\r\n PermissionName: this.props.permission.Name,\r\n RoleId: element.RoleId,\r\n Checked: element.Permissions.some(p => p.Name == this.props.permission.Name && p.PermissionId == this.props.permission.PermissionId)\r\n })\r\n });\r\n this.setState({ initialLineItem: result, updatingLineItem: result });\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.storeRole.roleList != this.props.storeRole.roleList) {\r\n this.setState({ roleList: nextProps.storeRole.roleList }, () => {\r\n this.setInitialLineItemValue(this.state.roleList);\r\n });\r\n }\r\n }\r\n\r\n checkboxHandleChange = (event, roleId) => {\r\n let result = [];\r\n this.state.updatingLineItem.forEach(element => {\r\n if (element.RoleId == roleId) {\r\n result.push({ PermissionId: element.PermissionId, PermissionName: element.PermissionName, RoleId: element.RoleId, Checked: event.target.checked })\r\n }\r\n else {\r\n result.push(element);\r\n }\r\n });\r\n this.setState({ updatingLineItem: result }, () => {\r\n if (JSON.stringify(result) === JSON.stringify(this.state.initialLineItem)) {\r\n this.setState({ valuesAreChange: false }, () => {\r\n this.props.roleIsEditing(false, \"\");\r\n });\r\n }\r\n else {\r\n this.setState({ valuesAreChange: true }, () => {\r\n this.props.roleIsEditing(true, this.props.permission.PermissionId);\r\n });\r\n }\r\n })\r\n }\r\n\r\n setInitialLineItemValue = (roleList) => {\r\n if (roleList != null) {\r\n let result = [];\r\n roleList.forEach(element => {\r\n result.push({\r\n PermissionId: this.props.permission.PermissionId,\r\n PermissionName: this.props.permission.Name,\r\n RoleId: element.RoleId,\r\n Checked: element.Permissions.some(p => p.Name == this.props.permission.Name && p.PermissionId == this.props.permission.PermissionId)\r\n })\r\n });\r\n this.setState({ initialLineItem: result, updatingLineItem: result });\r\n }\r\n }\r\n\r\n handleSubmit = value => {\r\n this.setState({ isSubmitting: true }, () => {\r\n this.props.updateRole(this.state.updatingLineItem).then(data => {\r\n if (data) {\r\n this.setState({ isSubmitting: false });\r\n }\r\n this.props.setTableContentLoading(true);\r\n setTimeout(() => {\r\n this.props.setTableContentLoading(false);\r\n }, 700);\r\n })\r\n })\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n <>\r\n {this.state.roleList.sort((a, b) => (a.Name > b.Name) ? -1 : 1).map((role, index) => (\r\n \r\n this.checkboxHandleChange(e, role.RoleId)}\r\n defaultChecked={role.Permissions.some(r => r.Name == this.state.permission.Name)} />\r\n \r\n ))}\r\n \r\n \r\n\r\n {this.state.isSubmitting ? : save}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n roleIsEditing: PropTypes.func.isRequired,\r\n updateRole: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { roleIsEditing, updateRole, setTableContentLoading })(RoleAndPermissionLineItem))\r\n);","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList, hideAlert, setTableContentLoading } from \"app/redux/actions/RoleActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport CreateRole from \"./dialogs/CreateRole\";\r\nimport RenameRole from \"./dialogs/RenameRole\";\r\nimport DeleteRole from \"./dialogs/DeleteRole\";\r\nimport RoleAndPermissionLineItem from \"./components/RoleAndPermissionLineItem\";\r\n// import UpdateRole from \"./dialogs/UpdateRole\";RoleAndPermissionLineItem \r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n }\r\n}));\r\n\r\n\r\nlet roleListLoaded = false;\r\n\r\nfunction RoleListPage(props) {\r\n const {\r\n theme,\r\n storeRole = {},\r\n getRoleList,\r\n hideAlert,\r\n setTableContentLoading,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n\r\n useEffect(() => {\r\n if (storeRole.showAlert) {\r\n setMessage(storeRole.alertMessage);\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n\r\n }\r\n if (storeRole.loading) {\r\n setIsLoading(true);\r\n }\r\n else if (storeRole.success) {\r\n setIsLoading(false);\r\n }\r\n\r\n }, [storeRole])\r\n\r\n if (!roleListLoaded) {\r\n getRoleList();\r\n roleListLoaded = true;\r\n }\r\n\r\n\r\n function handleClose(event) {\r\n setOpen(false);\r\n hideAlert();\r\n }\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storeRole.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n Permissions / Rôles\r\n {storeRole.roleList.sort((a, b) => (a.Name > b.Name) ? -1 : 1).map((role, index) => (\r\n {role.Name}\r\n ))}\r\n \r\n \r\n \r\n \r\n {storeRole.roleListTableContentLoading ?\r\n (\r\n <>\r\n\r\n \r\n\r\n \r\n \r\n )\r\n : (\r\n <>\r\n {storeRole.permissionList.sort((a, b) => (a.ShortDescription < b.ShortDescription) ? -1 : 1).slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((permission, index) => (\r\n \r\n {permission.ShortDescription}\r\n \r\n \r\n ))}\r\n \r\n )}\r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nRoleListPage.propTypes = {\r\n hideAlert: PropTypes.bool.isRequired,\r\n storeRole: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getRoleList: PropTypes.func.isRequired,\r\n setTableContentLoading: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storeRole: state.role,\r\n});\r\n\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps, { getRoleList, hideAlert, setTableContentLoading })(RoleListPage));\r\n","class localStorageService {\r\n ls = window.localStorage\r\n\r\n setItem(key, value) {\r\n value = JSON.stringify(value)\r\n this.ls.setItem(key, value)\r\n return true\r\n }\r\n\r\n getItem(key) {\r\n let value = this.ls.getItem(key)\r\n try {\r\n return JSON.parse(value)\r\n } catch (e) {\r\n return null\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default new localStorageService();","import axios from \"axios\";\r\n\r\nexport const GET_PRODUCT_LIST = \"GET_PRODUCT_LIST\";\r\nexport const GET_CART_LIST = \"GET_CART_LIST\";\r\nexport const GET_CATEGORY_LIST = \"GET_CATEGORY_LIST\";\r\nexport const GET_RATING_LIST = \"GET_RATING_LIST\";\r\nexport const GET_BRAND_LIST = \"GET_BRAND_LIST\";\r\n\r\nexport const ADD_PRODUCT_TO_CART = \"ADD_PRODUCT_TO_CART\";\r\nexport const DELETE_PRODUCT_FROM_CART = \"DELETE_PRODUCT_FROM_CART\";\r\n\r\nexport const UPDATE_CART_AMOUNT = \"UPDATE_CART_AMOUNT\";\r\n\r\nexport const getProductList = () => dispatch => {\r\n axios.get(\"/api/ecommerce/get-product-list\").then(res => {\r\n dispatch({\r\n type: GET_PRODUCT_LIST,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const getCategoryList = () => dispatch => {\r\n axios.get(\"/api/ecommerce/get-category-list\").then(res => {\r\n dispatch({\r\n type: GET_CATEGORY_LIST,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const getRatingList = () => dispatch => {\r\n axios.get(\"/api/ecommerce/get-rating-list\").then(res => {\r\n dispatch({\r\n type: GET_RATING_LIST,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const getBrandList = () => dispatch => {\r\n axios.get(\"/api/ecommerce/get-brand-list\").then(res => {\r\n dispatch({\r\n type: GET_BRAND_LIST,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const getCartList = uid => dispatch => {\r\n axios.get(\"/api/ecommerce/get-cart-list\", { data: uid }).then(res => {\r\n dispatch({\r\n type: GET_CART_LIST,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const addProductToCart = (uid, productId) => dispatch => {\r\n axios.post(\"/api/ecommerce/add-to-cart\", { uid, productId }).then(res => {\r\n dispatch({\r\n type: ADD_PRODUCT_TO_CART,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const deleteProductFromCart = (uid, productId) => dispatch => {\r\n axios\r\n .post(\"/api/ecommerce/delete-from-cart\", { uid, productId })\r\n .then(res => {\r\n dispatch({\r\n type: DELETE_PRODUCT_FROM_CART,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const updateCartAmount = (uid, productId, amount) => dispatch => {\r\n axios\r\n .post(\"/api/ecommerce/update-cart-amount\", { uid, productId, amount })\r\n .then(res => {\r\n dispatch({\r\n type: UPDATE_CART_AMOUNT,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n","import React, { Fragment } from \"react\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nconst Breadcrumb = ({ routeSegments }) => {\r\n return (\r\n
\r\n {/* {routeSegments ? (\r\n \r\n

\r\n {routeSegments[routeSegments.length - 1][\"name\"]}\r\n

\r\n

|

\r\n
\r\n ) : null} */}\r\n \r\n \r\n home\r\n \r\n \r\n {routeSegments\r\n ? routeSegments.map((route, index) => (\r\n \r\n navigate_next\r\n {index !== routeSegments.length - 1 ? (\r\n \r\n {route.name}\r\n \r\n ) : (\r\n {route.name}\r\n )}\r\n \r\n ))\r\n : null}\r\n
\r\n );\r\n};\r\n\r\nexport default Breadcrumb;\r\n","import React, { Fragment } from \"react\";\r\nimport Menu from \"@material-ui/core/Menu\";\r\n\r\nconst MatxMenu = props => {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const children = React.Children.toArray(props.children);\r\n let { shouldCloseOnItemClick = true, horizontalPosition = \"left\" } = props;\r\n\r\n const handleClick = event => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n {props.menuButton}\r\n
\r\n \r\n {children.map((child, index) => (\r\n {}}\r\n key={index}\r\n >\r\n {child}\r\n
\r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MatxMenu;\r\n","import React, { Component } from \"react\";\r\nimport { Icon, IconButton, Hidden } from \"@material-ui/core\";\r\nimport { classList } from \"utils\";\r\n\r\nclass MatxToolbarMenu extends Component {\r\n state = {\r\n open: false\r\n };\r\n\r\n handleToggle = () => {\r\n this.setState({ open: !this.state.open });\r\n };\r\n\r\n render() {\r\n let { offsetTop, children } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n {this.state.open ? \"close\" : \"more_vert\"}\r\n \r\n \r\n\r\n \r\n {children}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MatxToolbarMenu;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n loading: {\r\n position: \"fixed\",\r\n left: 0,\r\n right: 0,\r\n top: \"calc(50% - 20px)\",\r\n margin: \"auto\",\r\n height: \"40px\",\r\n width: \"40px\",\r\n \"& img\": {\r\n position: \"absolute\",\r\n height: \"25px\",\r\n width: \"auto\",\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n margin: \"auto\"\r\n }\r\n }\r\n}));\r\n\r\nconst Loading = props => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \"\"\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Loading;\r\n","import Loadable from \"react-loadable\";\r\nimport Loading from \"./Loading\";\r\n\r\nconst MatxLoadable = opts => {\r\n return Loadable(\r\n Object.assign(\r\n {\r\n loading: Loading,\r\n delay: 100,\r\n timeout: 10000\r\n },\r\n opts\r\n )\r\n );\r\n};\r\n\r\nexport default MatxLoadable;\r\n","import React, { Component } from \"react\";\r\nimport { Icon, IconButton, withStyles } from \"@material-ui/core\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.primary.contrastText\r\n }\r\n});\r\n\r\nclass MatxSearchBox extends Component {\r\n state = {\r\n open: false\r\n };\r\n\r\n toggle = () => {\r\n this.setState({ open: !this.state.open });\r\n };\r\n\r\n render() {\r\n let { classes } = this.props;\r\n return (\r\n \r\n {!this.state.open && (\r\n \r\n search\r\n \r\n )}\r\n\r\n {this.state.open && (\r\n \r\n \r\n \r\n close\r\n \r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles, { withTheme: true })(MatxSearchBox);\r\n","import React, { Component } from \"react\";\r\nimport { withStyles, Icon } from \"@material-ui/core\";\r\nimport TouchRipple from \"@material-ui/core/ButtonBase\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { classList } from 'utils';\r\n\r\nconst styles = theme => {\r\n return {\r\n expandIcon: {\r\n transition: \"transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms\",\r\n transform: \"rotate(90deg)\"\r\n // marginRight: \"16px\"\r\n },\r\n collapseIcon: {\r\n transition: \"transform 0.3s cubic-bezier(0, 0, 0.2, 1) 0ms\",\r\n transform: \"rotate(0deg)\"\r\n // marginRight: \"16px\"\r\n },\r\n \"expansion-panel\": {\r\n overflow: \"hidden\",\r\n transition: \"max-height 0.3s cubic-bezier(0, 0, 0.2, 1)\"\r\n },\r\n highlight: {\r\n background: theme.palette.primary.main\r\n }\r\n };\r\n};\r\n\r\nclass MatxVerticalNavExpansionPanel extends Component {\r\n state = {\r\n collapsed: true\r\n };\r\n elementRef = React.createRef();\r\n\r\n componentHeight = 0;\r\n\r\n handleClick = () => {\r\n this.setState({ collapsed: !this.state.collapsed });\r\n };\r\n\r\n calcaulateHeight(node) {\r\n if (node.name !== \"child\") {\r\n for (let child of node.children) {\r\n this.calcaulateHeight(child);\r\n }\r\n }\r\n this.componentHeight += node.clientHeight;\r\n return;\r\n }\r\n componentDidMount() {\r\n let { location } = this.props;\r\n this.calcaulateHeight(this.elementRef);\r\n\r\n // OPEN DROPDOWN IF CHILD IS ACTIVE\r\n for (let child of this.elementRef.children) {\r\n if (child.getAttribute(\"href\") === location.pathname) {\r\n this.setState({ collapsed: false });\r\n }\r\n }\r\n }\r\n render() {\r\n let { collapsed } = this.state;\r\n let { classes, children } = this.props;\r\n let { name, icon, badge } = this.props.item;\r\n return (\r\n
\r\n \r\n
\r\n {icon}\r\n {name}\r\n
\r\n {badge && (\r\n
{badge.value}
\r\n )}\r\n \r\n chevron_right\r\n
\r\n \r\n\r\n (this.elementRef = el)}\r\n className={classes[\"expansion-panel\"] + \" submenu\"}\r\n style={\r\n collapsed\r\n ? { maxHeight: \"0px\" }\r\n : { maxHeight: this.componentHeight + \"px\" }\r\n }\r\n >\r\n {children}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withStyles(styles)(MatxVerticalNavExpansionPanel));\r\n","import React, { Component } from \"react\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport TouchRipple from \"@material-ui/core/ButtonBase\";\r\nimport MatxVerticalNavExpansionPanel from \"./MatxVerticalNavExpansionPanel\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\nimport localStorageService from \"app/services/localStorageService\";\r\n\r\nconst styles = theme => ({\r\n expandIcon: {\r\n transition: \"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms\",\r\n transform: \"rotate(90deg)\"\r\n },\r\n collapseIcon: {\r\n transition: \"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms\",\r\n transform: \"rotate(0deg)\"\r\n }\r\n});\r\n\r\nclass MatxVerticalNav extends Component {\r\n state = {\r\n collapsed: true,\r\n logedUserInformation: null\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({ logedUserInformation: localStorageService.getItem(\"auth_user\") })\r\n console.log(\"bbbbbbb 12 3.1\", localStorageService.getItem(\"auth_user\"));\r\n }\r\n\r\n renderLevels = data => {\r\n return data.map((item, index) => {\r\n if (this.state.logedUserInformation?.Permissions?.some(p => p == item.authorization)) {\r\n if (item.children) {\r\n return (\r\n \r\n {this.renderLevels(item.children)}\r\n \r\n );\r\n\r\n } else {\r\n return (\r\n \r\n \r\n {(() => {\r\n if (item.icon) {\r\n return (\r\n {item.icon}\r\n );\r\n } else {\r\n return (\r\n {item.iconText}\r\n );\r\n }\r\n })()}\r\n {item.name}\r\n
\r\n {item.badge && (\r\n
\r\n {item.badge.value}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n });\r\n };\r\n\r\n handleClick = () => {\r\n this.setState({ collapsed: !this.state.collapsed });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {this.renderLevels(this.props.navigation)}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(MatxVerticalNav);\r\n\r\n// export default withStyles(styles)(connect(mapStateToProps, {})(MatxVerticalNav));\r\n","import React from \"react\";\r\nimport { Icon } from \"@material-ui/core\";\r\n\r\nconst RectangleAvatar = ({ color = \"primary\", icon, textIcon, style }) => {\r\n return (\r\n \r\n {textIcon ? (\r\n
{textIcon}
\r\n ) : (\r\n {icon}\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default RectangleAvatar;\r\n","import React from \"react\";\r\nimport RectangleAvatar from \"./RectangleAvatar\";\r\nimport { IconButton, Icon, withStyles } from \"@material-ui/core\";\r\n\r\nconst styles = {\r\n root: {\r\n borderRadius: \"8px\",\r\n cursor: \"pointer\",\r\n transition: \"all 300ms ease\",\r\n \"&:hover\": {\r\n background: \"rgba(0,0,0, .08)\",\r\n paddingLeft: \"8px\",\r\n overflow: \"hidden\",\r\n \"& .action-icon, & .rectangle-box\": {\r\n opacity: 1\r\n }\r\n },\r\n \"& .action-icon, & .rectangle-box\": {\r\n opacity: .76\r\n }\r\n }\r\n}\r\n\r\nconst MatxListItem1 = ({\r\n title,\r\n subtitle,\r\n iconText,\r\n iconColor,\r\n bulletIcon,\r\n actionIcon,\r\n classes\r\n}) => {\r\n return (\r\n
\r\n \r\n\r\n
\r\n
{title}
\r\n {subtitle}\r\n
\r\n\r\n {actionIcon && (\r\n \r\n {actionIcon}\r\n \r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles, { withTheme: true })(MatxListItem1);\r\n","import React from \"react\";\r\nimport { IconButton, Icon, Snackbar } from \"@material-ui/core\";\r\n\r\nconst MatxSnackbar = ({\r\n open,\r\n message,\r\n duration = 6000,\r\n horizontal = \"center\",\r\n vertical = \"bottom\",\r\n handleClose\r\n}) => {\r\n return (\r\n {message}}\r\n action={[\r\n \r\n close\r\n \r\n ]}\r\n />\r\n );\r\n};\r\n\r\nexport default MatxSnackbar;\r\n","import echarts from \"echarts\";\r\n\r\nexport const EchartTheme = MuiTheme => ({\r\n backgroundColor: MuiTheme.palette.background.paper,\r\n // Global palette:\r\n color: [\r\n \"#149aad\",\r\n \"#ABA4F4\",\r\n \"#D3D0F4\",\r\n \"rgba(0, 255, 33, 1)\",\r\n \"#91c7ae\",\r\n \"#749f83\",\r\n \"#ca8622\",\r\n \"#bda29a\",\r\n \"#6e7074\",\r\n \"#546570\",\r\n \"#c4ccd3\"\r\n ],\r\n series: [\r\n {\r\n type: \"bar\"\r\n // A palette only work for the series:\r\n // itemStyle: {\r\n // normal: {\r\n // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n // { offset: 0, color: \"#83bff6\" },\r\n // { offset: 0.5, color: \"#188df0\" },\r\n // { offset: 1, color: \"#188df0\" }\r\n // ])\r\n // },\r\n // emphasis: {\r\n // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n // { offset: 0, color: \"#2378f7\" },\r\n // { offset: 0.7, color: \"#2378f7\" },\r\n // { offset: 1, color: \"#83bff6\" }\r\n // ])\r\n // }\r\n // }\r\n },\r\n {\r\n type: \"pie\",\r\n // A palette only work for the series:\r\n color: [\r\n \"#37A2DA\",\r\n \"#32C5E9\",\r\n \"#67E0E3\",\r\n \"#9FE6B8\",\r\n \"#FFDB5C\",\r\n \"#ff9f7f\",\r\n \"#fb7293\",\r\n \"#E062AE\",\r\n \"#E690D1\",\r\n \"#e7bcf3\",\r\n \"#9d96f5\",\r\n \"#8378EA\",\r\n \"#96BFFF\"\r\n ]\r\n },\r\n {\r\n type: \"line\",\r\n color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [\r\n { offset: 0, color: \"#83bff6\" },\r\n { offset: 0.5, color: \"#188df0\" },\r\n { offset: 1, color: \"#188df0\" }\r\n ])\r\n }\r\n ]\r\n});\r\n","import React from \"react\";\r\nimport echarts from \"echarts\";\r\nimport ReactEcharts from \"echarts-for-react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { EchartTheme } from \"matx\";\r\nimport { withStyles } from \"@material-ui/core\";\r\n\r\nconst EchartCreator = props => {\r\n echarts.registerTheme(\"echarts-theme\", EchartTheme(props.theme));\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nEchartCreator.prototype = {\r\n height: PropTypes.string.isRequired,\r\n settings: PropTypes.object.isRequired\r\n};\r\n\r\nexport default withStyles({}, { withTheme: true })(EchartCreator);\r\n","import React from \"react\";\r\nimport { ResponsiveContainer } from \"recharts\";\r\n\r\nconst RechartCreator = ({ height = \"320px\", width = \"100%\", children }) => {\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default RechartCreator;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport ReactQuill from \"react-quill\";\r\n\r\n/*\r\n * Simple editor component that takes placeholder text as a prop\r\n */\r\n\r\nconst RichTextEditor = ({ content, placeholder, handleContentChange }) => {\r\n return (\r\n \r\n );\r\n};\r\n\r\n/*\r\n * Quill modules to attach to editor\r\n * See https://quilljs.com/docs/modules/ for complete options\r\n */\r\nRichTextEditor.modules = {\r\n toolbar: [\r\n [{ font: [] }],\r\n [{ size: [\"small\", false, \"large\", \"huge\"] }], // custom dropdown\r\n [{ header: [1, 2, 3, 4, 5, 6, false] }],\r\n\r\n [\"bold\", \"italic\", \"underline\", \"strike\"], // toggled buttons\r\n [\"blockquote\", \"code-block\", \"link\"],\r\n\r\n [{ script: \"sub\" }, { script: \"super\" }], // superscript/subscript\r\n [{ color: [] }, { background: [] }], // dropdown with defaults from theme\r\n [{ align: [] }],\r\n\r\n [\"image\", \"video\"],\r\n\r\n [{ header: 1 }, { header: 2 }], // custom button values\r\n [{ list: \"ordered\" }, { list: \"bullet\" }],\r\n [{ indent: \"-1\" }, { indent: \"+1\" }], // outdent/indent\r\n [{ direction: \"rtl\" }], // text direction\r\n\r\n [\"clean\"]\r\n ],\r\n clipboard: {\r\n // toggle to add extra line breaks when pasting HTML:\r\n matchVisual: true\r\n }\r\n};\r\n\r\n/*\r\n * Quill editor formats\r\n * See https://quilljs.com/docs/formats/\r\n */\r\nRichTextEditor.formats = [\r\n \"align\",\r\n \"background\",\r\n \"bold\",\r\n \"blockquote\",\r\n \"bullet\",\r\n \"color\",\r\n \"code\",\r\n \"code-block\",\r\n \"clean\",\r\n \"direction\",\r\n \"font\",\r\n \"header\",\r\n \"italic\",\r\n \"indent\",\r\n \"image\",\r\n \"list\",\r\n \"link\",\r\n \"size\",\r\n \"strike\",\r\n \"script\",\r\n \"underline\",\r\n \"video\"\r\n];\r\n\r\n/*\r\n * PropType validation\r\n */\r\nRichTextEditor.propTypes = {\r\n placeholder: PropTypes.string\r\n};\r\n\r\nexport default RichTextEditor;\r\n","import React from \"react\";\r\nimport { Dialog, Button } from \"@material-ui/core\";\r\n\r\nconst ConfirmationDialog = ({\r\n open,\r\n onConfirmDialogClose,\r\n text,\r\n title = \"confirm\",\r\n onYesClick\r\n}) => {\r\n return (\r\n \r\n
\r\n

{title}

\r\n

{text}

\r\n
\r\n \r\n \r\n No\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ConfirmationDialog;\r\n","import React from \"react\";\r\nimport { Grid, LinearProgress, Typography } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\n\r\nconst CustomLinearProgress = withStyles(theme => ({\r\n root: {\r\n borderRadius: 2,\r\n background: \"rgba(0, 0, 0, 0.1)\"\r\n }\r\n}))(LinearProgress);\r\n\r\nconst MatxProgressBar = ({\r\n value = 75,\r\n color = \"primary\",\r\n text = \"\",\r\n spacing = 2,\r\n coloredText = false,\r\n className\r\n}) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {text !== \"\" && (\r\n \r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MatxProgressBar;\r\n","import React from \"react\";\r\nimport { Card } from \"@material-ui/core\";\r\nimport { classList } from \"utils\";\r\n\r\nconst SimpleCard = ({ children, title, subtitle, icon }) => {\r\n return (\r\n \r\n \r\n\r\n {title}\r\n {icon}\r\n \r\n {subtitle &&
{subtitle}
}\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default SimpleCard;\r\n","export { default as Breadcrumb } from \"./components/Breadcrumb\";\r\nexport { default as MatxMenu } from \"./components/MatxMenu\";\r\nexport { default as MatxToolbarMenu } from \"./components/MatxToolbarMenu\";\r\nexport {\r\n default as MatxLoadable\r\n} from \"./components/MatxLoadable/MatxLoadable\";\r\nexport { default as MatxSearchBox } from \"./components/MatxSearchBox\";\r\nexport {\r\n default as MatxVerticalNav\r\n} from \"./components/MatxVerticalNav/MatxVerticalNav\";\r\nexport {\r\n default as MatxVerticalNavExpansionPanel\r\n} from \"./components/MatxVerticalNav/MatxVerticalNavExpansionPanel\";\r\nexport {\r\n default as MatxHorizontalNav\r\n} from \"./components/MatxHorizontalNav/MatxHorizontalNav\";\r\nexport {\r\n default as MatxSidenavContainer\r\n} from \"./components/MatxSidenav/MatxSidenavContainer\";\r\nexport {\r\n default as MatxSidenav\r\n} from \"./components/MatxSidenav/MatxSidenav\";\r\nexport {\r\n default as MatxSidenavContent\r\n} from \"./components/MatxSidenav/MatxSidenavContent\";\r\n\r\nexport { default as LoaderBounce } from \"./components/LoaderBounce\";\r\nexport { default as RectangleAvatar } from \"./components/RectangleAvatar\";\r\nexport { default as MatxListItem1 } from \"./components/MatxListItem1\";\r\nexport { default as MatxSnackbar } from \"./components/MatxSnackbar\";\r\n\r\nexport { EchartTheme } from \"./theme/EchartTheme\";\r\nexport { default as EchartCreator } from \"./components/charts/EchartCreator\";\r\nexport { default as RechartCreator } from \"./components/charts/RechartCreator\";\r\n\r\nexport { default as RichTextEditor } from \"./components/RichTextEditor\";\r\nexport { default as ConfirmationDialog } from \"./components/ConfirmationDialog\";\r\nexport { default as MatxProgressBar } from \"./components/MatxProgressBar\";\r\nexport { default as SimpleCard } from \"./components/cards/SimpleCard\";\r\nexport { default as CardWidget1 } from \"./components/cards/CardWidget1\";\r\n","export const SET_LAYOUT_SETTINGS = \"LAYOUT_SET_SETTINGS\";\r\nexport const SET_DEFAULT_LAYOUT_SETTINGS = \"LAYOUT_SET_DEFAULT_SETTINGS\";\r\n\r\n\r\nexport const setLayoutSettings = data => dispatch => {\r\n dispatch({\r\n type: SET_LAYOUT_SETTINGS,\r\n data: data\r\n });\r\n};\r\n\r\nexport const setDefaultSettings = data => dispatch => {\r\n dispatch({\r\n type: SET_DEFAULT_LAYOUT_SETTINGS,\r\n data: data\r\n });\r\n};","import React from \"react\";\r\n\r\nconst AppContext = React.createContext({});\r\n\r\nexport default AppContext;\r\n","import axios from \"axios\";\r\nimport localStorageService from \"./localStorageService\";\r\nimport { api } from \"./apiHelpers\"\r\n\r\nclass AuthentificationService {\r\n\r\n // User object example, just for the demo\r\n // user = {\r\n // userId: \"1\",\r\n // role: 'ADMIN',\r\n // displayName: \"Jason Alexander\",\r\n // email: \"jasonalexander@gmail.com\",\r\n // photoURL: \"/assets/images/face-6.jpg\",\r\n // age: 25,\r\n // token: \"faslkhfh423oiu4h4kj432rkj23h432u49ufjaklj423h4jkhkjh\"\r\n // }\r\n\r\n // Permet de se connecter avec un email et un mot de passe\r\n loginWithEmailAndPassword = (email, password) => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n // Exemple d'appel API pour avoir les info de nouvel utilisateur\r\n\r\n axios.post(`${api}` + \"account/login\", { email, password }).then(res => {\r\n resolve(res.data);\r\n })\r\n }, 1000);\r\n }).then(response => {\r\n // on vérifie si l'objet répresentant l'utilisateur et son propriété Token sont définis\r\n if (response.Success && response.User && response.User.Token) {\r\n this.setSession(response.User.Token); // Alors on enregistre la session avec le nouveau token\r\n this.setUser(response); // Alors on enregistre les infos du nouvel utilisateur\r\n }\r\n return response;\r\n });\r\n };\r\n\r\n // Permet la connexion avec un token\r\n loginWithToken = () => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"account/getuserbytoken/\" + localStorage.getItem(\"dc_token\")).then(res => {\r\n resolve(res.data);\r\n })\r\n }, 5);\r\n }).then(response => {\r\n // on vérifie si l'objet répresentant l'utilisateur et son propriété Token sont définis\r\n if (response.Success && response.User && response.User.Token) {\r\n // Token is valid\r\n if (response.User.Token != localStorage.getItem(\"dc_token\")) {\r\n this.setSession(response.User.Token);\r\n this.setUser(response);\r\n }\r\n }\r\n return response;\r\n });\r\n };\r\n\r\n // Permet de se déconnecter en annulant la session et en supprimant les infos de l'utilisateur du local storage\r\n logout = () => {\r\n this.setSession(null);\r\n this.removeUser();\r\n }\r\n\r\n // Set token to all http request header, so you don't need to attach everytime\r\n setSession = token => {\r\n if (token) {\r\n localStorage.setItem(\"dc_token\", token);\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n } else {\r\n localStorage.removeItem(\"dc_token\");\r\n delete axios.defaults.headers.common[\"Authorization\"];\r\n }\r\n };\r\n\r\n // Save user to localstorage\r\n setUser = (user) => {\r\n localStorageService.setItem(\"auth_user\", user);\r\n }\r\n // Remove user from localstorage\r\n removeUser = () => {\r\n localStorage.removeItem(\"auth_user\");\r\n }\r\n}\r\n\r\nexport default new AuthentificationService();\r\n","export const api = getApiUrl();\r\n\r\nfunction getApiUrl() {\r\n var host = window.location.hostname;\r\n switch (host.toLowerCase()) {\r\n case \"localhost\":\r\n //return \"http://gninigali-001-site1.ftempurl.com/api/\";\r\n return \"https://localhost:44390/api/\"\r\n\r\n case \"doniyaconseil-gninigali-demo.s3-website.eu-west-3.amazonaws.com\":\r\n return \"http://gninigali-001-site1.ftempurl.com/api/\";\r\n\r\n case \"gninigali-001-site3.ftempurl.com\":\r\n return \"http://gninigali-001-site2.ftempurl.com/api/\";\r\n\r\n case \"gninigali.com\":\r\n return \"https://gninigali-services.com/api/\";\r\n }\r\n}","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { amber, green } from \"@material-ui/core/colors\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon\r\n};\r\n\r\nconst useStyles1 = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: green[600]\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n warning: {\r\n backgroundColor: amber[700]\r\n },\r\n icon: {\r\n fontSize: 20\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1)\r\n },\r\n message: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n }\r\n}));\r\n\r\nfunction SnackbarContentWrapper(props) {\r\n const classes = useStyles1();\r\n const { className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nSnackbarContentWrapper.propTypes = {\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf([\"success\", \"warning\", \"error\", \"info\"]).isRequired\r\n};\r\n\r\nexport default SnackbarContentWrapper;","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction DeletePanelist(props) {\r\n const {\r\n theme,\r\n panelistToDelete = {},\r\n storePanelist = {},\r\n storeUser = {},\r\n getUsertList,\r\n onDeletePanelist,\r\n hideAddedAlert,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleConfirm = (e) => {\r\n onDeletePanelist(panelistToDelete.PanelistId).then(data => {\r\n handleClose();\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Suppression du panéliste : {panelistToDelete.FirstName + \" \" + panelistToDelete.LastName}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer ce panéliste ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n storePanelist: state.panelist,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, {})(DeletePanelist))\r\n);","import axios from \"axios\";\r\n\r\nexport const GET_NOTIFICATION = \"GET_NOTIFICATION\";\r\nexport const CREATE_NOTIFICATION = \"CREATE_NOTIFICATION\";\r\nexport const DELETE_NOTIFICATION = \"DELETE_NOTIFICATION\";\r\nexport const DELETE_ALL_NOTIFICATION = \"DELETE_ALL_NOTIFICATION\";\r\n\r\nexport const getNotification = () => dispatch => {\r\n axios.get(\"/api/notification\").then(res => {\r\n dispatch({\r\n type: GET_NOTIFICATION,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const deleteNotification = id => dispatch => {\r\n axios.post(\"/api/notification/delete\", { id }).then(res => {\r\n dispatch({\r\n type: DELETE_NOTIFICATION,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const deleteAllNotification = () => dispatch => {\r\n axios.post(\"/api/notification/delete-all\").then(res => {\r\n dispatch({\r\n type: DELETE_ALL_NOTIFICATION,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n\r\nexport const createNotification = notification => dispatch => {\r\n axios.post(\"/api/notification/add\", { notification }).then(res => {\r\n dispatch({\r\n type: CREATE_NOTIFICATION,\r\n payload: res.data\r\n });\r\n });\r\n};\r\n","import axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\nimport history from \"history.js\";\r\n\r\n\r\nexport const GET_DASHBOARD = \"GET_DASHBOARD\";\r\nexport const DASHBOARD_ACTION_LOADING = \"DASHBOARD_ACTION_LOADING\";\r\nexport const DASHBOARD_ACTION_SUCCESS = \"DASHBOARD_ACTION_SUCCESS\";\r\nexport const DASHBOARD_ACTION_ERROR = \"DASHBOARD_ACTION_ERROR\";\r\n\r\n\r\nexport const getDashboard = (panelistId) => dispatch => {\r\n dispatch({\r\n type: DASHBOARD_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"dashboard/getdashboard\").then(res => {\r\n dispatch({\r\n type: GET_DASHBOARD,\r\n data: res.data\r\n });\r\n resolve(res.data);\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: DASHBOARD_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data != null) {\r\n dispatch({\r\n type: DASHBOARD_ACTION_SUCCESS\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: DASHBOARD_ACTION_ERROR,\r\n data: \"Aucune données n'a ete trouvée\"\r\n });\r\n }\r\n return data;\r\n });\r\n};","import history from \"history.js\";\r\nimport authentificationService from \"../../services/authentificationService\";\r\nimport axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\n\r\nexport const GET_ROLE_LIST = \"GET_ROLE_LIST\";\r\nexport const GET_PERMISSION_LIST = \"GET_PERMISSION_LIST\";\r\n\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\n\r\nexport const ROLE_ACTION_LOADING = \"ROLE_ACTION_LOADING\";\r\nexport const ROLE_ACTION_SUCCESS = \"ROLE_ACTION_SUCCESS\";\r\nexport const ROLE_ACTION_ERROR = \"ROLE_ACTION_ERROR\";\r\nexport const ROLE_ACTION_SUBMITING = \"ROLE_ACTION_SUBMITING\"; //\r\nexport const ROLE_ACTION_SUBMITED = \"ROLE_ACTION_SUBMITED\";\r\nexport const ROLE_IS_EDITING = \"ROLE_IS_EDITING\";\r\nexport const ROLE_IS_EDITED = \"ROLE_IS_EDITED\";\r\nexport const ROLE_TABLE_CONTENT_LOADING = \"ROLE_TABLE_CONTENT_LOADING\";\r\nexport const ROLE_TABLE_CONTENT_LOADED = \"ROLE_TABLE_CONTENT_LOADED\";\r\n\r\n\r\nexport const getRoleList = () => dispatch => {\r\n dispatch({\r\n type: ROLE_ACTION_LOADING\r\n });\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"role/getroles\").then(res => {\r\n dispatch({\r\n type: GET_ROLE_LIST,\r\n data: res.data.RoleList\r\n });\r\n dispatch({\r\n type: GET_PERMISSION_LIST,\r\n data: res.data.PermissionList\r\n });\r\n dispatch({\r\n type: ROLE_ACTION_SUCCESS\r\n });\r\n }).catch(error => {\r\n return dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n\r\n};\r\n\r\nexport const createRole = (role) => dispatch => {\r\n dispatch({ // informe le reducer du rôle qu'un formulaire le concernant est en cours de soumission \r\n type: ROLE_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"role/createrole\", role).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste de rôles au reducer pour sa mise à jour \r\n type: GET_ROLE_LIST,\r\n data: res.data.RoleList\r\n });\r\n dispatch({ // Fournit la nouvelle liste de permission au reducer pour sa mise à jour \r\n type: GET_PERMISSION_LIST,\r\n data: res.data.PermissionList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer du rôle que le formulaire le concernant est traité\r\n type: ROLE_ACTION_SUBMITED\r\n });\r\n dispatch({ // informe le reducer du rôle qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un rôle a été ajouté avec succès\"\r\n });\r\n history.push({ // Redirige vers la page de la liste de rôles\r\n pathname: \"/account/roles\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: ROLE_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const roleIsEditing = (value, id) => dispatch => {\r\n if (value) {\r\n dispatch({\r\n type: ROLE_IS_EDITING,\r\n data: id\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: ROLE_IS_EDITED\r\n });\r\n }\r\n};\r\n\r\nexport const updateRole = (role) => dispatch => {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"role/updaterole\", role).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_ROLE_LIST,\r\n data: res.data.RoleList\r\n });\r\n dispatch({ // Fournit la nouvelle liste de permission au reducer pour sa mise à jour \r\n type: GET_PERMISSION_LIST,\r\n data: res.data.PermissionList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(null);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data != null) {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Une permission a été modifié avec succès\"\r\n });\r\n history.push({\r\n pathname: \"/account/roles\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: \"Erreur de réponse server, merci d'actualiser la page et rassurez-vous que l'operation n'a pas reussit avant de la reprendre\"\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const renameRole = (request) => dispatch => {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"role/renamerole\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_ROLE_LIST,\r\n data: res.data.RoleList\r\n });\r\n dispatch({ // Fournit la nouvelle liste de permission au reducer pour sa mise à jour \r\n type: GET_PERMISSION_LIST,\r\n data: res.data.PermissionList\r\n });\r\n\r\n }\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data != null && data.Success) {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Un rôle a été modifié avec succès\"\r\n });\r\n history.push({\r\n pathname: \"/account/roles\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const deleteRole = role => dispatch => {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"role/deleterole\", role).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_ROLE_LIST,\r\n data: res.data.RoleList\r\n });\r\n dispatch({ // Fournit la nouvelle liste de permission au reducer pour sa mise à jour \r\n type: GET_PERMISSION_LIST,\r\n data: res.data.PermissionList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Un rôle a été supprimer avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: ROLE_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: ROLE_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n\r\n};\r\n\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};\r\n\r\nexport const setTableContentLoading = (value) => dispatch => {\r\n if (value) {\r\n dispatch({\r\n type: ROLE_TABLE_CONTENT_LOADING\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: ROLE_TABLE_CONTENT_LOADED\r\n });\r\n }\r\n};\r\n\r\n\r\n","import axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\nimport history from \"history.js\";\r\n\r\n\r\nexport const GET_PANELISTGROUP = \"GET_PANELISTGROUP\";\r\nexport const GET_PANELISTGROUP_LIST = \"GET_PANELISTGROUP_LIST\";\r\n\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\n\r\nexport const PANELISTGROUP_ACTION_LOADING = \"PANELISTGROUP_ACTION_LOADING\";\r\nexport const PANELISTGROUP_ACTION_SUCCESS = \"PANELISTGROUP_ACTION_SUCCESS\";\r\nexport const PANELISTGROUP_ACTION_ERROR = \"PANELISTGROUP_ACTION_ERROR\";\r\nexport const PANELISTGROUP_ACTION_SUBMITING = \"PANELISTGROUP_ACTION_SUBMITING\"; //\r\nexport const PANELISTGROUP_ACTION_SUBMITED = \"PANELISTGROUP_ACTION_SUBMITED\";\r\nexport const PANELISTGROUP_IS_EDITING = \"PANELISTGROUP_IS_EDITING\";\r\nexport const PANELISTGROUP_IS_EDITED = \"PANELISTGROUP_IS_EDITED\";\r\nexport const PANELISTGROUP_TABLE_CONTENT_LOADING = \"PANELISTGROUP_TABLE_CONTENT_LOADING\";\r\nexport const PANELISTGROUP_TABLE_CONTENT_LOADED = \"PANELISTGROUP_TABLE_CONTENT_LOADED\";\r\n\r\n\r\nexport const getGroup = (panelistgroupId) => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"panelistgroup/getpanelistgroup/\" + panelistgroupId).then(res => {\r\n dispatch({\r\n type: GET_PANELISTGROUP,\r\n data: res.data.PanelistGroup\r\n });\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUCCESS\r\n });\r\n resolve(res.data.PanelistGroup);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data !== null) {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUCCESS\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: \"aucun groupe correspondant n'a ete trouve\"\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const getGroupList = () => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"panelistgroup/list\").then(res => {\r\n dispatch({\r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUCCESS\r\n });\r\n resolve(res.data.PanelistGroupList);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n })\r\n\r\n\r\n};\r\n\r\nexport const createGroup = (panelistgroup) => dispatch => {\r\n dispatch({ // informe le reducer du rôle qu'un formulaire le concernant est en cours de soumission \r\n type: PANELISTGROUP_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${api}` + \"panelistgroup/createpanelistgroup\", panelistgroup).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste de rôles au reducer pour sa mise à jour \r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n }\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }).then(data => {\r\n dispatch({ // informe le reducer du rôle que le formulaire le concernant est traité\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n if (data.Success) {\r\n dispatch({ // informe le reducer du rôle qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un groupe a été ajouté avec succès\"\r\n });\r\n history.push({\r\n pathname: \"/panelist/groups\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const updateGroup = (panelistgroup) => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelistgroup/updatepanelistgroup\", panelistgroup).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTGROUP,\r\n data: res.data.PanelistGroup\r\n });\r\n dispatch({\r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un groupe de panéliste a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n\r\n return data;\r\n });\r\n};\r\n\r\nexport const deleteGroup = panelistgroupId => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"panelistgroup/deletepanelistgroup/\" + panelistgroupId).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: SHOW_ALERT,\r\n data: \"Un groupe a été supprimer avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const deletePanelistFromPanelistGroup = (request) => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelistgroup/deletepanelistfromgroup\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTGROUP,\r\n data: res.data.PanelistGroup\r\n });\r\n dispatch({\r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un panéliste a été supprimé de ce groupe avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const affectPanelistToUser = (request) => dispatch => {\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelistgroup/affectpanelisttouser\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTGROUP,\r\n data: res.data.PanelistGroup\r\n });\r\n dispatch({\r\n type: GET_PANELISTGROUP_LIST,\r\n data: res.data.PanelistGroupList\r\n });\r\n dispatch({\r\n type: PANELISTGROUP_ACTION_SUBMITED\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n }).catch(error => {\r\n return dispatch({\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n }).then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Panéliste(s) affecté(s) avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTGROUP_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};\r\n\r\n\r\n\r\n","import history from \"history.js\";\r\nimport jwtAuthService from \"../../services/jwtAuthService\";\r\nimport authentificationService from \"../../services/authentificationService\";\r\nimport axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\n\r\n\r\nexport const SET_USER_DATA = \"USER_SET_DATA\";\r\nexport const REMOVE_USER_DATA = \"USER_REMOVE_DATA\";\r\nexport const USER_LOGGED_OUT = \"USER_LOGGED_OUT\";\r\nexport const CHANGE_USER_PASSWORD = \"CHANGE_USER_PASSWORD\";\r\nexport const GET_USER_LIST = \"GET_USER_LIST\";\r\n\r\nexport const USER_ACTION_LOADING = \"USER_ACTION_LOADING\";\r\nexport const USER_ACTION_SUCCESS = \"USER_ACTION_SUCCESS\";\r\nexport const USER_ACTION_ERROR = \"USER_ACTION_ERROR\";\r\nexport const USER_ACTION_SUBMITING = \"USER_ACTION_SUBMITING\"; //\r\nexport const USER_ACTION_SUBMITED = \"USER_ACTION_SUBMITED\";\r\n\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\n\r\nexport const USER_TABLE_CONTENT_LOADING = \"USER_TABLE_CONTENT_LOADING\";\r\nexport const USER_TABLE_CONTENT_LOADED = \"USER_TABLE_CONTENT_LOADED\";\r\n\r\nexport function setUserData(user) {\r\n return dispatch => {\r\n dispatch({\r\n type: SET_USER_DATA,\r\n data: user\r\n });\r\n };\r\n}\r\n\r\nexport function logoutUser() {\r\n return dispatch => {\r\n authentificationService.logout();\r\n\r\n history.push({\r\n pathname: \"/session/signin\"\r\n });\r\n\r\n dispatch({\r\n type: USER_LOGGED_OUT\r\n });\r\n dispatch({\r\n type: REMOVE_USER_DATA\r\n });\r\n };\r\n}\r\n\r\nexport const getUserList = () => dispatch => {\r\n dispatch({\r\n type: USER_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"account/getusers\").then(res => {\r\n dispatch({\r\n type: GET_USER_LIST,\r\n data: res.data.UserList\r\n });\r\n dispatch({\r\n type: USER_ACTION_SUCCESS\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: USER_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n\r\n};\r\n\r\nexport const createUser = (user) => dispatch => {\r\n dispatch({ // informe le reducer de user qu'un formulaire le concernant est en cours de soumission \r\n type: USER_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${api}` + \"account/createuser\", user).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste d'utilisateur au reducer pour sa mise à jour \r\n type: GET_USER_LIST,\r\n data: res.data.UserList\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un utilisateur a été ajouté avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: USER_ACTION_ERROR,\r\n data: res.data.Message\r\n });\r\n }\r\n dispatch({ // informe le reducer de user que le formulaire le concernant est traité\r\n type: USER_ACTION_SUBMITED\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: USER_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport const updateUser = (user) => dispatch => {\r\n dispatch({ // informe le reducer de user qu'un formulaire le concernant est en cours de soumission \r\n type: USER_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.post(`${api}` + \"account/updateuser\", user).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste d'utilisateur au reducer pour sa mise à jour \r\n type: GET_USER_LIST,\r\n data: res.data.UserList\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un utilisateur a été modifier avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: USER_ACTION_ERROR,\r\n data: res.data.Message\r\n });\r\n }\r\n dispatch({ // informe le reducer de user que le formulaire le concernant est traité\r\n type: USER_ACTION_SUBMITED\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: USER_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport const deleteUser = (userId) => dispatch => {\r\n dispatch({ // informe le reducer de user qu'un formulaire le concernant est en cours de soumission \r\n type: USER_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"account/deleteuser/\" + userId).then(res => {\r\n if (res.data.Success) { // Vérifie que le service a fournit une réponse souhaitée\r\n dispatch({ // Fournit la nouvelle liste d'utilisateur au reducer pour sa mise à jour \r\n type: GET_USER_LIST,\r\n data: res.data.UserList\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un utilisateur a été supprimé avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: USER_ACTION_ERROR,\r\n data: res.data.Message\r\n });\r\n }\r\n dispatch({ // informe le reducer de user que le formulaire le concernant est traité\r\n type: USER_ACTION_SUBMITED\r\n });\r\n resolve(res.data);\r\n }).catch(error => {\r\n return dispatch({\r\n type: USER_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n });\r\n};\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};\r\n\r\nexport const setTableContentLoading = (value) => dispatch => {\r\n if (value) {\r\n dispatch({\r\n type: USER_TABLE_CONTENT_LOADING\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: USER_TABLE_CONTENT_LOADED\r\n });\r\n }\r\n};\r\n\r\nexport const changeUserPassword = (request) => dispatch => {\r\n dispatch({\r\n type: USER_ACTION_SUBMITING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"account/changeuserpassword\", request).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: CHANGE_USER_PASSWORD\r\n });\r\n resolve(true);\r\n }\r\n else {\r\n resolve(false);\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: USER_ACTION_ERROR,\r\n payload: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data) {\r\n dispatch({\r\n type: USER_ACTION_SUBMITED\r\n });\r\n logoutUser();\r\n }\r\n\r\n\r\n return data;\r\n });\r\n};\r\n","import axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\nimport history from \"history.js\";\r\n\r\n// Action mener au serveur (les appels API)\r\nexport const GET_PANELIST = \"GET_PANELIST\";\r\nexport const GET_PANELIST_LIST = \"GET_PANELIST_LIST\";\r\nexport const ADD_PANELIST_TO_LIST = \"ADD_PANELIST_TO_LIST\";\r\nexport const DELETE_PANELIST_FROM_LIST = \"DELETE_PANELIST_FROM_LIST\";\r\nexport const UPDATE_PANELIST = \"UPDATE_PANELIST\";\r\nexport const GET_REGIONLIST = \"GET_REGIONLIST\";\r\n\r\n// Type d'action pour la synchronisation lors des appels API (ils sont utilisees pour resoudre les spiner des boutons submits)\r\nexport const PANELIST_ACTION_SUBMITED = \"PANELIST_ACTION_SUBMITED\";\r\nexport const PANELIST_ACTION_SUBMITTING = \"PANELIST_ACTION_SUBMITTING\";\r\nexport const PANELIST_ACTION_LOADING = \"PANELIST_ACTION_LOADING\";\r\nexport const PANELIST_ACTION_SUCCESS = \"PANELIST_ACTION_SUCCESS\";\r\nexport const PANELIST_ACTION_ERROR = \"PANELIST_ACTION_ERROR\";\r\n\r\n// Action sur le statut de reponse server (pour afficher ou cacher le snackbar alert)\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\nexport const PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING = \"PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING\";\r\nexport const PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED = \"PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED\";\r\n\r\nexport const getPanelist = (panelistId) => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"panelist/getpanelist/\" + panelistId).then(res => {\r\n dispatch({\r\n type: GET_PANELIST,\r\n data: res.data.Panelist\r\n });\r\n dispatch({\r\n type: GET_PANELIST_LIST,\r\n data: res.data.PanelistList\r\n });\r\n dispatch({\r\n type: PANELIST_ACTION_SUCCESS\r\n });\r\n resolve(res.data.PanelistList);\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data !== null) {\r\n dispatch({\r\n type: PANELIST_ACTION_SUCCESS\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: \"aucun panéliste correspondant n'a ete trouve\"\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const getPanelistList = () => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"panelist/list\").then(res => {\r\n dispatch({\r\n type: GET_PANELIST_LIST,\r\n data: res.data.PanelistList\r\n });\r\n dispatch({\r\n type: PANELIST_ACTION_SUCCESS\r\n });\r\n resolve(res.data.PanelistList);\r\n });\r\n });\r\n};\r\n\r\nexport const createPanelist = (panelist) => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelist/createpanelist\", panelist).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELIST_LIST,\r\n data: res.data.PanelistList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un panéliste a été ajouté avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELIST_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const importPanelistFromExcel = (file, panelistType) => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITTING\r\n });\r\n let formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"type\", panelistType);\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelist/ImportPanelistFromExcel\", formData).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELIST_LIST,\r\n data: res.data.PanelistList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un panéliste a été ajouté avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELIST_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const exportPanelistListToExcel = async (type) => {\r\n\r\n // Its important to set the 'Content-Type': 'blob' and responseType:'arraybuffer'.\r\n \r\n const headers = { 'Content-Type': 'blob' };\r\n const config: AxiosRequestConfig = { method: 'GET', url: (`${api}` +\"panelist/export/\"+ type), responseType: 'arraybuffer', headers };\r\n\r\n try {\r\n const response = await axios(config);\r\n\r\n const outputFilename = `${Date.now()}.xls`;\r\n\r\n // If you want to download file automatically using link attribute.\r\n const url = URL.createObjectURL(new Blob([response.data]));\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.setAttribute('download', outputFilename);\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n link.setAttribute('hidden', outputFilename)\r\n\r\n // OR you can save/write file locally.\r\n // fs.writeFileSync(outputFilename, response.data);\r\n } catch (error) {\r\n throw Error(error);\r\n }\r\n\r\n \r\n}\r\n\r\nexport const deletePanelist = panelistId => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"panelist/deletepanelist/\" + panelistId).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: DELETE_PANELIST_FROM_LIST,\r\n data: res.data.PanelistList\r\n });\r\n }\r\n resolve(res.data);\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un panéliste a été supprimé avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELIST_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const updatePanelist = (panelist) => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"panelist/updatepanelist\", panelist).then(res => {\r\n if (res.data.Panelist != null && res.data.PanelistList != null) {\r\n dispatch({\r\n type: GET_PANELIST,\r\n data: res.data.Panelist\r\n });\r\n dispatch({\r\n type: GET_PANELIST_LIST,\r\n data: res.data.PanelistList\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n dispatch({\r\n type: PANELIST_ACTION_SUBMITED\r\n });\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELIST_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Un panéliste a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELIST_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const setTableContentLoading = (value) => dispatch => {\r\n if (value) {\r\n dispatch({\r\n type: PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADING\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELIST_ADVANCEDSEARCH_TABLE_CONTENT_LOADED\r\n });\r\n }\r\n};\r\n\r\nexport const getRegions = () => dispatch => {\r\n dispatch({\r\n type: PANELIST_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"location/list\").then(res => {\r\n if (res.data.Success && res.data.Regions) {\r\n dispatch({\r\n type: GET_REGIONLIST,\r\n data: res.data.Regions\r\n });\r\n dispatch({\r\n type: PANELIST_ACTION_SUCCESS\r\n });\r\n }\r\n resolve(res.data);\r\n })\r\n }).then(response => {\r\n return response;\r\n });\r\n};\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};","import axios from \"axios\";\r\nimport localStorageService from \"./localStorageService\";\r\n\r\nclass JwtAuthService {\r\n\r\n // Dummy user object just for the demo\r\n user = {\r\n userId: \"1\",\r\n role: 'ADMIN',\r\n displayName: \"Jason Alexander\",\r\n email: \"jasonalexander@gmail.com\",\r\n photoURL: \"/assets/images/face-6.jpg\",\r\n age: 25,\r\n token: \"faslkhfh423oiu4h4kj432rkj23h432u49ufjaklj423h4jkhkjh\"\r\n }\r\n\r\n // You need to send http request with email and passsword to your server in this method\r\n // Your server will return user object & a Token\r\n // User should have role property\r\n // You can define roles in app/auth/authRoles.js\r\n loginWithEmailAndPassword = (email, password) => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(this.user);\r\n }, 1000);\r\n }).then(data => {\r\n // Login successful\r\n // Save token\r\n this.setSession(data.token);\r\n // Set user\r\n this.setUser(data);\r\n return data;\r\n });\r\n };\r\n\r\n // You need to send http requst with existing token to your server to check token is valid\r\n // This method is being used when user logged in & app is reloaded\r\n loginWithToken = () => {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(this.user);\r\n }, 100);\r\n }).then(data => {\r\n // Token is valid\r\n this.setSession(data.token);\r\n this.setUser(data);\r\n return data;\r\n });\r\n };\r\n\r\n logout = () => {\r\n this.setSession(null);\r\n this.removeUser();\r\n }\r\n\r\n // Set token to all http request header, so you don't need to attach everytime\r\n setSession = token => {\r\n if (token) {\r\n localStorage.setItem(\"jwt_token\", token);\r\n axios.defaults.headers.common[\"Authorization\"] = \"Bearer \" + token;\r\n } else {\r\n localStorage.removeItem(\"jwt_token\");\r\n delete axios.defaults.headers.common[\"Authorization\"];\r\n }\r\n };\r\n\r\n // Save user to localstorage\r\n setUser = (user) => { \r\n localStorageService.setItem(\"auth_user\", user);\r\n }\r\n // Remove user from localstorage\r\n removeUser = () => {\r\n localStorage.removeItem(\"auth_user\");\r\n }\r\n}\r\n\r\nexport default new JwtAuthService();\r\n","import axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\nimport history from \"history.js\";\r\n\r\n// Action mener au serveur (les appels API)\r\nexport const GET_PANELISTCATEGORY = \"GET_PANELISTCATEGORY\";\r\nexport const GET_PANELISTCATEGORY_LIST = \"GET_PANELISTCATEGORY_LIST\";\r\nexport const ADD_PANELISTCATEGORY_TO_LIST = \"ADD_PANELISTCATEGORY_TO_LIST\";\r\nexport const DELETE_PANELISTCATEGORY_FROM_LIST = \"DELETE_PANELISTCATEGORY_FROM_LIST\";\r\nexport const UPDATE_PANELISTCATEGORY = \"UPDATE_PANELISTCATEGORY\";\r\n\r\n// Type d'action pour la synchronisation lors des appels API (ils sont utilisees pour resoudre les spiner des boutons submits)\r\nexport const PANELISTCATEGORY_ACTION_SUBMITED = \"PANELISTCATEGORY_ACTION_SUBMITED\";\r\nexport const PANELISTCATEGORY_ACTION_SUBMITTING = \"PANELISTCATEGORY_ACTION_SUBMITTING\";\r\nexport const PANELISTCATEGORY_ACTION_LOADING = \"PANELISTCATEGORY_ACTION_LOADING\";\r\nexport const PANELISTCATEGORY_ACTION_SUCCESS = \"PANELISTCATEGORY_ACTION_SUCCESS\";\r\nexport const PANELISTCATEGORY_ACTION_ERROR = \"PANELISTCATEGORY_ACTION_ERROR\";\r\n\r\n// Action sur le statut de reponse server (pour afficher ou cacher le snackbar alert)\r\nexport const SHOW_ALERT = \"SHOW_ALERT\";\r\nexport const HIDE_ALERT = \"HIDE_ALERT\";\r\n\r\nexport const getCategory = (categoryId) => dispatch => {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"category/getcategory/\" + categoryId).then(res => {\r\n dispatch({\r\n type: GET_PANELISTCATEGORY,\r\n data: res.data.Category\r\n });\r\n dispatch({\r\n type: GET_PANELISTCATEGORY_LIST,\r\n data: res.data.Categories\r\n });\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUCCESS\r\n });\r\n resolve(res.data.Categories);\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data !== null) {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUCCESS\r\n });\r\n }\r\n else {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: \"aucun panéliste correspondant n'a ete trouve\"\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const getCategories = () => dispatch => {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_LOADING\r\n });\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${api}` + \"category/list\").then(res => {\r\n dispatch({\r\n type: GET_PANELISTCATEGORY_LIST,\r\n data: res.data.Categories\r\n });\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUCCESS\r\n });\r\n resolve(res.data.Categories);\r\n });\r\n });\r\n};\r\n\r\nexport const createCategory = (category) => dispatch => {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"category/createcategory\", category).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTCATEGORY_LIST,\r\n data: res.data.Categories\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITED\r\n });\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Une catégorie a été ajouté avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n};\r\n\r\nexport const deleteCategory = categoryId => dispatch => {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.get(`${api}` + \"category/deletecategory/\" + categoryId).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: DELETE_PANELISTCATEGORY_FROM_LIST,\r\n data: res.data.Categories\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITED\r\n });\r\n\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Une catégorie a été supprimé avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const updateCategory = (category) => dispatch => {\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITTING\r\n });\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n axios.post(`${api}` + \"category/updatecategory\", category).then(res => {\r\n if (res.data.Success) {\r\n dispatch({\r\n type: GET_PANELISTCATEGORY,\r\n data: res.data.Category\r\n });\r\n dispatch({\r\n type: GET_PANELISTCATEGORY_LIST,\r\n data: res.data.Categories\r\n });\r\n resolve(res.data);\r\n }\r\n else {\r\n resolve(res.data);\r\n }\r\n dispatch({\r\n type: PANELISTCATEGORY_ACTION_SUBMITED\r\n });\r\n\r\n })\r\n .catch(error => {\r\n return dispatch({\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: error\r\n });\r\n });\r\n }, 500);\r\n })\r\n .then(data => {\r\n if (data.Success) {\r\n dispatch({ // informe le reducer de user qu'une alerte doit être affiché'\r\n type: SHOW_ALERT,\r\n data: \"Une catégorie a été modifié avec succès\"\r\n });\r\n }\r\n else {\r\n dispatch({// En cas d'erreur du service on affiche une alerte avec le message de service\r\n type: PANELISTCATEGORY_ACTION_ERROR,\r\n data: data.Message\r\n });\r\n }\r\n return data;\r\n });\r\n\r\n};\r\n\r\nexport const hideAlert = () => dispatch => {\r\n dispatch({\r\n type: HIDE_ALERT\r\n });\r\n};","import { createBrowserHistory } from 'history';\r\n\r\nexport default createBrowserHistory();","import React from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Icon, Grid, CircularProgress, Box, Typography, LinearProgress, TextField, Table, TableBody, TableCell, TableRow, TableHead, FormControlLabel, FormLabel, FormControl } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport SnackbarContentWrapper from \"./alert/SnackbarContentWrapper\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport ChipInput from \"material-ui-chip-input\";\r\nimport _, { without } from 'underscore';\r\nimport { getPanelist, updatePanelist, hideAlert, getRegions } from \"app/redux/actions/PanelistActions\";\r\nimport { getCategories } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport history from \"history.js\";\r\n\r\n\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst BorderLinearProgress = withStyles((theme) => ({\r\n root: {\r\n height: 15,\r\n borderRadius: 5,\r\n },\r\n colorPrimary: {\r\n backgroundColor: \"#EEEEEE\",\r\n },\r\n bar: {\r\n borderRadius: 5,\r\n backgroundColor: '#1a90ff',\r\n },\r\n}))(LinearProgress);\r\n\r\nclass PanelistDetailPage extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n SnackbarOpen: false,\r\n panelistToUpdate: {\r\n PanelistId: \"\",\r\n CreateDate: new Date(),\r\n LastModifiedDate: new Date(),\r\n BirthDate: new Date(),\r\n PanelistId: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n EducationLevel: \"\",\r\n Profession: \"\",\r\n Income: \"\",\r\n Type: \"\",\r\n Categories: [\r\n {\r\n CategoryId: \"\",\r\n Name: \"\"\r\n }\r\n ],\r\n LocationName: \"\",\r\n Gender: \"\",\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n RegionId: \"\",\r\n TownId: \"\",\r\n DistrictId: \"\",\r\n PanelistGroups: [],\r\n },\r\n RegionList: this.props.storePanelist.regionList,\r\n PanelistCategories: this.props.storePanelistCategory.categories,\r\n RegionOptions: [],\r\n PanelistCategoryOption: [],\r\n TownToDisplayOption: [],\r\n DistrictToDisplayOption: [],\r\n PanelistGroupIsNamesDefaultOption: [],\r\n PanelistCategoryDefaultOption: [],\r\n id: \"\",\r\n showSnackbar: false,\r\n message: \"\",\r\n isLoading: true,\r\n isSubmitting: false,\r\n ProfessionList: [\r\n { label: \"Agriculture, pêche et foresterie (Production primaire et transformation des produits de base, protéines animales)\" },\r\n { label: \"Agrobusiness (aliments conditionnés, boissons...)\" },\r\n { label: \"Services financiers (banque commerciale, assurance et retraites, microfinance, etc. - Incluant la fintech)\" },\r\n { label: \"Véhicules d'investissement collectif (exemples : fonds de private equity, fonds de fonds, capital risque)\" },\r\n { label: \"Industries de fabrication\" },\r\n { label: \"Tourisme\" },\r\n { label: \"Commerce de détail\" },\r\n { label: \"Construction et immobilier\" },\r\n { label: \"Santé\" },\r\n { label: \"Éducation\" },\r\n { label: \"Industries extractives (pétrole, gaz et mines)\" },\r\n { label: \"Infrastructures (Énergie et équipements)\" },\r\n { label: \"Infrastructures de transport\" },\r\n { label: \"Télécommunications, Médias et Technologie\" },\r\n { label: \"Prestation de services\" },\r\n { label: \"Autre\" }\r\n ],\r\n EducationLevelList: [{ label: \"Pas d'éducation scolaire\" }, { label: \"Ecole coranique\" }, { label: \"Primaire\" }, { label: \"Secondaire\" }, { label: \"Universitaire\" }]\r\n\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleAutocompleteChange = this.handleAutocompleteChange.bind(this);\r\n this.handleSelectListChange = this.handleSelectListChange.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleDateChange = this.handleDateChange.bind(this);\r\n this.handleAddChip = this.handleAddChip.bind(this);\r\n this.handleDeleteChip = this.handleDeleteChip.bind(this);\r\n this.getRegionOption = this.getRegionOption.bind(this);\r\n this.getTownToDisplayOption = this.getTownToDisplayOption.bind(this);\r\n this.getDistrictToDisplayOption = this.getDistrictToDisplayOption.bind(this);\r\n this.getPanelistCategoryDefaultOption = this.getPanelistCategoryDefaultOption.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n let match = this.props.match;\r\n if (match !== undefined) {\r\n let params = match.params;\r\n if (params != undefined && params.id != undefined) {\r\n if (this.props.storePanelist.panelistList\r\n && this.props.storePanelist.panelistList.length\r\n && this.props.storePanelist.regionList\r\n && this.props.storePanelist.regionList.length) {\r\n this.getRegionOption();\r\n let panelist = this.props.storePanelist.panelistList.find(p => p.PanelistId == params.id);\r\n if (panelist != null) {\r\n this.setState({ panelistToUpdate: panelist }, () => {\r\n if (this.state.panelistToUpdate.RegionId != \"\") {\r\n this.getTownToDisplayOption(this.state.panelistToUpdate.RegionId);\r\n }\r\n if (this.state.panelistToUpdate.RegionId != \"\" && this.state.panelistToUpdate.TownId != \"\") {\r\n this.getDistrictToDisplayOption(this.state.panelistToUpdate.RegionId, this.state.panelistToUpdate.TownId);\r\n }\r\n this.getPanelistGroupIsNamesDefaultOption();\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n }\r\n else {\r\n this.setState({ id: params.id }, () => {\r\n this.props.getPanelist(params.id);\r\n this.props.getRegions();\r\n });\r\n\r\n }\r\n\r\n if (this.props.storePanelistCategory.categories && this.props.storePanelistCategory.categories.length) {\r\n this.getPanelistCategoryDefaultOption();\r\n }\r\n else {\r\n this.props.getCategories();\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentWillReceiveProps(nextProps) {\r\n if (nextProps.storePanelist !== this.props.storePanelist) {\r\n if (nextProps.storePanelist.currentPanelist !== this.props.storePanelist.currentPanelist) {\r\n this.setState({ panelistToUpdate: nextProps.storePanelist.currentPanelist }, () => {\r\n console.log(this.state.panelistToUpdate);\r\n this.getPanelistCategoryDefaultOption();\r\n if (this.state.panelistToUpdate.RegionId != \"\") {\r\n console.log(\"hello\");\r\n this.getTownToDisplayOption(this.state.panelistToUpdate.RegionId);\r\n }\r\n if (this.state.panelistToUpdate.RegionId != \"\" && this.state.panelistToUpdate.TownId != \"\") {\r\n this.getDistrictToDisplayOption(this.state.panelistToUpdate.RegionId, this.state.panelistToUpdate.TownId);\r\n }\r\n this.getPanelistGroupIsNamesDefaultOption();\r\n // this.setState({ isLoading: false });\r\n });\r\n console.log(\"nextProps\", nextProps);\r\n }\r\n if (nextProps.storePanelist.submitting !== this.state.isSubmitting) {\r\n this.setState({ isSubmitting: nextProps.storePanelist.submitting });\r\n }\r\n if (nextProps.storePanelist.showAlert === true) {\r\n this.setState({ SnackbarOpen: true });\r\n setTimeout(() => {\r\n this.props.hideAlert();\r\n }, 15000);\r\n }\r\n if ((nextProps.storePanelist.regionList != this.props.storePanelist.regionList) || (nextProps.storePanelist.regionList.length > 0 && this.state.RegionList.length == 0)) {\r\n this.setState({ RegionList: nextProps.storePanelist.regionList }, () => {\r\n this.getRegionOption();\r\n if (this.state.panelistToUpdate.RegionId != \"\") {\r\n console.log(\"hello\");\r\n this.getTownToDisplayOption(this.state.panelistToUpdate.RegionId);\r\n }\r\n if (this.state.panelistToUpdate.RegionId != \"\" && this.state.panelistToUpdate.TownId != \"\") {\r\n this.getDistrictToDisplayOption(this.state.panelistToUpdate.RegionId, this.state.panelistToUpdate.TownId);\r\n }\r\n this.setState({ isLoading: false });\r\n console.log(\"nextProps 2\", nextProps);\r\n })\r\n }\r\n }\r\n if (nextProps.storePanelistCategory.categories != null && this.props.storePanelistCategory.categories.length > 0 && this.state.PanelistCategories.length == 0) {\r\n this.setState({ PanelistCategories: nextProps.storePanelistCategory.categories }, () => {\r\n this.getPanelistCategoryDefaultOption();\r\n\r\n });\r\n }\r\n }\r\n\r\n handleClose = (event) => {\r\n this.setState({ SnackbarOpen: false })\r\n hideAlert();\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.updatePanelist(this.state.panelistToUpdate).then(data => {\r\n if (data.Success) {\r\n history.push({\r\n pathname: this.state.panelistToUpdate.Type == \"NaturalPerson\" ? \"/panelist/list\" : \"/panelist/company\"\r\n });\r\n }\r\n });\r\n };\r\n\r\n handleAddChip = (chip) => {\r\n let panelistCopy = this.state.panelistToUpdate;\r\n if (panelistCopy.Category != null) {\r\n let extendedValue = panelistCopy.Category.concat(chip);\r\n panelistCopy['Category'] = extendedValue.filter((v, i, a) => a.indexOf(v) === i);\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n }\r\n };\r\n\r\n handleDeleteChip = (chip, index) => {\r\n let panelistCopy = this.state.panelistToUpdate;\r\n panelistCopy['Category'] = panelistCopy.Category.filter(item => item != chip);\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n }\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let panelistCopy = this.state.panelistToUpdate;\r\n for (let key in panelistCopy) {\r\n if (key === event.target.name) {\r\n panelistCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n };\r\n\r\n handleSelectListChange = (event, value, name) => {\r\n if (value != null) {\r\n let panelistCopy = this.state.panelistToUpdate;\r\n for (let key in panelistCopy) {\r\n // console.log(\"key\", key);\r\n if (key == name) {\r\n\r\n if (name == \"Profession\" || name == \"Income\" || name == \"EducationLevel\") {\r\n panelistCopy[`${key}`] = value.label;\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n }\r\n else if (name == \"RegionId\" || name == \"TownId\" || name == \"DistrictId\") {\r\n console.log(\"region change\");\r\n panelistCopy[`${key}`] = value.id;\r\n if (name == \"RegionId\") {\r\n this.setState({ panelistToUpdate: panelistCopy }, () => {\r\n this.getTownToDisplayOption(value.id);\r\n console.log(\"region change\");\r\n });\r\n }\r\n else if (name == \"TownId\") {\r\n this.setState({ panelistToUpdate: panelistCopy }, () => {\r\n this.getDistrictToDisplayOption(value.regionId, value.id);\r\n });\r\n }\r\n else {\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n }\r\n }\r\n else if (name == \"Categories\") {\r\n let result = [];\r\n value.forEach(item => {\r\n result.push({ CategoryId: item.id, Name: item.label });\r\n })\r\n panelistCopy[`${key}`] = result;\r\n // this.setState({ panelistToUpdate: panelistCopy });\r\n console.log(\"Categories\", result);\r\n }\r\n }\r\n }\r\n\r\n }\r\n };\r\n\r\n handleDateChange = (date, name) => {\r\n let panelistCopy = this.state.panelistToUpdate;\r\n for (let key in panelistCopy) {\r\n if (key === name) {\r\n panelistCopy[`${key}`] = date\r\n }\r\n }\r\n this.setState({ panelistToUpdate: panelistCopy });\r\n };\r\n\r\n filter = createFilterOptions();\r\n filterOptions = (options, params) => {\r\n let filtered = this.filter(options, params);\r\n if (params.inputValue !== \"\") {\r\n filtered.push({\r\n inputValue: params.inputValue,\r\n label: `Add \"${params.inputValue}\"`\r\n });\r\n }\r\n return filtered;\r\n };\r\n\r\n handleAutocompleteChange = (event, newValue) => {\r\n if (newValue && newValue.inputValue) {\r\n this.setState({ value: { label: newValue.inputValue } })\r\n return;\r\n }\r\n let panelistCopy = this.state.panelistToUpdate;\r\n panelistCopy.Status = newValue.label;\r\n this.setState({ value: newValue, panelistToUpdate: panelistCopy });\r\n\r\n };\r\n\r\n getRegionOption = () => {\r\n let result = [];\r\n this.state.RegionList.forEach(region => {\r\n result.push({ label: region.Name, id: region.RegionId })\r\n })\r\n this.setState({ RegionOptions: result });\r\n }\r\n\r\n getTownToDisplayOption = (regionId) => {\r\n let result = [];\r\n let region = this.state.RegionList.find(r => r.RegionId == regionId);\r\n console.log(\"region list\", this.state.RegionList);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n region.Towns.forEach(town => {\r\n result.push({ label: town.Name, id: town.TownId, regionId: regionId })\r\n })\r\n }\r\n this.setState({ TownToDisplayOption: result }, () => {\r\n console.log(this.state.TownToDisplayOption);\r\n });\r\n }\r\n\r\n getDistrictToDisplayOption = (regionId, townId) => {\r\n let result = [];\r\n let region = this.state.RegionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n let town = region.Towns.find(t => t.TownId == townId);\r\n if (town != null && town.Districts != null && town.Districts.length) {\r\n town.Districts.forEach(district => {\r\n result.push({ label: district.Name, id: district.DistrictId })\r\n })\r\n }\r\n }\r\n this.setState({ DistrictToDisplayOption: result });\r\n }\r\n\r\n getPanelistGroupIsNamesDefaultOption = () => {\r\n let result = [];\r\n this.state.panelistToUpdate.PanelistGroups.forEach(element => {\r\n result.push({ label: element.Name })\r\n })\r\n this.setState({ PanelistGroupIsNamesDefaultOption: result });\r\n }\r\n\r\n getPanelistCategoryDefaultOption = () => {\r\n let result = [];\r\n this.state.PanelistCategories.forEach(element => {\r\n result.push({ label: element.Name, id: element.CategoryId })\r\n });\r\n this.setState({ PanelistCategoryOption: result }, () => {\r\n // if(this.state.panelistToUpdate && this.state.panelistToUpdate.)\r\n });\r\n // console.log(\"nextProps\", this.state.panelistToUpdate);\r\n }\r\n\r\n render() {\r\n let { PanelistId, Type, FirstName, LastName, PhoneNumber1, PhoneNumber2, Gender, Email, Profession, Income, LocationName, BirthDate, CreatedDate, LastModifiedDate, EducationLevel, EmployeesCount } = this.state.panelistToUpdate;\r\n return (\r\n
\r\n {this.state.isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {this.props.storePanelist.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n
\r\n null}\r\n >\r\n \r\n {this.state.panelistToUpdate.Type == \"NaturalPerson\" && (\r\n <>\r\n \r\n \r\n \r\n this.handleDateChange(date, \"BirthDate\")}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n \r\n option.label}\r\n defaultValue={{ label: this.state.panelistToUpdate.Income }}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"Income\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n o.id == this.state.panelistToUpdate.RegionId)}\r\n getOptionLabel={option => option.label}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"RegionId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.DistrictToDisplayOption.find(o => o.id == this.state.panelistToUpdate.DistrictId)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"DistrictId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n label=\"Masculin\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"Féminin\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n option.label}\r\n defaultValue={this.state.EducationLevelList.find(e => e.label == EducationLevel)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"EducationLevel\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.PanelistCategoryOption.filter(\r\n option => this.state.panelistToUpdate.Categories.some(cat => cat.CategoryId == option.id)\r\n )}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"Categories\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.TownToDisplayOption.find(o => o.id == this.state.panelistToUpdate.TownId)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"TownId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.PanelistGroupIsNamesDefaultOption}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"GroupId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.ProfessionList.find(p => p.label == Profession)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"Profession\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {this.state.panelistToUpdate.Type == \"LegalPerson\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n this.handleDateChange(date, \"BirthDate\")}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n o.id == this.state.panelistToUpdate.RegionId)}\r\n getOptionLabel={option => option.label}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"RegionId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.DistrictToDisplayOption.find(o => o.id == this.state.panelistToUpdate.DistrictId)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"DistrictId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n option.label}\r\n defaultValue={this.state.ProfessionList.find(p => p.label == Profession)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"Profession\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.PanelistCategoryOption.filter(\r\n option => this.state.panelistToUpdate.Categories.some(cat => cat.CategoryId == option.id)\r\n )}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"Categories\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.TownToDisplayOption.find(o => o.id == this.state.panelistToUpdate.TownId)}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"TownId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n option.label}\r\n defaultValue={this.state.PanelistGroupIsNamesDefaultOption}\r\n onChange={(event, value) => this.handleSelectListChange(event, value, \"GroupId\")}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n updatePanelist: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n getPanelist: PropTypes.func.isRequired,\r\n getRegions: PropTypes.func.isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n storePanelist: state.panelist,\r\n storePanelistCategory: state.panelistcategory,\r\n\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, {\r\n getPanelist,\r\n getRegions,\r\n getCategories,\r\n updatePanelist, hideAlert\r\n })(PanelistDetailPage))\r\n);","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createCategory } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction CreatePanelistCategory(props) {\r\n\r\n const {\r\n storeUser = {},\r\n disabled = false,\r\n onCreateCategory\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [panelistCategory, setPanelistCategory] = React.useState({\r\n Name: \"\",\r\n Type: \"\",\r\n Description: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n if (panelistCategory.Name == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [panelistCategory])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onCreateCategory(panelistCategory).then(data => {\r\n if (data.Success) {\r\n setPanelistCategory(prevState => { return { ...prevState, Name: \"\", Type: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n Création d'une nouvelle catégorie\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistCategory(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={panelistCategory?.Name}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistCategory(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={panelistCategory?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelistCategory(prevState => {\r\n return { ...prevState, Type: value?.id }\r\n })\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n createCategory: PropTypes.func.isRequired,\r\n storePanelistCategory: state.panelistcategory,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { createCategory })(CreatePanelistCategory))\r\n);","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deleteCategory } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction DeletePanelistCategory(props) {\r\n\r\n const {\r\n storeUser = {},\r\n panelistCategoryToDelete = {},\r\n onDeleteCategory\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onDeleteCategory(panelistCategoryToDelete.CategoryId).then(data => {\r\n if (data.Success) {\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Suppression d'une catégorie : {panelistCategoryToDelete?.Name}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer cette catégorie ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n deleteCategory: PropTypes.func.isRequired,\r\n storePanelistCategory: state.panelistcategory,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deleteCategory })(DeletePanelistCategory))\r\n);","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { updateCategory } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction UpdatePanelistCategory(props) {\r\n\r\n const {\r\n storeUser = {},\r\n panelistCategoryToUpdate = {},\r\n onUpdateCategory\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [panelistCategory, setPanelistCategory] = React.useState(panelistCategoryToUpdate);\r\n\r\n useEffect(() => {\r\n if (panelistCategory.Name == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [panelistCategory])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onUpdateCategory(panelistCategory).then(data => {\r\n if (data.Success) {\r\n setPanelistCategory(prevState => { return { ...prevState, Name: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n\r\n return (\r\n
\r\n {/* \r\n edit\r\n */}\r\n \r\n \r\n \r\n \r\n \r\n Création d'une nouvelle catégorie\r\n \r\n \r\n null} style={{ marginTop: \"10px\" }}>\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistCategory(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={panelistCategory?.Name}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistCategory(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={panelistCategory?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n item.id == panelistCategory.Type)}\r\n options={[{ label: \"Entreprise\", id: \"LegalPerson\" }, { label: \"Panéliste\", id: \"NaturalPerson\" }]}\r\n getOptionLabel={option => option.label}\r\n onChange={(event, value) => {\r\n setPanelistCategory(prevState => {\r\n return { ...prevState, Type: value?.id }\r\n })\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n updateCategory: PropTypes.func.isRequired,\r\n storePanelistCategory: state.panelistcategory,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { updateCategory })(UpdatePanelistCategory))\r\n);","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getCategories, getCategory, createCategory, updateCategory, deleteCategory, hideAlert } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport CreatePanelistCategory from \"./dialog/CreatePanelistCategory\";\r\nimport { Link } from \"react-router-dom\";\r\nimport DeletePanelistCategory from \"./dialog/DeletePanelistCategory\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport moment from 'moment';\r\nimport 'moment/locale/fr';\r\nimport UpdatePanelistCategory from \"./dialog/UpdatePanelistCategory\";\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n },\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nlet panelistCategoryLoaded = false;\r\n\r\nfunction PanelistCategoryPage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storePanelistCategory = {},\r\n getCategories,\r\n createCategory,\r\n updateCategory,\r\n deleteCategory,\r\n hideAlert,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [permissions, setPermissions] = React.useState([]);\r\n const [categories, setCategories] = React.useState([]);\r\n\r\n useEffect(() => {\r\n if (storePanelistCategory.categories.length == 0 && categories.length == 0) {\r\n getCategories().then(response => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n });\r\n }\r\n else if (storePanelistCategory.categories.length > 0 && categories.length == 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (storeUser.currentUser.Permissions) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n if (storeUser.loading != isLoading) {\r\n setIsLoading(storeUser.loading);\r\n }\r\n }, [storeUser])\r\n\r\n useEffect(() => {\r\n if (storePanelistCategory.showAlert) {\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n\r\n }\r\n if (storePanelistCategory.loading != isLoading) {\r\n setIsLoading(storePanelistCategory.loading);\r\n }\r\n }, [storePanelistCategory])\r\n\r\n function handleClose(event) {\r\n setOpen(false);\r\n hideAlert();\r\n }\r\n\r\n const handleUpdateCategory = (category) => {\r\n return new Promise((resolve, reject) => {\r\n updateCategory(category).then(data => {\r\n if (data.Success) {\r\n setCategories(data.Categories);\r\n resolve(data)\r\n }\r\n });\r\n })\r\n }\r\n\r\n const handleCreateCategory = (category) => {\r\n return new Promise((resolve, reject) => {\r\n createCategory(category).then(data => {\r\n if (data.Success) {\r\n setCategories(data.Categories);\r\n resolve(data)\r\n }\r\n });\r\n })\r\n }\r\n\r\n const handleDeleteCategory = (categoryId) => {\r\n return new Promise((resolve, reject) => {\r\n deleteCategory(categoryId).then(data => {\r\n if (data.Success) {\r\n setCategories(data.Categories);\r\n resolve(data)\r\n }\r\n });\r\n })\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storePanelistCategory.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n {permissions?.some(item => item == \"AllowedToCreatePanelistCategory\") && (\r\n \r\n )}\r\n }\r\n >\r\n \r\n \r\n \r\n Catégorie\r\n Date de création\r\n Date de modification\r\n \r\n \r\n\r\n \r\n \r\n \r\n {categories\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((panelistCategorie, index) =>\r\n (\r\n \r\n {panelistCategorie.Name}\r\n \r\n {moment(panelistCategorie.CreatedDate).format('Do MMMM YYYY')}\r\n \r\n \r\n {moment(panelistCategorie.LastModifiedDate).format('Do MMMM YYYY')}\r\n \r\n \r\n {permissions?.some(item => item == \"AllowedToUpdatePanelistCategory\") && (\r\n \r\n )}\r\n \r\n \r\n {permissions?.some(item => item == \"AllowedToDeletePanelistCategory\") && (\r\n \r\n )}\r\n \r\n \r\n ))}\r\n \r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nPanelistCategoryPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelistCategory: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getCategory: PropTypes.func.isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n createCategory: PropTypes.func.isRequired,\r\n updateCategory: PropTypes.func.isRequired,\r\n deleteCategory: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelistCategory: state.panelistcategory,\r\n storeUser: state.user,\r\n});\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps,\r\n {\r\n getCategories,\r\n getCategory,\r\n createCategory,\r\n updateCategory,\r\n deleteCategory,\r\n hideAlert\r\n })(PanelistCategoryPage));\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createGroup } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { set } from \"lodash\";\r\nimport { useEffect } from \"react\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction CreatePanelistGroup(props) {\r\n\r\n const {\r\n storeUser = {},\r\n onCreatePanelistGroup,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [request, setRequest] = React.useState({\r\n Author: storeUser.currentUser.User?.FirstName + \" \" + storeUser.currentUser.User?.LastName,\r\n Name: \"\",\r\n Description: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n if (request.Name == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [request])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onCreatePanelistGroup(request).then(data => {\r\n if (data.Success) {\r\n setRequest(prevState => { return { ...prevState, Name: \"\", Description: \"\" } });\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouveau groupe\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n\r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={request?.Name}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setRequest(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={request?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n getUserList: PropTypes.func.isRequired,\r\n createGroup: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { createGroup })(CreatePanelistGroup))\r\n);\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deleteGroup } from \"app/redux/actions/PanelistGroupActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction DeletePanelistGroup(props) {\r\n\r\n const {\r\n storeUser = {},\r\n panelistGroupToDelete = {},\r\n onDeletePanelistGroup\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n onDeletePanelistGroup(panelistGroupToDelete.PanelistGroupId).then(data => {\r\n if (data.Success) {\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Suppression du groupe de panéliste : {panelistGroupToDelete?.Name}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer ce groupe de panéliste ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n deleteGroup: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deleteGroup })(DeletePanelistGroup))\r\n);","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList, } from \"app/redux/actions/RoleActions\";\r\nimport { getGroupList, hideAlert, createGroup, deleteGroup } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { Table, TableBody, TableCell, TableRow, TableHead, CircularProgress, TablePagination, Popover, Checkbox } from '@material-ui/core';\r\nimport { SimpleCard, Breadcrumb } from 'matx';\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\"\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport moment from 'moment';\r\nimport 'moment/locale/fr';\r\nimport CreatePanelistGroup from \"./dialog/CreatePanelistGroup\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport DeletePanelistGroup from \"./dialog/DeletePanelistGroup\";\r\n\r\nconst useStyles2 = makeStyles(theme => ({\r\n margin: {\r\n margin: theme.spacing(1)\r\n },\r\n popover: {\r\n pointerEvents: 'none',\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nlet panelistGroupLoaded = false;\r\n\r\nfunction PanelistGroupPage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storePanelistGroup = {},\r\n getGroupList,\r\n createGroup,\r\n deleteGroup,\r\n hideAlert,\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const classes = useStyles2();\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [permissions, setPermissions] = React.useState([]);\r\n const [panelistGroupList, setPanelistGroupList] = React.useState([]);\r\n\r\n const openPop = Boolean(anchorEl);\r\n\r\n const handlePopoverOpen = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handlePopoverClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.panelistGroupList.length == 0 && panelistGroupList.length == 0) {\r\n getGroupList().then(response => {\r\n if (response) {\r\n setPanelistGroupList(response);\r\n }\r\n });\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupList.length == 0) {\r\n setPanelistGroupList(storePanelistGroup.panelistGroupList);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (storeUser.currentUser.Permissions) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n if (storeUser.loading != isLoading) {\r\n setIsLoading(storeUser.loading)\r\n }\r\n }, [storeUser])\r\n\r\n useEffect(() => {\r\n if (storePanelistGroup.showAlert) {\r\n setMessage(storePanelistGroup.alertMessage);\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n }\r\n if (storePanelistGroup.loading != isLoading) {\r\n setIsLoading(storePanelistGroup.loading);\r\n }\r\n\r\n }, [storePanelistGroup])\r\n\r\n function handleClose(event) {\r\n setOpen(false);\r\n hideAlert();\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n let handleCreatePanelistGroup = (panelistGroup) => {\r\n return new Promise((resolve, reject) => {\r\n createGroup(panelistGroup).then(response => {\r\n if (response.Success) {\r\n setPanelistGroupList(response.PanelistGroupList);\r\n resolve(response);\r\n }\r\n })\r\n });\r\n }\r\n\r\n let handleDeletePanelistGroup = (panelistGroupId) => {\r\n return new Promise((resolve, reject) => {\r\n deleteGroup(panelistGroupId).then(response => {\r\n if (response.Success) {\r\n setPanelistGroupList(response.PanelistGroupList);\r\n resolve(response);\r\n }\r\n })\r\n });\r\n }\r\n\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storePanelistGroup.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n // {permissions.some(item => item == \"AllowedToCreatePanelistGroup\") && (\r\n // \r\n // )}\r\n // }\r\n >\r\n \r\n \r\n \r\n\r\n Nom\r\n Description\r\n Crée par \r\n Nombre de panélistes\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {panelistGroupList.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((panelistgroup, index) =>\r\n (\r\n \r\n {panelistgroup.Name}\r\n {panelistgroup.Description}\r\n {panelistgroup.Author}\r\n \r\n {panelistgroup.Panelists.length}\r\n\r\n \r\n \r\n {permissions?.some(item => item == \"AllowedToUpdatePanelistGroup\") && (\r\n
\r\n \r\n edit\r\n \r\n
\r\n )}\r\n
\r\n \r\n {permissions?.some(item => item == \"AllowedToDeletePanelistGroup\") && (\r\n \r\n )}\r\n \r\n
\r\n\r\n ))\r\n }\r\n
\r\n
\r\n \r\n
\r\n \r\n )}\r\n\r\n
\r\n );\r\n}\r\n\r\nPanelistGroupPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelistGroup: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = state => ({\r\n getGroupList: PropTypes.func.isRequired,\r\n createGroup: PropTypes.func.isRequired,\r\n deleteGroup: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user,\r\n});\r\nexport default withStyles({}, { withTheme: true })(connect(mapStateToProps,\r\n {\r\n getGroupList,\r\n getRoleList,\r\n createGroup,\r\n deleteGroup,\r\n hideAlert\r\n })(PanelistGroupPage));\r\n","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { changeUserPassword } from \"app/redux/actions/UserActions\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\nclass ChangeUserPasswordDialog extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n userToUpdate: this.props.storeUser,\r\n RoleList: [],\r\n defaultSelectedRoleList: [],\r\n passwordItem: {\r\n OldPassword: \"\",\r\n NewPassword: \"\",\r\n UserId: \"\",\r\n ConfirmPassword: \"\"\r\n },\r\n time: {},\r\n seconds: 5,\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSave = this.handleSave.bind(this);\r\n this.handleClickOpen = this.handleClickOpen.bind(this);\r\n this.handleClose = this.handleClose.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.timer = 0;\r\n this.startTimer = this.startTimer.bind(this);\r\n this.countDown = this.countDown.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n ValidatorForm.addValidationRule(\"isPasswordMatch\", value => {\r\n if (value !== this.state.passwordItem.NewPassword) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n let timeLeftVar = this.secondsToTime(this.state.seconds);\r\n this.setState({ time: timeLeftVar });\r\n }\r\n secondsToTime(secs) {\r\n let hours = Math.floor(secs / (60 * 60));\r\n\r\n let divisor_for_minutes = secs % (60 * 60);\r\n let minutes = Math.floor(divisor_for_minutes / 60);\r\n\r\n let divisor_for_seconds = divisor_for_minutes % 60;\r\n let seconds = Math.ceil(divisor_for_seconds);\r\n\r\n let obj = {\r\n \"h\": hours,\r\n \"m\": minutes,\r\n \"s\": seconds\r\n };\r\n return obj;\r\n }\r\n\r\n startTimer() {\r\n if (this.timer == 0 && this.state.seconds > 0) {\r\n this.timer = setInterval(this.countDown, 1000);\r\n }\r\n }\r\n\r\n countDown() {\r\n // Remove one second, set state so a re-render happens.\r\n let seconds = this.state.seconds - 1;\r\n this.setState({\r\n time: this.secondsToTime(seconds),\r\n seconds: seconds,\r\n });\r\n\r\n // Check if we're at zero.\r\n if (seconds == 0) {\r\n clearInterval(this.timer);\r\n }\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true\r\n });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({ open: false });\r\n };\r\n\r\n handleSave = event => {\r\n this.handleSubmit(this.state.passwordItem)\r\n }\r\n\r\n handleSubmit = value => {\r\n this.props.changeUserPassword(value).then(data => {\r\n if (data) {\r\n this.handleClose();\r\n }\r\n });\r\n };\r\n\r\n handleChange = event => {\r\n event.persist();\r\n let itemCopy = this.state.passwordItem;\r\n for (let key in itemCopy) {\r\n if (key === event.target.name) {\r\n itemCopy[`${key}`] = event.target.value;\r\n }\r\n if (itemCopy[`UserId`] == \"\") {\r\n itemCopy[`UserId`] = this.props.storeUser.currentUser.User.UserId;\r\n }\r\n }\r\n this.setState({ passwordItem: itemCopy });\r\n };\r\n\r\n\r\n render() {\r\n let { OldPassword, NewPassword, ConfirmPassword, UserId } = this.state.passwordItem;\r\n return (\r\n
\r\n \r\n \r\n \r\n Changement de mot de passe\r\n \r\n \r\n null}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n changeUserPassword: PropTypes.func.isRequired,\r\n storeUser: state.user,\r\n storeRole: state.role\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, {\r\n changeUserPassword\r\n })(ChangeUserPasswordDialog))\r\n);","import React from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Icon, Grid, CircularProgress, Box, Typography, LinearProgress, TextField, Table, TableBody, TableCell, TableRow, TableHead } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nimport SnackbarContentWrapper from \"./../alert/SnackbarContentWrapper\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { getUserList, updateUser } from \"app/redux/actions/UserActions\";\r\nimport ChangeUserPasswordDialog from \"./dialogs/ChangeUserPassord\";\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst BorderLinearProgress = withStyles((theme) => ({\r\n root: {\r\n height: 15,\r\n borderRadius: 5,\r\n },\r\n colorPrimary: {\r\n backgroundColor: \"#EEEEEE\",\r\n },\r\n bar: {\r\n borderRadius: 5,\r\n backgroundColor: '#1a90ff',\r\n },\r\n}))(LinearProgress);\r\n\r\nclass UserProfilePage extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n currentUser: this.props.storeUsers.currentUser,\r\n SnackbarOpen: false,\r\n showSnackbar: false,\r\n isLoading: true,\r\n defaultSelectedRoleList: [],\r\n Roles: []\r\n }\r\n\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.getOptionsFromRoleList = this.getOptionsFromRoleList.bind(this);\r\n\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.storeUsers.currentUser.Roles) {\r\n this.getOptionsFromRoleList();\r\n }\r\n console.log(this.props.storeUsers.currentUser.User);\r\n };\r\n componentWillReceiveProps(nextProps) {\r\n\r\n\r\n };\r\n getOptionsFromRoleList = () => {\r\n if (this.props.storeUsers.currentUser.Roles != undefined && this.props.storeUsers.currentUser.Roles.length > 0) {\r\n let result = [];\r\n this.props.storeUsers.currentUser.Roles.forEach(element => {\r\n result.push({ title: element });\r\n });\r\n this.setState({ defaultSelectedRoleList: result }, () => {\r\n this.setState({ isLoading: false });\r\n });\r\n }\r\n }\r\n\r\n\r\n snackbarHandleClose = () => {\r\n this.setState({ SnackbarOpen: false });\r\n };\r\n handleSubmit = value => {\r\n // let request = { Mail: this.state.mailToUpdate, ActionAuthorName: this.props.storeUsers.DisplayName, ActionAuthorId: this.props.storeUsers.UserId }\r\n this.props.updateUser(value).then(data => {\r\n if (data !== null) {\r\n this.props.getUserList(this.props.storeUsers.UserId);\r\n }\r\n });\r\n };\r\n handleChange = event => {\r\n event.persist();\r\n let userCopy = this.state.userToUpdate;\r\n for (let key in userCopy) {\r\n if (key === event.target.name) {\r\n userCopy[`${key}`] = event.target.value\r\n }\r\n }\r\n this.setState({ userToUpdate: userCopy });\r\n };\r\n\r\n\r\n\r\n\r\n render() {\r\n let { FirstName, LastName, PhoneNumber2, PhoneNumber1, Email, Roles } = this.state.currentUser.User;\r\n return (\r\n
\r\n {this.state.isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {(this.state.showSnackbar) && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n } >\r\n
\r\n null}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n option.title}\r\n defaultValue={this.state.defaultSelectedRoleList}\r\n filterSelectedOptions\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n getUserList: PropTypes.func.isRequired,\r\n updateUser: PropTypes.func.isRequired,\r\n storeUsers: state.user,\r\n storeRole: state.role\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { getUserList, updateUser })(UserProfilePage))\r\n);","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, Checkbox, FormControlLabel, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport ChipInput from \"material-ui-chip-input\";\r\nimport { Email } from \"@material-ui/icons\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction CreateNaturalPersonPanellist(props) {\r\n const {\r\n theme,\r\n regionList = [],\r\n categories = [],\r\n storePanelist = {},\r\n storePanelistCategory = {},\r\n storeUser = {},\r\n getUsertList,\r\n onCreatePanelist,\r\n hideAddedAlert,\r\n } = props;\r\n\r\n\r\n // Les variables en state\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [submitting, setSubmitting] = React.useState(false);\r\n const [regionOptions, setRegionOptions] = React.useState([]);\r\n const [townToDisplayOptions, setTownToDisplayOptions] = React.useState([]);\r\n const [districtToDisplayOptions, setDistrictToDisplayOptions] = React.useState([]);\r\n const [categoryOptions, setCategoryOptions] = React.useState([]);\r\n const [districtDefaultValue, setDistrictDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [townDefaultValue, setTownDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [panelist, setPanelist] = React.useState(\r\n {\r\n PanelistId: \"\",\r\n Type: \"NaturalPerson\",\r\n EmployeesCount: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Gender: \"\",\r\n BirthDate: new Date(),\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n EducationLevel: \"\",\r\n Profession: \"\",\r\n Income: \"\",\r\n Category: [],\r\n RegionId: \"\",\r\n TownId: \"\",\r\n DistrictId: \"\",\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (regionList && regionList.length) {\r\n getRegionOption();\r\n }\r\n }, [regionList])\r\n\r\n useEffect(() => {\r\n if (categories && categories.length) {\r\n getCategoryOptions();\r\n }\r\n }, [categories])\r\n\r\n useEffect(() => {\r\n if (townToDisplayOptions && townToDisplayOptions.length) {\r\n setTownDefaultValue(townToDisplayOptions[0]);\r\n getDistrictToDisplayOption(panelist?.RegionId, townToDisplayOptions[0]?.id);\r\n setPanelist(prevState => { return { ...prevState, TownId: townToDisplayOptions[0]?.id } });\r\n }\r\n else {\r\n setTownDefaultValue({ label: \"\", id: \"\" });\r\n setDistrictDefaultValue({ label: \"\", id: \"\" });\r\n setPanelist(prevState => { return { ...prevState, TownId: \"\" } });\r\n }\r\n }, [townToDisplayOptions])\r\n\r\n useEffect(() => {\r\n if (districtToDisplayOptions && districtToDisplayOptions.length) {\r\n setDistrictDefaultValue(districtToDisplayOptions[0]);\r\n setPanelist(prevState => { return { ...prevState, DistrictId: districtToDisplayOptions[0]?.id } });\r\n }\r\n else {\r\n setDistrictDefaultValue({ label: \"\", id: \"\" });\r\n setPanelist(prevState => { return { ...prevState, DistrictId: \"\" } });\r\n }\r\n }, [districtToDisplayOptions])\r\n\r\n useEffect(() => {\r\n if (panelist.Type == \"\"\r\n || panelist.LastName == \"\"\r\n || panelist.FirstName == \"\"\r\n || panelist.BirthDate == \"\"\r\n || panelist.PhoneNumber1 == \"\"\r\n || panelist.Gender == \"\"\r\n || panelist.EducationLevel == \"\"\r\n || panelist.Profession == \"\"\r\n || panelist.Income == \"\"\r\n || panelist.RegionId == \"\"\r\n || panelist.TownId == \"\"\r\n || panelist.DistrictId == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [panelist])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSave = event => {\r\n handleSubmit(panelist)\r\n }\r\n\r\n let handleSubmit = value => {\r\n setSubmitting(true);\r\n onCreatePanelist(value).then(data => {\r\n if (data.Success) {\r\n setPanelist(\r\n {\r\n PanelistId: \"\",\r\n Type: \"NaturalPerson\",\r\n EmployeesCount: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Gender: \"\",\r\n BirthDate: new Date(),\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n EducationLevel: \"\",\r\n Profession: \"\",\r\n Income: \"\",\r\n Category: [],\r\n RegionId: \"\",\r\n TownId: \"\",\r\n DistrictId: \"\",\r\n }\r\n );\r\n }\r\n setSubmitting(false);\r\n handleClose();\r\n });\r\n };\r\n\r\n let getRegionOption = () => {\r\n let result = [];\r\n regionList.forEach(region => {\r\n result.push({ label: region.Name, id: region.RegionId })\r\n })\r\n setRegionOptions(result);\r\n }\r\n\r\n let getTownToDisplayOption = (regionId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n region.Towns.forEach(town => {\r\n result.push({ label: town.Name, id: town.TownId, regionId: regionId })\r\n })\r\n }\r\n setTownToDisplayOptions(result);\r\n }\r\n\r\n let getDistrictToDisplayOption = (regionId, townId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n let town = region.Towns.find(t => t.TownId == townId);\r\n if (town != null && town.Districts != null && town.Districts.length) {\r\n town.Districts.forEach(district => {\r\n result.push({ label: district.Name, id: district.DistrictId })\r\n })\r\n }\r\n }\r\n setDistrictToDisplayOptions(result);\r\n }\r\n\r\n let getCategoryOptions = () => {\r\n let result = [];\r\n categories.filter(item => item?.Type == \"NaturalPerson\").forEach(category => {\r\n result.push({ label: category.Name, id: category.CategoryId })\r\n })\r\n setCategoryOptions(result);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouveau panéliste\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, FirstName: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"FirstName\"\r\n value={panelist?.FirstName}\r\n validators={[\"required\"]}\r\n errorMessages={[\"Le prénom de panéliste est recquis\"]}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, LastName: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"LastName\"\r\n value={panelist?.LastName}\r\n validators={[\"required\"]}\r\n errorMessages={[\"Le nom de panéliste est recquis\"]}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, Gender: e.target?.value } });\r\n }}\r\n row\r\n\r\n >\r\n }\r\n label=\"Masculin\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"Féminin\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, BirthDate: date } });\r\n }}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 8)\r\n }}\r\n onChange={(e) => {\r\n setPanelist(prevState => { return { ...prevState, PhoneNumber1: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"PhoneNumber1\"\r\n value={panelist?.PhoneNumber1}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 8)\r\n }}\r\n onChange={(e) => {\r\n setPanelist(prevState => { return { ...prevState, PhoneNumber2: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"PhoneNumber2\"\r\n value={panelist?.PhoneNumber2}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, Email: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"Email\"\r\n value={panelist?.Email}\r\n fullWidth\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, EducationLevel: value?.label } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n let result = [];\r\n if (value.length) {\r\n value.forEach(element => {\r\n result.push(element.id);\r\n });\r\n }\r\n setPanelist(prevState => { return { ...prevState, Category: result } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, Income: value?.label } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, Profession: value?.label } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, RegionId: value?.id } });\r\n getTownToDisplayOption(value?.id);\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, TownId: value?.id } });\r\n getDistrictToDisplayOption(panelist?.RegionId, value?.id);\r\n setTownDefaultValue(townToDisplayOptions.find(o => o.id == value?.id));\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, DistrictId: value?.id } });\r\n setDistrictDefaultValue(districtToDisplayOptions.find(o => o.id == value?.id));\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n storePanelist: state.panelist,\r\n storePanelistCategory: state.panelistcategory,\r\n});\r\n\r\nexport default (withRouter(connect(mapStateToProps, {})(CreateNaturalPersonPanellist)));","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList } from \"app/redux/actions/RoleActions\";\r\nimport {\r\n getPanelistList,\r\n getPanelist,\r\n hideAlert,\r\n getRegions,\r\n importPanelistFromExcel,\r\n exportPanelistListToExcel,\r\n createPanelist,\r\n deletePanelist,\r\n} from \"app/redux/actions/PanelistActions\";\r\nimport { getCategories } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n TableHead,\r\n CircularProgress,\r\n TablePagination,\r\n Popover,\r\n Checkbox,\r\n Button,\r\n IconButton,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { SimpleCard, Breadcrumb } from \"matx\";\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {\r\n DataGrid,\r\n GridColDef,\r\n GridApi,\r\n GridCellValue,\r\n} from \"@material-ui/data-grid\";\r\nimport CreateNaturalPersonPanellist from \"./dialogs/CreateNaturalPersonPanellist\";\r\nimport { Link } from \"react-router-dom\";\r\nimport DeletePanelist from \"./dialogs/DeletePanelist\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\n\r\nconst useStyles2 = makeStyles((theme) => ({\r\n margin: {\r\n margin: theme.spacing(1),\r\n },\r\n popover: {\r\n pointerEvents: \"none\",\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nfunction PanelistAsNaturalPersonPage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storePanelist = {},\r\n storePanelistCategory = {},\r\n getRoleList,\r\n getPanelistList,\r\n getPanelist,\r\n createPanelist,\r\n deletePanelist,\r\n importPanelistFromExcel,\r\n // exportPanelistListToExcel,\r\n getRegions,\r\n getCategories,\r\n hideAlert,\r\n } = props;\r\n\r\n const columns = [\r\n { field: \"PanelistId\", hide: true },\r\n { field: \"FirstName\", headerName: \"Prénon\", flex: 0.5 },\r\n { field: \"LastName\", headerName: \"Nom\", flex: 0.5 },\r\n {\r\n field: \"BirthDate\",\r\n headerName: \"Date de naissance\",\r\n flex: 0.3,\r\n renderCell: (params) => {\r\n let displayName = \"\";\r\n displayName = moment(`${params.formattedValue}`).format(\"Do MMMM YYYY\");\r\n return (\r\n \r\n {displayName}\r\n \r\n );\r\n },\r\n },\r\n {\r\n field: \"Gender\",\r\n headerName: \"Sexe\",\r\n flex: 0.3,\r\n renderCell: (params) => {\r\n let displayName = \"\";\r\n if (params.formattedValue == \"Male\") {\r\n displayName = \"Masculin\";\r\n } else {\r\n displayName = \"Féminin\";\r\n }\r\n return (\r\n \r\n {displayName}\r\n \r\n );\r\n },\r\n },\r\n { field: \"PhoneNumber1\", headerName: \"Téléphone\", flex: 0.3 },\r\n {\r\n field: \"UpdatePanelistId\",\r\n headerName: \" \",\r\n sortable: false,\r\n flex: 0.2,\r\n disableClickEventBubbling: true,\r\n renderCell: (params) => {\r\n let id = params.formattedValue;\r\n return (\r\n \r\n {permissions.some((item) => item == \"AllowedToUpdatePanelist\") && (\r\n \r\n edit\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n field: \"DeletePanelistId\",\r\n headerName: \" \",\r\n sortable: false,\r\n flex: 0.2,\r\n disableClickEventBubbling: true,\r\n renderCell: (params) => {\r\n let id = params.formattedValue;\r\n return (\r\n \r\n {permissions.some((item) => item == \"AllowedToDeletePanelist\") && (\r\n p.PanelistId == id)}\r\n />\r\n )}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const classes = useStyles2();\r\n const [selectedPanelist, setSelectedPanelist] = React.useState([]);\r\n const [selectedFile, setSelectedFile] = React.useState(null);\r\n const [regionList, setRegionList] = React.useState([]);\r\n const [categories, setCategories] = React.useState([]);\r\n const [permissions, setPermissions] = React.useState([]);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [panelistList, setPanelistList] = React.useState([]);\r\n const [fileName, setFileName] = React.useState(\"Panélistes\");\r\n const [initialPanelistList, setInitialPanelistList] = React.useState([]);\r\n const importInputRef = React.useRef();\r\n const [showSearch, setShowSearch] = React.useState(false);\r\n const [filteredObjects, setFilteredObjects] = React.useState([]);\r\n const [searchValue, setSearchValue] = React.useState(\"\");\r\n\r\n useEffect(() => {\r\n if (storePanelist.panelistAsNaturalPersonList.length == 0) {\r\n getPanelistList().then((response) => {\r\n if (response) {\r\n setPanelistList(response.filter((p) => p.Type == \"NaturalPerson\"));\r\n setInitialPanelistList(\r\n response.filter((p) => p.Type == \"NaturalPerson\")\r\n );\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n } else if (storePanelist.regionList.length == 0) {\r\n getRegions().then((response) => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n });\r\n }\r\n if (\r\n storePanelistCategory.categories &&\r\n storePanelistCategory.categories.length == 0\r\n ) {\r\n getCategories().then((response) => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n });\r\n } else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n }\r\n });\r\n } else if (storePanelist.panelistAsNaturalPersonList.length > 0) {\r\n setPanelistList(storePanelist.panelistAsNaturalPersonList);\r\n setInitialPanelistList(storePanelist.panelistAsNaturalPersonList);\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n } else if (storePanelist.regionList.length == 0) {\r\n getRegions().then((response) => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n });\r\n }\r\n if (\r\n storePanelistCategory.categories &&\r\n storePanelistCategory.categories.length == 0\r\n ) {\r\n getCategories().then((response) => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n });\r\n } else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"permission\", permissions);\r\n }, [permissions]);\r\n\r\n useEffect(() => {\r\n if (\r\n storeUser.currentUser.Permissions &&\r\n storeUser.currentUser.Permissions != permissions\r\n ) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n }, [storeUser]);\r\n\r\n useEffect(() => {\r\n if (storePanelist.showAlert) {\r\n setMessage(storePanelist.alertMessage);\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n }\r\n // if (panelistList.length > 0 && storePanelist.panelistAsNaturalPersonList) {\r\n // if (!(Object.keys(storePanelist.panelistAsNaturalPersonList).length === Object.keys(panelistList).length\r\n // && Object.keys(storePanelist.panelistAsNaturalPersonList).every(p => storePanelist.panelistAsNaturalPersonList[p] === panelistList[p]))) {\r\n // setPanelistList(storePanelist.panelistAsNaturalPersonList);\r\n // }\r\n // }\r\n }, [storePanelist]);\r\n\r\n const handleClose = (event) => {\r\n setOpen(false);\r\n hideAlert();\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n const handleImportPanelist = (e) => {\r\n setSelectedFile(e.target.files[0]);\r\n importPanelistFromExcel(e.target.files[0], \"NaturalPerson\").then(\r\n (response) => {\r\n if (response.Success) {\r\n setPanelistList(response.PanelistList);\r\n setInitialPanelistList(response.PanelistList);\r\n setSelectedFile(undefined);\r\n }\r\n }\r\n );\r\n };\r\n\r\n const handleCreatePanelist = (panelist) => {\r\n return new Promise((resolve, reject) => {\r\n createPanelist(panelist).then((data) => {\r\n if (data.Success) {\r\n setPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"NaturalPerson\")\r\n );\r\n setInitialPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"NaturalPerson\")\r\n );\r\n }\r\n resolve(data);\r\n });\r\n });\r\n };\r\n\r\n const handleDeletePanelist = (panelistId) => {\r\n return new Promise((resolve, reject) => {\r\n deletePanelist(panelistId).then((data) => {\r\n if (data.Success) {\r\n setPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"NaturalPerson\")\r\n );\r\n setInitialPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"NaturalPerson\")\r\n );\r\n }\r\n resolve(data);\r\n });\r\n });\r\n };\r\n\r\n const exportPanelistListToExcel = async (type) => {\r\n const a = window.document.createElement(\"a\");\r\n a.href = `${api}` + \"panelist/export/\" + type;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n\r\n const handleClick = (event) => {\r\n setShowSearch((current) => !current);\r\n };\r\n\r\n const SearchItems = (searchTerm) => {\r\n setSearchValue(searchTerm);\r\n let result = [];\r\n if (\r\n initialPanelistList.filter((p) =>\r\n p.FirstName.toLowerCase().includes(searchTerm.toLowerCase())\r\n ).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.FirstName.toLowerCase().includes(searchTerm.toLowerCase())\r\n )\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) =>\r\n p.LastName.toLowerCase().includes(searchTerm.toLowerCase())\r\n ).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.LastName.toLowerCase().includes(searchTerm.toLowerCase())\r\n )\r\n );\r\n }\r\n\r\n if (\r\n initialPanelistList.filter((p) => p.PhoneNumber1.includes(searchTerm))\r\n .length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.PhoneNumber1.includes(searchTerm)\r\n )\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) => p.BirthDate.includes(searchTerm)).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) => p.BirthDate.includes(searchTerm))\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) =>\r\n p.Gender.includes(getGenderInEnglish(searchTerm))\r\n ).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.Gender.includes(getGenderInEnglish(searchTerm))\r\n )\r\n );\r\n }\r\n console.log(\"filtred\", result);\r\n const panelistUniqueByKey = [\r\n ...new Map(result.map((item) => [item[\"PanelistId\"], item])).values(),\r\n ];\r\n setPanelistList(panelistUniqueByKey);\r\n };\r\n\r\n const getGenderInFrench = (gender) => {\r\n return gender === \"Male\" ? \"Masculin\" : gender == \"Female\" ? \"Féminin\" : \"\";\r\n };\r\n\r\n const getGenderInEnglish = (gender) => {\r\n let masculin = \"masculin\";\r\n let feminin = \"féminin\";\r\n if (masculin.includes(gender.toLowerCase())) {\r\n return \"Male\";\r\n }\r\n if (feminin.includes(gender.toLowerCase())) {\r\n return \"Female\";\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n {storePanelist.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n <>\r\n \r\n search\r\n \r\n\r\n {permissions.some(\r\n (item) => item == \"AllowedToCreatePanelist\"\r\n ) && (\r\n \r\n )}\r\n {permissions.some(\r\n (item) => item == \"AllowedToImportPanelist\"\r\n ) && (\r\n <>\r\n handleImportPanelist(e)}\r\n // value={selectedFile}\r\n ref={importInputRef}\r\n />\r\n \r\n \r\n )}\r\n {\r\n exportPanelistListToExcel(\"NaturalPerson\");\r\n }}\r\n >\r\n file_download\r\n \r\n \r\n \r\n }\r\n >\r\n {showSearch && (\r\n {\r\n if (e.target.value != \"\") {\r\n SearchItems(e.target.value);\r\n } else if (e.target.value == \"\") {\r\n setPanelistList(initialPanelistList);\r\n }\r\n }}\r\n onBlur={(e) => {\r\n if (e.target.value == \"\") {\r\n setShowSearch(false);\r\n setPanelistList(initialPanelistList);\r\n }\r\n }}\r\n fullWidth\r\n />\r\n )}\r\n \r\n \r\n \r\n Prénom\r\n Nom\r\n \r\n Date de naissance{\" \"}\r\n \r\n Sexe\r\n Téléphone\r\n \r\n \r\n \r\n \r\n \r\n {panelistList\r\n ?.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((panelist, index) => (\r\n \r\n {panelist.FirstName}\r\n {panelist.LastName}\r\n \r\n {moment(panelist.BirthDate).format(\"Do MMMM YYYY\")}\r\n \r\n \r\n {getGenderInFrench(panelist.Gender)}\r\n \r\n {panelist.PhoneNumber1} \r\n \r\n {permissions.some(\r\n (item) => item == \"AllowedToUpdatePanelist\"\r\n ) && (\r\n
\r\n \r\n edit\r\n \r\n
\r\n )}\r\n
\r\n \r\n {permissions.some(\r\n (item) => item == \"AllowedToDeletePanelist\"\r\n ) && (\r\n \r\n )}\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n\r\n {/*
\r\n { setSelectedPanelist(e.selectionModel) }}\r\n />\r\n
*/}\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nPanelistAsNaturalPersonPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelist: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n storePanelistCategory: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n getPanelist: PropTypes.func.isRequired,\r\n createPanelist: PropTypes.func.isRequired,\r\n deletePanelist: PropTypes.func.isRequired,\r\n getPanelistList: PropTypes.func.isRequired, //\r\n importPanelistFromExcel: PropTypes.func.isRequired,\r\n // exportPanelistListToExcel: PropTypes.func.isRequired,\r\n getRoleList: PropTypes.func.isRequired,\r\n getRegions: PropTypes.func.isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelist: state.panelist,\r\n storeUser: state.user,\r\n storePanelistCategory: state.panelistcategory,\r\n});\r\nexport default withStyles(\r\n {},\r\n { withTheme: true }\r\n)(\r\n connect(mapStateToProps, {\r\n getCategories,\r\n getRegions,\r\n getPanelistList,\r\n importPanelistFromExcel,\r\n // exportPanelistListToExcel,\r\n getRoleList,\r\n getPanelist,\r\n createPanelist,\r\n deletePanelist,\r\n hideAlert,\r\n })(PanelistAsNaturalPersonPage)\r\n);\r\n","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, Checkbox, FormControlLabel, CircularProgress, TextField, Icon } from \"@material-ui/core\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker\r\n} from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport ChipInput from \"material-ui-chip-input\";\r\nimport { Email } from \"@material-ui/icons\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction CreateLegalPersonPanellist(props) {\r\n const {\r\n theme,\r\n regionList = [],\r\n categories = [],\r\n storePanelist = {},\r\n storePanelistCategory = {},\r\n storeUser = {},\r\n getUsertList,\r\n onCreatePanelist,\r\n hideAddedAlert,\r\n } = props;\r\n\r\n\r\n // Les variables en state\r\n const [open, setOpen] = React.useState(false);\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [submitting, setSubmitting] = React.useState(false);\r\n const [regionOptions, setRegionOptions] = React.useState([]);\r\n const [townToDisplayOptions, setTownToDisplayOptions] = React.useState([]);\r\n const [districtToDisplayOptions, setDistrictToDisplayOptions] = React.useState([]);\r\n const [categoryOptions, setCategoryOptions] = React.useState([]);\r\n const [districtDefaultValue, setDistrictDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [townDefaultValue, setTownDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [panelist, setPanelist] = React.useState(\r\n {\r\n PanelistId: \"\",\r\n Type: \"LegalPerson\",\r\n EmployeesCount: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Gender: \"\",\r\n BirthDate: new Date(),\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n EducationLevel: \"\",\r\n Profession: \"\",\r\n Income: \"\",\r\n Category: [],\r\n RegionId: \"\",\r\n TownId: \"\",\r\n DistrictId: \"\",\r\n }\r\n );\r\n\r\n\r\n useEffect(() => {\r\n if (regionList && regionList.length) {\r\n getRegionOption();\r\n }\r\n }, [regionList])\r\n\r\n useEffect(() => {\r\n if (categories && categories.length) {\r\n getCategoryOptions();\r\n }\r\n }, [categories])\r\n\r\n useEffect(() => {\r\n if (townToDisplayOptions && townToDisplayOptions.length) {\r\n setTownDefaultValue(townToDisplayOptions[0]);\r\n getDistrictToDisplayOption(panelist?.RegionId, townToDisplayOptions[0]?.id);\r\n setPanelist(prevState => { return { ...prevState, TownId: townToDisplayOptions[0]?.id } });\r\n }\r\n else {\r\n setTownDefaultValue({ label: \"\", id: \"\" });\r\n setDistrictDefaultValue({ label: \"\", id: \"\" });\r\n setPanelist(prevState => { return { ...prevState, TownId: \"\" } });\r\n }\r\n }, [townToDisplayOptions])\r\n\r\n useEffect(() => {\r\n if (districtToDisplayOptions && districtToDisplayOptions.length) {\r\n setDistrictDefaultValue(districtToDisplayOptions[0]);\r\n setPanelist(prevState => { return { ...prevState, DistrictId: districtToDisplayOptions[0]?.id } });\r\n }\r\n else {\r\n setDistrictDefaultValue({ label: \"\", id: \"\" });\r\n setPanelist(prevState => { return { ...prevState, DistrictId: \"\" } });\r\n }\r\n }, [districtToDisplayOptions])\r\n\r\n useEffect(() => {\r\n if (panelist.Type == \"\"\r\n || panelist.LastName == \"\"\r\n || panelist.BirthDate == \"\"\r\n || panelist.PhoneNumber1 == \"\"\r\n || panelist.RegionId == \"\"\r\n || panelist.TownId == \"\"\r\n || panelist.DistrictId == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [panelist])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSave = event => {\r\n handleSubmit(panelist)\r\n }\r\n\r\n let handleSubmit = value => {\r\n setSubmitting(true);\r\n onCreatePanelist(value).then(data => {\r\n if (data.Success) {\r\n setPanelist(\r\n {\r\n PanelistId: \"\",\r\n Type: \"LegalPerson\",\r\n EmployeesCount: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Gender: \"\",\r\n BirthDate: new Date(),\r\n PhoneNumber1: \"\",\r\n PhoneNumber2: \"\",\r\n Email: \"\",\r\n EducationLevel: \"\",\r\n Profession: \"\",\r\n Income: \"\",\r\n Category: [],\r\n RegionId: \"\",\r\n TownId: \"\",\r\n DistrictId: \"\",\r\n }\r\n );\r\n }\r\n setSubmitting(false);\r\n handleClose();\r\n });\r\n };\r\n\r\n let getRegionOption = () => {\r\n let result = [];\r\n regionList.forEach(region => {\r\n result.push({ label: region.Name, id: region.RegionId })\r\n })\r\n setRegionOptions(result);\r\n }\r\n\r\n let getTownToDisplayOption = (regionId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n region.Towns.forEach(town => {\r\n result.push({ label: town.Name, id: town.TownId, regionId: regionId })\r\n })\r\n }\r\n setTownToDisplayOptions(result);\r\n }\r\n\r\n let getDistrictToDisplayOption = (regionId, townId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n let town = region.Towns.find(t => t.TownId == townId);\r\n if (town != null && town.Districts != null && town.Districts.length) {\r\n town.Districts.forEach(district => {\r\n result.push({ label: district.Name, id: district.DistrictId })\r\n })\r\n }\r\n }\r\n setDistrictToDisplayOptions(result);\r\n }\r\n\r\n let getCategoryOptions = () => {\r\n let result = [];\r\n categories.filter(item => item?.Type == \"LegalPerson\").forEach(category => {\r\n result.push({ label: category.Name, id: category.CategoryId, type: category?.Type })\r\n })\r\n setCategoryOptions(result);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n add\r\n \r\n \r\n \r\n Création d'un nouveau panéliste\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, LastName: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"LastName\"\r\n value={panelist?.LastName}\r\n validators={[\"required\"]}\r\n errorMessages={[\"Le nom de l'entreprise est recquis\"]}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, BirthDate: date } });\r\n }}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 8)\r\n }}\r\n onChange={(e) => {\r\n setPanelist(prevState => { return { ...prevState, PhoneNumber1: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"PhoneNumber1\"\r\n value={panelist?.PhoneNumber1}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 8)\r\n }}\r\n onChange={(e) => {\r\n setPanelist(prevState => { return { ...prevState, PhoneNumber2: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"PhoneNumber2\"\r\n value={panelist?.PhoneNumber2}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, Email: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"Email\"\r\n value={panelist?.Email}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelist(prevState => { return { ...prevState, EmployeesCount: e.target?.value } });\r\n }}\r\n type=\"number\"\r\n name=\"EmployeesCount\"\r\n value={panelist?.EmployeesCount}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, Profession: value?.label } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n let result = [];\r\n if (value.length) {\r\n value.forEach(element => {\r\n result.push(element.id);\r\n });\r\n }\r\n setPanelist(prevState => { return { ...prevState, Category: result } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, RegionId: value?.id } });\r\n getTownToDisplayOption(value?.id);\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, TownId: value?.id } });\r\n getDistrictToDisplayOption(panelist?.RegionId, value?.id);\r\n setTownDefaultValue(townToDisplayOptions.find(o => o.id == value?.id));\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n option.label}\r\n onChange={(event, value) => {\r\n setPanelist(prevState => { return { ...prevState, DistrictId: value?.id } });\r\n setDistrictDefaultValue(districtToDisplayOptions.find(o => o.id == value?.id));\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n storePanelist: state.panelist,\r\n storePanelistCategory: state.panelistcategory,\r\n});\r\n\r\nexport default (withRouter(connect(mapStateToProps, {})(CreateLegalPersonPanellist)));","import React, { useEffect } from \"react\";\r\nimport { ThemeProvider, withStyles } from \"@material-ui/core/styles\";\r\nimport PropTypes from \"prop-types\";\r\nimport { connect } from \"react-redux\";\r\nimport { getRoleList } from \"app/redux/actions/RoleActions\";\r\nimport {\r\n getPanelistList,\r\n getPanelist,\r\n hideAlert,\r\n getRegions,\r\n importPanelistFromExcel,\r\n exportPanelistListToExcel,\r\n createPanelist,\r\n deletePanelist,\r\n} from \"app/redux/actions/PanelistActions\";\r\nimport { getCategories } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n TableHead,\r\n CircularProgress,\r\n TablePagination,\r\n Popover,\r\n Checkbox,\r\n IconButton,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { SimpleCard, Breadcrumb } from \"matx\";\r\nimport SnackbarContentWrapper from \"../alert/SnackbarContentWrapper\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport {\r\n DataGrid,\r\n GridColDef,\r\n GridApi,\r\n GridCellValue,\r\n} from \"@material-ui/data-grid\";\r\nimport CreateLegalPersonPanellist from \"./dialogs/CreateLegalPersonPanellist\";\r\nimport { Link } from \"react-router-dom\";\r\nimport DeletePanelist from \"./dialogs/DeletePanelist\";\r\nimport { Icon } from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport \"moment/locale/fr\";\r\nimport axios from \"axios\";\r\nimport { api } from \"app/services/apiHelpers\";\r\n\r\nconst useStyles2 = makeStyles((theme) => ({\r\n margin: {\r\n margin: theme.spacing(1),\r\n },\r\n popover: {\r\n pointerEvents: \"none\",\r\n },\r\n paper: {\r\n padding: theme.spacing(1),\r\n },\r\n}));\r\n\r\nfunction PanelistAsLegalPersonPage(props) {\r\n const {\r\n theme,\r\n storeUser = {},\r\n storePanelist = {},\r\n storePanelistCategory = {},\r\n getRoleList,\r\n getPanelistList,\r\n getPanelist,\r\n createPanelist,\r\n deletePanelist,\r\n importPanelistFromExcel,\r\n // exportPanelistListToExcel,\r\n getRegions,\r\n getCategories,\r\n hideAlert,\r\n } = props;\r\n\r\n const columns = [\r\n { field: \"PanelistId\", hide: true },\r\n { field: \"FirstName\", headerName: \"Prénon\", width: 220, hide: true },\r\n { field: \"LastName\", headerName: \"Nom de l'entreprise\", flex: 0.1 },\r\n {\r\n field: \"age\",\r\n headerName: \"Date de création\",\r\n flex: 0.1,\r\n valueGetter: (params) =>\r\n moment(`${params.getValue(\"BirthDate\")}`).format(\"Do MMMM YYYY\"),\r\n },\r\n { field: \"PhoneNumber1\", headerName: \"Téléphone\", flex: 0.1 },\r\n { field: \"Email\", headerName: \"Email\", flex: 0.1 },\r\n {\r\n field: \"update\",\r\n headerName: \" \",\r\n sortable: false,\r\n flex: 0.1,\r\n disableClickEventBubbling: true,\r\n renderCell: (params) => {\r\n let id = false;\r\n params.api\r\n .getAllColumns()\r\n .map((c) => c.field)\r\n .filter((c) => c !== \"__check__\" && !!c)\r\n .forEach((f) => {\r\n if (f == \"PanelistId\") {\r\n id = params.getValue(f);\r\n }\r\n });\r\n return (\r\n \r\n {permissions.some((item) => item == \"AllowedToUpdatePanelist\") && (\r\n \r\n edit\r\n \r\n )}\r\n \r\n );\r\n },\r\n },\r\n {\r\n field: \"delete\",\r\n headerName: \" \",\r\n sortable: false,\r\n flex: 0.1,\r\n disableClickEventBubbling: true,\r\n renderCell: (params) => {\r\n let id = false;\r\n params.api\r\n .getAllColumns()\r\n .map((c) => c.field)\r\n .filter((c) => c !== \"__check__\" && !!c)\r\n .forEach((f) => {\r\n if (f == \"PanelistId\") {\r\n id = params.getValue(f);\r\n }\r\n });\r\n return (\r\n \r\n {permissions.some((item) => item == \"AllowedToDeletePanelist\") && (\r\n p.PanelistId == id)}\r\n />\r\n )}\r\n \r\n );\r\n },\r\n },\r\n ];\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const classes = useStyles2();\r\n const [regionList, setRegionList] = React.useState([]);\r\n const [categories, setCategories] = React.useState([]);\r\n const [permissions, setPermissions] = React.useState([]);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n const [panelistList, setPanelistList] = React.useState([]);\r\n const [initialPanelistList, setInitialPanelistList] = React.useState([]);\r\n const importInputRef = React.useRef();\r\n const [showSearch, setShowSearch] = React.useState(false);\r\n const [filteredObjects, setFilteredObjects] = React.useState([]);\r\n const [searchValue, setSearchValue] = React.useState(\"\");\r\n\r\n useEffect(() => {\r\n if (storePanelist.panelistAsLegalPersonList.length == 0) {\r\n getPanelistList().then((response) => {\r\n if (response) {\r\n setPanelistList(response.filter((p) => p.Type == \"LegalPerson\"));\r\n setInitialPanelistList(\r\n response.filter((p) => p.Type == \"LegalPerson\")\r\n );\r\n console.log(\"legalPerson\", panelistList);\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n } else if (storePanelist.regionList.length == 0) {\r\n getRegions().then((response) => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n });\r\n }\r\n if (\r\n storePanelistCategory.categories &&\r\n storePanelistCategory.categories.length == 0\r\n ) {\r\n getCategories().then((response) => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n });\r\n } else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n }\r\n });\r\n } else if (storePanelist.panelistAsLegalPersonList.length > 0) {\r\n setPanelistList(storePanelist.panelistAsLegalPersonList);\r\n setInitialPanelistList(storePanelist.panelistAsLegalPersonList);\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n } else if (storePanelist.regionList.length == 0) {\r\n getRegions().then((response) => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n });\r\n }\r\n if (\r\n storePanelistCategory.categories &&\r\n storePanelistCategory.categories.length == 0\r\n ) {\r\n getCategories().then((response) => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n });\r\n } else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n console.log(\"liste des panelistes\", panelistList);\r\n }, [panelistList]);\r\n\r\n useEffect(() => {\r\n if (\r\n storeUser.currentUser.Permissions &&\r\n storeUser.currentUser.Permissions != permissions\r\n ) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n }, [storeUser]);\r\n\r\n useEffect(() => {\r\n if (storePanelist.showAlert) {\r\n setMessage(storePanelist.alertMessage);\r\n setOpen(true);\r\n setTimeout(() => {\r\n hideAlert();\r\n }, 15000);\r\n }\r\n // if (panelistList.length > 0 && storePanelist.panelistAsLegalPersonList) {\r\n // if (!(Object.keys(storePanelist.panelistAsLegalPersonList).length === Object.keys(panelistList).length\r\n // && Object.keys(storePanelist.panelistAsLegalPersonList).every(p => storePanelist.panelistAsLegalPersonList[p] === panelistList[p]))) {\r\n // setPanelistList(storePanelist.panelistAsLegalPersonList);\r\n // }\r\n // }\r\n }, [storePanelist]);\r\n\r\n const handleClose = (event) => {\r\n setOpen(false);\r\n hideAlert();\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n const handleImportPanelist = (e) => {\r\n // setSelectedFile(e.target.files[0])\r\n importPanelistFromExcel(e.target.files[0], \"LegalPerson\").then(\r\n (response) => {\r\n if (response.Success) {\r\n setPanelistList(response.PanelistList);\r\n setInitialPanelistList(response.PanelistList);\r\n // setSelectedFile(undefined)\r\n }\r\n }\r\n );\r\n };\r\n\r\n const handleCreatePanelist = (panelist) => {\r\n return new Promise((resolve, reject) => {\r\n createPanelist(panelist).then((data) => {\r\n if (data.Success) {\r\n setPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"LegalPerson\")\r\n );\r\n setInitialPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"LegalPerson\")\r\n );\r\n }\r\n resolve(data);\r\n });\r\n });\r\n };\r\n\r\n const handleDeletePanelist = (panelistId) => {\r\n return new Promise((resolve, reject) => {\r\n deletePanelist(panelistId).then((data) => {\r\n if (data.Success) {\r\n setPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"LegalPerson\")\r\n );\r\n setInitialPanelistList(\r\n data.PanelistList.filter((p) => p.Type == \"LegalPerson\")\r\n );\r\n }\r\n resolve(data);\r\n });\r\n });\r\n };\r\n\r\n const exportPanelistListToExcel = async (type) => {\r\n const a = window.document.createElement(\"a\");\r\n a.href = `${api}` + \"panelist/export/\" + type;\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n const handleClick = (event) => {\r\n setShowSearch((current) => !current);\r\n };\r\n const SearchItems = (searchTerm) => {\r\n setSearchValue(searchTerm);\r\n let result = [];\r\n if (\r\n initialPanelistList.filter((p) =>\r\n p.LastName.toLowerCase().includes(searchTerm.toLowerCase())\r\n ).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.LastName.toLowerCase().includes(searchTerm.toLowerCase())\r\n )\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) =>\r\n p.Email.toLowerCase().includes(searchTerm.toLowerCase())\r\n ).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.Email.toLowerCase().includes(searchTerm.toLowerCase())\r\n )\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) => p.PhoneNumber1.includes(searchTerm))\r\n .length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) =>\r\n p.PhoneNumber1.includes(searchTerm)\r\n )\r\n );\r\n }\r\n if (\r\n initialPanelistList.filter((p) => p.BirthDate.includes(searchTerm)).length\r\n ) {\r\n result.push(\r\n ...initialPanelistList.filter((p) => p.BirthDate.includes(searchTerm))\r\n );\r\n }\r\n const panelistUniqueByKey = [\r\n ...new Map(result.map((item) => [item[\"PanelistId\"], item])).values(),\r\n ];\r\n setPanelistList(panelistUniqueByKey);\r\n };\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n \r\n \r\n
\r\n ) : (\r\n <>\r\n {storePanelist.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n <>\r\n \r\n search\r\n \r\n {permissions.some(\r\n (item) => item == \"AllowedToCreatePanelist\"\r\n ) && (\r\n \r\n )}\r\n {permissions.some(\r\n (item) => item == \"AllowedToImportPanelist\"\r\n ) && (\r\n <>\r\n handleImportPanelist(e)}\r\n ref={importInputRef}\r\n />\r\n \r\n \r\n )}\r\n {\r\n exportPanelistListToExcel(\"LegalPerson\");\r\n }}\r\n >\r\n file_download\r\n \r\n \r\n \r\n }\r\n >\r\n {showSearch && (\r\n {\r\n if (e.target.value != \"\") {\r\n SearchItems(e.target.value);\r\n } else if (e.target.value == \"\") {\r\n setPanelistList(initialPanelistList);\r\n }\r\n }}\r\n onBlur={(e) => {\r\n if (e.target.value == \"\") {\r\n setShowSearch(false);\r\n setPanelistList(initialPanelistList);\r\n }\r\n }}\r\n fullWidth\r\n />\r\n )}\r\n \r\n \r\n \r\n Nom\r\n Email \r\n Téléphone\r\n \r\n Date de création\r\n \r\n \r\n \r\n \r\n \r\n \r\n {panelistList\r\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\r\n .map((panelist, index) => (\r\n \r\n {panelist.LastName}\r\n {panelist.Email}\r\n {panelist.PhoneNumber1} \r\n \r\n {moment(panelist.BirthDate).format(\"Do MMMM YYYY\")}\r\n \r\n \r\n {permissions.some(\r\n (item) => item == \"AllowedToUpdatePanelist\"\r\n ) && (\r\n
\r\n \r\n edit\r\n \r\n
\r\n )}\r\n
\r\n \r\n {permissions.some(\r\n (item) => item == \"AllowedToDeletePanelist\"\r\n ) && (\r\n \r\n )}\r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nPanelistAsLegalPersonPage.propTypes = {\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelist: PropTypes.object.isRequired,\r\n storeUser: PropTypes.object.isRequired,\r\n storePanelistCategory: PropTypes.object.isRequired,\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n getPanelist: PropTypes.func.isRequired,\r\n createPanelist: PropTypes.func.isRequired,\r\n deletePanelist: PropTypes.func.isRequired,\r\n getPanelistList: PropTypes.func.isRequired, //\r\n importPanelistFromExcel: PropTypes.func.isRequired,\r\n // exportPanelistListToExcel: PropTypes.func.isRequired,\r\n getRoleList: PropTypes.func.isRequired,\r\n getRegions: PropTypes.func.isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n storePanelist: state.panelist,\r\n storeUser: state.user,\r\n storePanelistCategory: state.panelistcategory,\r\n});\r\nexport default withStyles(\r\n {},\r\n { withTheme: true }\r\n)(\r\n connect(mapStateToProps, {\r\n getCategories,\r\n getRegions,\r\n getPanelistList,\r\n importPanelistFromExcel,\r\n // exportPanelistListToExcel,\r\n getRoleList,\r\n getPanelist,\r\n createPanelist,\r\n deletePanelist,\r\n hideAlert,\r\n })(PanelistAsLegalPersonPage)\r\n);\r\n","import React, { useEffect } from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Grid, CircularProgress, Icon, TextField } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { createGroup } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport guid from \"guid\";\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction CreatePanelistGroup(props) {\r\n const {\r\n theme,\r\n disabled = false,\r\n storePanelistGroup = {},\r\n panelistIdList = [],\r\n panelistGroupOptions = [],\r\n storeUser = {},\r\n createGroup,\r\n getUsertList,\r\n hideAddedAlert,\r\n } = props;\r\n\r\n // Les variables en state\r\n const [open, setOpen] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [panelistgroup, setPanelistgroup] = React.useState(\r\n {\r\n PanelistGroupId: \"\",\r\n Name: \"\",\r\n Description: \"\",\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n console.log(\"panelistGroupOptions\", panelistGroupOptions);\r\n }, [panelistGroupOptions])\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSave = event => {\r\n let request = {\r\n Name: panelistgroup.Name,\r\n Description: panelistgroup.Description,\r\n PanelistGroupId: panelistgroup.PanelistGroupId,\r\n Author: storeUser.currentUser.User.FirstName + \" \" + storeUser.currentUser.User.LastName,\r\n PanelistIds: panelistIdList\r\n }\r\n handleSubmit(request);\r\n }\r\n\r\n let handleSubmit = value => {\r\n createGroup(value).then(data => {\r\n if (data.Success) {\r\n setPanelistgroup({ PanelistGroupId: \"\", Name: \"\", Description: \"\" });\r\n }\r\n handleClose();\r\n });\r\n };\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n add\r\n \r\n \r\n \r\n {panelistgroup.PanelistGroupId == \"other\" ? \"Création d'un nouveau groupe\" : \"Mise à jour d'un groupe\"}\r\n \r\n \r\n null}\r\n style={{ marginTop: \"10px\" }}\r\n >\r\n \r\n \r\n option.label}\r\n onChange={(e, value) => {\r\n setPanelistgroup(prevState => { return { ...prevState, PanelistGroupId: value?.id } });\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n {panelistgroup.PanelistGroupId == \"other\" && (\r\n <>\r\n \r\n {\r\n setPanelistgroup(prevState => { return { ...prevState, Name: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={panelistgroup?.Name}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setPanelistgroup(prevState => { return { ...prevState, Description: e.target?.value } });\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={panelistgroup?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n createGroup: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { createGroup })(CreatePanelistGroup))\r\n);","import React, { useEffect } from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Checkbox, IconButton, Button, Icon, Grid, CircularProgress, FormControlLabel, TextField, Table, TableBody, TableCell, TableRow, TableHead, TablePagination } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes, { any } from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { getPanelistList, getRegions } from \"app/redux/actions/PanelistActions\";\r\nimport { getGroupList, hideAlert } from \"app/redux/actions/PanelistGroupActions\";\r\nimport { getCategories, } from \"app/redux/actions/PanelistCategoryActions\";\r\nimport _, { all, result, without } from 'underscore';\r\nimport moment from 'moment';\r\nimport CreatePanelistGroup from \"./dialogs/CreatePanelistGroup\";\r\nimport { Autocomplete, createFilterOptions } from \"@material-ui/lab\";\r\nimport RadioGroup from \"@material-ui/core/RadioGroup\";\r\nimport Radio from \"@material-ui/core/Radio\";\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport { DataGrid, GridColDef, GridApi, GridCellValue } from '@material-ui/data-grid';\r\nimport { createGroup } from \"app/redux/actions/PanelistGroupActions\";\r\n\r\n\r\nfunction PanelistAdvancedSearchPage(props) {\r\n const {\r\n theme,\r\n storePanelist = {},\r\n storePanelistCategory = {},\r\n storeUser = {},\r\n storePanelistGroup = {},\r\n getPanelistList,\r\n getCategories,\r\n getRegions,\r\n getGroupList,\r\n getUsertList,\r\n hideAddedAlert,\r\n } = props;\r\n\r\n const panelistAsLegalPersonColumns = [\r\n { field: 'PanelistId', hide: true },\r\n { field: 'FirstName', headerName: 'Prénon', width: 220, hide: true },\r\n { field: 'LastName', headerName: \"Nom de l'entreprise\", width: 280 },\r\n {\r\n field: 'age',\r\n headerName: 'Date de création',\r\n width: 220,\r\n valueGetter: (params) =>\r\n moment(`${params.getValue('BirthDate')}`).format('Do MMMM YYYY')\r\n },\r\n { field: 'PhoneNumber1', headerName: 'Téléphone', width: 200 },\r\n { field: 'Email', headerName: 'Email', width: 220 },\r\n\r\n ];\r\n\r\n const panelistAsNaturalPersonColumns = [\r\n { field: 'PanelistId', hide: true },\r\n { field: 'FirstName', headerName: 'Prénon', width: 220 },\r\n { field: 'LastName', headerName: 'Nom', width: 220 },\r\n {\r\n field: 'age',\r\n headerName: 'Date de naissance',\r\n width: 200,\r\n valueGetter: (params) =>\r\n moment(`${params.getValue('BirthDate')}`).format('Do MMMM YYYY')\r\n },\r\n {\r\n field: 'Gender',\r\n headerName: 'Sexe',\r\n width: 140,\r\n renderCell: (params) => {\r\n let displayName = \"\";\r\n params.api.getAllColumns()\r\n .map((c) => c.field)\r\n .filter((c) => c !== \"__check__\" && !!c).forEach((f) => {\r\n if (f == \"Gender\") {\r\n if (params.getValue(f) == \"Male\") {\r\n displayName = \"Masculin\"\r\n }\r\n else {\r\n displayName = \"Féminin\"\r\n }\r\n }\r\n\r\n });\r\n return (\r\n
\r\n {displayName}\r\n
\r\n );\r\n }\r\n },\r\n { field: 'PhoneNumber1', headerName: 'Téléphone', width: 160 }\r\n ];\r\n\r\n\r\n const [allChecked, setAllChecked] = React.useState(false);\r\n const [isResetting, setIsResetting] = React.useState(false);\r\n const [isSearching, setIsSearching] = React.useState(false);\r\n const [isLoading, setIsLoading] = React.useState(false);\r\n const [panelistList, setPanelistList] = React.useState([]);\r\n const [panelistGroupList, setPanelistGroupList] = React.useState([]);\r\n const [selectedPanelist, setSelectedPanelist] = React.useState([]);\r\n const [filteredPanelist, setFilteredPanelist] = React.useState([]); // \r\n const [currentUserPermissions, setCurrentUserPermissions] = React.useState([]);\r\n const [categories, setCategories] = React.useState([]);\r\n const [regionList, setRegionList] = React.useState([]);\r\n const [advancedSearchTermOptions, setAdvancedSearchTermOptions] = React.useState([]);\r\n const [categoryOptions, setCategoryOptions] = React.useState([]);\r\n const [townToDisplayOptions, setTownToDisplayOptions] = React.useState([]);\r\n const [districtToDisplayOptions, setDistrictToDisplayOptions] = React.useState([]);\r\n const [districtDefaultValue, setDistrictDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [townDefaultValue, setTownDefaultValue] = React.useState({ label: \"\", id: \"\" });\r\n const [regionOptions, setRegionOptions] = React.useState([]);\r\n const [panelistGroupOptions, setPanelistGroupOptions] = React.useState([{ label: \"Autre\", id: \"other\" }]);\r\n const [panelistType, setPanelistType] = React.useState({ key: \"Type\", value1: \"NaturalPerson\", value2: \"\" });\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [page, setPage] = React.useState(0);\r\n\r\n const [advancedSearchLineItems, setAdvancedSearchLineItems] = React.useState(\r\n [\r\n { key: \"\", value1: \"\", value2: \"\", label: \"\" }\r\n ]);\r\n\r\n const [columns, setColumns] = React.useState([]);\r\n // const [, ] = React.useState([]); \r\n\r\n useEffect(() => {\r\n console.log(\"selectedPanelist\", selectedPanelist);\r\n }, [selectedPanelist])\r\n\r\n useEffect(() => {\r\n if (storePanelist.panelistList.length == 0) {\r\n setIsLoading(true);\r\n getPanelistList().then(response => {\r\n if (response) {\r\n setPanelistList(response);\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n }\r\n else if (storePanelist.regionList.length == 0) {\r\n getRegions().then(response => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n })\r\n }\r\n if (storePanelistCategory.categories && storePanelistCategory.categories.length == 0) {\r\n getCategories().then(response => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n })\r\n }\r\n else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n if (storePanelistGroup.panelistGroupList && storePanelistGroup.panelistGroupList.length == 0) {\r\n getGroupList().then(response => {\r\n if (response) {\r\n setPanelistGroupList(response);\r\n }\r\n })\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0) {\r\n setPanelistGroupList(storePanelistGroup.panelistGroupList);\r\n }\r\n }\r\n setIsLoading(false);\r\n });\r\n }\r\n else if (storePanelist.panelistList.length > 0) {\r\n setPanelistList(storePanelist.panelistList);\r\n setIsLoading(false);\r\n if (storePanelist.regionList.length > 0) {\r\n setRegionList(storePanelist.regionList);\r\n }\r\n else if (storePanelist.regionList.length == 0) {\r\n getRegions().then(response => {\r\n if (response && response.Regions) {\r\n setRegionList(response.Regions);\r\n }\r\n })\r\n }\r\n if (storePanelistCategory.categories && storePanelistCategory.categories.length == 0) {\r\n getCategories().then(response => {\r\n if (response) {\r\n setCategories(response);\r\n }\r\n })\r\n }\r\n else if (storePanelistCategory.categories.length > 0) {\r\n setCategories(storePanelistCategory.categories);\r\n }\r\n if (storePanelistGroup.panelistGroupList && storePanelistGroup.panelistGroupList.length == 0) {\r\n getGroupList().then(response => {\r\n if (response) {\r\n setPanelistGroupList(response);\r\n }\r\n })\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0) {\r\n setPanelistGroupList(storePanelistGroup.panelistGroupList);\r\n }\r\n }\r\n getAdvancedSearchTermOptions(storePanelist.advancedSearchTermList);\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (panelistList.length > 0 && storePanelist.panelistList) {\r\n if (!(Object.keys(storePanelist.panelistList).length === Object.keys(panelistList).length\r\n && Object.keys(storePanelist.panelistList).every(p => storePanelist.panelistList[p] === panelistList[p]))) {\r\n setPanelistList(storePanelist.panelistList);\r\n }\r\n }\r\n }, [storePanelist])\r\n\r\n useEffect(() => {\r\n if (storeUser.currentUser.Permissions && currentUserPermissions.length == 0) {\r\n setCurrentUserPermissions(storeUser.currentUser.Permissions);\r\n }\r\n }, [storeUser])\r\n\r\n useEffect(() => {\r\n if (isResetting) {\r\n setIsResetting(false);\r\n }\r\n console.log(\"advanced\", advancedSearchLineItems);\r\n }, [advancedSearchLineItems])\r\n\r\n useEffect(() => {\r\n if (categories && categories.length) {\r\n getCategoryOptions();\r\n }\r\n }, [categories])\r\n\r\n useEffect(() => {\r\n if (panelistGroupList && panelistGroupList.length) {\r\n getPanelistGroupOptions();\r\n }\r\n }, [panelistGroupList])\r\n\r\n useEffect(() => {\r\n if (regionList && regionList.length) {\r\n getRegionOption();\r\n }\r\n }, [regionList])\r\n\r\n useEffect(() => {\r\n if (panelistType) {\r\n setIsSearching(true);\r\n setAllChecked(false);\r\n setAdvancedSearchLineItems([{ key: \"\", value1: \"\", value2: \"\", label: \"\" }]);\r\n if (panelistType.value1 == \"LegalPerson\") {\r\n setColumns(panelistAsLegalPersonColumns);\r\n setFilteredPanelist(panelistList.filter(p => p.Type == \"LegalPerson\"));\r\n }\r\n else {\r\n setColumns(panelistAsNaturalPersonColumns);\r\n setFilteredPanelist(panelistList.filter(p => p.Type == \"NaturalPerson\"));\r\n }\r\n setTimeout(() => {\r\n setIsSearching(false);\r\n }, 300);\r\n }\r\n }, [panelistType])\r\n\r\n useEffect(() => {\r\n if (townToDisplayOptions && townToDisplayOptions.length) {\r\n if (advancedSearchLineItems.some(term => term.key == \"TownName\")) {\r\n let newArray = [...advancedSearchLineItems];\r\n let regionLine = newArray.find(term => term.key == \"RegionName\");\r\n let townLine = newArray.find(term => term.key == \"TownName\");\r\n let townLineIndex = newArray.findIndex(term => term.key == \"TownName\");\r\n newArray[townLineIndex] = { key: townLine.key, value1: townToDisplayOptions[0].label, value2: townToDisplayOptions[0].id, label: townLine.label };\r\n setAdvancedSearchLineItems(newArray);\r\n if (regionLine) {\r\n getDistrictToDisplayOption(regionLine.value2, townToDisplayOptions[0].id);\r\n }\r\n }\r\n }\r\n }, [townToDisplayOptions])\r\n\r\n useEffect(() => {\r\n if (districtToDisplayOptions && districtToDisplayOptions.length) {\r\n if (advancedSearchLineItems.some(term => term.key == \"DistictName\")) {\r\n let newArray = [...advancedSearchLineItems];\r\n let districtLine = newArray.find(term => term.key == \"DistictName\");\r\n let districtLineIndex = newArray.findIndex(term => term.key == \"DistictName\");\r\n newArray[districtLineIndex] = { key: districtLine.key, value1: districtToDisplayOptions[0].label, value2: districtToDisplayOptions[0].id, label: districtLine.label };\r\n setAdvancedSearchLineItems(newArray);\r\n }\r\n }\r\n }, [districtToDisplayOptions])\r\n\r\n let getAdvancedSearchTermOptions = (value) => {\r\n if (value && value.length > 0) {\r\n let result = [];\r\n value.forEach(element => {\r\n if (element.value == \"TownName\" || element.value == \"DistictName\") {\r\n result.push({ label: element.key, key: element.value });\r\n }\r\n else {\r\n result.push({ label: element.key, key: element.value });\r\n }\r\n });\r\n setAdvancedSearchTermOptions(result);\r\n }\r\n };\r\n\r\n let handleReset = () => {\r\n setAdvancedSearchLineItems({ key: \"\", value1: \"\", value2: \"\" });\r\n }\r\n\r\n let handleSubmit = () => {\r\n let panelistListCopy = panelistList;\r\n let filteredResult = panelistListCopy.filter(p => p.Type == panelistType.value1);\r\n let newArray = [...advancedSearchLineItems].filter(term => term.key != \"\" && term.value1 != \"\");\r\n newArray.forEach(element => {\r\n var res = filteredResult.filter((item) => {\r\n if (element.key == \"BirthDate\") {\r\n return Object.entries(item).some(([key, value]) =>\r\n key == element.key &&\r\n value != null &&\r\n moment(element.value1 + \"-01-01\").isSameOrBefore(value, 'year') &&\r\n moment(element.value2 + \"-01-01\").isSameOrAfter(value, 'year')\r\n );\r\n }\r\n else if (element.key == \"RegionName\" || element.key == \"TownName\" || element.key == \"DistictName\") {\r\n return Object.entries(item).some(([key, value]) =>\r\n (key == \"RegionId\" || key == \"TownId\" || key == \"DistrictId\")\r\n && value != null && value.toString().includes(element.value2));\r\n }\r\n else if (element.key == \"PhoneNumber1\" || element.key == \"PhoneNumber2\") {\r\n return Object.entries(item).some(([key, value]) =>\r\n (key == \"PhoneNumber1\" || key == \"PhoneNumber2\")\r\n && value != null && value.toString().startsWith(element.value1)); // \r\n }\r\n else if (element.key == \"EmployeesCount\") {\r\n return Object.entries(item).some(([key, value]) =>\r\n (key == \"EmployeesCount\")\r\n && value != null && parseInt(value) >= parseInt(element.value1) && parseInt(value) <= parseInt(element.value2));\r\n }\r\n else if (element.key == \"Category\") {\r\n return Object.entries(item).some(([key, value]) =>\r\n (key == \"Categories\")\r\n && value?.some(cat => cat.CategoryId == element.value1)\r\n );\r\n }\r\n else {\r\n console.log(\"advance search\", item);\r\n return Object.entries(item).some(([key, value]) => key == element.key && value != null && value.toString().includes(element.value1));\r\n }\r\n });\r\n filteredResult = res;\r\n });\r\n setFilteredPanelist(filteredResult);\r\n }\r\n\r\n let handleAddSearchTerm = () => {\r\n setAdvancedSearchLineItems([...advancedSearchLineItems, { key: \"\", value1: \"\", value2: \"\" }]);\r\n }\r\n\r\n let getCategoryOptions = () => {\r\n let result = [];\r\n categories.forEach(category => {\r\n result.push({ label: category.Name, id: category.CategoryId, type: category?.Type })\r\n })\r\n setCategoryOptions(result);\r\n }\r\n\r\n let getTownToDisplayOption = (regionId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n region.Towns.forEach(town => {\r\n result.push({ label: town.Name, id: town.TownId, regionId: regionId })\r\n })\r\n }\r\n setTownToDisplayOptions(result);\r\n }\r\n\r\n let getDistrictToDisplayOption = (regionId, townId) => {\r\n let result = [];\r\n let region = regionList.find(r => r.RegionId == regionId);\r\n if (region != null && region.Towns != null && region.Towns.length) {\r\n let town = region.Towns.find(t => t.TownId == townId);\r\n if (town != null && town.Districts != null && town.Districts.length) {\r\n town.Districts.forEach(district => {\r\n result.push({ label: district.Name, id: district.DistrictId })\r\n })\r\n }\r\n }\r\n setDistrictToDisplayOptions(result);\r\n }\r\n\r\n let getRegionOption = () => {\r\n let result = [];\r\n regionList.forEach(region => {\r\n result.push({ label: region.Name, id: region.RegionId })\r\n })\r\n setRegionOptions(result);\r\n }\r\n\r\n let getPanelistGroupOptions = () => {\r\n let result = [{ label: \"Autre\", id: \"other\" }];\r\n panelistGroupList.forEach(group => {\r\n result.push({ label: group.Name, id: group.PanelistGroupId });\r\n })\r\n setPanelistGroupOptions(result);\r\n }\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(+event.target.value);\r\n };\r\n\r\n let refreshPage = () => {\r\n window.location.reload(false);\r\n };\r\n\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n \r\n line.key == \"\" || line.value1 == \"\")}\r\n >\r\n add\r\n }\r\n >\r\n
\r\n null}>\r\n \r\n \r\n {\r\n setPanelistType(prevState => { return { ...prevState, value1: e.target?.value } });\r\n setSelectedPanelist([]);\r\n // refreshPage();\r\n }}\r\n row\r\n >\r\n }\r\n label=\"Personne physique\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"Personne morale\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n\r\n {advancedSearchLineItems.map((searchItem, index) => (\r\n <>\r\n \r\n option.label}\r\n getOptionDisabled={option => {\r\n if (option.key == \"TownName\" && !advancedSearchLineItems.some(t => t.key == \"RegionName\")) {\r\n return true;\r\n }\r\n else if (option.key == \"DistictName\" && (!advancedSearchLineItems.some(t => t.key == \"TownName\"))) {\r\n return true;\r\n }\r\n else if (panelistType.value1 == \"LegalPerson\" && (option.key == \"EducationLevel\"\r\n || option.key == \"Income\"\r\n || option.key == \"Gender\"\r\n || option.key == \"FirstName\"\r\n || option.key == \"Type\"\r\n || option.key == \"Profession\")) {\r\n\r\n return true;\r\n }\r\n else if (panelistType.value1 == \"NaturalPerson\" && (option.key == \"EmployeesCount\" || option.key == \"Type\")) {\r\n return true;\r\n }\r\n else {\r\n return option.key != searchItem.key && advancedSearchLineItems.some(t => t.key == option.key);\r\n }\r\n\r\n }}\r\n onChange={(event, value) => {\r\n let newArray = [...advancedSearchLineItems];\r\n newArray[index] = { key: value?.key, value1: \"\", value2: \"\", label: value?.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n {(searchItem.key == \"PhoneNumber1\" || searchItem.key == \"PhoneNumber2\") ? (\r\n <>\r\n \r\n {\r\n e.target.value = Math.max(0, parseInt(e.target.value)).toString().slice(0, 8)\r\n }}\r\n onChange={(event) => {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: event.target?.value, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n disabled={searchItem.key === \"\"}\r\n fullWidth\r\n />\r\n \r\n \r\n ) : searchItem.key == \"Email\" ?\r\n (\r\n <>\r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: event.target?.value, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n disabled={searchItem.key === \"\"}\r\n validators={[\"isEmail\"]}\r\n errorMessages={[\"l'email est incorrecte\"]}\r\n fullWidth\r\n />\r\n \r\n \r\n )\r\n : (searchItem.key == \"FirstName\" || searchItem.key == \"LastName\") ?\r\n (\r\n <>\r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: event.target?.value, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n disabled={advancedSearchLineItems.some(line => line.key === \"\")}\r\n fullWidth\r\n />\r\n \r\n\r\n \r\n ) : searchItem.key == \"BirthDate\" ?\r\n (\r\n <>\r\n \r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: moment(date).format(\"YYYY\"), value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: currentValue.value1, value2: moment(date).format(\"YYYY\"), label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\"\r\n }}\r\n />\r\n \r\n \r\n \r\n ) : searchItem.key == \"Gender\" ?\r\n (\r\n <>\r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: e.target?.value, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n row\r\n >\r\n }\r\n label=\"Masculin\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"Féminin\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n\r\n \r\n ) : (searchItem.key == \"Income\" || searchItem.key == \"EducationLevel\" || searchItem.key == \"Profession\") ?\r\n (\r\n <>\r\n \r\n option.label}\r\n onChange={(e, value) => {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: value.label, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n // defaultValue={{ label: this.state.lineItem.value }}\r\n // onChange={(event, value) => this.SelectListChange(event, value, \"Income\")}\r\n // onBlur={this.fieldHandleBlur}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n\r\n \r\n ) : searchItem.key == \"Category\" ?\r\n (\r\n <>\r\n \r\n item.type == \"NaturalPerson\") : categoryOptions?.filter(item => item.type == \"LegalPerson\")}\r\n getOptionLabel={option => option.label}\r\n onChange={(e, value) => {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: value.id, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n\r\n \r\n ) : searchItem.key == \"EmployeesCount\" ?\r\n (\r\n <>\r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: event.target?.value, value2: currentValue.value2, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n disabled={searchItem.key === \"\"}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue.key, value1: currentValue.value1, value2: event.target?.value, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n }}\r\n disabled={searchItem.key === \"\"}\r\n fullWidth\r\n />\r\n \r\n \r\n )\r\n\r\n : (searchItem.key == \"RegionName\" || searchItem.key == \"TownName\" || searchItem.key == \"DistictName\") &&\r\n (\r\n <>\r\n \r\n option.label}\r\n onChange={(e, value) => {\r\n let newArray = [...advancedSearchLineItems];\r\n let currentValue = newArray[index];\r\n newArray[index] = { key: currentValue?.key, value1: value?.label, value2: value?.id, label: currentValue.label }\r\n setAdvancedSearchLineItems(newArray);\r\n if (searchItem.key == \"RegionName\") {\r\n getTownToDisplayOption(value?.id)\r\n }\r\n else if (searchItem.key == \"TownName\") {\r\n let regionLine = newArray.find(t => t.key == \"RegionName\");\r\n if (regionLine) {\r\n getDistrictToDisplayOption(regionLine.value2, value.id);\r\n }\r\n }\r\n\r\n }}\r\n renderInput={params => (\r\n \r\n )}\r\n />\r\n \r\n\r\n \r\n )}\r\n {searchItem.key != \"\" && (\r\n \r\n 1 ? false : true}\r\n onClick={(e) => {\r\n let newArray = [...advancedSearchLineItems];\r\n setAdvancedSearchLineItems(newArray.filter(term => term.key != searchItem.key));\r\n }}\r\n >\r\n delete\r\n \r\n \r\n )}\r\n\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n {currentUserPermissions.some(item => item == \"AllowedToCreatePanelistGroup\" || item == \"AllowedToUpdatePanelistGroup\") && (\r\n \r\n )}\r\n }\r\n >\r\n {isSearching ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n \r\n \r\n \r\n {panelistType?.value1 == \"NaturalPerson\" ?\r\n (\r\n <>\r\n \r\n 0)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n setAllChecked(val);\r\n if (val) {\r\n let result = [];\r\n filteredPanelist.forEach(p => {\r\n result.push(p.PanelistId)\r\n });\r\n setSelectedPanelist(result);\r\n }\r\n else {\r\n setSelectedPanelist([]);\r\n }\r\n\r\n }}\r\n />\r\n \r\n Prénom\r\n Nom\r\n Date de naissance \r\n Sexe\r\n Téléphone\r\n \r\n )\r\n :\r\n (\r\n <>\r\n \r\n 0)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n setAllChecked(val);\r\n if (val) {\r\n let result = [];\r\n filteredPanelist.forEach(p => {\r\n result.push(p.PanelistId)\r\n });\r\n setSelectedPanelist(result);\r\n }\r\n else {\r\n setSelectedPanelist([]);\r\n }\r\n\r\n }}\r\n />\r\n \r\n Nom\r\n Email \r\n Téléphone\r\n Date de création\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n {filteredPanelist.slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage).map((panelist, index) =>\r\n (\r\n \r\n {panelistType?.value1 == \"NaturalPerson\" ?\r\n (\r\n <>\r\n \r\n id == panelist.PanelistId)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n if (val) {\r\n let newArray = [...selectedPanelist];\r\n newArray.push(panelist.PanelistId);\r\n setSelectedPanelist(newArray);\r\n }\r\n else {\r\n let newArray = [...selectedPanelist];\r\n setSelectedPanelist(newArray.filter(id => id != panelist.PanelistId));\r\n if (allChecked) {\r\n setAllChecked(false);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n {panelist.FirstName}\r\n {panelist.LastName}\r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n {panelist.Gender == \"Male\" ? \"Masculin\" : \"Féminin\"} \r\n {panelist.PhoneNumber1} \r\n \r\n )\r\n :\r\n (\r\n <>\r\n \r\n id == panelist.PanelistId)}\r\n className=\"firstcheckbox\"\r\n onChange={(e) => {\r\n let val = e.target?.checked;\r\n if (val) {\r\n let newArray = [...selectedPanelist];\r\n newArray.push(panelist.PanelistId);\r\n setSelectedPanelist(newArray);\r\n }\r\n else {\r\n let newArray = [...selectedPanelist];\r\n setSelectedPanelist(newArray.filter(id => id != panelist.PanelistId));\r\n if (allChecked) {\r\n setAllChecked(false);\r\n }\r\n }\r\n }}\r\n />\r\n \r\n {panelist.LastName}\r\n {panelist.Email}\r\n {panelist.PhoneNumber1} \r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n \r\n )}\r\n\r\n \r\n\r\n ))\r\n }\r\n \r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => ({\r\n getPanelistList: PropTypes.func.isRequired,\r\n getRegions: PropTypes.func.isRequired, // \r\n getGroupList: PropTypes.func.isRequired,\r\n getCategories: PropTypes.func.isRequired,\r\n createGroup: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n\r\n storePanelist: state.panelist,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user,\r\n storePanelistCategory: state.panelistcategory,\r\n storePanelistGroup: state.panelistgroup\r\n\r\n});\r\nexport default (withRouter(connect(mapStateToProps,\r\n {\r\n getRegions,\r\n getPanelistList,\r\n getGroupList,\r\n createGroup,\r\n hideAlert,\r\n getCategories\r\n })(PanelistAdvancedSearchPage)));","import React from \"react\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport MuiDialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport MuiDialogContent from \"@material-ui/core/DialogContent\";\r\nimport MuiDialogActions from \"@material-ui/core/DialogActions\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport { Button, CircularProgress, Icon } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { deletePanelistFromPanelistGroup } from \"app/redux/actions/PanelistGroupActions\";\r\nimport DialogContentText from \"@material-ui/core/DialogContentText\";\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.primary.main,\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n color: \"white\",\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: \"white\"\r\n }\r\n});\r\n\r\nconst DialogTitle = withStyles(styles)(props => {\r\n const { children, classes, onClose } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n});\r\n\r\nconst DialogContent = withStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n}))(MuiDialogContent);\r\n\r\nconst DialogActions = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(1)\r\n }\r\n}))(MuiDialogActions);\r\n\r\n\r\nfunction DeletePanelistFromGroup(props) {\r\n\r\n const {\r\n storeUser = {},\r\n panelistFromGroupToDelete = {},\r\n panelistGroupId = \"\",\r\n onDeletePanelistGroup\r\n } = props;\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n\r\n\r\n\r\n let handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n let handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n let request = { PanelistGroupId: panelistGroupId, PanelistId: panelistFromGroupToDelete.PanelistId }\r\n onDeletePanelistGroup(request).then(data => {\r\n if (data.Success) {\r\n setIsSubmitting(false);\r\n handleClose();\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n delete\r\n \r\n \r\n \r\n Suppression du panéliste du groupe : {panelistFromGroupToDelete.FirstName + \" \" + panelistFromGroupToDelete.LastName}\r\n \r\n \r\n \r\n Êtes-vous sûr de vouloir supprimer ce panéliste de ce groupe ?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n deletePanelistFromPanelistGroup: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storePanelist: state.panelist\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps, { deletePanelistFromPanelistGroup })(DeletePanelistFromGroup))\r\n);","import React from \"react\";\r\nimport { Breadcrumb, SimpleCard } from \"matx\";\r\nimport { ValidatorForm, TextValidator } from \"react-material-ui-form-validator\";\r\nimport { Button, Icon, Grid, CircularProgress, LinearProgress, Table, TableBody, TableCell, TableRow, TableHead, MenuItem, Checkbox } from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport { withStyles } from \"@material-ui/core/styles\"\r\nimport PropTypes from \"prop-types\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport SnackbarContentWrapper from \"../panelists/alert/SnackbarContentWrapper\";\r\nimport Snackbar from \"@material-ui/core/Snackbar\";\r\nimport _, { without } from 'underscore';\r\nimport { getGroupList, updateGroup, affectPanelistToUser, deletePanelistFromPanelistGroup, hideAlert } from \"app/redux/actions/PanelistGroupActions\";\r\nimport guid from \"guid\";\r\nimport moment from 'moment';\r\nimport DeletePanelistFromGroup from \"./dialog/DeletePanelistFromGroup\";\r\nimport { MatxMenu, MatxSearchBox } from \"matx\";\r\nimport { reject } from \"lodash\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport { useEffect } from \"react\";\r\n\r\n\r\nconst styles = theme => ({\r\n button: {\r\n margin: theme.spacing(1)\r\n },\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2)\r\n },\r\n closeButton: {\r\n position: \"absolute\",\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500]\r\n }\r\n});\r\n\r\nconst BorderLinearProgress = withStyles((theme) => ({\r\n root: {\r\n height: 15,\r\n borderRadius: 5,\r\n },\r\n colorPrimary: {\r\n backgroundColor: \"#EEEEEE\",\r\n },\r\n bar: {\r\n borderRadius: 5,\r\n backgroundColor: '#1a90ff',\r\n },\r\n}))(LinearProgress);\r\n\r\n\r\nfunction PanelistGroupDetail(props) {\r\n\r\n const {\r\n storeUser = {},\r\n storePanelistGroup = {},\r\n disabled = false,\r\n getGroupList,\r\n updateGroup,\r\n deletePanelistFromPanelistGroup,\r\n } = props;\r\n\r\n const [isLoading, setIsLoading] = React.useState(true);\r\n const [open, setOpen] = React.useState(false);\r\n const [snackbarOpen, setSnackbarOpen] = React.useState(false);\r\n const [showSnackbar, setShowSnackbar] = React.useState(false);\r\n const [id, setId] = React.useState(\"\");\r\n const [message, setMessage] = React.useState(\"\");\r\n const [hasMissingValue, setHasMissingValue] = React.useState(true);\r\n const [isSubmitting, setIsSubmitting] = React.useState(false);\r\n const [permissions, setPermissions] = React.useState([]);\r\n const [panelistGroupToUpdate, setPanelistGroupToUpdate] = React.useState({\r\n PanelistGroupId: \"\",\r\n Panelists: [],\r\n Name: \"\",\r\n Description: \"\"\r\n });\r\n\r\n useEffect(() => {\r\n let match = props.match;\r\n if (match != undefined) {\r\n let params = match.params;\r\n if (params != undefined && params.id != undefined) {\r\n setId(params.id);\r\n if (storePanelistGroup.panelistGroupList.length == 0 && panelistGroupToUpdate.PanelistGroupId == \"\") {\r\n getGroupList().then(response => {\r\n if (response) {\r\n let groupFromRequest = response.find(g => g.PanelistGroupId == params.id);\r\n if (groupFromRequest) {\r\n setPanelistGroupToUpdate(groupFromRequest);\r\n console.log(\"groupFromRequest\", groupFromRequest);\r\n }\r\n }\r\n })\r\n }\r\n else if (storePanelistGroup.panelistGroupList.length > 0 && panelistGroupToUpdate.PanelistGroupId == \"\") {\r\n let groupFromStore = storePanelistGroup.panelistGroupList.find(g => g.PanelistGroupId == params.id);\r\n if (groupFromStore) {\r\n setPanelistGroupToUpdate(groupFromStore);\r\n }\r\n }\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (storeUser.currentUser.Permissions) {\r\n setPermissions(storeUser.currentUser.Permissions);\r\n }\r\n if (storeUser.loading != isLoading) {\r\n setIsLoading(storeUser.loading)\r\n }\r\n }, [storeUser])\r\n\r\n useEffect(() => {\r\n if (panelistGroupToUpdate?.Name == \"\") {\r\n setHasMissingValue(true);\r\n }\r\n else {\r\n setHasMissingValue(false);\r\n\r\n }\r\n }, [panelistGroupToUpdate])\r\n\r\n let snackbarHandleClose = () => {\r\n setSnackbarOpen(false);\r\n };\r\n\r\n let handleSubmit = value => {\r\n setIsSubmitting(true);\r\n updateGroup(panelistGroupToUpdate).then(data => {\r\n if (data.Success) {\r\n setIsSubmitting(false);\r\n }\r\n });\r\n };\r\n\r\n let handleDeletePanelistFromPanelistGroup = (request) => {\r\n return new Promise((resolve, reject) => {\r\n deletePanelistFromPanelistGroup(request).then(response => {\r\n if (response.Success) {\r\n setPanelistGroupToUpdate(response.PanelistGroup);\r\n resolve(response);\r\n }\r\n })\r\n });\r\n }\r\n\r\n return (\r\n
\r\n {isLoading ? (\r\n
\r\n \r\n
\r\n ) : (\r\n <>\r\n {storePanelistGroup.showAlert && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n
\r\n null}\r\n >\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistGroupToUpdate(prevState => { return { ...prevState, Name: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Name\"\r\n value={panelistGroupToUpdate?.Name}\r\n fullWidth\r\n />\r\n \r\n\r\n \r\n \r\n {\r\n let val = e.target?.value;\r\n setPanelistGroupToUpdate(prevState => { return { ...prevState, Description: val } })\r\n }}\r\n type=\"text\"\r\n name=\"Description\"\r\n value={panelistGroupToUpdate?.Description}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {panelistGroupToUpdate?.Type == \"NaturalPerson\" ?\r\n (\r\n \r\n Prénom\r\n Nom\r\n Date de naissance\r\n Sexe\r\n Numéro de téléphone\r\n \r\n \r\n )\r\n :\r\n (\r\n \r\n Nom\r\n Email \r\n Téléphone\r\n Date de création\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {panelistGroupToUpdate?.Panelists?.map((panelist, index) => (\r\n \r\n {panelistGroupToUpdate?.Type == \"NaturalPerson\" ?\r\n (\r\n <>\r\n {panelist.FirstName}\r\n {panelist.LastName}\r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n {panelist.Gender == \"Male\" ? \"Masculin\" : \"Féminin\"} \r\n {panelist.PhoneNumber1}\r\n \r\n \r\n \r\n \r\n )\r\n :\r\n (\r\n <>\r\n {panelist.LastName}\r\n {panelist.Email}\r\n {panelist.PhoneNumber1}\r\n {moment(panelist.BirthDate).format('Do MMMM YYYY')}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n ))}\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\nconst mapStateToProps = state => ({\r\n updateGroup: PropTypes.func.isRequired,\r\n affectPanelistToUser: PropTypes.func.isRequired,\r\n deletePanelistFromPanelistGroup: PropTypes.func.isRequired,\r\n hideAlert: PropTypes.func.isRequired,\r\n getGroupList: PropTypes.func.isRequired,\r\n storePanelistGroup: state.panelistgroup,\r\n storeUser: state.user,\r\n});\r\nexport default (\r\n withRouter(connect(mapStateToProps,\r\n {\r\n getGroupList,\r\n updateGroup,\r\n affectPanelistToUser,\r\n deletePanelistFromPanelistGroup,\r\n hideAlert\r\n })(PanelistGroupDetail))\r\n);","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport clsx from \"clsx\";\r\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\r\nimport ErrorIcon from \"@material-ui/icons/Error\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport { amber, green } from \"@material-ui/core/colors\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\r\nimport WarningIcon from \"@material-ui/icons/Warning\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon\r\n};\r\n\r\nconst useStyles1 = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: green[600]\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n warning: {\r\n backgroundColor: amber[700]\r\n },\r\n icon: {\r\n fontSize: 20\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1)\r\n },\r\n message: {\r\n display: \"flex\",\r\n alignItems: \"center\"\r\n }\r\n}));\r\n\r\nfunction SnackbarContentWrapper(props) {\r\n const classes = useStyles1();\r\n const { className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n \r\n ]}\r\n {...other}\r\n />\r\n );\r\n}\r\n\r\nSnackbarContentWrapper.propTypes = {\r\n className: PropTypes.string,\r\n message: PropTypes.node,\r\n onClose: PropTypes.func,\r\n variant: PropTypes.oneOf([\"success\", \"warning\", \"error\", \"info\"]).isRequired\r\n};\r\n\r\nexport default SnackbarContentWrapper;"],"sourceRoot":""}