{"version":3,"sources":["actions/api.js","logging/Log.jsx","actions/index.js","reducers/sign_in.js","reducers/patients.js","reducers/standardreducer.js","reducers/deviceprotocols.js","reducers/sessionprotocols.js","reducers/schema.js","reducers/sessions.js","reducers/devices.js","reducers/languages.js","reducers/notification.js","reducers/eeg.js","reducers/csv.js","reducers/index.js","hocs/require_auth.jsx","components/Grid/GridContainer.jsx","components/Grid/ItemGrid.jsx","assets/jss/material-dashboard-pro-react.jsx","assets/jss/material-dashboard-pro-react/components/pricingCardStyle.jsx","components/Cards/PricingCard.jsx","assets/jss/material-dashboard-pro-react/components/buttonStyle.jsx","components/CustomButtons/Button.jsx","assets/jss/material-dashboard-pro-react/views/pricingPageStyle.jsx","views/Pages/PricingPage.jsx","assets/jss/material-dashboard-pro-react/components/loginCardStyle.jsx","components/Cards/LoginCard.jsx","assets/jss/material-dashboard-pro-react/components/customInputStyle.jsx","components/CustomInput/CustomInput.jsx","assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx","components/Typography/Danger.jsx","assets/jss/material-dashboard-pro-react/views/loginPageStyle.jsx","views/Pages/LoginPage.jsx","assets/jss/material-dashboard-pro-react/components/regularCardStyle.jsx","components/Cards/RegularCard.jsx","assets/jss/material-dashboard-pro-react/components/iconButtonStyle.jsx","components/CustomButtons/IconButton.jsx","assets/jss/material-dashboard-pro-react/components/infoStyle.jsx","components/InfoArea/InfoArea.jsx","assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx","assets/jss/material-dashboard-pro-react/views/registerPageStyle.jsx","views/Pages/RegisterPage.jsx","assets/jss/material-dashboard-pro-react/components/profileCardStyle.jsx","components/Cards/ProfileCard.jsx","assets/jss/material-dashboard-pro-react/views/lockScreenPageStyle.jsx","views/Pages/LockScreenPage.jsx","routes/pages.jsx","hocs/no_require_auth.jsx","assets/jss/material-dashboard-pro-react/components/pagesHeaderStyle.jsx","components/Header/PagesHeader.jsx","assets/jss/material-dashboard-pro-react/components/footerStyle.jsx","components/Footer/Footer.jsx","assets/jss/material-dashboard-pro-react/layouts/pagesStyle.jsx","layouts/Pages.jsx","assets/jss/material-dashboard-pro-react/components/headerLinksStyle.jsx","components/Header/HeaderLinks.jsx","assets/jss/material-dashboard-pro-react/buttonGroupStyle.jsx","assets/jss/material-dashboard-pro-react/views/buttonsStyle.jsx","molecules/AccessLevelButton.jsx","assets/jss/material-dashboard-pro-react/components/headerStyle.jsx","components/Header/Header.jsx","components/Sidebar/Sidebar.jsx","assets/jss/material-dashboard-pro-react/components/sidebarStyle.jsx","assets/jss/material-dashboard-pro-react/components/tableStyle.jsx","components/Table/Table.jsx","assets/jss/material-dashboard-pro-react/components/statsCardStyle.jsx","components/Cards/StatsCard.jsx","assets/jss/material-dashboard-pro-react/components/chartCardStyle.jsx","components/Cards/ChartCard.jsx","assets/jss/material-dashboard-pro-react/components/iconCardStyle.jsx","components/Cards/IconCard.jsx","assets/jss/material-dashboard-pro-react/components/imagePriceCardStyle.jsx","components/Cards/ImagePriceCard.jsx","assets/jss/material-dashboard-pro-react/views/dashboardStyle.jsx","views/Dashboard/Dashboard.jsx","assets/jss/material-dashboard-pro-react/components/paginationStyle.jsx","components/Pagination/Pagination.jsx","views/Components/Buttons.jsx","assets/jss/material-dashboard-pro-react/views/gridSystemStyle.jsx","views/Components/GridSystem.jsx","assets/jss/material-dashboard-pro-react/components/navPillsStyle.jsx","components/NavPills/NavPills.jsx","assets/jss/material-dashboard-pro-react/components/accordionStyle.jsx","components/Accordion/Accordion.jsx","views/Components/Panels.jsx","assets/jss/material-dashboard-pro-react/components/headingStyle.jsx","components/Heading/Heading.jsx","assets/jss/material-dashboard-pro-react/views/sweetAlertStyle.jsx","views/Components/SweetAlert.jsx","assets/jss/material-dashboard-pro-react/components/snackbarContentStyle.jsx","components/Snackbar/SnackbarContent.jsx","components/Snackbar/Snackbar.jsx","assets/jss/material-dashboard-pro-react/components/instructionStyle.jsx","components/Instruction/Instruction.jsx","assets/jss/material-dashboard-pro-react/modalStyle.jsx","assets/jss/material-dashboard-pro-react/views/notificationsStyle.jsx","views/Components/Notifications.jsx","assets/jss/material-dashboard-pro-react/views/iconsStyle.jsx","views/Components/Icons.jsx","components/Typography/Quote.jsx","components/Typography/Muted.jsx","components/Typography/Primary.jsx","components/Typography/Info.jsx","components/Typography/Success.jsx","components/Typography/Warning.jsx","views/Components/Typography.jsx","assets/jss/material-dashboard-pro-react/components/mainTableHeaderLinksStyle.jsx","components/Cards/MainTableHeaderLinks.jsx","assets/jss/material-dashboard-pro-react/components/headerCardStyle.jsx","components/Cards/HeaderCard.jsx","assets/jss/material-dashboard-pro-react/views/regularFormsStyle.jsx","views/Forms/RegularForms.jsx","assets/jss/material-dashboard-pro-react/components/customDropdownStyle.jsx","components/CustomDropdown/CustomDropdown.jsx","assets/jss/material-dashboard-pro-react/components/customLinearProgressStyle.jsx","components/CustomLinearProgress/CustomLinearProgress.jsx","components/CustomUpload/ImageUpload.jsx","assets/jss/material-dashboard-pro-react/customSelectStyle.jsx","assets/jss/material-dashboard-pro-react/views/extendedFormsStyle.jsx","views/Forms/ExtendedForms.jsx","assets/jss/material-dashboard-pro-react/views/validationFormsStyle.jsx","views/Forms/ValidationForms.jsx","assets/jss/material-dashboard-pro-react/components/wizardStyle.jsx","molecules/Wizard.jsx","components/CustomUpload/PictureUpload.jsx","views/Forms/WizardSteps/Step1.jsx","views/Forms/WizardSteps/Step2.jsx","views/Forms/WizardSteps/Step3.jsx","views/Forms/Wizard.jsx","views/Tables/RegularTables.jsx","assets/jss/material-dashboard-pro-react/views/extendedTablesStyle.jsx","views/Tables/ExtendedTables.jsx","organisms/TableCompliance.jsx","variables/general.jsx","molecules/ButtonStyled.jsx","selectors/patientSelectors.js","assets/jss/material-dashboard-pro-react/components/tasksStyle.jsx","molecules/LayoutEditPatientBasicData.jsx","reducers/utils.js","organisms/PatientEditor.jsx","molecules/MenuHomeStudyActions.jsx","ecosystems/TreatmentsMain.jsx","views/Maps/GoogleMaps.jsx","views/Maps/FullScreenMap.jsx","views/Maps/VectorMap.jsx","assets/jss/material-dashboard-pro-react/views/chartsStyle.jsx","views/Charts/Charts.jsx","views/Calendar/Calendar.jsx","components/Tasks/Tasks.jsx","assets/jss/material-dashboard-pro-react/components/tasksCardStyle.jsx","components/Cards/TasksCard.jsx","assets/jss/material-dashboard-pro-react/components/testimonialCardStyle.jsx","components/Cards/TestimonialCard.jsx","assets/jss/material-dashboard-pro-react/components/badgeStyle.jsx","components/Badge/Badge.jsx","assets/jss/material-dashboard-pro-react/components/timelineStyle.jsx","components/Timeline/Timeline.jsx","views/Widgets/Widgets.jsx","components/Clearfix/Clearfix.jsx","views/Pages/UserProfile.jsx","views/Pages/Timeline.jsx","views/Pages/RTLSupport.jsx","routes/rtl.jsx","assets/jss/material-dashboard-pro-react/layouts/rtlStyle.jsx","layouts/RTL.jsx","hocs/notifiable.jsx","molecules/CardCalendarSession.jsx","molecules/CardAgendaCalendarTimeSession.jsx","molecules/CardAgendaCalendarSession.jsx","molecules/CalendarHeader.jsx","molecules/ModalConfirmation.jsx","molecules/LayoutScheduleTreatmentSessions.jsx","molecules/AreaFileUpload.jsx","icons/NEIcons.jsx","molecules/DeviceProtocolRepresentation.jsx","molecules/LayoutSelectSessionProtocol.jsx","organisms/TreatmentSchedulerSimple.jsx","selectors/sessionSelectors.js","molecules/LayoutSessionOverview.jsx","organisms/CalendarSessions.jsx","molecules/PatientAvatar.jsx","selectors/deviceSelectors.js","molecules/DropdownStyled.jsx","organisms/PatientDeviceAssignmentMenu.jsx","ecosystems/PatientMain.jsx","organisms/HistorySessions.jsx","layouts/Dashboard.jsx","ecosystems/HistoryMain.jsx","routes/dashboard.jsx","assets/jss/material-dashboard-pro-react/layouts/dashboardStyle.jsx","routes/index.jsx","components/ErrorBoundary/ErrorBoundary.jsx","index.js","assets/img/ne-background.png","assets/img/card-2.jpeg","assets/img/card-1.jpeg","assets/img/faces/card-profile1-square.jpg","variables/charts.jsx","assets/img/image_placeholder.jpg","assets/img/placeholder.jpg","assets/img/faces/avatar.jpg","assets/img/card-3.jpeg","assets/img/default-avatar.png","assets/img/product1.jpg","assets/img/product2.jpg","assets/img/product3.jpg","assets/img/NEDevice.png","assets/img/faces/marc.jpg","assets/img/sidebar-2.jpg","assets/img/logo-white.svg","assets/img/electrode_sponstim_simple.svg","assets/img/electrode_ngpistim_simple.svg","assets/img/NE.png","assets/img/ne-icon.jpg","assets/img/flags/US.png","assets/img/flags/DE.png","assets/img/flags/AU.png","assets/img/flags/GB.png","assets/img/flags/RO.png","assets/img/flags/BR.png"],"names":["backendHost","isLocal","deploymentApiMapping","hostname","window","location","hasOwnProperty","localDeployment","BACKEND_ROOT_URL","level","message","console","log","this","generateMessage","i","_REQUESTED","_ERROR","_SUCCESS","_CLEAR","pushNotification","type","payload","notificationHidden","authenticate","email","password","Log","info","authUrl","meUrl","meConfig","dispatch","axios","post","authRes","defaults","headers","common","data","auth_token","get","meRes","userData","Object","assign","users","__handleError","deauthenticate","url","getState","__authenicateCall","getPatients","config","res","getOnePatient","patient","__fetch","id","searchPatients","searched","addPatient","code","lang","__post","editPatient","getTreatmentSessions","treatmentId","postTreatmentSession","sessionProtocolId","sessionDate","sessionPeriodStart","undefined","sessionPeriodEnd","doBatchSchedule","fullUrl","object","sessionprotocol_id","session_date","session_period_start","session_period_end","do_batch_schedule","meta","deleteTreatmentSession","sessionId","__delete","getEegLink","eegId","removeEegLink","getCsvLink","removeCsvLink","getSessionProtocols","getProtocolSchema","schema_id","init_date","clearSchemaInfo","postSessionProtocol","deviceProtocolId","name","deviceprotocol_id","getDeviceProtocol","postDeviceProtocol","xmlTemplate","xml_template","patchDeviceProtocol","patch","status","__patch","clearDeviceProtocol","getDevices","assignDeviceToPatient","patientId","deviceId","device_id","unAssignDeviceFromPatient","getLanguages","state","authenticated","currentState","authenticationState","token","error","authenticationLost","apiError","response","HttpStatus","UNAUTHORIZED","request","delete","initialState","accessLevel","isRequestingOnePatient","loadingOneByOne","fullData","isFetching","posted","deleted","keysToCamelCase","camelCaseObject","_","cloneDeep","isArray","map","isPlainObject","mapKeys","value","key","camelCase","mapValues","action","fetchActionType","postActionType","envelopeKey","otherActionTypes","indexOf","newState","isRequesting","byId","forEach","received","set","dates","show","timestamp","step","link","content","filename","rootReducer","combineReducers","fullname","title","trim","first_name","last_name","join","iconUrl","organization_icon","access_level","patients","length","allDataFull","index","findIndex","el","newPatient","patientExistsIndex","p","push","devices","patientDevice","newData","x","done","patientData","treatmentData","treatments","j","sessions","item","deviceProtocols","standardreducer","sessionProtocols","schema","scheduledDates","JSON","parse","scheduled_dates","languages","notification","eeg","csv","persistConfig","storage","blacklist","persistedReducer","persistReducer","appStore","createStore","composeWithDevTools","applyMiddleware","reduxThunk","appStorePersistor","persistStore","ComposedComponent","PortalZoneComponent","props","history","nextProps","keys","Component","connect","bindActionCreators","withStyles","grid","margin","width","classes","children","className","rest","container","padding","transition","containerFluid","paddingRight","paddingLeft","marginRight","marginLeft","display","clear","boxShadow","card","position","borderRadius","color","background","defaultFont","fontFamily","fontWeight","lineHeight","primaryBoxShadow","infoBoxShadow","successBoxShadow","warningBoxShadow","dangerBoxShadow","roseBoxShadow","orangeCardHeader","greenCardHeader","redCardHeader","blueCardHeader","purpleCardHeader","roseCardHeader","cardActions","paddingTop","borderTop","height","cardHeader","defaultBoxShadow","border","tooltip","minWidth","opacity","maxWidth","textAlign","fontSize","fontStyle","textShadow","textTransform","letterSpacing","wordBreak","wordSpacing","wordWrap","whiteSpace","lineBreak","pricingCardStyle","cardPlain","cardContent","cardTitle","marginBottom","marginTop","cardPrice","cardDescription","primary","warning","danger","success","rose","gray","white","iconWrapper","iconWrapperOnPlain","icon","top","PricingCard","price","description","plain","footer","iconColor","whitePrice","cardClasses","cx","grayColor","iconOnPlain","defaultProps","buttonStyle","button","minHeight","backgroundColor","willChange","verticalAlign","touchAction","cursor","fullWidth","defaultNoBackground","primaryNoBackground","infoNoBackground","successNoBackground","warningNoBackground","dangerNoBackground","roseNoBackground","simple","transparent","round","disabled","pointerEvents","right","float","justIcon","wd","lg","sm","xs","twitter","twitterNoBackground","facebook","facebookNoBackground","google","googleNoBackground","linkedin","linkedinNoBackground","pinterest","pinterestNoBackground","youtube","youtubeNoBackground","tumblr","tumblrNoBackground","github","githubNoBackground","behance","behanceNoBackground","dribbble","dribbbleNoBackground","reddit","redditNoBackground","customClass","size","btnClasses","pricingPageStyle","zIndex","PricingPage","justify","md","Weekend","Home","Business","AccountBalance","React","loginCardStyle","paddingBottom","transform","cardPlainHeader","cardSubtitle","inputAdornmentIcon","left","center","LoginCard","headerColor","plainCard","socials","footerAlign","customCardClass","plainCardClasses","cardPlainHeaderClasses","root","subheader","customInputStyle","backgroundSize","backgroundImage","backgroundRepeat","backgroundPosition","underline","underlineError","dangerColor","underlineSuccess","labelRoot","labelRootError","labelRootSuccess","feedback","feedbackNoLabel","input","inputNoLabel","inputRTL","inputWithAdornment","formControl","labelWithAdornment","feedbackAdorment","formControlProps","labelText","labelProps","inputProps","helpText","rtlActive","labelClasses","formControlClasses","underlineClasses","startAdornment","endAdornment","successClasses","errorClasses","aria-describedby","htmlFor","typographyStyle","defaultFontStyle","defaultHeaderMargins","quote","borderLeft","quoteText","quoteAuthor","mutedText","primaryText","infoText","successText","warningText","dangerText","loginPageStyle","customButtonClass","inputAdornment","cardHidden","LoginPage","handleSignInSubmit","setState","signInSubmitted","userTyping","onSignInButtonClicked","handleKeyPress","event","cardAnimaton","bind","onEmailChange","onPasswordChange","href","ReactGA","initialize","page","pathname","pageview","setTimeout","target","Error","onClick","renderErrorMessage","onChange","onKeyPress","compose","regularCardStyle","textDecoration","titleAlign","customCardClasses","contentAlign","subtitleAlign","customCardTitleClasses","iconButtonStyle","overflow","userSelect","noBg","buttonClasses","infoStyle","infoArea","descriptionWrapper","InfoArea","customCheckboxRadioSwitch","checkboxAndRadio","checkboxAndRadioHorizontal","checked","checkedIcon","uncheckedIcon","disabledCheckboxAndRadio","label","labelHorizontal","labelHorizontalRadioCheckbox","labelLeftHorizontal","labelError","radio","radioChecked","radioUnchecked","inlineChecks","iconCheckbox","borderWidth","borderStyle","borderColor","iconCheckboxChecked","iconCheckboxIcon","switchBarChecked","switchIcon","switchIconChecked","switchChecked","switchUnchecked","registerPageStyle","form","socialTitle","customFormControlClasses","checkboxLabelControl","checkboxLabel","RegisterPage","handleToggle","currentIndex","newChecked","splice","Timeline","Code","Group","placeholder","control","tabIndex","profileCardStyle","cardAvatar","maxHeight","img","cardFooter","subtitle","avatar","customCardAvatarClass","customCardFooterClass","cardAvatarClass","cardFooterClass","src","alt","component","lockScreenPageStyle","LockScreenPage","pagesRoutes","path","short","mini","Fingerprint","UnAuthentication","requireNoAuth","redirect","pathTo","pagesHeaderStyle","theme","appBar","borderBottom","flex","appResponsive","list","listStyle","listItem","breakpoints","down","navLink","listItemIcon","listItemText","navLinkActive","drawerPaper","bottom","transitionProperty","transitionDuration","transitionTimingFunction","visibility","overflowY","sidebarButton","PagesHeader","handleDrawerToggle","open","routeName","appBarClasses","prop","activeRoute","to","disableTypography","smDown","implementation","mdUp","aria-label","variant","anchor","paper","onClose","ModalProps","keepMounted","footerStyle","block","a","inlineBlock","whiteColor","fluid","Date","getYear","pagesStyle","wrapper","fullPage","fullPageBackground","Pages","ref","collapse","from","style","bgImage","headerLinksStyle","popperClose","search","searchInput","searchRTL","up","linkText","buttonLink","searchButton","searchIcon","links","notifications","dropdown","backgroundClip","pooperResponsive","dropdownItem","dropdownItemRTL","wrapperRTL","buttonLinkRTL","alignItems","justifyContent","labelRTL","flexDirection","linksRTL","managerClasses","HeaderLinks","handleClick","handleClose","classNames","buttonGroupStyle","buttonGroup","firstButton","borderTopRightRadius","borderBottomRightRadius","middleButton","lastButton","borderTopLeftRadius","borderBottomLeftRadius","buttonsStyle","cardContentLeft","cardContentRight","cardContentBottom","icons","icons2","socialButtonsIcons","AccessLevelButton","headerStyle","sidebarMinimize","sidebarMinimizeRTL","sidebarMiniIcon","ps","makeBrand","routes","views","match","pathParts","split","element","_array","pathToRegex","useSelector","miniActive","sidebarStyle","drawerPaperRTL","blackBackground","NESidebarBackground","blueBackground","whiteBackground","whiteAfter","drawerPaperMini","drawerMiniWidth","logo","logoMini","logoMiniRTL","logoNormal","logoNormalRTL","logoNormalSidebarMini","logoNormalSidebarMiniRTL","userItem","itemLink","outline","itemIcon","itemIconRTL","itemText","userItemText","itemTextRTL","itemTextMini","itemTextMiniRTL","collapseList","collapseItem","collapseActive","collapseItemLink","collapseItemMini","collapseItemMiniRTL","collapseItemText","collapseItemTextRTL","collapseItemTextMiniRTL","collapseItemTextMini","caret","borderRight","userCaret","caretRTL","caretActive","purple","NESidebar","blue","green","orange","overflowScrolling","SidebarWrapper","navigator","platform","PerfectScrollbar","refs","sidebarWrapper","suppressScrollX","suppressScrollY","destroy","user","headerLinks","Sidebar","openAvatar","openComponents","openForms","openTables","openMaps","openPages","onSignOutButtonClicked","st","image","logoText","bgColor","userWrapperClass","photo","photoRTL","avatarImg","userCollapseButton","openCollapse","secondary","in","unmountOnExit","userCollapseLinks","parameterized","hr","break","navLinkClasses","logoClasses","brand","sidebarWrapperWithPerfectScrollbar","onMouseOver","onMouseOut","tableStyle","table","borderSpacing","borderCollapse","tableShoppingHead","tableHeadFontSize","tableHeadCell","tableCell","tableCellTotal","tableCellAmount","tableResponsive","overflowX","tableStripedRow","tableRowHover","warningRow","dangerRow","successRow","infoRow","CustomTable","tableHead","tableData","tableHeaderColor","hover","colorsColls","coloredColls","customCellClasses","customClassesForCells","striped","tableShopping","customHeadCellClasses","customHeadClassesForCells","tableRow","tableCellClasses","rowColor","rowColored","tableRowClasses","total","colSpan","colspan","amount","purchase","col","text","statsCardStyle","cardIcon","fill","cardCategory","cardTitleSmall","cardStats","cardStatsIcon","warningCardStatsIcon","primaryCardStatsIcon","dangerCardStatsIcon","successCardStatsIcon","infoCardStatsIcon","roseCardStatsIcon","grayCardStatsIcon","cardStatsLink","StatsCard","statLink","small","statText","statIconColor","statIcon","chartCardStyle","underChart","moveChartUp","ChartCard","chartColor","chart","cardHeaderClasses","addHoverEvent","userAgent","onMouseEnter","onMouseLeave","iconCardStyle","IconCard","category","customCardContentClass","cardContentClasses","imagePriceCardStyle","underImage","moveImageUp","cardImage","cardPriceText","ImagePriceCard","dashboardStyle","upArrowCardCategory","underChartIcons","us_flag","require","de_flag","au_flag","gb_flag","ro_flag","br_flag","mapData","AU","BR","CA","DE","FR","GB","GE","IN","RO","RU","US","Dashboard","handleChange","handleChangeIndex","ContentCopy","Warning","Store","DateRange","InfoOutline","LocalOffer","Accessibility","Update","zoomOnScroll","containerStyle","containerClassName","regionStyle","initial","stroke","series","regions","values","scale","normalizeFunction","dailySalesChart","options","listener","animation","placement","AccessTime","emailsSubscriptionChart","responsiveOptions","completedTasksChart","priceImage1","Place","priceImage2","priceImage3","paginationStyle","pagination","paginationItem","paginationLink","marginleft","boxSizing","Pagination","pages","active","Buttons","gridSystemStyle","GridSystem","direction","navPillsStyle","flexContainer","flexWrap","displayNone","fixed","horizontalDisplay","pills","pillsWithIcons","tabIcon","horizontalPills","labelContainer","contentWrapper","alignCenter","NavPills","tabs","horizontal","flexContainerClasses","tabButtons","indicator","centered","pillsClasses","tabButton","textColorInheritSelected","tabContent","axis","onChangeIndex","tabsGrid","contentGrid","accordionStyle","flexGrow","expansionPanel","expansionPanelExpanded","expansionPanelSummary","expansionPanelSummaryExpaned","expansionPanelSummaryContent","expansionPanelSummaryExpandIcon","expansionPanelSummaryExpandIconExpanded","expansionPanelDetails","Accordion","panel","expanded","collapses","expandIcon","expandIconExpanded","Panels","Schedule","pageSubcategoriesTitle","Info","LocationOn","Gavel","HelpOutline","headingStyle","heading","rightTextAlign","leftTextAlign","centerTextAlign","sweetAlertStyle","SweetAlertPage","alert","hideAlert","successDelete","cancelDetele","inputConfirmAlert","inputConfirmAlertNext","onConfirm","onCancel","confirmBtnCssClass","cancelBtnCssClass","confirmBtnText","cancelBtnText","showCancel","showConfirm","e","inputValue","rel","basicAlert","titleAndTextAlert","successAlert","htmlAlert","warningWithConfirmMessage","warningWithConfirmAndCancelMessage","autoCloseAlert","inputAlert","snackbarContentStyle","top20","top40","default","close","iconButton","infoIcon","successIcon","warningIcon","dangerIcon","primaryIcon","roseIcon","iconMessage","SnackbarContent","messageClasses","iconClasses","Snackbar","place","closeNotification","anchorOriginTopCenter","anchorOriginTopRight","anchorOriginTopLeft","anchorOrigin","vertical","SnackbarContentProps","instructionStyle","instruction","picture","Instruction","imageClassName","imageAlt","instructionClasses","pictureClasses","modalStyle","modal","modalHeader","modalTitle","modalCloseButton","WebkitAppearance","modalClose","modalBody","modalFooter","modalFooterCenter","instructionNoticeModal","imageNoticeModal","modalSmall","modalMedium","modalSmallBody","modalSmallFooterFirstButton","modalSmallFooterSecondButton","notificationsStyle","modalSectionTitle","Transition","Notifications","tl","tc","tr","bl","bc","br","classicModal","noticeModal","smallModal","AddAlert","showNotification","handleClickOpen","aria-labelledby","noticeModal1","noticeModal2","iconsStyle","iframe","iframeContainer","only","author","typo","note","mainTableHeaderLinksStyle","searchInTable","backButton","useDispatch","useState","query","setQuery","findSubject","filter","toLowerCase","includes","onBackButtonClicked","onResfreshButtonClicked","getOneByOneData","sort","b","mac","useEffect","saveTokenToPatiens","preventDefault","headerCardStyle","HeaderCard","cardFooterClasses","regularFormsStyle","staticFormGroup","staticFormControl","RegularForms","selectedValue","selectedEnabled","handleChangeEnabled","MailOutline","Contacts","customDropdownStyle","menuList","dropdownDividerItem","buttonIcon","dropdownHeader","CustomDropdown","buttonColor","buttonText","dropdownList","buttonProps","dropup","caretClasses","aria-owns","aria-haspopup","eventsEnabled","onClickAway","transformOrigin","role","divider","customLinearProgressStyle","bar","primaryBackground","warningBackground","dangerBackground","successBackground","infoBackground","roseBackground","grayBackground","CustomLinearProgress","ImageUpload","file","imagePreviewUrl","defaultAvatar","defaultImage","handleImageChange","handleSubmit","handleRemove","reader","FileReader","files","onloadend","result","readAsDataURL","document","createElement","onchange","click","customSelectStyle","select","selectFormControl","selectLabel","selectMenu","selectMenuItem","selectMenuItemSelected","primaryColor","extendedFormsStyle","ExtendedForms","handleSimple","handleMultiple","multipleSelect","checkedA","checkedB","simpleSelect","tags","handleTags","regularTags","Today","LibraryBooks","timeFormat","AvTimer","dateFormat","iconChecked","MenuProps","selected","multiple","tagProps","start","range","min","max","validationFormsStyle","formCategory","ValidationForms","registerEmail","registerEmailState","registerPassword","registerPasswordState","registerConfirmPassword","registerConfirmPasswordState","registerCheckbox","registerCheckboxState","loginEmail","loginEmailState","loginPassword","loginPasswordState","required","requiredState","typeEmail","typeEmailState","number","numberState","urlState","equalTo","whichEqualTo","equalToState","minLength","minLengthState","maxLength","maxLengthState","rangeState","minValue","minValueState","maxValue","maxValueState","registerClick","loginClick","typeClick","rangeClick","test","string1","string2","RegExp","URL","stateName","stateNameEqualTo","verifyEmail","verifyLength","compare","verifyNumber","verifyUrl","change","wizardStyle","wizardContainer","wizardHeader","wizardNavigation","nav","steps","stepsAnchor","stepContent","stepContentActive","movingTab","WebkitFontSmoothing","clearfix","Wizard","innerWidth","currentStep","cancelButton","cancelButtonClick","nextButton","previousButton","finishButton","batchButton","movingTabStyle","navigationStepChange","refreshAnimation","previousButtonClick","finishButtonClick","renderWizardNavigation","showBatchButton","batchButtonClick","getOutput","addEventListener","updateWidth","removeEventListener","prevProps","prevState","snapshot","batchButtonText","validationState","stepId","isValidated","validate","currentStepComponent","output","getFormOutput","li_width","total_steps","move_distance","wizard","offsetWidth","index_temp","vertical_level","mobile_device","step_width","current","parseInt","stepName","finishButtonDisabled","stepContentClasses","stepComponent","innerRef","node","stepsProps","previousButtonClasses","previousButtonText","cancelButtonText","nextButtonClasses","nextButtonClick","nextButtonText","finishButtonClasses","finishOneButtonText","finishButtonText","cancelButtonClasses","PictureUpload","Step1","firstname","firstnameState","lastname","lastnameState","emailState","choiche","Step2","desgin","develop","Step3","WizardView","Assignment","extendedTablesStyle","actionButton","imgContainer","tdName","tdNameAnchor","tdNameSmall","tdNumber","tdNumberSmall","tdNumberAndButtonGroup","positionAbsolute","customFont","actionButtonRound","ExtendedTables","fillButtons","Person","Edit","Close","simpleButtons","roundButtons","product1","product2","product3","today","moment","format","ComplianceTable","loading","renderPatientCompliance","Compliance","nextState","isPatientWithDeviceFullData","countNoDevice","start_date","end_date","fallback","sessionsToRender","futureSessions","beforeSessions","time_compliance","executed","Math","duration","tooltipTitle","sessionprotocol","animate","animationDuration","animationEasing","cy","labelPosition","lengthAngle","lineWidth","paddingAngle","radius","rounded","startAngle","viewBoxSize","futureSessionsToRender","todaySessions","firstSession","pop","unshift","concat","slice","isdevice","schedule","compliance","reverse","columns","Header","accessor","sortMethod","deviceImage","defaultSorted","defaultPageSize","pageSize","minRows","showPaginationBottom","showPageSizeOptions","noDataText","rtlStories","inverted","badgeColor","badgeIcon","CardTravel","titleColor","body","footerTitle","Extension","Build","widgetStories","stories","FlightLand","y","getFullYear","m","getMonth","d","getDate","events","allDay","end","problem","bugs","website","server","rtlBugs","rtlWebsite","rtlServer","componentList","AddCircleOutline","PersonAdd","NEDevice","ButtonStyled","Icon","inactive","patientByCodeSelector","createSelector","patientCodesSelector","patientCodes","tasksStyle","tableActions","tableActionButton","tableActionButtonIcon","edit","LayoutEditPatientBasicData","existingCodes","isEdit","codeValid","toString","langValid","isChanged","valid","changed","field","fieldValidField","stateUpdate","codeFormatCorrect","codeNonRepeating","codeUnchanged","repeatingCode","menuItems","noValidate","spacing","unit","DataSubmissionStates","freeze","IDLE","POSTING","POSTED","FAILED","DataDeleteStates","DELETING","DELETED","PatientEditor","submitFailed","finishWizard","closeWizard","patientSubmissionState","errorMessage","patientCode","MenuHomeStudyActions","addOpen","renderAddPatientModal","PatientsEcosystem","SatelliteMap","withScriptjs","withGoogleMap","defaultZoom","mapTypeId","defaultCenter","lat","lng","defaultOptions","scrollwheel","RegularMap","CustomSkinMap","disableDefaultUI","zoomControl","styles","featureType","stylers","saturation","lightness","hue","elementType","GoogleMaps","Map","googleMapURL","loadingElement","containerElement","mapElement","AddLocation","FullScreenMap","VectorMaps","chartsStyle","legendTitle","Charts","roundedLineChart","straightLinesChart","simpleBarChart","colouredLineChart","multipleBarsChart","colouredLinesChart","pieChart","BigCalendar","setLocalizer","momentLocalizer","Calendar","slotInfo","addNewEvent","newEvents","isSelected","selectable","defaultView","scrollToTime","defaultDate","onSelectEvent","selectedEvent","onSelectSlot","addNewEventAlert","eventPropGetter","eventColors","Tasks","checkedIndexes","tasksIndexes","tasks","tasksCardStyle","cardHeaderRTL","cardTitleRTL","tabWrapper","tabWrapperRTL","tabIconRTL","labelContainerRTL","labelIcon","labelIconRTL","tabsContainer","tabsContainerRTL","cardHeaderContent","TasksCard","textColor","tabName","tabTasksChekedIndexes","tabTasksIndexes","tabTasks","testimonialCardStyle","TestimonialCard","badgeStyle","badge","timelineStyle","timeline","timelineSimple","timelineBadge","timelineSimpleBadge","timelinePanel","borderLeftWidth","borderRightWidth","timelineSimplePanel","timelinePanelInverted","timelineHeading","timelineBody","timelineFooter","footerLine","timelineClass","panelClasses","timelineBadgeClasses","Widgets","BugReport","Cloud","UserProfile","PermIdentity","multiline","rows","TimelinePage","RTLSupport","rtlRoutes","sidebarLinks","DashboardIcon","Image","MonetizationOn","LockOpen","Apps","SweetAlert","Icons","Typography","ContentPaste","GridOn","RegularTables","TreatmentsMain","VectorMap","WidgetsIcon","appStyle","mainPanel","mainPanelSidebarMini","switchRoutes","RTL","mobileOpen","scrollTop","rtlStyle","Notifiable","renderNotification","CardCalendarSession","timestring","chipDuration","chip","chipError","iconAvatar","iconChip","download","CalendarSessions","font","cstyles","iconAvatarSessionRecord","iconChipSessionRecord","CardAgendaCalendarSession","sessionEvents","setAttribute","appendChild","removeChild","incidents","downloadCsv","handleClickCsv","Blob","createObjectURL","CalendarHeader","view","navigate","Toolbar","ModalConfirmation","cancelText","confirmationText","onDanger","xClose","CloseX","DangerButton","ConfirmButton","CancelButton","LayoutScheduleTreatmentSessions","date","dateFixed","periodStart","periodEnd","newValue","substring","textField","InputLabelProps","shrink","dropZone","inTheZone","AreaFileUpload","handleUploadedFileContent","inputFile","createPromise","temporaryFileReader","Promise","resolve","reject","onerror","abort","DOMException","onload","readAsText","fileContents","onUploadedFile","warn","onDrop","str","part","charAt","toUpperCase","accepted","rejected","onError","accept","onDragEnter","onActive","onDragLeave","onUnactive","SponstimIcon","SponstimElectrodeImg","NGPistimIcon","NGPistimElectrodeImg","iconText","electrodeText","iconTextSelect","iconTextParent","electrodeIconComponents","Sponstim","DeviceProtocolRepresentation","electrodeModel","renderElectrodeElement","personalizedMontage","defaultMontage","showElectrodeError","onElectrodeModelChange","multiStep","realStimulation","stimElectrode","isOnlyEeg","ceil","unix","rampUpDuration","rampDownDuration","getMontage","montage","function","cable","areaUploadStates","LayoutSelectSessionProtocol","electrodeModelChosen","definition","stim_electrode","deviceProtocolPatchToApply","sessionProtocolSelectionChanged","chosenSessionProtocol","schemaId","setDeviceProtocolToShow","selectedSessionProtocol","filteredSessionProtocols","deviceProtocolToShow","awaitingDeviceProtocolCheck","areaUploadState","lastUploadErrorMessage","uploadedProtocolName","uploadedProtocolOriginalName","electrodeError","presentProtocolDetails","handleNewDeviceProtocol","onDeviceProtocolPosted","onSessionProtocolPosted","handleErroneousUpload","renderAreaFileUpload","handleAreaUploadActive","handleAreaUploadUnactive","filterProtocolsByName","protocolValid","electrodesValid","deviceProtocolHasElectrodeModel","deviceProtocolPatch","deviceProtocolToShowLoaded","onDeviceProtocolPostingFailed","patientName","sessionProtocolEntries","matchingSessionProtocols","protocol","postedDeviceProtocolId","uniqueName","makeSessionProtocolNameUnique","s","String","sessionProtocolNames","entry","protocolName","regex","matchingSessionProtocolNames","n","v","lastMatchingProtocolName","lastMatchingProtocolNameOrderNo","substr","padNumber","isMultistep","definitionMultistep","deviceprotocol","setMenuItems","TreatmentSchedulerSimple","awaitingPatch","wizardResult","batchSchedulingModal","batchConfirmation","disableFinishButton","ModalUnfullData","ModalBatchScheduling","confirmBatch","treatmentSessionSubmissionState","deviceProtocolSubmissionState","sessionsByPatientSelector","treatment","session","reduce","flat","array","problemsDictionary","missed","aborted_impedance","aborted_disconnect","aborted_patient","pain","electrode_sensation","cognitive_mood_chang","other","LayoutSessionOverview","acuteEvents","problems","timeCompliance","eegRecordings","types","toDate","treatmentSessionToEvent","treatmentSession","startOf","endOf","floor","acute_events","addSessionOpen","viewFutureSessionOpen","viewPastSessionOpen","ModalViewFutureSession","ModalViewPastSession","hideModalViewFutureSession","hideModalViewPastSession","Array","lastDatesSelected","slots","dayDuration","onSessionRemove","month","agenda","time","CardAgendaCalendarTimeSession","toolbar","PermContactCalendar","popup","messages","showMore","showMultiDayTimes","startAccessor","endAccessor","components","PatientAvatar","editOpen","parent","blable","getDeviceTypeFromModelSymbol","model","unassignedDevicesSelector","assignedDevicesSelector","patientDeviceSelector","device","DropdownStyled","Events","scrollEvent","register","arguments","remove","onListItemClick","section","returnList","handleListItemClick","PatientDeviceAssignmentMenu","assignConfirmationRequired","assignConfirmationDevice","unAssignConfirmationRequired","unAssignConfirmationDevice","deviceChosenForAssignment","deviceConfirmedForAssignment","deviceAssignmentCancelled","UnAssignedDeviceComponent","AssignedDeviceComponent","assignDevice","deviceChosenForUnAssignment","deviceConfirmedForUnAssignment","deviceUnAssignmentCancelled","unAssignDevice","deviceAssigned","assignmentSubmissionState","unUssignmentSubmissionState","unAssignmentSubmissionState","allAssignedDevices","allUnassignedDevices","chosenAssignedDevices","freeDevices","assignedDevices","deviceMac","currentPatientCode","newPatientCode","componentsToRender","AssignedPatientChangeConfirmationModal","UnAssignPatientDeviceConfirmationModal","PatientEcosystem","params","HistorySessions","stringify","HistoryMain","dashRoutes","requireAuth","notifiable","PatientMain","mainPanelWithPerfectScrollbar","backgroundAttachment","dashboardRoutes","getRoute","indexRoutes","ErrorBoundary","refreshPage","reload","errorInfo","componentStack","hist","createBrowserHistory","ReactDOM","render","store","persistor","getElementById","module","exports","Chartist","labels","lineSmooth","Interpolation","cardinal","tension","low","high","chartPadding","draw","begin","dur","clone","translate","chartRect","easing","Svg","Easing","easeOutQuint","axisX","showGrid","seriesBarDistance","labelInterpolationFnc","showPoint","point","line","axisY","offset"],"mappings":"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","file":"static/js/main.d975ac3e.chunk.js","sourcesContent":["const deploymentApiMapping = {\n  // Production\n  \"ne-portal-app.azurewebsites.net\": \"https://ne-cloud-api.azurewebsites.net/\",\n  \"portal.neuroelectrics.com\": \"https://ne-cloud-api.azurewebsites.net/\",\n\n  // Staging\n  \"ne-portal-app-staging.azurewebsites.net\":\n    \"https://ne-cloud-api-staging.azurewebsites.net/\",\n  \"portal-pre.neuroelectrics.com\":\n    \"https://ne-cloud-api-staging.azurewebsites.net/\",\n\n  // Development\n  \"ne-portal-app-development.azurewebsites.net\":\n    \"https://ne-cloud-api-development.azurewebsites.net/\",\n\n  // Dev\n  \"ne-portal-app-dev.azurewebsites.net\":\n    \"https://ne-cloud-api-dev.azurewebsites.net/\"\n}\n\nlet backendHost\nconst hostname = window && window.location && window.location.hostname\n\nvar isLocal\n\nif (deploymentApiMapping.hasOwnProperty(hostname)) {\n  backendHost = deploymentApiMapping[hostname]\n  isLocal = false\n} else {\n  //backendHost = \"https://ne-cloud-api-staging.azurewebsites.net/\"\n  backendHost = \"https://ne-cloud-api-dev.azurewebsites.net/\"\n  // localStorage.setItem('debug', 'ne-portal-debug:*');\n  isLocal = true\n}\n\nexport const localDeployment = isLocal\n\n/*\nif (hostname === 'ne-portal-app.azurewebsites.net') {\n  backendHost = 'https://ne-cloud-api-dev.azurewebsites.net/'\n} else if (hostname === 'ne-portal-app-staging.azurewebsites.net') {\n  backendHost = 'https://ne-cloud-api-staging.azurewebsites.net/'\n} else {\n  //backendHost = 'http://' + hostname + ':5000/';\n  backendHost = 'https://ne-cloud-api-dev.azurewebsites.net/'\n}\n*/\n\nexport const BACKEND_ROOT_URL = backendHost\n\nexport const AUTHMODULE_URL = `auth/`\nexport const TREATMENTS_URL = `treatment/`\n","import { localDeployment } from '../actions/api.js'\n\nconst BASE = 'ne-portal-debug';\nconst COLOURS = {\n  trace: 'lightblue',\n  info: 'blue',\n  warn: 'pink',\n  error: 'red'\n}; // choose better colours :)\n\nclass Log {\n  generateMessage(level, message) {\n\n    if (localDeployment) {\n      console.log(...message);\n    }\n\n    // const namespace = `${BASE}:${level}`;\n    // const createDebug = debug(namespace);\n\n    // for(var i=0; i<message.length; i++) {\n    //   if (typeof(message[i]) == 'object') {\n    //     try {\n    //       message[i] = JSON.stringify(message[i])\n    //     } catch (err) {\n    //       message[i] = \"object_with_cyclic_references\"\n    //     }\n    //   } \n    //   else message[i] = String(message[i])\n    // }\n\n    // const result = message.join(' ');\n    \n    // createDebug.color = COLOURS[level];\n    \n    // createDebug(result);\n  }\n  \n  trace(...message) {\n    return this.generateMessage('trace', message);\n  }\n  \n  info(...message) {\n    return this.generateMessage('info', message);\n  }\n  \n  warn(...message) {\n    return this.generateMessage('warn', message);\n  }\n  \n  error(...message) {\n    return this.generateMessage('error', message);\n  }\n}\n\nexport default new Log();","import axios from \"axios\"\nimport HttpStatus from \"http-status-codes\"\n\nimport Log from \"../logging/Log.jsx\"\n\nimport { BACKEND_ROOT_URL, AUTHMODULE_URL, TREATMENTS_URL } from \"./api.js\"\n\nexport const AUTHENTICATION_REQUEST = \"AUTHENTICATION_REQUEST\"\nexport const AUTHENTICATED = \"AUTHENTICATED\"\nexport const UNAUTHENTICATED = \"UNAUTHENTICATED\"\nexport const AUTHENTICATION_ERROR = \"AUTHENTICATION_ERROR\"\nexport const PATIENTS_REQUEST = \"PATIENTS_REQUEST\"\nexport const PATIENTS = \"PATIENTS\"\nexport const FETCH_ONE_PATIENT = \"FETCH_ONE_PATIENT\"\nexport const START_LOADING_ONE_BY_ONE = \"START_LOADING_ONE_BY_ONE\"\nexport const UNFULL_DATA = \"UNFULL_DATA\"\nexport const TOKEN_TO_PATIENTS = \"TOKEN_TO_PATIENTS\"\nexport const DATA_RETRIEVAL_ERROR = \"DATA_RETRIEVAL_ERROR\"\nexport const SEARCH_PATIENTS = \"SEARCH_PATIENTS\"\n\nexport const NOTIFY = \"NOTIFY\"\nexport const END_NOTIFY = \"END_NOTIFY\"\n\n// Types\n\nexport const FETCH_PATIENTS = \"FETCH_PATIENTS\"  // Not in use\nexport const POST_PATIENTS = \"POST_PATIENTS\"\n\nexport const POST_PATIENTDEVICE = \"POST_PATIENTDEVICE\"\nexport const DELETE_PATIENTDEVICE = \"DELETE_PATIENTDEVICE\"\n\nexport const FETCH_SESSIONPROTOCOLS = \"FETCH_SESSIONPROTOCOLS\"\nexport const POST_SESSIONPROTOCOLS = \"POST_SESSIONPROTOCOLS\"\nexport const FETCH_PROTOCOL_SCHEMA = \"FETCH_PROTOCOL_SCHEMA\"\nexport const CLEAR_SCHEMA_INFO = \"CLEAR_SCHEMA_INFO\"\n\nexport const FETCH_DEVICEPROTOCOLS = \"FETCH_DEVICEPROTOCOLS\"\nexport const POST_DEVICEPROTOCOLS = \"POST_DEVICEPROTOCOLS\"\nexport const CLEAR_DEVICEPROTOCOLS = \"CLEAR_DEVICEPROTOCOLS\"\n\nexport const FETCH_SESSIONS = \"FETCH_SESSIONS\"\nexport const POST_SESSIONS = \"POST_SESSIONS\"\nexport const DELETE_SESSIONS = \"DELETE_SESSIONS\"\n\nexport const FETCH_LANGUAGES = \"FETCH_LANGUAGES\"\nexport const POST_LANGUAGES = \"POST_LANGUAGES\" // Not used, just for the sake of interoperability\n\nexport const FETCH_DEVICES = \"FETCH_DEVICES\"\nexport const POST_DEVICES = \"POST_DEVICES\"\n\nexport const FETCH_EEG_LINK = \"FETCH_EEG_LINK\"\nexport const REMOVE_EEG_LINK = \"REMOVE_EEG_LINK\"\n\nexport const FETCH_CSV_LINK = \"FETCH_CSV_LINK\"\nexport const REMOVE_CSV_LINK = \"REMOVE_CSV_LINK\"\n\n// Statuses\n\nexport const _REQUESTED = \"STATUS_REQUESTED\"\nexport const _ERROR = \"STATUS_ERROR\"\nexport const _SUCCESS = \"STATUS_SUCCESS\"\nexport const _CLEAR = \"STATUS_CLEAR\"\n\nexport function pushNotification(message) {\n  return {\n    type: NOTIFY,\n    payload: message\n  }\n}\n\nexport function notificationHidden() {\n  return {\n    type: END_NOTIFY\n  }\n}\n\nexport function authenticate(email, password) {\n  Log.info(\"Authenticating!\", email, password)\n\n  var authUrl = BACKEND_ROOT_URL + AUTHMODULE_URL + \"login\"\n  var meUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"users/me\"\n  const meConfig = {}\n\n  return async dispatch => {\n    dispatch({\n      type: AUTHENTICATION_REQUEST,\n      payload: { email }\n    })\n\n    try {\n      const authRes = await axios.post(authUrl, { email, password })\n      axios.defaults.headers.common[\n        \"Authorization\"\n      ] = `Bearer ${authRes.data.auth_token}`\n\n      const meRes = await axios.get(meUrl, meConfig)\n      const userData = Object.assign(authRes.data, meRes.data.users)\n     \n      dispatch({\n        type: AUTHENTICATED,\n        payload: userData\n      })\n    } catch (error) {\n      __handleError(AUTHENTICATION_ERROR, dispatch, error)\n    }\n  }\n}\n\nexport function deauthenticate() {\n  Log.info(\"Deauthenticating!\")\n\n  var url = BACKEND_ROOT_URL + AUTHMODULE_URL + \"logout\"\n  Log.info(\"URL\", url)\n\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      try {\n        const res = await axios.post(url)\n        dispatch({\n          type: UNAUTHENTICATED\n        })\n      } catch (error) {\n        __handleError(DATA_RETRIEVAL_ERROR, dispatch, error)\n      }\n    }\n  }\n}\n\nexport function getPatients() {\n  Log.info(\"Requesting patients\")\n\n  const url = BACKEND_ROOT_URL + TREATMENTS_URL + \"patients\"\n  const config = {    \n    headers: {\n      \"X-Fields\":\n        \"{id, code, lang, devices{id, mac, model}}\"\n    }\n  }\n\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      dispatch({ type: PATIENTS_REQUEST })\n\n      try {\n        const res = await axios.get(url, config)\n        dispatch({ type: PATIENTS, payload: res.data })\n      } catch (error) {\n        __handleError(DATA_RETRIEVAL_ERROR, dispatch, error)\n      }\n    }\n  }\n}\n\nexport function getOnePatient(patient) {\n  Log.info(\"Requesting patient:\", patient)\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"patient/\" + patient.id\n  const config = {    \n    headers: {\n      \"X-Fields\":\n        \"{id, code, lang, devices{id, mac, model}, treatments{id, start_date, end_date, sessions{id, session_date, session_period_start, session_period_end, sessionprotocol{name}, problems{types, acute_events}, time_compliance, eeg_recordings[{id, timestamp, step}]}, time_compliance }}\"\n    }\n  }\n\n  return __fetch(fullUrl, config, FETCH_ONE_PATIENT)\n}\n\nexport function startLoadingOneByOne() {\n  return {\n    type: START_LOADING_ONE_BY_ONE\n  }\n}\n\nexport function setUnfullData() {\n  return {\n    type: UNFULL_DATA\n  }\n}\n\nexport function saveTokenToPatiens(token) {\n  return {\n    type: TOKEN_TO_PATIENTS, payload: token\n  }\n}\n\nexport function searchPatients(searched) {\n  return {\n    type: SEARCH_PATIENTS, payload: searched\n  }\n}\n\nexport function addPatient(code, lang) {\n  Log.info(\"Adding a patient:\", { code, lang })\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"patient\"\n  const config = {\n    headers: {\n      \"X-Fields\":\n        \"{id, code, lang, devices{id, mac, model}, treatments{id, start_date, end_date, sessions{id}, time_compliance}}\"\n    }\n  }\n\n  let object = {\n    code,\n    lang\n  }\n\n  return __post(fullUrl, object, POST_PATIENTS, config)\n}\n\nexport function editPatient(patient) {\n  Log.info(\"Editing a patient:\", patient)\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"patient/\" + patient.id\n  const config = {\n    headers: {\n      \"X-Fields\":\n        \"{id, code, lang, devices{id, mac, model}, treatments{id, start_date, end_date, sessions{id}, time_compliance}}\"\n    }\n  }\n\n  let object = {\n    code: patient.code,\n    lang: patient.lang\n  }\n\n  return __post(fullUrl, object, POST_PATIENTS, config)\n}\n\nexport function getTreatmentSessions(treatmentId) {\n  Log.info(\"Requesting session protocols\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    \"treatments/\" +\n    treatmentId +\n    \"/sessions\"\n  const config = {\n    headers: {\n      \"X-Fields\":        \n        \"{url, id, session_date, session_period_start, session_period_end, time_compliance, problems, sessionprotocol{id, name}, eeg_recordings[{id, timestamp, step}]}\"\n    }\n  }\n\n  return __fetch(fullUrl, config, FETCH_SESSIONS)\n}\n\nexport function postTreatmentSession(\n  treatmentId,\n  sessionProtocolId,\n  sessionDate,\n  sessionPeriodStart = undefined,\n  sessionPeriodEnd = undefined,\n  doBatchSchedule\n) {\n  Log.info(\"Posting treatment session\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    \"treatments/\" +\n    treatmentId +\n    \"/sessions\"\n  let object = {\n    sessionprotocol_id: sessionProtocolId,\n    session_date: sessionDate,\n    session_period_start: sessionPeriodStart,\n    session_period_end: sessionPeriodEnd,\n    do_batch_schedule: doBatchSchedule\n  }\n\n  const meta = { treatmentId }\n\n  return __post(fullUrl, object, POST_SESSIONS, {}, meta)\n}\n\nexport function deleteTreatmentSession(treatmentId, sessionId) {\n  Log.info(\"Deleting treatment session\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    \"treatments/\" +\n    treatmentId +\n    \"/sessions/\" +\n    sessionId\n\n  return __delete(fullUrl, {}, DELETE_SESSIONS, {})\n}\n\nexport function getEegLink(eegId) {\n  Log.info(\"Getting EEG link\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    \"eeg/\" +\n    eegId\n  const config = {\n    headers: {\n      \"X-Fields\":        \n        \"{id, timestamp, step, link}\"\n    }\n  }\n  return __fetch(fullUrl, config, FETCH_EEG_LINK)\n}\n\nexport function removeEegLink() {\n  return {\n    type: REMOVE_EEG_LINK\n  }\n}\n\nexport function getCsvLink(sessionId) {\n  Log.info(\"Getting CSV link\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +   \n    TREATMENTS_URL + \n    \"session/\" +\n    sessionId +\n    \"/events?type=NO_TELEMETRIES&format=CSV\"\n  const config = {\n    headers: {\n      \"X-Fields\":        \n        \"{content, filename}\"\n    }\n  }\n  return __fetch(fullUrl, config, FETCH_CSV_LINK)\n}\n\nexport function removeCsvLink() {\n  return {\n    type: REMOVE_CSV_LINK\n  }\n}\n\nexport function getSessionProtocols(id = undefined) {\n  Log.info(\"Requesting session protocols\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    \"sessionprotocols\" +\n    (id ? \"/\" + id : \"\")\n  const config = {\n    headers: { \"X-Fields\": \"{url, id, name, schema_id, deviceprotocol{id}}\" }\n  }\n\n  return __fetch(fullUrl, config, FETCH_SESSIONPROTOCOLS)\n}\n\nexport function getProtocolSchema(schema_id, init_date) {\n  Log.info(\"Requesting protocol's schema\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL +\n    TREATMENTS_URL +\n    `schedulingpreview?schedulingschema_id=${schema_id}&init_date=${init_date}`\n  const config = {\n    headers: { \"X-Fields\": \"{scheduled_dates}\" }\n  }\n\n  return __fetch(fullUrl, config, FETCH_PROTOCOL_SCHEMA)\n}\n\nexport function clearSchemaInfo() {\n  return {\n    type: CLEAR_SCHEMA_INFO\n  }\n}\n\nexport function postSessionProtocol(deviceProtocolId, name) {\n  Log.info(\"Posting session protocol\")\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"sessionprotocols\"\n  const object = {\n    deviceprotocol_id: deviceProtocolId,\n    name\n  }\n\n  return __post(fullUrl, object, POST_SESSIONPROTOCOLS)\n}\n\nexport function getDeviceProtocol(id) {\n  Log.info(\"Requesting device protocols\")\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"deviceprotocols/\" + id\n  const config = {\n    headers: {\n      \"X-Fields\":\n        \"{url, id, definition{name, duration, real_stimulation, ramp_up_duration, ramp_down_duration, stim_electrode, default_montage}, definition_multistep{name, duration, stim_electrode, steps{name, total_duration, real_stimulation, duration, ramp_up_duration, ramp_down_duration, default_montage, is_only_eeg}}}\"\n    }\n  }\n\n  return __fetch(fullUrl, config, FETCH_DEVICEPROTOCOLS)\n}\n\nexport function postDeviceProtocol(xmlTemplate) {\n  Log.info(\"Posting device protocol\")\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"deviceprotocols\"\n  const object = {\n    xml_template: xmlTemplate\n  }\n\n  return __post(fullUrl, object, POST_DEVICEPROTOCOLS)\n}\n\nexport function patchDeviceProtocol(deviceProtocolId, patch) {\n  Log.info(\"Patching device protocol\", deviceProtocolId, \"with patch\", patch)\n  const fullUrl =\n    BACKEND_ROOT_URL + TREATMENTS_URL + \"deviceprotocols/\" + deviceProtocolId\n\n  return __patch(fullUrl, patch, POST_DEVICEPROTOCOLS)\n}\n\nexport function clearDeviceProtocol() {\n  return {\n    type: CLEAR_DEVICEPROTOCOLS,\n    status: _CLEAR\n  }\n}\n\nexport function getDevices() {\n  Log.info(\"Requesting devices\")\n\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"devices\"\n  const config = {\n    headers: { \"X-Fields\": \"{id, mac, model, patient{id, code}}\" }\n  }\n\n  return __fetch(fullUrl, config, FETCH_DEVICES)\n}\n\nexport function assignDeviceToPatient(patientId, deviceId) {\n  Log.info(\"Posting device-patient assignment\")\n\n  const fullUrl =\n    BACKEND_ROOT_URL + TREATMENTS_URL + \"patient/\" + patientId + \"/device\"\n  const object = {\n    device_id: deviceId\n  }\n  const config = {\n    headers: { \"X-Fields\": \"{id, mac, model, patient{id, code}}\" }\n  }\n\n  return __post(fullUrl, object, POST_PATIENTDEVICE, config)\n}\n\nexport function unAssignDeviceFromPatient(patientId, deviceId) {\n  Log.info(\"Executing device-patient unassignment for \", patientId, \" deviceId: \", deviceId)\n\n  const fullUrl =\n    BACKEND_ROOT_URL + TREATMENTS_URL + \"patient/\" + patientId + \"/device\"\n  const object = {\n    device_id: deviceId\n  }\n  const config = {\n    headers: { \"X-Fields\": \"{id, mac, model, patient{id, code}}\" }\n  }\n\n  return __delete(fullUrl, object, DELETE_PATIENTDEVICE, config)\n}\n\nexport function getLanguages() {\n  const fullUrl = BACKEND_ROOT_URL + TREATMENTS_URL + \"languages\"\n  const config = {\n    headers: { \"X-Fields\": \"{id, name}\" }\n  }\n\n  return __fetch(fullUrl, config, FETCH_LANGUAGES)\n}\n\n//////////\n\nfunction __authenicateCall(dispatch, state) {\n  let authenticated = true\n  if (!axios.defaults.headers.common[\"Authorization\"]) {\n    const currentState = state\n    Log.info(\"Current state:\", currentState)\n    if (\n      currentState.authenticationState.authenticated === true &&\n      currentState.authenticationState.token\n    ) {\n      axios.defaults.headers.common[\n        \"Authorization\"\n      ] = `Bearer ${currentState.authenticationState.token}`\n      Log.info(\"Assigned authentication token from state to requests\")\n    } else {\n      authenticated = false\n      dispatch({ type: UNAUTHENTICATED })\n    }\n  }\n  return authenticated\n}\n\n// Following https://gist.github.com/fgilio/230ccd514e9381fafa51608fcf137253#file-axios-catch-error-js\nfunction __handleError(type, dispatch, error) {\n  let authenticationLost = false\n  let payload = { data: {} }\n  let apiError = true\n  if (error.response) {\n    Log.info(\"Error handler: 1\")\n    payload = error.response\n    authenticationLost = payload.status === HttpStatus.UNAUTHORIZED\n  } else if (error.request) {\n    payload.data.message =\n      \"Connection problem. Check your Internet connectivity.\"\n  } else {\n    apiError = false\n  }\n\n  if (authenticationLost) dispatch({ type: UNAUTHENTICATED })\n  else if (apiError === true) dispatch({ type, status: _ERROR, payload })\n}\n\nfunction __fetch(fullUrl, config, type) {\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      dispatch({ type, status: _REQUESTED })\n      try {\n        Log.info(\"Running GET:\", fullUrl, config)\n        const res = await axios.get(fullUrl, config)\n        dispatch({ type, status: _SUCCESS, payload: res.data })\n      } catch (error) {\n        __handleError(type, dispatch, error)\n      }\n    }\n  }\n}\n\nfunction __post(fullUrl, object, type, config = {}, meta = {}) {\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      dispatch({ type, status: _REQUESTED })\n      try {\n        Log.info(\"Running POST:\", fullUrl, object, config)\n        const res = await axios.post(fullUrl, object, config)\n        dispatch({ type, status: _SUCCESS, payload: res.data, meta })\n      } catch (error) {\n        __handleError(type, dispatch, error)\n      }\n    }\n  }\n}\n\nfunction __patch(fullUrl, patch, type, config = {}, meta = {}) {\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      dispatch({ type, status: _REQUESTED })\n      try {\n        Log.info(\"Running PATCH:\", fullUrl, patch, config)\n        const res = await axios.patch(fullUrl, patch, config)\n        dispatch({ type, status: _SUCCESS, payload: res.data, meta })\n      } catch (error) {\n        __handleError(type, dispatch, error)\n      }\n    }\n  }\n}\n\nfunction __delete(fullUrl, object, type, config = {}, meta = {}) {\n  return async (dispatch, getState) => {\n    if (__authenicateCall(dispatch, getState())) {\n      dispatch({ type, status: _REQUESTED })\n      try {\n        Log.info(\"Running DELETE:\", fullUrl, object, config)\n        const res = await axios.delete(fullUrl, object, config)\n        dispatch({ type, status: _SUCCESS, payload: res.data, meta })\n      } catch (error) {\n        __handleError(type, dispatch, error)\n      }\n    }\n  }\n}\n","import { AUTHENTICATED, AUTHENTICATION_ERROR, UNAUTHENTICATED, AUTHENTICATION_REQUEST } from \"../actions\";\nimport axios from 'axios';\n\nimport Log from '../logging/Log.jsx';\n\nconst initialState = { authenticated: false, token: null, accessLevel: null }\n\nexport default function(state = initialState, action) {\n    Log.info(\"Received action:\", action.type);\n    Log.info(\"Current state:\", state);\n    switch (action.type) {\n        case AUTHENTICATED:\n            Log.info(\"action:\", action);\n            let fullname = [action.payload.title.trim(), action.payload.first_name.trim(), action.payload.last_name.trim()].join(' ');\n            Log.info(\"FULLNAME\", fullname);\n            let iconUrl = action.payload.organization_icon;\n            axios.defaults.headers.common['Authorization'] = `Bearer ${action.payload.auth_token}`;\n            Log.info(\"Changed axios default headers:\", axios.defaults.headers);\n            let accessLevel = null;\n            if (action.payload.access_level) {\n                accessLevel = action.payload.access_level;\n            } \n            return { ...state, authenticated: true, token: action.payload.auth_token, accessLevel, fullname, iconUrl, error: null };                      \n        case AUTHENTICATION_ERROR:\n            Log.info(\"Action\", action);\n            return { ...state, authenticated: false, error: action.payload, token: null, accessLevel: null };\n        case UNAUTHENTICATED:\n            delete axios.defaults.headers.common['Authorization'];\n            Log.info(\"Changed axios default headers:\", axios.defaults.headers);\n            return { authenticated: false, token: null, error: null, accessLevel: null };\n        case AUTHENTICATION_REQUEST:\n            return { ...state, error: null };        \n        default:\n            return state;\n    }\n\n    return state;\n}","import {   \n  PATIENTS_REQUEST,\n  PATIENTS,\n  FETCH_ONE_PATIENT,\n  START_LOADING_ONE_BY_ONE,\n  UNFULL_DATA,\n  TOKEN_TO_PATIENTS,\n  SEARCH_PATIENTS,\n  POST_PATIENTS,\n  POST_SESSIONS,\n  DELETE_SESSIONS,\n  POST_PATIENTDEVICE,\n  DELETE_PATIENTDEVICE,\n  UNAUTHENTICATED,\n  _REQUESTED,\n  _SUCCESS,\n  _ERROR\n} from \"../actions\";\n\nimport Log from '../logging/Log.jsx';\n\nconst initialState = {\n  data:[],\n  token: null,\n  searched:[],\n  isRequestingOnePatient: false,\n  loadingOneByOne: false,\n  fullData: false,\n  isFetching: false,\n  error: null,\n  posted: false,\n  deleted: false\n};\n\n// Initial state of array as we want to keep a list of the cities\nexport default function(state = initialState, action) {\n    Log.info(\"Received action:\", action.type);\n    Log.info(\"Current state:\", state);\n    let patients = state.data;\n    switch (action.type) {\n        case PATIENTS_REQUEST:\n          return { ...state, isFetching: true, posted: false, deleted: false, error: null };\n        case PATIENTS:          \n          Log.info(\"New patients data:\", action.payload.patients);\n          if (!action.payload.patients.length) {\n            return { ...state, isFetching: false, fullData: true };\n          } else {\n            return { ...state, isFetching: false, data: action.payload.patients, posted: false, deleted: false, error: null };\n          }\n        case FETCH_ONE_PATIENT:          \n          if (!state.loadingOneByOne) {\n            break;\n          } else if (action.status === _REQUESTED) {\n            return { ...state, isRequestingOnePatient: true };\n          } else if (action.status === _SUCCESS) {            \n            let patient = action.payload.patient;\n            Log.info(\"Loading patient:\", patient);\n            patient.fullData = true;\n            const index = patients.findIndex(el => el.id === patient.id);\n            patients[index] = patient;\n            let allDataFull;\n            if (patients[patients.length-1].fullData) {\n              allDataFull = true;\n            } else {\n              allDataFull = false;\n            }\n            return { ...state, data: patients, isRequestingOnePatient: false, loadingOneByOne: !allDataFull, fullData: allDataFull };\n          } else if (action.status === _ERROR) {\n            Log.info(\"Upon action of type\", action.type, \"reducer received an error:\", action.payload);\n            return { ...state, error: action.payload };\n          } else {\n            return state;\n          }\n        case START_LOADING_ONE_BY_ONE:\n          return { ...state, loadingOneByOne: true };\n        case UNFULL_DATA:\n          return { ...state, data:[], isRequestingOnePatient: false, loadingOneByOne: false, fullData: false };;\n        case TOKEN_TO_PATIENTS:\n          return { ...state, token: action.payload };\n        case SEARCH_PATIENTS:            \n          Log.info(\"Searched patients: \", action.payload);\n          return { ...state, searched: action.payload };\n        case POST_PATIENTS:\n          if (action.status === _REQUESTED) {\n            return { ...state, isFetching: true, posted: false, deleted: false, error: null };\n          } else if (action.status === _SUCCESS) {            \n            let newPatient = action.payload['patient'][0];\n            const patientExistsIndex = patients.map(p => p.id).indexOf(newPatient.id);\n            if (patientExistsIndex >= 0) {\n              patients[patientExistsIndex].lang = newPatient.lang;\n            } else {\n              newPatient.fullData = true;\n              patients.push(newPatient);\n            };\n            return { ...state, isFetching: false, data: patients, posted: newPatient.id, deleted: false, error: null };\n          } else if (action.status === _ERROR) {\n            return { ...state, isFetching: false, posted: false, deleted: false, error: action.payload };\n          } else {\n            return state;\n          }\n        case POST_PATIENTDEVICE:\n          if (action.status === _REQUESTED) {\n            return { ...state, isFetching: true, posted: false, deleted: false, error: null };\n          } else if (action.status === _SUCCESS) {            \n            for(let i = 0; i < action.payload.devices.length; i++) {\n              if(action.payload.devices[i].patient !== null) {\n                let patientId = action.payload.devices[i].patient.id;\n                let patientDevice = action.payload.devices[i];\n                patients = patients.map(patient => {                  \n                  if (patient.id === patientId) {\n                    patient.devices = [patientDevice];\n                    Log.info(`Assigned device ${patientDevice.id} to patient ${patient.code}`); \n                  }\n                  if (patient.devices && patient.devices[0].id === patientDevice.id && patient.id !== patientId) {\n                    patient.devices = null;\n                    Log.info(`Deleted device ${patientDevice.id} from patient ${patient.code}`); \n                  }\n                  return patient;\n                });\n              }\n            }            \n            return { ...state, isFetching: false, data: patients, posted: true, deleted: false, error: null };\n          } else if (action.status === _ERROR) {\n            return { ...state, isFetching: false, posted: false, deleted: false, error: action.payload };\n          } else {\n            return state;\n          }\n        case DELETE_PATIENTDEVICE:\n          if (action.status === _REQUESTED) {\n            return { ...state, isFetching: true, posted: false, deleted: false, error: null };\n          } else if (action.status === _SUCCESS) {\n            const deviceId = action.payload.devices[0].id;            \n            const index = patients.findIndex(el => el.devices && el.devices[0].id === deviceId);            \n            patients[index].devices = null;\n            Log.info(`Deleted device ${deviceId} from patient ${patients[index].code}`);            \n            return { ...state, data: patients, deleted: true, error: null };\n          } else if (action.status === _ERROR) {\n            return { ...state, error: action.payload };\n          } else {\n            return state;\n          }\n        case POST_SESSIONS: // FIXME: Temporary hack\n          if(action.status === _SUCCESS) {\n            let newData = state.data;\n            Log.info(\"Will add posted session to patient with meta:\", action.meta);\n            for(let x = 0; x < newData.length; x++) {\n              let done = false;\n              let patientData = newData[x];\n              for(let j = 0; j < patientData.treatments.length; j++) {\n                let treatmentData = patientData.treatments[j];\n                if(treatmentData.id === action.meta.treatmentId) {\n                  action.payload.sessions.forEach(item => {\n                    treatmentData.sessions.push({id: item.id})\n                  });                  \n                  Log.info(\"Altering patients state - updated treatment:\", treatmentData);\n                  done = true;\n                  break;\n                }\n              }\n              if(done===true) break;\n            }\n            return { ...state, data: newData, token: null };\n          } else {\n            return state;\n          }\n        case DELETE_SESSIONS:\n          return { ...state, token: null };\n        case UNAUTHENTICATED:\n          return initialState;\n        default:\n          return state;\n    }\n}\n","import _ from \"lodash\";\nimport { _REQUESTED, _SUCCESS, _ERROR, _CLEAR, UNAUTHENTICATED } from \"../actions\";\n\nimport Log from '../logging/Log.jsx';\n\nfunction keysToCamelCase(object) {\n  let camelCaseObject = _.cloneDeep(object);\n\n  if (_.isArray(camelCaseObject)) {\n    return _.map(camelCaseObject, keysToCamelCase);\n\n  } else if(_.isPlainObject(camelCaseObject)) {\n    camelCaseObject = _.mapKeys(camelCaseObject, (value, key) => {\n      return _.camelCase(key);\n    });\n\n    // Recursively apply throughout object\n    return _.mapValues(camelCaseObject, (value) => {\n      if (_.isPlainObject(value)) {\n        return keysToCamelCase(value);\n      } else if (_.isArray(value)) {\n        return _.map(value, keysToCamelCase);\n      } else {\n        return value;\n      }\n    });\n  } else {\n    return camelCaseObject;\n  }\n}\n\nexport default function(state, action, fetchActionType, postActionType, envelopeKey, otherActionTypes = [], initialState) {\n  Log.info(\"In\", envelopeKey, \"reducer. Action type:\", action.type, \"and action status:\", action.status)\n\n  if (action.type === fetchActionType || action.type === postActionType || otherActionTypes.indexOf(action.type) !== -1) {\n    var newState;\n\n    if (action.status === _REQUESTED) {\n        newState = { ...state, isRequesting: true, error: null, posted: null }\n    }\n    else {\n      const isRequesting = false;\n\n      if (action.status === _CLEAR && state.byId) {\n        newState = { \n          byId: {}, \n          isRequesting, \n          posted: null,\n          error: null\n        };\n      }\n\n      else if (action.status === _SUCCESS) {\n        newState = { \n          byId: state.byId, \n          isRequesting, \n          posted: action.type === postActionType ? action.payload[envelopeKey][0].id : null,\n          error: null\n        };\n\n        action.payload[envelopeKey].forEach(\n          (received) => {\n            let data = keysToCamelCase(received);\n            Log.info(\"Converted\", received, \"to\", data)\n            newState = _.set(newState, 'byId.'+data.id, data);\n          }\n        )\n      }\n\n      else /* if (action.status === _ERROR) */ {\n        Log.info(\"Upon action of type\", action.type, \"reducer received an error:\", action.payload)\n        newState = { \n          byId: state.byId, \n          isRequesting,\n          posted: (action.type === postActionType /*&& action.payload.status ===  HttpStatus.UNPROCESSABLE_ENTITY*/) ? false : null,\n          error: action.payload // removed \".data\" as error.data used in actions\n        };\n      }\n    }\n    Log.info(\"Finishing\", envelopeKey, \"reducer\")\n    return newState;\n  }\n  else if (action.type === UNAUTHENTICATED) {\n    Log.info(\"Finishing\", envelopeKey, \"reducer\")\n    return Object.assign({}, initialState);\n    // return state;\n  }\n  else {\n    Log.info(\"Finishing\", envelopeKey, \"reducer\")\n    return state;\n  }\n}","import { FETCH_DEVICEPROTOCOLS, POST_DEVICEPROTOCOLS, CLEAR_DEVICEPROTOCOLS } from \"../actions\";\nimport standardreducer from \"./standardreducer\";\n\nconst initialState = { byId: {}, isRequesting: false, posted: null, error:null };\n\nexport default function(state = initialState, action) {\n  return standardreducer(state, action, FETCH_DEVICEPROTOCOLS, POST_DEVICEPROTOCOLS, 'deviceprotocols', [CLEAR_DEVICEPROTOCOLS], initialState);\n}","import { FETCH_SESSIONPROTOCOLS, POST_SESSIONPROTOCOLS } from \"../actions\";\nimport standardreducer from \"./standardreducer\";\n\nconst initialState = { byId: {}, isRequesting: false, posted: null, error:null };\n\nexport default function(state = initialState, action) {\n  return standardreducer(state, action, FETCH_SESSIONPROTOCOLS, POST_SESSIONPROTOCOLS, 'sessionprotocols', [], initialState);\n}","import { FETCH_PROTOCOL_SCHEMA, CLEAR_SCHEMA_INFO, _SUCCESS, _REQUESTED, _ERROR } from \"../actions\";\n\nimport Log from \"../logging/Log.jsx\";\n\nconst initialState = {  \n  dates: null,\n  isRequesting: false,\n  error: null,\n};\n\nexport default function(state = initialState, action) {\n  Log.info(\"Received action:\", action.type);\n  Log.info(\"Current state:\", state);\n\n  switch (action.type) {\n    case FETCH_PROTOCOL_SCHEMA:        \n      if (action.status === _REQUESTED) {\n        return { ...state, isRequesting: true };\n      } else {\n        if (action.status === _SUCCESS) {\n            const scheduledDates = JSON.parse(action.payload).scheduled_dates;            \n          return {\n            ...state,            \n            dates: scheduledDates,\n            isRequesting: false\n          };\n        } /* if (action.status === _ERROR) */ else {\n          Log.info(\"Upon action of type\", action.type, \"reducer received an error:\", action.payload);\n          return { ...state, error: action.payload };\n        }\n      };\n    case CLEAR_SCHEMA_INFO:\n      return initialState;           \n    default:\n      return state;\n  }\n}\n\n","import { FETCH_SESSIONS, POST_SESSIONS, DELETE_SESSIONS } from \"../actions\";\nimport standardreducer from \"./standardreducer\";\n\nconst initialState = { byId: {}, isRequesting: false, posted: null, error: null };\n\nexport default function(state = initialState, action) {\n  return standardreducer(state, action, FETCH_SESSIONS, POST_SESSIONS, 'sessions', [DELETE_SESSIONS], initialState);\n}","import { FETCH_DEVICES, POST_DEVICES, POST_PATIENTDEVICE, DELETE_PATIENTDEVICE } from \"../actions\";\nimport standardreducer from \"./standardreducer\";\n\nconst initialState = { byId: {}, isRequesting: false, posted: null, error:null };\n\nexport default function(state = initialState, action) {\n  return standardreducer(state, action, FETCH_DEVICES, POST_DEVICES, 'devices', [POST_PATIENTDEVICE, DELETE_PATIENTDEVICE], initialState);\n}","import { FETCH_LANGUAGES, POST_LANGUAGES } from \"../actions\";\nimport standardreducer from \"./standardreducer\";\n\nconst initialState = { byId: {}, isRequesting: false, posted: null, error:null };\n\nexport default function(state = initialState, action) {\n  return standardreducer(state, action, FETCH_LANGUAGES, POST_LANGUAGES, 'languages', [], initialState);\n}","import { NOTIFY, END_NOTIFY } from \"../actions\";\r\nimport axios from 'axios';\r\n\r\nimport Log from '../logging/Log.jsx';\r\n\r\nconst initialState = { show: false, message: \"\" }\r\n\r\nexport default function(state = initialState, action) {\r\n    switch (action.type) {\r\n        case NOTIFY:\r\n            Log.info(\"Changed axios default headers:\", axios.defaults.headers);\r\n            return { show: true, message: action.payload };\r\n        case END_NOTIFY:\r\n            return initialState;\r\n        default:\r\n            return state;\r\n    }\r\n}","import { FETCH_EEG_LINK, REMOVE_EEG_LINK, _SUCCESS, _REQUESTED, _ERROR } from \"../actions\";\n\nimport Log from \"../logging/Log.jsx\";\n\nconst initialState = {\n  id: null,\n  timestamp: null,\n  step: null,\n  link: null,\n  isRequesting: false,\n  error: null,\n  posted: false\n};\n\nexport default function(state = initialState, action) {\n  Log.info(\"Received action:\", action.type);\n  Log.info(\"Current state:\", state);\n\n  switch (action.type) {\n    case FETCH_EEG_LINK:\n      if (action.status === _REQUESTED) {\n        return { ...state, isRequesting: true };\n      } else {\n        if (action.status === _SUCCESS) {\n          return {\n            ...state,\n            id: action.payload.id,\n            timestamp: action.payload.timestamp,\n            step: action.payload.step,\n            link: action.payload.link,\n            isRequesting: false\n          };\n        } /* if (action.status === _ERROR) */ else {\n          Log.info(\"Upon action of type\", action.type, \"reducer received an error:\", action.payload);\n          return { ...state, error: action.payload };\n        }\n      };\n    case REMOVE_EEG_LINK:\n      return initialState;     \n    default:\n      return state;\n  }\n}\n","import { FETCH_CSV_LINK, REMOVE_CSV_LINK, _SUCCESS, _REQUESTED, _ERROR } from \"../actions\";\n\nimport Log from \"../logging/Log.jsx\";\n\nconst initialState = {  \n  content: null,\n  filename: null,\n  isRequesting: false,\n  error: null,\n  posted: false\n};\n\nexport default function(state = initialState, action) {\n  Log.info(\"Received action:\", action.type);\n  Log.info(\"Current state:\", state);\n\n  switch (action.type) {\n    case FETCH_CSV_LINK:\n      if (action.status === _REQUESTED) {\n        return { ...state, isRequesting: true };\n      } else {\n        if (action.status === _SUCCESS) {\n          return {\n            ...state,            \n            content: action.payload.content,\n            filename: action.payload.filename,\n            isRequesting: false\n          };\n        } /* if (action.status === _ERROR) */ else {\n          Log.info(\"Upon action of type\", action.type, \"reducer received an error:\", action.payload);\n          return { ...state, error: action.payload };\n        }\n      };\n    case REMOVE_CSV_LINK:\n      return initialState;           \n    default:\n      return state;\n  }\n}\n","import { combineReducers, createStore, applyMiddleware } from 'redux';\nimport { composeWithDevTools } from 'redux-devtools-extension';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storage from 'redux-persist/lib/storage'; // defaults to localStorage for web and AsyncStorage for react-native\n\nimport reduxThunk from 'redux-thunk';\n\nimport SignInReducer from './sign_in';\nimport PatientsReducer from './patients';\nimport DeviceProtocolsReducer from './deviceprotocols';\nimport SessionProtocolsReducer from './sessionprotocols';\nimport ProtocolSchemaReducer from './schema';\nimport SessionReducer from './sessions';\nimport DevicesReducer from './devices';\nimport LanguagesReducer from './languages';\nimport Notification from './notification';\nimport Eeg from './eeg';\nimport Csv from './csv';\n\nconst rootReducer = combineReducers({\n   authenticationState: SignInReducer,\n   patients: PatientsReducer,   \n   deviceProtocols: DeviceProtocolsReducer,\n   sessionProtocols: SessionProtocolsReducer,\n   schema: ProtocolSchemaReducer,\n   sessions: SessionReducer,\n   devices: DevicesReducer,\n   languages: LanguagesReducer,\n   notification: Notification,\n   eeg:Eeg,\n   csv: Csv   \n});\n\nconst persistConfig = {\n   key: 'root',\n   storage: storage,\n   blacklist: ['sessions', 'notification']\n };\n\n\nconst persistedReducer = persistReducer(persistConfig, rootReducer);\n\nconst appStore = createStore(persistedReducer, composeWithDevTools(applyMiddleware(reduxThunk)));\n\nconst appStorePersistor = persistStore(appStore);\n\nexport { appStore, appStorePersistor };\n\nexport default rootReducer;","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport Log from '../logging/Log.jsx';\n\nimport { getLanguages } from '../actions/index';\n\nexport default function (ComposedComponent) {\n  class PortalZoneComponent extends Component {\n\n    UNSAFE_componentWillMount() {\n      if (this.props.authenticationState && (!this.props.authenticationState.authenticated || this.props.authenticationState.token === null)) {\n        Log.info(\"Authentication HOC recognized that user is not signed in - will redirect\");\n        this.props.history.push('/pages/sign_in');\n      }\n    }\n\n    UNSAFE_componentWillUpdate(nextProps) {\n      if (nextProps.authenticationState && (!nextProps.authenticationState.authenticated || nextProps.authenticationState.token === null)) {\n          Log.info(\"Authentication HOC recognized that user is not signed in - will redirect\");\n          this.props.history.push('/pages/sign_in');\n      }\n    }\n\n    render() {\n      if (Object.keys(this.props.languages.byId).length === 0 && this.props.languages.isRequesting === false) {\n        Log.info(\"Will update metadata\");\n        this.props.getLanguages();\n      }\n\n      return <ComposedComponent {...this.props} />;\n    }\n  }\n\n  function mapStateToProps( { authenticationState, languages } ) {\n    Log.info(\"Mapping\", authenticationState);\n    return { authenticationState, languages };\n  }\n\n  function mapDispatchToProps(dispatch) {\n    return bindActionCreators({getLanguages}, dispatch);\n  }\n\n  return connect(mapStateToProps, mapDispatchToProps)(PortalZoneComponent);\n}","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Grid from \"material-ui/Grid\";\n\nconst style = {\n  grid: {\n    margin: \"0 -15px\",\n    width: \"calc(100% + 30px)\"\n    // '&:before,&:after':{\n    //   display: 'table',\n    //   content: '\" \"',\n    // },\n    // '&:after':{\n    //   clear: 'both',\n    // }\n  }\n};\n\nfunction GridContainer({ ...props }) {\n  const { classes, children, className, ...rest } = props;\n  return (\n    <Grid container {...rest} className={classes.grid + \" \" + className}>\n      {children}\n    </Grid>\n  );\n}\n\nexport default withStyles(style)(GridContainer);\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Grid from \"material-ui/Grid\";\n\nconst style = {\n  grid: {\n    padding: \"0 15px !important\"\n  }\n};\n\nfunction ItemGrid({ ...props }) {\n  const { classes, children, className, ...rest } = props;\n  return (\n    <Grid item {...rest} className={classes.grid + \" \" + className}>\n      {children}\n    </Grid>\n  );\n}\n\nexport default withStyles(style)(ItemGrid);\n","/*!\n\n =========================================================\n * Material Dashboard PRO React - v1.1.1 based on Material Dashboard PRO - v1.2.0\n =========================================================\n\n * Product Page: https://www.creative-tim.com/product/material-dashboard-react\n * Copyright 2018 Creative Tim (https://www.creative-tim.com)\n * Licensed under MIT (https://github.com/creativetimofficial/material-dashboard-react/blob/master/LICENSE.md)\n\n =========================================================\n\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\n */\n\n// ##############################\n// // // Variables - Styles that are used on more than one component\n// #############################\n\nconst drawerWidth = 260;\n\nconst drawerMiniWidth = 80;\n\nconst transition = {\n  transition: \"all 0.33s cubic-bezier(0.685, 0.0473, 0.346, 1)\"\n};\n\nconst containerFluid = {\n  paddingRight: \"15px\",\n  paddingLeft: \"15px\",\n  marginRight: \"auto\",\n  marginLeft: \"auto\",\n  \"&:before,&:after\": {\n    display: \"table\",\n    content: '\" \"'\n  },\n  \"&:after\": {\n    clear: \"both\"\n  }\n};\n\nconst container = {\n  paddingRight: \"15px\",\n  paddingLeft: \"15px\",\n  marginRight: \"auto\",\n  marginLeft: \"auto\",\n  \"@media (min-width: 768px)\": {\n    width: \"750px\"\n  },\n  \"@media (min-width: 992px)\": {\n    width: \"970px\"\n  },\n  \"@media (min-width: 1200px)\": {\n    width: \"1170px\"\n  },\n  \"&:before,&:after\": {\n    display: \"table\",\n    content: '\" \"'\n  },\n  \"&:after\": {\n    clear: \"both\"\n  }\n};\n\nconst boxShadow = {\n  boxShadow:\n    \"0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n};\n\nconst card = {\n  display: \"inline-block\",\n  position: \"relative\",\n  width: \"100%\",\n  margin: \"25px 0\",\n  boxShadow: \"0 1px 4px 0 rgba(0, 0, 0, 0.14)\",\n  borderRadius: \"6px\",\n  color: \"rgba(0, 0, 0, 0.87)\",\n  background: \"#fff\"\n};\n\nconst defaultFont = {\n  fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n  fontWeight: \"300\",\n  lineHeight: \"1.5em\"\n};\n\n// const primaryColor = \"#efa92c\"; // NE Color ???\nconst primaryColor = \"#e5a82e\"; // \"#9c27b0\";\nconst warningColor = \"#e5632e\"; //\"#ff9800\";\nconst dangerColor = \"#ad3402\"; // \"#f44336\";\nconst successColor = \"#49bf56\"; //\"#4caf50\";\nconst infoColor = \"#00acc1\";\nconst roseColor = \"#e91e63\";\nconst grayColor = \"#999999\";\n\nconst primaryBoxShadow = {\n  boxShadow:\n    \"0 12px 20px -10px rgba(156, 39, 176, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(156, 39, 176, 0.2)\"\n};\nconst infoBoxShadow = {\n  boxShadow:\n    \"0 12px 20px -10px rgba(0, 188, 212, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(0, 188, 212, 0.2)\"\n};\nconst successBoxShadow = {\n  boxShadow:\n    \"0 12px 20px -10px rgba(76, 175, 80, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(76, 175, 80, 0.2)\"\n};\nconst warningBoxShadow = {\n  boxShadow:\n    \"0 12px 20px -10px rgba(255, 152, 0, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(255, 152, 0, 0.2)\"\n};\nconst dangerBoxShadow = {\n  boxShadow:\n    \"0 12px 20px -10px rgba(244, 67, 54, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(244, 67, 54, 0.2)\"\n};\nconst roseBoxShadow = {\n  boxShadow:\n    \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)\"\n};\n\nconst orangeCardHeader = {\n//  background: \"linear-gradient(60deg, #ffa726, #fb8c00)\",\n  background: \"#E5A82E\", // TODO: TEMP\n  ...warningBoxShadow\n};\nconst NEStyleCardHeader = {\n  background: \"linear-gradient(60deg, #b97b00, #E5A82E)\",\n  ...warningBoxShadow\n};\nconst greenCardHeader = {\n  background: \"linear-gradient(60deg, #66bb6a, #43a047)\",\n  ...successBoxShadow\n};\nconst redCardHeader = {\n  background: \"linear-gradient(60deg, #ef5350, #e53935)\",\n  ...dangerBoxShadow\n};\nconst blueCardHeader = {\n  background: \"linear-gradient(60deg, #26c6da, #00acc1)\",\n  ...infoBoxShadow\n};\nconst purpleCardHeader = {\n  background: \"linear-gradient(60deg, #ab47bc, #8e24aa)\",\n  ...primaryBoxShadow\n};\nconst roseCardHeader = {\n  background: \"linear-gradient(60deg, #ec407a, #d81b60)\",\n  ...roseBoxShadow\n};\n\nconst cardActions = {\n  margin: \"0 20px 10px\",\n  paddingTop: \"10px\",\n  borderTop: \"1px solid #eeeeee\",\n  height: \"auto\",\n  ...defaultFont\n};\n\nconst cardHeader = {\n  margin: \"-20px 15px 0\",\n  borderRadius: \"3px\",\n  padding: \"15px\"\n};\n\nconst defaultBoxShadow = {\n  border: \"0\",\n  borderRadius: \"3px\",\n  boxShadow:\n    \"0 10px 20px -12px rgba(0, 0, 0, 0.42), 0 3px 20px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\",\n  padding: \"10px 0\",\n  transition: \"all 150ms ease 0s\"\n};\n\nconst tooltip = {\n  padding: \"10px 15px\",\n  minWidth: \"130px\",\n  color: \"#FFFFFF\",\n  lineHeight: \"1.7em\",\n  background: \"rgba(85,85,85,0.9)\",\n  border: \"none\",\n  borderRadius: \"3px\",\n  opacity: \"1!important\",\n  boxShadow:\n    \"0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12), 0 5px 5px -3px rgba(0, 0, 0, 0.2)\",\n  maxWidth: \"200px\",\n  textAlign: \"center\",\n  fontFamily: '\"Helvetica Neue\",Helvetica,Arial,sans-serif',\n  fontSize: \"12px\",\n  fontStyle: \"normal\",\n  fontWeight: \"400\",\n  textShadow: \"none\",\n  textTransform: \"none\",\n  letterSpacing: \"normal\",\n  wordBreak: \"normal\",\n  wordSpacing: \"normal\",\n  wordWrap: \"normal\",\n  whiteSpace: \"normal\",\n  lineBreak: \"auto\"\n};\n\nexport {\n  //variables\n  drawerWidth,\n  drawerMiniWidth,\n  transition,\n  container,\n  containerFluid,\n  boxShadow,\n  card,\n  defaultFont,\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor,\n  primaryBoxShadow,\n  infoBoxShadow,\n  successBoxShadow,\n  warningBoxShadow,\n  dangerBoxShadow,\n  roseBoxShadow,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardActions,\n  cardHeader,\n  defaultBoxShadow,\n  tooltip\n};\n","// ##############################\n// // // PricingCard component styles\n// #############################\n\nimport {\n  card,\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst pricingCardStyle = {\n  card: {\n    ...card,\n    textAlign: \"center\",\n    boxShadow:\n      \"0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n  },\n  cardPlain: {\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  cardContent: {\n    padding: \"15px 20px !important\",\n    position: \"relative\"\n  },\n  cardTitle: {\n    marginBottom: \"0\",\n    marginTop: \"10px\",\n    color: \"#999999\",\n    fontSize: \"14px\"\n  },\n  cardPrice: {\n    marginTop: \"30px\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\"\n  },\n  cardDescription: {\n    color: \"#999999\",\n    fontSize: \"14px\"\n  },\n  primary: {\n    color: primaryColor\n  },\n  warning: {\n    color: warningColor\n  },\n  danger: {\n    color: dangerColor\n  },\n  success: {\n    color: successColor\n  },\n  info: {\n    color: infoColor\n  },\n  rose: {\n    color: roseColor\n  },\n  gray: {\n    color: grayColor\n  },\n  white: {\n    color: \"#FFFFFF\"\n  },\n  iconWrapper: {\n    margin: \"10px auto 0px\",\n    fontSize: \"55px\",\n    border: \"1px solid #E5E5E5\",\n    borderRadius: \"50%\",\n    width: \"130px\",\n    lineHeight: \"130px\",\n    height: \"130px\"\n  },\n  iconWrapperOnPlain: {\n    border: \"1px solid #FFFFFF\"\n  },\n  icon: {\n    width: \"55px\",\n    height: \"55px\",\n    top: \"6px\",\n    position: \"relative\"\n  }\n};\n\nexport default pricingCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\n\nimport pricingCardStyle from \"assets/jss/material-dashboard-pro-react/components/pricingCardStyle.jsx\";\n\nfunction PricingCard({ ...props }) {\n  const {\n    classes,\n    title,\n    price,\n    description,\n    plain,\n    footer,\n    iconColor,\n    whitePrice\n  } = props;\n  const cardClasses =\n    classes.card +\n    \" \" +\n    cx({\n      [classes.cardPlain]: plain\n    });\n  const cardPrice =\n    classes.cardPrice +\n    \" \" +\n    cx({\n      [classes.white]: whitePrice === true && plain\n    });\n  const iconWrapper =\n    classes.iconWrapper +\n    \" \" +\n    cx({\n      [classes[iconColor]]: iconColor !== undefined,\n      [classes.white]: plain && iconColor === undefined,\n      [classes.grayColor]: plain === undefined && iconColor === undefined,\n      [classes.iconOnPlain]: plain\n    });\n  return (\n    <Card className={cardClasses}>\n      <CardContent className={classes.cardContent}>\n        <h6 className={classes.cardTitle}>{title}</h6>\n        <div className={iconWrapper}>\n          <props.icon className={classes.icon} />\n        </div>\n        <h3 className={cardPrice}>{price}</h3>\n        <p className={classes.cardDescription}>{description}</p>\n        {footer}\n      </CardContent>\n    </Card>\n  );\n}\n\nPricingCard.defaultProps = {\n  whitePrice: true\n};\n\nPricingCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  title: PropTypes.string,\n  price: PropTypes.string,\n  description: PropTypes.string,\n  icon: PropTypes.func,\n  iconColor: PropTypes.oneOf([\n    \"primary\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"rose\",\n    \"gray\",\n    \"white\"\n  ]),\n  plain: PropTypes.bool,\n  footer: PropTypes.node,\n  whitePrice: PropTypes.bool\n};\n\nexport default withStyles(pricingCardStyle)(PricingCard);\n","// ##############################\n// // // Button styles\n// #############################\n\nimport {\n  grayColor,\n  roseColor,\n  primaryColor,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst buttonStyle = {\n  button: {\n    minWidth: \"auto\",\n    minHeight: \"auto\",\n    backgroundColor: grayColor,\n    color: \"#FFFFFF\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12)\",\n    border: \"none\",\n    borderRadius: \"3px\",\n    position: \"relative\",\n    padding: \"12px 30px\",\n    margin: \"10px 1px\",\n    fontSize: \"12px\",\n    fontWeight: \"400\",\n    textTransform: \"uppercase\",\n    letterSpacing: \"0\",\n    willChange: \"box-shadow, transform\",\n    transition:\n      \"box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)\",\n    lineHeight: \"1.3\",\n    textAlign: \"center\",\n    whiteSpace: \"nowrap\",\n    verticalAlign: \"middle\",\n    touchAction: \"manipulation\",\n    cursor: \"pointer\",\n    \"&:hover\": {\n      backgroundColor: grayColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2)\"\n    }\n  },\n  fullWidth: {\n    width: \"100%\"\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: primaryColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2)\"\n    }\n  },\n  info: {\n    backgroundColor: infoColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: infoColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2)\"\n    }\n  },\n  success: {\n    backgroundColor: successColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: successColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2)\"\n    }\n  },\n  warning: {\n    backgroundColor: warningColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: warningColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2)\"\n    }\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: dangerColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2)\"\n    }\n  },\n  rose: {\n    backgroundColor: roseColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: roseColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2)\"\n    }\n  },\n  defaultNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: grayColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  primaryNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: primaryColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  infoNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: infoColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  successNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: successColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  warningNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: warningColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  dangerNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: dangerColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  roseNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: roseColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  white: {\n    \"&,&:focus,&:hover\": {\n      backgroundColor: \"#FFFFFF\",\n      color: grayColor\n    }\n  },\n  simple: {\n    \"&,&:focus,&:hover\": {\n      backgroundColor: \"transparent\",\n      color: grayColor,\n      boxShadow: \"none\"\n    }\n  },\n  transparent: {\n    \"&,&:focus,&:hover\": {\n      color: \"inherit\",\n      background: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  round: {\n    borderRadius: \"30px\"\n  },\n  disabled: {\n    opacity: \"0.65\",\n    pointerEvents: \"none\"\n  },\n  right: {\n    float: \"right\"\n  },\n  justIcon: {\n    minWidth: \"10px\",\n    paddingLeft: \"12px\",\n    paddingRight: \"12px\",\n    fontSize: \"20px\"\n  },\n  wd: {\n    minWidth: \"160px\"\n  },\n  lg: {\n    fontSize: \"14px\",\n    padding: \"18px 36px\"\n  },\n  sm: {\n    padding: \"5px 20px\",\n    fontSize: \"11px\"\n  },\n  xs: {\n    padding: \"4px 15px\",\n    fontSize: \"10px\"\n  },\n  twitter: {\n    backgroundColor: \"#55acee\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(85, 172, 238, 0.14), 0 3px 1px -2px rgba(85, 172, 238, 0.2), 0 1px 5px 0 rgba(85, 172, 238, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#55acee\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(85, 172, 238, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(85, 172, 238, 0.2)\"\n    }\n  },\n  twitterNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#55acee\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  facebook: {\n    backgroundColor: \"#3b5998\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(59, 89, 152, 0.14), 0 3px 1px -2px rgba(59, 89, 152, 0.2), 0 1px 5px 0 rgba(59, 89, 152, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#3b5998\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(59, 89, 152, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(59, 89, 152, 0.2)\"\n    }\n  },\n  facebookNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#3b5998\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  google: {\n    backgroundColor: \"#dd4b39\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(221, 75, 57, 0.14), 0 3px 1px -2px rgba(221, 75, 57, 0.2), 0 1px 5px 0 rgba(221, 75, 57, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#dd4b39\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(221, 75, 57, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(221, 75, 57, 0.2)\"\n    }\n  },\n  googleNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#dd4b39\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  linkedin: {\n    backgroundColor: \"#0976b4\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(9, 118, 180, 0.14), 0 3px 1px -2px rgba(9, 118, 180, 0.2), 0 1px 5px 0 rgba(9, 118, 180, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#0976b4\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(9, 118, 180, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(9, 118, 180, 0.2)\"\n    }\n  },\n  linkedinNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#0976b4\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  pinterest: {\n    backgroundColor: \"#cc2127\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(204, 33, 39, 0.14), 0 3px 1px -2px rgba(204, 33, 39, 0.2), 0 1px 5px 0 rgba(204, 33, 39, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#cc2127\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(204, 33, 39, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(204, 33, 39, 0.2)\"\n    }\n  },\n  pinterestNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#cc2127\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  youtube: {\n    backgroundColor: \"#e52d27\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(229, 45, 39, 0.14), 0 3px 1px -2px rgba(229, 45, 39, 0.2), 0 1px 5px 0 rgba(229, 45, 39, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#e52d27\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(229, 45, 39, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(229, 45, 39, 0.2)\"\n    }\n  },\n  youtubeNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#e52d27\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  tumblr: {\n    backgroundColor: \"#35465c\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(53, 70, 92, 0.14), 0 3px 1px -2px rgba(53, 70, 92, 0.2), 0 1px 5px 0 rgba(53, 70, 92, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#35465c\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(53, 70, 92, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(53, 70, 92, 0.2)\"\n    }\n  },\n  tumblrNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#35465c\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  github: {\n    backgroundColor: \"#333333\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(51, 51, 51, 0.14), 0 3px 1px -2px rgba(51, 51, 51, 0.2), 0 1px 5px 0 rgba(51, 51, 51, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#333333\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(51, 51, 51, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(51, 51, 51, 0.2)\"\n    }\n  },\n  githubNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#333333\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  behance: {\n    backgroundColor: \"#1769ff\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(23, 105, 255, 0.14), 0 3px 1px -2px rgba(23, 105, 255, 0.2), 0 1px 5px 0 rgba(23, 105, 255, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#1769ff\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(23, 105, 255, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(23, 105, 255, 0.2)\"\n    }\n  },\n  behanceNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#1769ff\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  dribbble: {\n    backgroundColor: \"#ea4c89\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(234, 76, 137, 0.14), 0 3px 1px -2px rgba(234, 76, 137, 0.2), 0 1px 5px 0 rgba(234, 76, 137, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#ea4c89\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(234, 76, 137, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(234, 76, 137, 0.2)\"\n    }\n  },\n  dribbbleNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#ea4c89\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  reddit: {\n    backgroundColor: \"#ff4500\",\n    color: \" #fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(255, 69, 0, 0.14), 0 3px 1px -2px rgba(255, 69, 0, 0.2), 0 1px 5px 0 rgba(255, 69, 0, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#ff4500\",\n      color: \" #fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(255, 69, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 69, 0, 0.2)\"\n    }\n  },\n  redditNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#ff4500\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  }\n};\n\nexport default buttonStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Button from \"material-ui/Button\";\n\nimport buttonStyle from \"assets/jss/material-dashboard-pro-react/components/buttonStyle\";\n\nfunction RegularButton({ ...props }) {\n  const {\n    classes,\n    color,\n    round,\n    children,\n    fullWidth,\n    disabled,\n    customClass,\n    right,\n    justIcon,\n    size,\n    wd,\n    ...rest\n  } = props;\n  const btnClasses = cx({\n    [classes[color]]: color,\n    [classes.round]: round,\n    [classes.fullWidth]: fullWidth,\n    [classes.disabled]: disabled,\n    [customClass]: customClass,\n    [classes.right]: right,\n    [classes.justIcon]: justIcon,\n    [classes.wd]: wd,\n    [classes[size]]: size\n  });\n  return (\n    <Button {...rest} className={classes.button + \" \" + btnClasses}>\n      {children}\n    </Button>\n  );\n}\n\nRegularButton.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\n    \"default\",\n    \"primary\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"rose\",\n    \"defaultNoBackground\",\n    \"primaryNoBackground\",\n    \"infoNoBackground\",\n    \"successNoBackground\",\n    \"warningNoBackground\",\n    \"dangerNoBackground\",\n    \"roseNoBackground\",\n    \"twitter\",\n    \"twitterNoBackground\",\n    \"facebook\",\n    \"facebookNoBackground\",\n    \"google\",\n    \"googleNoBackground\",\n    \"linkedin\",\n    \"linkedinNoBackground\",\n    \"pinterest\",\n    \"pinterestNoBackground\",\n    \"youtube\",\n    \"youtubeNoBackground\",\n    \"tumblr\",\n    \"tumblrNoBackground\",\n    \"github\",\n    \"githubNoBackground\",\n    \"behance\",\n    \"behanceNoBackground\",\n    \"dribbble\",\n    \"dribbbleNoBackground\",\n    \"reddit\",\n    \"redditNoBackground\",\n    \"white\",\n    \"simple\",\n    \"transparent\"\n  ]),\n  round: PropTypes.bool,\n  fullWidth: PropTypes.bool,\n  disabled: PropTypes.bool,\n  customClass: PropTypes.string,\n  // make the button's min width to 160px\n  wd: PropTypes.bool,\n  // make the button smaller\n  justIcon: PropTypes.bool,\n  // button will float right\n  right: PropTypes.bool,\n  size: PropTypes.oneOf([\"sm\", \"lg\", \"xs\"])\n};\n\nexport default withStyles(buttonStyle)(RegularButton);\n","// ##############################\n// // // PricingPage Pages View styles\n// #############################\n\nimport {\n  container,\n  defaultFont\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst pricingPageStyle = {\n  content: {\n    minHeight: \"calc(100vh - 80px)\",\n    position: \"relative\",\n    zIndex: \"4\"\n  },\n  container: {\n    ...container\n  },\n  title: {\n    ...defaultFont,\n    color: \"#FFFFFF\",\n    marginTop: \"13vh\",\n    marginBottom: \"30px\",\n    textAlign: \"center\"\n  },\n  description: {\n    fontSize: \"18px\",\n    color: \"#FFFFFF\",\n    textAlign: \"center\"\n  }\n};\n\nexport default pricingPageStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// @material-ui/icons\nimport Weekend from \"@material-ui/icons/Weekend\";\nimport Home from \"@material-ui/icons/Home\";\nimport Business from \"@material-ui/icons/Business\";\nimport AccountBalance from \"@material-ui/icons/AccountBalance\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport PricingCard from \"components/Cards/PricingCard.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport pricingPageStyle from \"assets/jss/material-dashboard-pro-react/views/pricingPageStyle.jsx\";\n\nclass PricingPage extends React.Component {\n  render() {\n    const { classes } = this.props;\n    return (\n      <div className={classes.content}>\n        <div className={classes.container}>\n          <GridContainer justify=\"center\">\n            <ItemGrid xs={12} sm={12} md={6}>\n              <h2 className={classes.title}>Pick the best plan for you</h2>\n              <h5 className={classes.description}>\n                You have Free Unlimited Updates and Premium Support on each\n                package.\n              </h5>\n            </ItemGrid>\n          </GridContainer>\n          <GridContainer justify=\"center\">\n            <ItemGrid xs={12} sm={12} md={3}>\n              <PricingCard\n                plain\n                title=\"FREELANCER\"\n                price=\"FREE\"\n                description=\"This is good if your company size is between 2 and 10 Persons.\"\n                icon={Weekend}\n                footer={\n                  <Button round color=\"white\">\n                    Choose plan\n                  </Button>\n                }\n              />\n            </ItemGrid>\n            <ItemGrid xs={12} sm={12} md={3}>\n              <PricingCard\n                title=\"SMALL COMPANY\"\n                price=\"$29\"\n                description=\"This is good if your company size is between 2 and 10 Persons.\"\n                icon={Home}\n                iconColor=\"rose\"\n                footer={\n                  <Button round color=\"rose\">\n                    Choose plan\n                  </Button>\n                }\n              />\n            </ItemGrid>\n            <ItemGrid xs={12} sm={12} md={3}>\n              <PricingCard\n                plain\n                title=\"MEDIUM COMPANY\"\n                price=\"$69\"\n                description=\"This is good if your company size is between 11 and 99 Persons.\"\n                icon={Business}\n                footer={\n                  <Button round color=\"white\">\n                    Choose plan\n                  </Button>\n                }\n              />\n            </ItemGrid>\n            <ItemGrid xs={12} sm={12} md={3}>\n              <PricingCard\n                plain\n                title=\"ENTERPRISE\"\n                price=\"$159\"\n                description=\"This is good if your company size is 99+ persons.\"\n                icon={AccountBalance}\n                footer={\n                  <Button round color=\"white\">\n                    Choose plan\n                  </Button>\n                }\n              />\n            </ItemGrid>\n          </GridContainer>\n        </div>\n      </div>\n    );\n  }\n}\n\nPricingPage.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(pricingPageStyle)(PricingPage);\n","// ##############################\n// // // LoginCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst loginCardStyle = {\n  card: {\n    ...card,\n    boxShadow: \"0 1px 4px 0 rgba(0, 0, 0, 0.14)\",\n    paddingBottom: \"20px\",\n    transform: \"translate3d(0, 0, 0)\",\n    transition: \"all 300ms linear\"\n  },\n  cardPlain: {\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  cardHeader: {\n    ...cardHeader,\n    ...defaultFont,\n    textAlign: \"center\",\n    marginTop: \"-40px\",\n    marginBottom: \"20px\"\n  },\n  cardPlainHeader: {\n    marginLeft: 0,\n    marginRight: 0\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardTitle: {\n    ...defaultFont,\n    color: \"#FFFFFF\",\n    marginTop: \"10px\",\n    marginBottom: \"10px\",\n    fontWeight: \"700\",\n    fontSize: \"1.3em\"\n  },\n  cardSubtitle: {\n    ...defaultFont,\n    textAlign: \"center\",\n    fontSize: \"14px\"\n  },\n  cardActions: {\n    padding: \"0\",\n    display: \"block\",\n    height: \"auto\"\n  },\n  cardContent: {\n    padding: \"0px 30px\",\n    position: \"relative\"\n  },\n  inputAdornmentIcon: {\n    color: \"#555\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  center: {\n    textAlign: \"center\"\n  }\n};\n\nexport default loginCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport CardActions from \"material-ui/Card/CardActions\";\n\nimport loginCardStyle from \"assets/jss/material-dashboard-pro-react/components/loginCardStyle.jsx\";\n\nfunction LoginCard({ ...props }) {\n  const {\n    classes,\n    headerColor,\n    plainCard,\n    cardTitle,\n    cardSubtitle,\n    content,\n    footer,\n    socials,\n    footerAlign,\n    customCardClass\n  } = props;\n  const plainCardClasses = cx({\n    [\" \" + classes.cardPlain]: plainCard,\n    [\" \" + customCardClass]: customCardClass !== undefined\n  });\n  const cardPlainHeaderClasses = cx({\n    [\" \" + classes.cardPlainHeader]: plainCard\n  });\n  return (\n    <Card className={classes.card + plainCardClasses}>\n      <CardHeader\n        classes={{\n          root:\n            classes.cardHeader +\n            \" \" +\n            classes[headerColor + \"CardHeader\"] +\n            cardPlainHeaderClasses,\n          title: classes.cardTitle,\n          subheader: classes.cardSubtitle\n        }}\n        title={cardTitle}\n        subheader={socials}\n      />\n      <p className={classes.cardSubtitle}>{cardSubtitle}</p>\n      <CardContent className={classes.cardContent}>{content}</CardContent>\n      {footer !== undefined ? (\n        <CardActions\n          className={classes.cardActions + \" \" + classes[footerAlign]}\n        >\n          {footer}\n        </CardActions>\n      ) : null}\n    </Card>\n  );\n}\n\nLoginCard.defaultProps = {\n  headerColor: \"purple\"\n};\n\nLoginCard.propTypes = {\n  plainCard: PropTypes.bool,\n  classes: PropTypes.object.isRequired,\n  headerColor: PropTypes.oneOf([\n    \"orange\",\n    \"green\",\n    \"red\",\n    \"blue\",\n    \"purple\",\n    \"rose\"\n  ]),\n  cardTitle: PropTypes.node,\n  cardSubtitle: PropTypes.node,\n  content: PropTypes.node,\n  footer: PropTypes.node,\n  socials: PropTypes.node,\n  footerAlign: PropTypes.oneOf([\"left\", \"right\", \"center\"]),\n  customCardClass: PropTypes.string\n};\n\nexport default withStyles(loginCardStyle)(LoginCard);\n","// ##############################\n// // // CustomInput styles\n// #############################\n\nimport {\n  primaryColor,\n  dangerColor,\n  successColor,\n  defaultFont\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst customInputStyle = {\n  disabled: {\n    \"&:before\": {\n      background: \"transparent !important\",\n      backgroundSize: \"3px 1px !important\",\n      backgroundImage:\n        \"linear-gradient(to right, rgba(0, 0, 0, 0.23) 33%, transparent 0%) !important\",\n      backgroundRepeat: \"repeat-x !important\",\n      backgroundPosition: \"left top !important\"\n    }\n  },\n  underline: {\n    \"&:before\": {\n      backgroundColor: \"#D2D2D2\",\n      height: \"1px !important\"\n    },\n    \"&:after\": {\n      backgroundColor: primaryColor,\n      transition: \"0.3s ease all\"\n    }\n  },\n  underlineError: {\n    \"&:after\": {\n      backgroundColor: dangerColor,\n      transition: \"0.3s ease all\"\n    },\n    \"&:before\": {\n      backgroundColor: dangerColor + \"!important\",\n      height: \"2px !important\"\n    }\n  },\n  underlineSuccess: {\n    \"&:after\": {\n      backgroundColor: successColor,\n      transition: \"0.3s ease all\"\n    }\n  },\n  labelRoot: {\n    ...defaultFont,\n    color: \"#AAAAAA\",\n    fontWeight: \"400\",\n    fontSize: \"14px\",\n    lineHeight: \"1.42857\",\n    transition: \"0.3s ease all\"\n  },\n  labelRootError: {\n    color: dangerColor\n  },\n  labelRootSuccess: {\n    color: successColor\n  },\n  feedback: {\n    position: \"absolute\",\n    top: \"23px\",\n    right: \"0\",\n    zIndex: \"2\",\n    display: \"block\",\n    width: \"24px\",\n    height: \"24px\",\n    textAlign: \"center\",\n    pointerEvents: \"none\"\n  },\n  feedbackNoLabel: {\n    // top: \"8px\"\n  },\n  input: {\n    padding: \"2px 0 0\",\n    fontWeight: \"400\",\n    height: \"36px\",\n    fontSize: \"14px\",\n    lineHeight: \"1.428571429\",\n    color: \"#555\",\n    \"&[rows]\": {\n      height: \"auto\"\n    }\n  },\n  inputNoLabel: {\n    paddingTop: \"18px\"\n  },\n  inputRTL: {\n    textAlign: \"right\"\n  },\n  inputWithAdornment: {\n    paddingTop: \"21px\"\n  },\n  formControl: {\n    paddingBottom: \"10px\",\n    position: \"relative\"\n  },\n  labelWithAdornment: {\n    top: \"3px\"\n  },\n  feedbackAdorment: {\n    right: \"22px\"\n  }\n};\n\nexport default customInputStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport FormControl from \"material-ui/Form/FormControl\";\nimport FormHelperText from \"material-ui/Form/FormHelperText\";\nimport Input from \"material-ui/Input\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\n\n// @material-ui/icons\nimport Clear from \"@material-ui/icons/Clear\";\nimport Check from \"@material-ui/icons/Check\";\n\nimport customInputStyle from \"assets/jss/material-dashboard-pro-react/components/customInputStyle\";\n\nfunction CustomInput({ ...props }) {\n  const {\n    classes,\n    formControlProps,\n    labelText,\n    id,\n    labelProps,\n    inputProps,\n    error,\n    success,\n    helpText,\n    rtlActive\n  } = props;\n\n  var labelClasses = cx({\n    [\" \" + classes.labelRootError]: error,\n    [\" \" + classes.labelRootSuccess]: success && !error\n  });\n\n  var formControlClasses = classes.formControl;\n  if (formControlProps !== undefined) {\n    formControlClasses += \" \" + formControlProps.className;\n  }\n  var underlineClasses = cx({\n    [classes.underline]: true,\n    [classes.underlineError]: error,\n    [classes.underlineSuccess]: success && !error,\n  });\n  if (inputProps !== undefined) {\n    formControlClasses =\n      formControlClasses +\n      \" \" +\n      cx({\n        [classes.inputWithAdornment]:\n          (inputProps.startAdornment !== undefined ||\n            inputProps.endAdornment !== undefined) &&\n          labelText === undefined\n      });\n  }\n  if (inputProps !== undefined) {\n    labelClasses =\n      labelClasses +\n      \" \" +\n      cx({\n        [classes.labelWithAdornment]: inputProps.endAdornment !== undefined\n      });\n  }\n  const successClasses =\n    classes.feedback +\n    \" \" +\n    classes.labelRootSuccess +\n    \" \" +\n    cx({\n      [classes.feedbackNoLabel]: labelText === undefined,\n      [classes.feedbackAdorment]:\n        inputProps !== undefined && inputProps.endAdornment !== undefined\n    });\n  const errorClasses =\n    classes.feedback +\n    \" \" +\n    classes.labelRootError +\n    \" \" +\n    cx({\n      [classes.feedbackNoLabel]: labelText === undefined,\n      [classes.feedbackAdorment]:\n        inputProps !== undefined && inputProps.endAdornment !== undefined\n    });\n  const input =\n    classes.input +\n    \" \" +\n    cx({\n      [classes.inputRTL]: rtlActive,\n      [classes.inputNoLabel]: labelText === undefined\n    });\n  return (\n    <FormControl\n      {...formControlProps}\n      className={formControlClasses}\n      aria-describedby={id + \"-text\"}\n    >\n      {labelText !== undefined ? (\n        <InputLabel\n          className={classes.labelRoot + labelClasses}\n          htmlFor={id}\n          {...labelProps}\n        >\n          {labelText}\n        </InputLabel>\n      ) : null}\n      <Input\n        classes={{\n          input: input,\n          disabled: classes.disabled,\n          underline: underlineClasses\n        }}\n        id={id}\n        {...inputProps}\n      />\n      {error ? (\n        <Clear className={errorClasses} />\n      ) : success ? (\n        <Check className={successClasses} />\n      ) : null}\n      {helpText !== undefined ? (\n        <FormHelperText id={id + \"-text\"}>{helpText}</FormHelperText>\n      ) : null}\n    </FormControl>\n  );\n}\n\nCustomInput.propTypes = {\n  classes: PropTypes.object.isRequired,\n  labelText: PropTypes.node,\n  labelProps: PropTypes.object,\n  id: PropTypes.string,\n  inputProps: PropTypes.object,\n  formControlProps: PropTypes.object,\n  error: PropTypes.bool,\n  success: PropTypes.bool,\n  helpText: PropTypes.string,\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(customInputStyle)(CustomInput);\n","// ##############################\n// // // Typography styles\n// #############################\n\nimport {\n  defaultFont,\n  primaryColor,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst typographyStyle = {\n  defaultFontStyle: {\n    ...defaultFont,\n    fontSize: \"14px\"\n  },\n  defaultHeaderMargins: {\n    marginTop: \"20px\",\n    marginBottom: \"10px\"\n  },\n  quote: {\n    padding: \"10px 20px\",\n    margin: \"0 0 20px\",\n    fontSize: \"17.5px\",\n    borderLeft: \"5px solid #eee\"\n  },\n  quoteText: {\n    margin: \"0 0 10px\",\n    fontStyle: \"italic\"\n  },\n  quoteAuthor: {\n    display: \"block\",\n    fontSize: \"80%\",\n    lineHeight: \"1.42857143\",\n    color: \"#777\"\n  },\n  mutedText: {\n    color: \"#777\"\n  },\n  primaryText: {\n    color: primaryColor\n  },\n  infoText: {\n    color: infoColor\n  },\n  successText: {\n    color: successColor\n  },\n  warningText: {\n    color: warningColor\n  },\n  dangerText: {\n    color: dangerColor\n  },\n};\n\nexport default typographyStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Danger({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.dangerText}>\n      {children}\n    </div>\n  );\n}\n\nDanger.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Danger);\n","// ##############################\n// // // LoginPage view styles\n// #############################\n\nimport { container } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst loginPageStyle = {\n  content: {\n    paddingTop: \"18vh\",\n    minHeight: \"calc(100vh - 80px)\",\n    position: \"relative\",\n    zIndex: \"4\"\n  },\n  container,\n  customButtonClass: {\n    \"&,&:focus,&:hover\":{\n      color: \"#FFFFFF\",\n    },\n    marginLeft: \"5px\",\n    marginRight: \"5px\"\n  },\n  inputAdornment: {\n    marginRight: \"18px\"\n  },\n  inputAdornmentIcon: {\n    color: \"#555\"\n  },\n  cardHidden: {\n    opacity: \"0\",\n    transform: \"translate3d(0, -60px, 0)\"\n  }\n};\n\nexport default loginPageStyle;\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { NavLink } from 'react-router-dom'\n\nimport Log from '../../logging/Log.jsx'\n\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from 'redux'\nimport { authenticate } from '../../actions/index'\nimport compose from 'recompose/compose'\n\n// material-ui components\nimport withStyles from 'material-ui/styles/withStyles'\nimport InputAdornment from 'material-ui/Input/InputAdornment'\n\n// @material-ui/icons\nimport Face from '@material-ui/icons/Face'\nimport Email from '@material-ui/icons/Email'\nimport LockOutline from '@material-ui/icons/LockOutline'\n\n// core components\nimport GridContainer from 'components/Grid/GridContainer.jsx'\nimport ItemGrid from 'components/Grid/ItemGrid.jsx'\nimport LoginCard from 'components/Cards/LoginCard.jsx'\nimport CustomInput from 'components/CustomInput/CustomInput.jsx'\nimport Button from 'components/CustomButtons/Button.jsx'\nimport Danger from 'components/Typography/Danger.jsx'\n\nimport loginPageStyle from 'assets/jss/material-dashboard-pro-react/views/loginPageStyle.jsx'\n\nimport ReactGA from 'react-ga'\n\nexport const initializeReactGA = () => {\n  ReactGA.initialize('UA-100557389-4')\n}\n\nexport const logPageView = () => {\n  ReactGA.set({ page: window.location.pathname })\n  ReactGA.pageview(window.location.pathname)\n}\n\nclass LoginPage extends React.Component {\n  constructor(props) {\n    super(props)\n    // we use this to make the card to appear after the page has been rendered\n    this.state = {\n      cardAnimaton: 'cardHidden',\n      email: '',\n      password: '',\n      signInSubmitted: false,\n      userTyping: false\n    }\n\n    this.handleSignInSubmit = this.handleSignInSubmit.bind(this)\n    this.onSignInButtonClicked = this.onSignInButtonClicked.bind(this)\n    this.handleKeyPress = this.handleKeyPress.bind(this)\n    this.onEmailChange = this.onEmailChange.bind(this)\n    this.onPasswordChange = this.onPasswordChange.bind(this)\n  }\n\n  UNSAFE_componentWillMount() {\n    // Google analytics -> Check production/development\n    if (\n      window.location.href ==\n      'https://ne-portal-app.azurewebsites.net/pages/sign_in'\n    ) {\n      initializeReactGA()\n      logPageView()\n    }\n  }\n\n  componentDidMount() {\n    Log.info('Props on component load:', this.props)\n    // we add a hidden class to the card and after 700 ms we delete it and the transition appears\n    setTimeout(\n      function() {\n        this.setState({ cardAnimaton: '' })\n      }.bind(this),\n      700\n    )\n  }\n\n  // componentDidUpdate(prevProps, prevState, snapshot) {\n  //   Log.info(\"Error states on update:\", this.state.error, this.props.authenticationState.error)\n  //   if(this.state.error == null && this.props.authenticationState.error != null) {\n  //     this.setState({error: this.props.authenticationState.error});\n  //   }\n  // }\n\n  handleSignInSubmit = () => {\n    this.props.authenticate(this.state.email, this.state.password)\n    this.setState({ signInSubmitted: true, userTyping: false, error: null })\n  }\n\n  onSignInButtonClicked = () => {\n    Log.info('Sign in button clicked!')\n    this.handleSignInSubmit()\n  }\n\n  handleKeyPress = event => {\n    if (event.key == 'Enter') {\n      Log.info('Enter clicked!')\n      this.handleSignInSubmit()\n    }\n  }\n\n  onEmailChange(event) {\n    this.setState({ email: event.target.value })\n    this.setState({ userTyping: true })\n  }\n\n  onPasswordChange(event) {\n    this.setState({ password: event.target.value })\n    this.setState({ userTyping: true })\n  }\n\n  renderErrorMessage() {\n    Log.info(\n      'Error message rendering:',\n      this.props.authenticationState,\n      this.state\n    )\n\n    if (\n      this.state.signInSubmitted &&\n      !this.state.userTyping &&\n      this.props.authenticationState &&\n      this.props.authenticationState.authenticated === false &&\n      this.props.authenticationState.error !== null      \n    ) {     \n      if (this.props.authenticationState.error.data.message === \"User does not exist.\") {\n        return <Danger>The email or password is incorrect.</Danger>\n      }\n      throw new Error(this.props.authenticationState.error.data.message);\n    } \n  }\n\n  render() {\n    const { classes } = this.props\n    return (\n      <div className={classes.content}>\n        <div className={classes.container}>\n          <GridContainer justify='center'>\n            <ItemGrid xs={12} sm={6} md={4}>\n              <form>\n                <LoginCard\n                  customCardClass={classes[this.state.cardAnimaton]}\n                  headerColor='orange'\n                  cardTitle='Sign in to your institutional account'\n                  footerAlign='center'\n                  footer={\n                    <div>\n                      <Button\n                        color='primaryNoBackground'\n                        wd\n                        size='lg'\n                        onClick={this.onSignInButtonClicked}\n                      >\n                        Sign in\n                      </Button>\n                      {this.renderErrorMessage()}\n                    </div>\n                  }\n                  content={\n                    <div>\n                      <CustomInput\n                        labelText='Email'\n                        id='email'\n                        formControlProps={{\n                          fullWidth: true\n                        }}\n                        inputProps={{\n                          value: this.state.email,\n                          onChange: this.onEmailChange,\n                          onKeyPress: this.handleKeyPress,\n                          endAdornment: (\n                            <InputAdornment position='end'>\n                              <Email className={classes.inputAdornmentIcon} />\n                            </InputAdornment>\n                          )\n                        }}\n                      />\n                      <CustomInput\n                        labelText='Password'\n                        id='password'\n                        formControlProps={{\n                          fullWidth: true\n                        }}\n                        inputProps={{\n                          value: this.state.password,\n                          onChange: this.onPasswordChange,\n                          onKeyPress: this.handleKeyPress,\n                          endAdornment: (\n                            <InputAdornment position='end'>\n                              <LockOutline\n                                className={classes.inputAdornmentIcon}\n                              />\n                            </InputAdornment>\n                          ),\n                          type: 'password'\n                        }}\n                      />\n                    </div>\n                  }\n                />\n              </form>\n            </ItemGrid>\n          </GridContainer>\n        </div>\n      </div>\n    )\n  }\n}\n\nLoginPage.propTypes = {\n  classes: PropTypes.object.isRequired\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators({ authenticate }, dispatch)\n}\n\nexport default compose(\n  withStyles(loginPageStyle),\n  connect(\n    null,\n    mapDispatchToProps\n  )\n)(LoginPage)\n","// ##############################\n// // // RegularCard styles\n// #############################\n\nimport { card, defaultFont } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst regularCardStyle = {\n  card,\n  cardPlain: {\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  cardHeader: {\n    padding: \"15px 20px 0\",\n    zIndex: \"3\"\n  },\n  cardTitle: {\n    ...defaultFont,\n    color: \"#3C4858\",\n    textDecoration: \"none\",\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    fontSize: \"1.3em\",\n    \"& small\": {\n      fontWeight: \"400\",\n      lineHeight: \"1\",\n      color: \"#777\"\n    }\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  center: {\n    textAlign: \"center\"\n  },\n  cardSubtitle: {\n    ...defaultFont,\n    color: \"#999999\",\n    fontSize: \"14px\",\n    margin: \"0 0 10px\"\n  },\n  cardContent: {\n    padding: \"15px 20px !important\",\n    position: \"relative\"\n  }\n};\n\nexport default regularCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\n\nimport regularCardStyle from \"assets/jss/material-dashboard-pro-react/components/regularCardStyle\";\n\nfunction RegularCard({ ...props }) {\n  const {\n    classes,\n    plainCard,\n    cardTitle,\n    cardSubtitle,\n    content,\n    titleAlign,\n    customCardClasses,\n    contentAlign,\n    subtitleAlign,\n    customCardTitleClasses\n  } = props;\n  const cardClasses =\n    classes.card +\n    cx({\n      [\" \" + classes.cardPlain]: plainCard,\n      [\" \" + customCardClasses]: customCardClasses !== undefined\n    });\n  return (\n    <Card className={cardClasses}>\n      {cardTitle !== undefined || cardSubtitle !== undefined ? (\n        <CardHeader\n          classes={{\n            root: classes.cardHeader,\n            title: classes.cardTitle + \" \" + classes[titleAlign] + \" \" + customCardTitleClasses,\n            subheader: classes.cardSubtitle + \" \" + classes[subtitleAlign]\n          }}\n          title={cardTitle}\n          subheader={cardSubtitle}\n        />\n      ) : null}\n      <CardContent\n        className={classes.cardContent + \" \" + classes[contentAlign]}\n      >\n        {content}\n      </CardContent>\n    </Card>\n  );\n}\n\nRegularCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  customCardClasses: PropTypes.string,\n  customCardTitleClasses: PropTypes.string,\n  plainCard: PropTypes.bool,\n  cardTitle: PropTypes.node,\n  cardSubtitle: PropTypes.node,\n  content: PropTypes.node,\n  titleAlign: PropTypes.oneOf([\"right\", \"left\", \"center\"]),\n  contentAlign: PropTypes.oneOf([\"right\", \"left\", \"center\"]),\n  subtitleAlign: PropTypes.oneOf([\"right\", \"left\", \"center\"])\n};\n\nexport default withStyles(regularCardStyle)(RegularCard);\n","// ##############################\n// // // IconButton styles\n// #############################\n\nimport {\n  grayColor,\n  roseColor,\n  primaryColor,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst iconButtonStyle = {\n  button: {\n    color: \"#FFFFFF\",\n    height: \"42px\",\n    minWidth: \"42px\",\n    width: \"42px\",\n    borderRadius: \"50%\",\n    fontSize: \"20px\",\n    padding: \"11px 11px\",\n    lineHeight: \"1em\",\n    margin: \"auto\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(153, 153, 153, 0.14), 0 3px 1px -2px rgba(153, 153, 153, 0.2), 0 1px 5px 0 rgba(153, 153, 153, 0.12)\",\n    overflow: \"hidden\",\n    position: \"relative\",\n    border: \"none\",\n    fontWeight: \"400\",\n    textTransform: \"uppercase\",\n    letterSpacing: \"0\",\n    willChange: \"box-shadow, transform\",\n    transition:\n      \"box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1)\",\n    display: \"inline-block\",\n    textAlign: \"center\",\n    whiteSpace: \"nowrap\",\n    verticalAlign: \"middle\",\n    touchAction: \"manipulation\",\n    cursor: \"pointer\",\n    userSelect: \"none\",\n    backgroundImage: \"none\",\n    backgroundColor: grayColor,\n    \"&:hover\": {\n      backgroundColor: grayColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(153, 153, 153, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(153, 153, 153, 0.2)\"\n    }\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: primaryColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(156, 39, 176, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(156, 39, 176, 0.2)\"\n    }\n  },\n  info: {\n    backgroundColor: infoColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(0, 188, 212, 0.14), 0 3px 1px -2px rgba(0, 188, 212, 0.2), 0 1px 5px 0 rgba(0, 188, 212, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: infoColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(0, 188, 212, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 188, 212, 0.2)\"\n    }\n  },\n  success: {\n    backgroundColor: successColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: successColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(76, 175, 80, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(76, 175, 80, 0.2)\"\n    }\n  },\n  warning: {\n    backgroundColor: warningColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(255, 152, 0, 0.14), 0 3px 1px -2px rgba(255, 152, 0, 0.2), 0 1px 5px 0 rgba(255, 152, 0, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: warningColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(255, 152, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 152, 0, 0.2)\"\n    }\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(244, 67, 54, 0.14), 0 3px 1px -2px rgba(244, 67, 54, 0.2), 0 1px 5px 0 rgba(244, 67, 54, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: dangerColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(244, 67, 54, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(244, 67, 54, 0.2)\"\n    }\n  },\n  rose: {\n    backgroundColor: roseColor,\n    boxShadow:\n      \"0 2px 2px 0 rgba(233, 30, 99, 0.14), 0 3px 1px -2px rgba(233, 30, 99, 0.2), 0 1px 5px 0 rgba(233, 30, 99, 0.12)\",\n    \"&:hover\": {\n      backgroundColor: roseColor,\n      boxShadow:\n        \"0 14px 26px -12px rgba(233, 30, 99, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(233, 30, 99, 0.2)\"\n    }\n  },\n  defaultNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: grayColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  primaryNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: primaryColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  infoNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: infoColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  successNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: successColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  warningNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: warningColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  dangerNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: dangerColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  roseNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: roseColor,\n      boxShadow: \"none\",\n      backgroundColor: \"transparent\"\n    }\n  },\n  white: {\n    \"&,&:focus,&:hover\": {\n      backgroundColor: \"#FFFFFF\",\n      color: grayColor\n    }\n  },\n  simple: {\n    color: \"#FFFFFF\",\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  twitter: {\n    backgroundColor: \"#55acee\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(85, 172, 238, 0.14), 0 3px 1px -2px rgba(85, 172, 238, 0.2), 0 1px 5px 0 rgba(85, 172, 238, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#55acee\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(85, 172, 238, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(85, 172, 238, 0.2)\"\n    }\n  },\n  twitterNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#55acee\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  facebook: {\n    backgroundColor: \"#3b5998\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(59, 89, 152, 0.14), 0 3px 1px -2px rgba(59, 89, 152, 0.2), 0 1px 5px 0 rgba(59, 89, 152, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#3b5998\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(59, 89, 152, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(59, 89, 152, 0.2)\"\n    }\n  },\n  facebookNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#3b5998\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  google: {\n    backgroundColor: \"#dd4b39\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(221, 75, 57, 0.14), 0 3px 1px -2px rgba(221, 75, 57, 0.2), 0 1px 5px 0 rgba(221, 75, 57, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#dd4b39\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(221, 75, 57, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(221, 75, 57, 0.2)\"\n    }\n  },\n  googleNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#dd4b39\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  linkedin: {\n    backgroundColor: \"#0976b4\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(9, 118, 180, 0.14), 0 3px 1px -2px rgba(9, 118, 180, 0.2), 0 1px 5px 0 rgba(9, 118, 180, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#0976b4\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(9, 118, 180, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(9, 118, 180, 0.2)\"\n    }\n  },\n  linkedinNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#0976b4\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  pinterest: {\n    backgroundColor: \"#cc2127\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(204, 33, 39, 0.14), 0 3px 1px -2px rgba(204, 33, 39, 0.2), 0 1px 5px 0 rgba(204, 33, 39, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#cc2127\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(204, 33, 39, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(204, 33, 39, 0.2)\"\n    }\n  },\n  pinterestNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#cc2127\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  youtube: {\n    backgroundColor: \"#e52d27\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(229, 45, 39, 0.14), 0 3px 1px -2px rgba(229, 45, 39, 0.2), 0 1px 5px 0 rgba(229, 45, 39, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#e52d27\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(229, 45, 39, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(229, 45, 39, 0.2)\"\n    }\n  },\n  youtubeNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#e52d27\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  tumblr: {\n    backgroundColor: \"#35465c\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(53, 70, 92, 0.14), 0 3px 1px -2px rgba(53, 70, 92, 0.2), 0 1px 5px 0 rgba(53, 70, 92, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#35465c\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(53, 70, 92, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(53, 70, 92, 0.2)\"\n    }\n  },\n  tumblrNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#35465c\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  github: {\n    backgroundColor: \"#333333\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(51, 51, 51, 0.14), 0 3px 1px -2px rgba(51, 51, 51, 0.2), 0 1px 5px 0 rgba(51, 51, 51, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#333333\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(51, 51, 51, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(51, 51, 51, 0.2)\"\n    }\n  },\n  githubNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#333333\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  behance: {\n    backgroundColor: \"#1769ff\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(23, 105, 255, 0.14), 0 3px 1px -2px rgba(23, 105, 255, 0.2), 0 1px 5px 0 rgba(23, 105, 255, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#1769ff\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(23, 105, 255, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(23, 105, 255, 0.2)\"\n    }\n  },\n  behanceNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#1769ff\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  dribbble: {\n    backgroundColor: \"#ea4c89\",\n    color: \"#fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(234, 76, 137, 0.14), 0 3px 1px -2px rgba(234, 76, 137, 0.2), 0 1px 5px 0 rgba(234, 76, 137, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#ea4c89\",\n      color: \"#fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(234, 76, 137, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(234, 76, 137, 0.2)\"\n    }\n  },\n  dribbbleNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#ea4c89\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  },\n  reddit: {\n    backgroundColor: \"#ff4500\",\n    color: \" #fff\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(255, 69, 0, 0.14), 0 3px 1px -2px rgba(255, 69, 0, 0.2), 0 1px 5px 0 rgba(255, 69, 0, 0.12)\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"#ff4500\",\n      color: \" #fff\",\n      boxShadow:\n        \"0 14px 26px -12px rgba(255, 69, 0, 0.42), 0 4px 23px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(255, 69, 0, 0.2)\"\n    }\n  },\n  redditNoBackground: {\n    \"&,&:hover,&:focus\": {\n      color: \"#ff4500\",\n      backgroundColor: \"transparent\",\n      boxShadow: \"none\"\n    }\n  }\n};\n\nexport default iconButtonStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport IconButton from \"material-ui/IconButton\";\n\nimport iconButtonStyle from \"assets/jss/material-dashboard-pro-react/components/iconButtonStyle\";\n\nfunction IconCustomButton({ ...props }) {\n  const { classes, color, children, customClass, noBg, ...rest } = props;\n  const buttonClasses =\n    classes.button +\n    cx({\n      [\" \" + classes[color]]: color,\n      [\" \" + customClass]: customClass\n    });\n  return (\n    <IconButton {...rest} className={buttonClasses}>\n      {children}\n    </IconButton>\n  );\n}\n\nIconCustomButton.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\n    \"primary\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"rose\",\n    \"white\",\n    \"simple\",\n    \"defaultNoBackground\",\n    \"primaryNoBackground\",\n    \"infoNoBackground\",\n    \"successNoBackground\",\n    \"warningNoBackground\",\n    \"dangerNoBackground\",\n    \"roseNoBackground\",\n    \"twitter\",\n    \"twitterNoBackground\",\n    \"facebook\",\n    \"facebookNoBackground\",\n    \"google\",\n    \"googleNoBackground\",\n    \"linkedin\",\n    \"linkedinNoBackground\",\n    \"pinterest\",\n    \"pinterestNoBackground\",\n    \"youtube\",\n    \"youtubeNoBackground\",\n    \"tumblr\",\n    \"tumblrNoBackground\",\n    \"github\",\n    \"githubNoBackground\",\n    \"behance\",\n    \"behanceNoBackground\",\n    \"dribbble\",\n    \"dribbbleNoBackground\",\n    \"reddit\",\n    \"redditNoBackground\"\n  ]),\n  customClass: PropTypes.string,\n  disabled: PropTypes.bool\n};\n\nexport default withStyles(iconButtonStyle)(IconCustomButton);\n","// ##############################\n// // // Info component styles\n// #############################\n\nimport {\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst infoStyle = {\n  infoArea: {\n    maxWidth: \"360px\",\n    margin: \"0 auto\",\n    padding: \"0px\"\n  },\n  iconWrapper: {\n    float: \"left\",\n    marginTop: \"24px\",\n    marginRight: \"10px\"\n  },\n  primary: {\n    color: primaryColor\n  },\n  warning: {\n    color: warningColor\n  },\n  danger: {\n    color: dangerColor\n  },\n  success: {\n    color: successColor\n  },\n  info: {\n    color: infoColor\n  },\n  rose: {\n    color: roseColor\n  },\n  gray: {\n    color: grayColor\n  },\n  icon: {\n    width: \"36px\",\n    height: \"36px\"\n  },\n  descriptionWrapper: {\n    color: grayColor,\n    overflow: \"hidden\"\n  },\n  title: {\n    color: \"#3C4858\",\n    margin: \"30px 0 15px\",\n    textDecoration: \"none\",\n    fontSize: \"18px\"\n  },\n  description: {\n    color: grayColor,\n    overflow: \"hidden\",\n    marginTop: \"0px\",\n    fontSize: \"14px\"\n  }\n};\n\nexport default infoStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport infoStyle from \"assets/jss/material-dashboard-pro-react/components/infoStyle\";\n\nfunction InfoArea({ ...props }) {\n  const { classes, title, description, iconColor } = props;\n  return (\n    <div className={classes.infoArea}>\n      <div className={classes.iconWrapper + \" \" + classes[iconColor]}>\n        <props.icon className={classes.icon} />\n      </div>\n      <div className={classes.descriptionWrapper}>\n        <h4 className={classes.title}>{title}</h4>\n        <p className={classes.description}>{description}</p>\n      </div>\n    </div>\n  );\n}\n\nInfoArea.defaultProps = {\n  iconColor: \"gray\"\n};\n\nInfoArea.propTypes = {\n  classes: PropTypes.object.isRequired,\n  icon: PropTypes.func.isRequired,\n  title: PropTypes.string.isRequired,\n  description: PropTypes.string.isRequired,\n  iconColor: PropTypes.oneOf([\n    \"primary\",\n    \"warning\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ])\n};\n\nexport default withStyles(infoStyle)(InfoArea);\n","// ##############################\n// // // Checkbox, Radio and Switch styles\n// #############################\n\nimport {\n  primaryColor,\n  dangerColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst customCheckboxRadioSwitch = {\n  checkboxAndRadio: {\n    position: \"relative\",\n    display: \"block\",\n    marginTop: \"10px\",\n    marginBottom: \"10px\"\n  },\n  checkboxAndRadioHorizontal: {\n    position: \"relative\",\n    display: \"block\",\n    \"&:first-child\": {\n      marginTop: \"10px\"\n    },\n    \"&:not(:first-child)\": {\n      marginTop: \"-14px\"\n    },\n    marginTop: \"0\",\n    marginBottom: \"0\"\n  },\n  checked: {\n    color: primaryColor\n  },\n  checkedIcon: {\n    width: \"20px\",\n    height: \"20px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  uncheckedIcon: {\n    width: \"0px\",\n    height: \"0px\",\n    padding: \"9px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  disabledCheckboxAndRadio: {\n    opacity: \"0.45\"\n  },\n  label: {\n    cursor: \"pointer\",\n    paddingLeft: \"0\",\n    color: \"rgba(0, 0, 0, 0.26)\",\n    fontSize: \"14px\",\n    lineHeight: \"1.428571429\",\n    fontWeight: \"400\",\n    display: \"inline-flex\",\n    transition: \"0.3s ease all\"\n  },\n  labelHorizontal: {\n    color: \"rgba(0, 0, 0, 0.26)\",\n    cursor: \"pointer\",\n    display: \"inline-flex\",\n    fontSize: \"14px\",\n    lineHeight: \"1.428571429\",\n    fontWeight: \"400\",\n    paddingTop: \"39px\",\n    marginRight: \"0\",\n    \"@media (min-width: 992px)\": {\n      float: \"right\"\n    }\n  },\n  labelHorizontalRadioCheckbox:{\n    paddingTop: \"22px\",\n  },\n  labelLeftHorizontal: {\n    color: \"rgba(0, 0, 0, 0.26)\",\n    cursor: \"pointer\",\n    display: \"inline-flex\",\n    fontSize: \"14px\",\n    lineHeight: \"1.428571429\",\n    fontWeight: \"400\",\n    paddingTop: \"22px\",\n    marginRight: \"0\"\n  },\n  labelError: {\n    color: dangerColor\n  },\n  radio: {\n    color: primaryColor\n  },\n  radioChecked: {\n    width: \"20px\",\n    height: \"20px\",\n    border: \"1px solid \" + primaryColor,\n    borderRadius: \"50%\"\n  },\n  radioUnchecked: {\n    width: \"0px\",\n    height: \"0px\",\n    padding: \"9px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"50%\"\n  },\n  inlineChecks: {\n    marginTop: \"8px\"\n  },\n  iconCheckbox: {\n    height: \"116px\",\n    width: \"116px\",\n    color: grayColor,\n    \"& > span:first-child\": {\n      borderWidth: \"4px\",\n      borderStyle: \"solid\",\n      borderColor: \"#CCCCCC\",\n      textAlign: \"center\",\n      verticalAlign: \"middle\",\n      borderRadius: \"50%\",\n      color: \"inherit\",\n      margin: \"0 auto 20px\",\n      transition: \"all 0.2s\"\n    },\n    \"&:hover\": {\n      color: roseColor,\n      \"& > span:first-child\": {\n        borderColor: roseColor\n      }\n    }\n  },\n  iconCheckboxChecked: {\n    color: roseColor,\n    \"& > span:first-child\": {\n      borderColor: roseColor\n    }\n  },\n  iconCheckboxIcon: {\n    fontSize: \"40px\",\n    lineHeight: \"111px\"\n  },\n  switchBarChecked: {\n    backgroundColor: \"rgba(80, 80, 80, 0.7)\",\n    opacity: \"1\",\n    display: \"inline-block\",\n    width: \"30px\",\n    height: \"15px\",\n    borderRadius: \"15px\",\n    marginRight: \"15px\",\n    transition: \"background 0.3s ease\",\n    verticalAlign: \"middle\"\n  },\n  switchIcon: {\n    border: \"1px solid rgba(40, 40, 40, .54)\",\n    transition: \"left 0.3s ease, background 0.3s ease, box-shadow 0.1s ease\",\n    boxShadow: \"0 1px 3px 1px rgba(0, 0, 0, 0.4)\"\n  },\n  switchIconChecked: {\n    borderColor: primaryColor\n  },\n  switchChecked: {\n    transform: \"translateX(15px)!important\",\n    \"& + $switchBarChecked\": {\n      backgroundColor: \"rgba(156, 39, 176, 0.7)\",\n      opacity: \"1\",\n      display: \"inline-block\",\n      width: \"30px\",\n      height: \"15px\",\n      borderRadius: \"15px\",\n      marginRight: \"15px\",\n      transition: \"background 0.3s ease\",\n      verticalAlign: \"middle\"\n    }\n  },\n  switchUnchecked: {\n    color: \"#FFFFFF\",\n    transform: \"translateX(-5px)\"\n  },\n};\n\nexport default customCheckboxRadioSwitch;\n","// ##############################\n// // // RegisterPage view styles\n// #############################\n\nimport { container } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nimport customCheckboxRadioSwitch from \"assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx\";\n\nconst registerPageStyle = {\n  container: {\n    ...container,\n    position: \"relative\",\n    zIndex: \"3\",\n    paddingTop: \"15vh\"\n  },\n  cardClasses: {\n    boxShadow:\n      \"0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\",\n    marginBottom: \"100px\",\n    padding: \"40px 0px\"\n  },\n  center: {\n    textAlign: \"center\"\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  form: {\n    padding: \"0 20px\",\n    position: \"relative\"\n  },\n  socialTitle: {\n    fontSize: \"18px\"\n  },\n  inputAdornment: {\n    marginRight: \"18px\",\n    top: \"18px\",\n    position: \"relative\",\n  },\n  inputAdornmentIcon: {\n    color: \"#555\"\n  },\n  customFormControlClasses: {\n    margin: \"0 12px\"\n  },\n  checkboxLabelControl: {\n    margin: \"0\"\n  },\n  checkboxLabel: {\n    marginLeft: \"6px\",\n    color: \"rgba(0, 0, 0, 0.26)\"\n  },\n  ...customCheckboxRadioSwitch,\n  cardTitle: {\n    fontSize: \"2.6em\"\n  },\n};\n\nexport default registerPageStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport InputAdornment from \"material-ui/Input/InputAdornment\";\nimport Checkbox from \"material-ui/Checkbox\";\nimport FormControlLabel from \"material-ui/Form/FormControlLabel\";\n\n// @material-ui/icons\nimport Timeline from \"@material-ui/icons/Timeline\";\nimport Code from \"@material-ui/icons/Code\";\nimport Group from \"@material-ui/icons/Group\";\nimport Face from \"@material-ui/icons/Face\";\nimport Email from \"@material-ui/icons/Email\";\nimport LockOutline from \"@material-ui/icons/LockOutline\";\nimport Check from \"@material-ui/icons/Check\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport IconButton from \"components/CustomButtons/IconButton.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport InfoArea from \"components/InfoArea/InfoArea.jsx\";\n\nimport registerPageStyle from \"assets/jss/material-dashboard-pro-react/views/registerPageStyle\";\n\nclass RegisterPage extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      checked: []\n    };\n    this.handleToggle = this.handleToggle.bind(this);\n  }\n  handleToggle(value) {\n    const { checked } = this.state;\n    const currentIndex = checked.indexOf(value);\n    const newChecked = [...checked];\n\n    if (currentIndex === -1) {\n      newChecked.push(value);\n    } else {\n      newChecked.splice(currentIndex, 1);\n    }\n\n    this.setState({\n      checked: newChecked\n    });\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div className={classes.container}>\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={12} md={10}>\n            <RegularCard\n              cardTitle=\"Register\"\n              titleAlign=\"center\"\n              customCardTitleClasses={classes.cardTitle}\n              customCardClasses={classes.cardClasses}\n              content={\n                <GridContainer justify=\"center\">\n                  <ItemGrid xs={12} sm={12} md={5}>\n                    <InfoArea\n                      title=\"Marketing\"\n                      description=\"We've created the marketing campaign of the website. It was a very interesting collaboration.\"\n                      icon={Timeline}\n                      iconColor=\"rose\"\n                    />\n                    <InfoArea\n                      title=\"Fully Coded in HTML5\"\n                      description=\"We've developed the website with HTML5 and CSS3. The client has access to the code using GitHub.\"\n                      icon={Code}\n                      iconColor=\"primary\"\n                    />\n                    <InfoArea\n                      title=\"Built Audience\"\n                      description=\"There is also a Fully Customizable CMS Admin Dashboard for this product.\"\n                      icon={Group}\n                      iconColor=\"info\"\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={8} md={5}>\n                    <div className={classes.center}>\n                      <IconButton color=\"twitter\">\n                        <i className=\"fab fa-twitter\" />\n                      </IconButton>\n                      {` `}\n                      <IconButton color=\"dribbble\">\n                        <i className=\"fab fa-dribbble\" />\n                      </IconButton>\n                      {` `}\n                      <IconButton color=\"facebook\">\n                        <i className=\"fab fa-facebook-f\" />\n                      </IconButton>\n                      {` `}\n                      <h4 className={classes.socialTitle}>or be classical</h4>\n                    </div>\n                    <form className={classes.form}>\n                      <CustomInput\n                        formControlProps={{\n                          fullWidth: true,\n                          className: classes.customFormControlClasses\n                        }}\n                        inputProps={{\n                          startAdornment: (\n                            <InputAdornment\n                              position=\"start\"\n                              className={classes.inputAdornment}\n                            >\n                              <Face className={classes.inputAdornmentIcon} />\n                            </InputAdornment>\n                          ),\n                          placeholder: \"First Name...\"\n                        }}\n                      />\n                      <CustomInput\n                        formControlProps={{\n                          fullWidth: true,\n                          className: classes.customFormControlClasses\n                        }}\n                        inputProps={{\n                          startAdornment: (\n                            <InputAdornment\n                              position=\"start\"\n                              className={classes.inputAdornment}\n                            >\n                              <Email className={classes.inputAdornmentIcon} />\n                            </InputAdornment>\n                          ),\n                          placeholder: \"Email...\"\n                        }}\n                      />\n                      <CustomInput\n                        formControlProps={{\n                          fullWidth: true,\n                          className: classes.customFormControlClasses\n                        }}\n                        inputProps={{\n                          startAdornment: (\n                            <InputAdornment\n                              position=\"start\"\n                              className={classes.inputAdornment}\n                            >\n                              <LockOutline\n                                className={classes.inputAdornmentIcon}\n                              />\n                            </InputAdornment>\n                          ),\n                          placeholder: \"Password...\"\n                        }}\n                      />\n                      <FormControlLabel\n                        classes={{\n                          root: classes.checkboxLabelControl,\n                          label: classes.checkboxLabel\n                        }}\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(1)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        label={\n                          <span>\n                            I agree to the{\" \"}\n                            <a href=\"#pablo\">terms and conditions</a>.\n                          </span>\n                        }\n                      />\n                      <div className={classes.center}>\n                        <Button round color=\"primary\">\n                          Get started\n                        </Button>\n                      </div>\n                    </form>\n                  </ItemGrid>\n                </GridContainer>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nRegisterPage.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(registerPageStyle)(RegisterPage);\n","// ##############################\n// // // ProfileCard styles\n// #############################\n\nimport {\n  card,\n  boxShadow,\n  grayColor,\n  defaultFont\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst profileCardStyle = {\n  card: {\n    marginTop: \"30px\",\n    textAlign: \"center\",\n    ...card\n  },\n  cardHeader: {\n    display: \"inline-block\",\n    width: \"100%\",\n    padding: \"0px\"\n  },\n  cardAvatar: {\n    maxWidth: \"130px\",\n    maxHeight: \"130px\",\n    margin: \"-50px auto 0\",\n    borderRadius: \"50%\",\n    overflow: \"hidden\",\n    ...boxShadow\n  },\n  img: {\n    width: \"100%\",\n    height: \"auto\",\n    verticalAlign: \"middle\",\n    border: \"0\"\n  },\n  textAlign: {\n    textAlign: \"center\"\n  },\n  cardSubtitle: {\n    color: grayColor,\n    ...defaultFont,\n    fontSize: \"14px\",\n    textTransform: \"uppercase\",\n    marginTop: \"10px\"\n  },\n  cardTitle: {\n    ...defaultFont,\n    fontSize: \"18px\",\n    marginBottom: \"3px\"\n  },\n  cardDescription: {\n    ...defaultFont,\n    color: \"#999999\",\n    fontSize: \"14px\",\n    margin: \"0 0 10px\"\n  },\n  cardActions: {\n    height: \"auto\",\n    display: \"inline\"\n  },\n  cardContent: {\n    padding: \"15px 20px !important\",\n    position: \"relative\"\n  },\n  cardFooter: {\n    margin: \"0 20px 10px\",\n    paddingTop: \"10px\",\n    borderTop: \"1px solid #eeeeee\"\n  }\n};\n\nexport default profileCardStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport Typography from \"material-ui/Typography\";\n\nimport profileCardStyle from \"assets/jss/material-dashboard-pro-react/components/profileCardStyle\";\n\nfunction ProfileCard({ ...props }) {\n  const {\n    classes,\n    subtitle,\n    title,\n    description,\n    avatar,\n    content,\n    footer,\n    customCardClass,\n    customCardAvatarClass,\n    customCardFooterClass\n  } = props;\n  const cardClasses =\n    classes.card +\n    \" \" +\n    cx({\n      [customCardClass]: customCardClass !== undefined\n    });\n  const cardAvatarClass =\n    classes.cardAvatar +\n    \" \" +\n    cx({\n      [customCardAvatarClass]: customCardAvatarClass !== undefined\n    });\n  const cardFooterClass =\n    classes.cardFooter +\n    \" \" +\n    cx({\n      [customCardFooterClass]: customCardFooterClass !== undefined\n    });\n  return (\n    <Card className={cardClasses}>\n      <CardHeader\n        classes={{\n          root: classes.cardHeader,\n          avatar: cardAvatarClass\n        }}\n        avatar={<img src={avatar} alt=\"...\" className={classes.img} />}\n      />\n      <CardContent className={classes.textAlign + \" \" + classes.cardContent}>\n        {subtitle !== undefined ? (\n          <Typography component=\"h6\" className={classes.cardSubtitle}>\n            {subtitle}\n          </Typography>\n        ) : null}\n        {title !== undefined ? (\n          <Typography component=\"h4\" className={classes.cardTitle}>\n            {title}\n          </Typography>\n        ) : null}\n        {description !== undefined ? (\n          <Typography component=\"p\" className={classes.cardDescription}>\n            {description}\n          </Typography>\n        ) : null}\n        {content !== undefined ? content : null}\n      </CardContent>\n      {footer !== undefined ? (\n        <div className={cardFooterClass}>{footer}</div>\n      ) : null}\n    </Card>\n  );\n}\n\nProfileCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  title: PropTypes.node,\n  subtitle: PropTypes.node,\n  description: PropTypes.node,\n  content: PropTypes.node,\n  footer: PropTypes.node,\n  avatar: PropTypes.string,\n  customCardClass: PropTypes.string,\n  customCardAvatarClass: PropTypes.string\n};\n\nexport default withStyles(profileCardStyle)(ProfileCard);\n","// ##############################\n// // // LockScreenPage view styles\n// #############################\n\nconst lockScreenPageStyle = {\n  content: {\n    paddingTop: \"18vh\",\n    minHeight: \"calc(100vh - 80px)\",\n    position: \"relative\",\n    zIndex: \"4\"\n  },\n  customCardClass: {\n    width: \"240px\",\n    margin: \"60px auto 0\",\n    color: \"#FFFFFF\",\n    position: \"absolute\",\n    left: \"0\",\n    right: \"0\",\n    display: \"block\",\n    transform: \"translate3d(0, 0, 0)\",\n    transition: \"all 300ms linear\"\n  },\n  cardHidden: {\n    opacity: \"0\",\n    transform: \"translate3d(0, -60px, 0)\"\n  },\n  customCardAvatarClass: {\n    maxWidth: \"90px\",\n    maxHeight: \"90px\",\n    marginTop: \"-45px\"\n  },\n  customCardFooterClass: {\n    border: \"none\",\n    paddingTop: \"0\"\n  }\n};\n\nexport default lockScreenPageStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport ProfileCard from \"components/Cards/ProfileCard.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\n\nimport avatar from \"assets/img/faces/avatar.jpg\";\n\nimport lockScreenPageStyle from \"assets/jss/material-dashboard-pro-react/views/lockScreenPageStyle.jsx\";\n\nclass LockScreenPage extends React.Component {\n  constructor(props) {\n    super(props);\n    // we use this to make the card to appear after the page has been rendered\n    this.state = {\n      cardAnimaton: \"cardHidden\"\n    };\n  }\n  componentDidMount() {\n    // we add a hidden class to the card and after 700 ms we delete it and the transition appears\n    setTimeout(\n      function() {\n        this.setState({ cardAnimaton: \"\" });\n      }.bind(this),\n      700\n    );\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div className={classes.content}>\n        <form>\n          <ProfileCard\n            customCardClass={\n              classes.customCardClass + \" \" + classes[this.state.cardAnimaton]\n            }\n            customCardAvatarClass={classes.customCardAvatarClass}\n            customCardFooterClass={classes.customCardFooterClass}\n            title=\"Tania Andrew\"\n            avatar={avatar}\n            content={\n              <CustomInput\n                labelText=\"Enter Password\"\n                id=\"company-disabled\"\n                formControlProps={{\n                  fullWidth: true\n                }}\n                inputProps={{\n                  type: \"password\"\n                }}\n              />\n            }\n            footer={\n              <Button color=\"rose\" round>\n                Unlock\n              </Button>\n            }\n          />\n        </form>\n      </div>\n    );\n  }\n}\n\nLockScreenPage.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(lockScreenPageStyle)(LockScreenPage);\n","import requireAuth from '../hocs/require_auth.jsx';\nimport requireNoAuth from '../hocs/no_require_auth.jsx';\n\nimport PricingPage from \"views/Pages/PricingPage.jsx\";\nimport LoginPage from \"views/Pages/LoginPage.jsx\";\nimport RegisterPage from \"views/Pages/RegisterPage.jsx\";\nimport LockScreenPage from \"views/Pages/LockScreenPage.jsx\";\n\n// @material-ui/icons\nimport PersonAdd from \"@material-ui/icons/PersonAdd\";\nimport Fingerprint from \"@material-ui/icons/Fingerprint\";\nimport MonetizationOn from \"@material-ui/icons/MonetizationOn\";\nimport LockOpen from \"@material-ui/icons/LockOpen\";\n\nconst pagesRoutes = [\n  // {\n  //   path: \"/pages/register-page\",\n  //   name: \"Register Page\",\n  //   short: \"Register\",\n  //   mini: \"RP\",\n  //   icon: PersonAdd,\n  //   component: RegisterPage\n  // },\n  {\n    path: \"/pages/sign_in\",\n    name: \"Sign-in Page\",\n    short: \"Sign-in\",\n    mini: \"SP\",\n    icon: Fingerprint,\n    component: requireNoAuth(LoginPage)\n  },\n  // {\n  //   path: \"/pages/pricing\",\n  //   name: \"Pricing Page\",\n  //   short: \"Pricing\",\n  //   mini: \"PP\",\n  //   icon: MonetizationOn,\n  //   component: PricingPage\n  // },\n  // {\n  //   path: \"/pages/lock-screen-page\",\n  //   name: \"Lock Screen Page\",\n  //   short: \"Lock\",\n  //   mini: \"LSP\",\n  //   icon: LockOpen,\n  //   component: LockScreenPage\n  // },\n  {\n    redirect: true,\n    path: \"/pages\",\n    pathTo: \"/pages/sign_in\",\n    name: \"Register Page\"\n  }\n];\n\nexport default pagesRoutes;\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\n\nimport Log from '../logging/Log.jsx';\n\nexport default function (ComposedComponent) {\n  class UnAuthentication extends Component {\n\n    UNSAFE_componentWillMount() {\n      if (this.props.authenticationState && this.props.authenticationState.authenticated) {\n        Log.info(\"UnAuthentication HOC recognized that user is signed in - will redirect\");\n        this.props.history.push('/');\n      }\n    }\n\n    UNSAFE_componentWillUpdate(nextProps) {\n      if (nextProps.authenticationState && nextProps.authenticationState.authenticated) {\n        Log.info(\"UnAuthentication HOC recognized that user is signed in - will redirect\");\n        this.props.history.push('/');\n      }\n    }\n\n    render() {\n      return <ComposedComponent {...this.props} />;\n    }\n  }\n\n  function mapStateToProps( { authenticationState } ) {\n    Log.info(\"Mapping\", authenticationState);\n    return { authenticationState };\n  }\n\n  return connect(mapStateToProps)(UnAuthentication);\n}","// ##############################\n// // // Pages Header styles\n// #############################\n\nimport {\n  container,\n  defaultFont,\n  primaryColor,\n  defaultBoxShadow,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor,\n  boxShadow,\n  drawerWidth,\n  transition\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst pagesHeaderStyle = theme => ({\n  appBar: {\n    backgroundColor: \"transparent\",\n    boxShadow: \"none\",\n    borderBottom: \"0\",\n    marginBottom: \"0\",\n    position: \"absolute\",\n    width: \"100%\",\n    paddingTop: \"10px\",\n    zIndex: \"1029\",\n    color: \"#555555\",\n    border: \"0\",\n    borderRadius: \"3px\",\n    padding: \"10px 0\",\n    transition: \"all 150ms ease 0s\",\n    minHeight: \"50px\",\n    display: \"block\"\n  },\n  container: {\n    ...container,\n    minHeight: \"50px\"\n  },\n  flex: {\n    flex: 1\n  },\n  title: {\n    ...defaultFont,\n    lineHeight: \"30px\",\n    fontSize: \"18px\",\n    borderRadius: \"3px\",\n    textTransform: \"none\",\n    color: \"#FFFFFF\",\n    \"&:hover,&:focus\": {\n      background: \"transparent\",\n      color: \"#FFFFFF\"\n    }\n  },\n  appResponsive: {\n    top: \"8px\"\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  info: {\n    backgroundColor: infoColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  success: {\n    backgroundColor: successColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  warning: {\n    backgroundColor: warningColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  list: {\n    ...defaultFont,\n    fontSize: \"14px\",\n    margin: 0,\n    marginRight: \"-15px\",\n    paddingLeft: \"0\",\n    listStyle: \"none\",\n    color: \"#FFFFFF\",\n    paddingTop: \"0\",\n    paddingBottom: \"0\"\n  },\n  listItem: {\n    float: \"left\",\n    position: \"relative\",\n    display: \"block\",\n    width: \"auto\",\n    margin: \"0\",\n    padding: \"0\",\n    [theme.breakpoints.down(\"sm\")]: {\n      zIndex: \"999\",\n      width: \"100%\",\n      paddingRight: \"15px\"\n    }\n  },\n  navLink: {\n    color: \"#FFFFFF\",\n    margin: \"0 5px\",\n    paddingTop: \"15px\",\n    paddingBottom: \"15px\",\n    fontWeight: \"500\",\n    fontSize: \"12px\",\n    textTransform: \"uppercase\",\n    borderRadius: \"3px\",\n    lineHeight: \"20px\",\n    position: \"relative\",\n    display: \"block\",\n    padding: \"10px 15px\",\n    textDecoration: \"none\",\n    \"&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      background: \"rgba(200, 200, 200, 0.2)\"\n    }\n  },\n  listItemIcon: {\n    marginTop: \"-3px\",\n    top: \"0px\",\n    position: \"relative\",\n    marginRight: \"3px\",\n    width: \"20px\",\n    height: \"20px\",\n    verticalAlign: \"middle\",\n    color: \"inherit\",\n    display: \"inline-block\"\n  },\n  listItemText: {\n    flex: \"none\",\n    padding: \"0\",\n    minWidth: \"0\",\n    margin: 0,\n    display: \"inline-block\",\n    position: \"relative\",\n    whiteSpace: \"nowrap\"\n  },\n  navLinkActive: {\n    backgroundColor: \"rgba(255, 255, 255, 0.1)\"\n  },\n  drawerPaper: {\n    border: \"none\",\n    bottom: \"0\",\n    transitionProperty: \"top, bottom, width\",\n    transitionDuration: \".2s, .2s, .35s\",\n    transitionTimingFunction: \"linear, linear, ease\",\n    ...boxShadow,\n    width: drawerWidth,\n    ...boxShadow,\n    position: \"fixed\",\n    display: \"block\",\n    top: \"0\",\n    height: \"100vh\",\n    right: \"0\",\n    left: \"auto\",\n    visibility: \"visible\",\n    overflowY: \"visible\",\n    borderTop: \"none\",\n    textAlign: \"left\",\n    paddingRight: \"0px\",\n    paddingLeft: \"0\",\n    ...transition,\n    \"&:before,&:after\": {\n      position: \"absolute\",\n      zIndex: \"3\",\n      width: \"100%\",\n      height: \"100%\",\n      content: '\"\"',\n      display: \"block\",\n      top: \"0\"\n    },\n    \"&:after\": {\n      background: \"#000\",\n      opacity: \".8\"\n    }\n  },\n  sidebarButton: {\n    color: \"#FFFFFF\",\n    top: \"8px\"\n  }\n});\n\nexport default pagesHeaderStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { NavLink } from \"react-router-dom\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport AppBar from \"material-ui/AppBar\";\nimport Toolbar from \"material-ui/Toolbar\";\nimport IconButton from \"material-ui/IconButton\";\nimport Button from \"material-ui/Button\";\nimport Hidden from \"material-ui/Hidden\";\nimport Drawer from \"material-ui/Drawer\";\nimport List from \"material-ui/List\";\nimport ListItem from \"material-ui/List/ListItem\";\nimport ListItemIcon from \"material-ui/List/ListItemIcon\";\nimport ListItemText from \"material-ui/List/ListItemText\";\n\n// @material-ui/icons\nimport Dashboard from \"@material-ui/icons/Dashboard\";\nimport Menu from \"@material-ui/icons/Menu\";\n\nimport pagesRoutes from \"routes/pages.jsx\";\n\nimport pagesHeaderStyle from \"assets/jss/material-dashboard-pro-react/components/pagesHeaderStyle.jsx\";\n\nclass PagesHeader extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      open: false\n    };\n  }\n  handleDrawerToggle = () => {\n    this.setState({ open: !this.state.open });\n  };\n  // verifies if routeName is the one active (in browser input)\n  activeRoute(routeName) {\n    return this.props.location.pathname.indexOf(routeName) > -1 ? true : false;\n  }\n  render() {\n    const { classes, color } = this.props;\n    const appBarClasses = cx({\n      [\" \" + classes[color]]: color\n    });\n    var list = (\n      <List className={classes.list}>\n        {/* <ListItem className={classes.listItem}>\n          <NavLink to={\"/dashboard\"} className={classes.navLink}>\n            <ListItemIcon className={classes.listItemIcon}>\n              <Dashboard />\n            </ListItemIcon>\n            <ListItemText\n              primary={\"Dashboard\"}\n              disableTypography={true}\n              className={classes.listItemText}\n            />\n          </NavLink>\n        </ListItem> */}\n        {pagesRoutes.map((prop, key) => {\n          if (prop.redirect) {\n            return null;\n          }\n          const navLink =\n            classes.navLink +\n            cx({\n              [\" \" + classes.navLinkActive]: this.activeRoute(prop.path)\n            });\n          return (\n            <ListItem key={key} className={classes.listItem}>\n              <NavLink to={prop.path} className={navLink}>\n                <ListItemIcon className={classes.listItemIcon}>\n                  <prop.icon />\n                </ListItemIcon>\n                <ListItemText\n                  primary={prop.short}\n                  disableTypography={true}\n                  className={classes.listItemText}\n                />\n              </NavLink>\n            </ListItem>\n          );\n        })}\n      </List>\n    );\n    return (\n      <AppBar position=\"static\" className={classes.appBar + appBarClasses}>\n        <Toolbar className={classes.container}>\n          <div className={classes.flex}>\n            <Button href=\"#\" className={classes.title}>\n              Neuroelectrics Portal BETA\n            </Button>\n          </div>\n          <Hidden smDown implementation=\"css\">\n            {list}\n          </Hidden>\n          <Hidden mdUp>\n            <IconButton\n              className={classes.sidebarButton}\n              color=\"inherit\"\n              aria-label=\"open drawer\"\n              onClick={this.handleDrawerToggle}\n            >\n              <Menu />\n            </IconButton>\n          </Hidden>\n          <Hidden mdUp implementation=\"css\">\n            <Hidden mdUp>\n              <Drawer\n                variant=\"temporary\"\n                anchor={\"right\"}\n                open={this.state.open}\n                classes={{\n                  paper: classes.drawerPaper\n                }}\n                onClose={this.handleDrawerToggle}\n                ModalProps={{\n                  keepMounted: true // Better open performance on mobile.\n                }}\n              >\n                {list}\n              </Drawer>\n            </Hidden>\n          </Hidden>\n        </Toolbar>\n      </AppBar>\n    );\n  }\n}\n\nPagesHeader.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"])\n};\n\nexport default withStyles(pagesHeaderStyle)(PagesHeader);\n","// ##############################\n// // // Footer styles\n// #############################\n\nimport {\n  defaultFont,\n  container,\n  containerFluid,\n  primaryColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst footerStyle = {\n  block: {},\n  left: {\n    float: \"left!important\",\n    display: \"block\"\n  },\n  right: {\n    margin: \"0\",\n    fontSize: \"14px\",\n    float: \"right!important\",\n    padding: \"15px\"\n  },\n  footer: {\n    bottom: \"0\",\n    borderTop: \"1px solid #e7e7e7\",\n    padding: \"15px 0\",\n    ...defaultFont,\n    zIndex: 4\n  },\n  container: {\n    zIndex: 3,\n    ...container,\n    position: \"relative\"\n  },\n  containerFluid: {\n    zIndex: 3,\n    ...containerFluid,\n    position: \"relative\"\n  },\n  a: {\n    color: primaryColor,\n    textDecoration: \"none\",\n    backgroundColor: \"transparent\"\n  },\n  list: {\n    marginBottom: \"0\",\n    padding: \"0\",\n    marginTop: \"0\"\n  },\n  inlineBlock: {\n    display: \"inline-block\",\n    padding: \"0\",\n    width: \"auto\"\n  },\n  whiteColor: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\"\n    }\n  }\n};\nexport default footerStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport List from \"material-ui/List\";\nimport ListItem from \"material-ui/List/ListItem\";\n\nimport footerStyle from \"assets/jss/material-dashboard-pro-react/components/footerStyle\";\n\nfunction Footer({ ...props }) {\n  const { classes, fluid, white, rtlActive } = props;\n  var container = cx({\n    [classes.container]: !fluid,\n    [classes.containerFluid]: fluid,\n    [classes.whiteColor]: white\n  });\n  var anchor =\n    classes.a +\n    cx({\n      [\" \" + classes.whiteColor]: white\n    });\n  var block = cx({\n    [classes.block]: true,\n    [classes.whiteColor]: white\n  })\n  return (\n    <footer className={classes.footer}>\n      <div className={container}>\n        {/* <div className={classes.left}>\n          <List className={classes.list}>\n            <ListItem className={classes.inlineBlock}>\n              <a href=\"#home\" className={block}>\n                {rtlActive ? \"الصفحة الرئيسية\" : \"Home\"}\n              </a>\n            </ListItem>\n            <ListItem className={classes.inlineBlock}>\n              <a href=\"#company\" className={block}>\n                {rtlActive ? \"شركة\" : \"Company\"}\n              </a>\n            </ListItem>\n            <ListItem className={classes.inlineBlock}>\n              <a href=\"#portfolio\" className={block}>\n                {rtlActive ? \"بعدسة\" : \"Portfolio\"}\n              </a>\n            </ListItem>\n            <ListItem className={classes.inlineBlock}>\n              <a href=\"#blog\" className={block}>\n                {rtlActive ? \"مدونة\" : \"Blog\"}\n              </a>\n            </ListItem>\n          </List>\n        </div> */}\n        <p className={classes.right}>\n          &copy; {1900 + new Date().getYear()}{\" \"}\n          <a href=\"https://www.neuroelectrics.com\" className={anchor}>\n            {rtlActive ? \"توقيت الإبداعية\" : \"Neuroelectrics\"}\n          </a>\n          {/* <a href=\"https://www.creative-tim.com\" className={anchor}>\n            {rtlActive ? \"توقيت الإبداعية\" : \"Creative Tim\"}\n          </a>\n          {rtlActive\n            ? \", مصنوعة مع الحب لشبكة الإنترنت أفضل\"\n            : \", made with love for a better web\"} */}\n        </p>\n      </div>\n    </footer>\n  );\n}\n\nFooter.propTypes = {\n  classes: PropTypes.object.isRequired,\n  fluid: PropTypes.bool,\n  white: PropTypes.bool,\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(footerStyle)(Footer);\n","// ##############################\n// // // Pages Layout styles\n// #############################\n\n// import {\n//\n// } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst pagesStyle = {\n  wrapper: {\n    height: \"auto\",\n    minHeight: \"100vh\",\n    position: \"relative\",\n    top: \"0\",\n    overflow: \"hidden\"\n  },\n  fullPage: {\n    \"&:before\": {\n      backgroundColor: \"rgba(0, 0, 0, 0.65)\"\n    },\n    \"&:before,&:after\": {\n      display: \"block\",\n      content: '\"\"',\n      position: \"absolute\",\n      width: \"100%\",\n      height: \"100%\",\n      top: \"0\",\n      left: \"0\",\n      zIndex: \"2\"\n    }\n  },\n  fullPageBackground: {\n    position: \"absolute\",\n    zIndex: \"1\",\n    height: \"100%\",\n    width: \"100%\",\n    display: \"block\",\n    top: \"0\",\n    left: \"0\",\n    backgroundSize: \"cover\",\n    backgroundPosition: \"center center\"\n  }\n};\n\nexport default pagesStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\n// creates a beautiful scrollbar\n// import PerfectScrollbar from \"perfect-scrollbar\";\n// import \"perfect-scrollbar/css/perfect-scrollbar.css\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport PagesHeader from \"components/Header/PagesHeader.jsx\";\nimport Footer from \"components/Footer/Footer.jsx\";\n\nimport pagesRoutes from \"routes/pages.jsx\";\n\nimport pagesStyle from \"assets/jss/material-dashboard-pro-react/layouts/pagesStyle.jsx\";\n\n// import bgImage from \"assets/img/register.jpeg\";\nimport bgImage from \"assets/img/ne-background.png\";\n\n// var ps;\n\nclass Pages extends React.Component {\n  componentDidMount() {\n    // if (navigator.platform.indexOf(\"Win\") > -1) {\n    //   ps = new PerfectScrollbar(this.refs.wrapper, {\n    //     suppressScrollX: true,\n    //     suppressScrollY: false\n    //   });\n    // }\n  }\n  componentWillUnmount() {\n    // if (navigator.platform.indexOf(\"Win\") > -1) {\n    //   ps.destroy();\n    // }\n  }\n  render() {\n    const { classes, ...rest } = this.props;\n    return (\n      <div>\n        <PagesHeader {...rest} />\n        <div className={classes.wrapper} ref=\"wrapper\">\n          <div className={classes.fullPage}>\n            <Switch>\n              {pagesRoutes.map((prop, key) => {\n                if (prop.collapse) {\n                  return null;\n                }\n                if (prop.redirect) {\n                  return (\n                    <Redirect from={prop.path} to={prop.pathTo} key={key} />\n                  );\n                }\n                return (\n                  <Route\n                    path={prop.path}\n                    component={prop.component}\n                    key={key}\n                  />\n                );\n              })}\n            </Switch>\n            <Footer white />\n            <div\n              className={classes.fullPageBackground}\n              style={{ backgroundImage: \"url(\" + bgImage + \")\" }}\n            />\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n\nPages.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(pagesStyle)(Pages);\n","// ##############################\n// // // HeaderLinks styles\n// #############################\n\nimport {\n  defaultFont,\n  dangerColor,\n  primaryColor,\n  primaryBoxShadow\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst headerLinksStyle = theme => ({\n  popperClose: {\n    pointerEvents: \"none\"\n  },\n  search: {\n    [theme.breakpoints.down(\"sm\")]: {\n      margin: \"10px 15px\",\n      float: \"none !important\",\n      paddingTop: \"1px\",\n      paddingBottom: \"1px\",\n      padding: \"10px 15px\",\n      width: \"auto\"\n    }\n  },\n  searchInput: {\n    paddingTop: \"2px\"\n  },\n  searchRTL: {\n    [theme.breakpoints.down(\"sm\")]: {\n      marginRight: \"18px !important\"\n    },\n    [theme.breakpoints.up(\"md\")]: {\n      marginLeft: \"12px\"\n    }\n  },\n  linkText: {\n    zIndex: \"4\",\n    ...defaultFont,\n    fontSize: \"14px\",\n    margin: \"0!important\"\n  },\n  buttonLink: {\n    [theme.breakpoints.down(\"sm\")]: {\n      display: \"flex\",\n      marginLeft: \"30px\",\n      width: \"auto\"\n    }\n  },\n  searchButton: {\n    [theme.breakpoints.down(\"sm\")]: {\n      top: \"-50px !important\",\n      marginRight: \"38px\",\n      float: \"right\"\n    }\n  },\n  top: {\n    zIndex: \"4\"\n  },\n  searchIcon: {\n    width: \"17px\",\n    zIndex: \"4\"\n  },\n  links: {\n    width: \"20px\",\n    height: \"20px\",\n    zIndex: \"4\",\n    [theme.breakpoints.down(\"sm\")]: {\n      display: \"block\",\n      width: \"30px\",\n      height: \"30px\",\n      color: \"inherit\",\n      opacity: \"0.8\",\n      marginRight: \"16px\",\n      marginLeft: \"-5px\"\n    }\n  },\n  notifications: {\n    zIndex: \"4\",\n    [theme.breakpoints.up(\"md\")]: {\n      position: \"absolute\",\n      top: \"5px\",\n      border: \"1px solid #FFF\",\n      right: \"10px\",\n      fontSize: \"9px\",\n      background: dangerColor,\n      color: \"#FFFFFF\",\n      minWidth: \"16px\",\n      height: \"16px\",\n      borderRadius: \"10px\",\n      textAlign: \"center\",\n      lineHeight: \"14px\",\n      verticalAlign: \"middle\",\n      display: \"block\"\n    },\n    [theme.breakpoints.down(\"sm\")]: {\n      ...defaultFont,\n      fontSize: \"14px\",\n      marginRight: \"8px\"\n    }\n  },\n  dropdown: {\n    borderRadius: \"3px\",\n    border: \"0\",\n    boxShadow: \"0 2px 5px 0 rgba(0, 0, 0, 0.26)\",\n    top: \"100%\",\n    zIndex: \"1000\",\n    minWidth: \"160px\",\n    padding: \"5px 0\",\n    margin: \"2px 0 0\",\n    fontSize: \"14px\",\n    textAlign: \"left\",\n    listStyle: \"none\",\n    backgroundColor: \"#fff\",\n    backgroundClip: \"padding-box\"\n  },\n  pooperResponsive: {\n    [theme.breakpoints.down(\"sm\")]: {\n      zIndex: \"1640\",\n      position: \"static\",\n      float: \"none\",\n      width: \"auto\",\n      marginTop: \"0\",\n      backgroundColor: \"transparent\",\n      border: \"0\",\n      boxShadow: \"none\",\n      color: \"black\"\n    }\n  },\n  dropdownItem: {\n    ...defaultFont,\n    fontSize: \"13px\",\n    padding: \"10px 20px\",\n    margin: \"0 5px\",\n    borderRadius: \"2px\",\n    position: \"relative\",\n    transition: \"all 150ms linear\",\n    display: \"block\",\n    clear: \"both\",\n    fontWeight: \"400\",\n    height: \"fit-content\",\n    color: \"#333\",\n    whiteSpace: \"nowrap\",\n    \"&:hover\": {\n      backgroundColor: primaryColor,\n      color: \"#FFFFFF\",\n      ...primaryBoxShadow\n    }\n  },\n  dropdownItemRTL: {\n    textAlign: \"right !important\"\n  },\n  wrapperRTL: {\n    [theme.breakpoints.up(\"md\")]: {\n      paddingLeft: \"16px\"\n    }\n  },\n  buttonLinkRTL: {\n    [theme.breakpoints.down(\"sm\")]: {\n      alignItems: \"center\",\n      justifyContent: \"flex-end\",\n      width: \"-webkit-fill-available\",\n      margin: \"10px 15px 0\",\n      padding: \"10px 15px\",\n      display: \"block\",\n      position: \"relative\",\n    }\n  },\n  labelRTL: {\n    [theme.breakpoints.down(\"sm\")]: {\n      flexDirection: \"row-reverse\",\n      justifyContent: \"initial\",\n    }\n  },\n  linksRTL: {\n    [theme.breakpoints.down(\"sm\")]: {\n      marginRight: \"-5px\",\n      marginLeft: \"16px\",\n    }\n  },\n  managerClasses: {\n    [theme.breakpoints.up(\"md\")]: {\n      display: \"inline-block\"\n    }\n  }\n});\n\nexport default headerLinksStyle;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Manager, Target, Popper } from \"react-popper\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport MenuList from \"material-ui/Menu/MenuList\";\nimport ClickAwayListener from \"material-ui/utils/ClickAwayListener\";\nimport Paper from \"material-ui/Paper\";\nimport Grow from \"material-ui/transitions/Grow\";\nimport IconButton from \"material-ui/IconButton\";\nimport Hidden from \"material-ui/Hidden\";\n\nimport { NavLink } from \"react-router-dom\";\n\n// @material-ui/icons\nimport Person from \"@material-ui/icons/Person\";\nimport Notifications from \"@material-ui/icons/Notifications\";\nimport Dashboard from \"@material-ui/icons/Dashboard\";\nimport Search from \"@material-ui/icons/Search\";\n\n// core components\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport SearchButton from \"components/CustomButtons/IconButton.jsx\";\n\nimport headerLinksStyle from \"assets/jss/material-dashboard-pro-react/components/headerLinksStyle\";\n\nclass HeaderLinks extends React.Component {\n  state = {\n    open: false\n  };\n  handleClick = () => {\n    this.setState({ open: !this.state.open });\n  };\n  handleClose = () => {\n    this.setState({ open: false });\n  };\n  render() {\n    const { classes, rtlActive } = this.props;\n    const { open } = this.state;\n    const searchButton =\n      classes.top +\n      \" \" +\n      classes.searchButton +\n      \" \" +\n      classNames({\n        [classes.searchRTL]: rtlActive\n      });\n    const dropdownItem =\n      classes.dropdownItem +\n      \" \" +\n      classNames({\n        [classes.dropdownItemRTL]: rtlActive\n      });\n    const wrapper = classNames({\n      [classes.wrapperRTL]: rtlActive\n    });\n    const managerClasses = classNames({\n      [classes.managerClasses]: true\n    });\n    return (\n      <div className={wrapper}>\n\n      </div>\n    );\n  }\n}\n\nHeaderLinks.propTypes = {\n  classes: PropTypes.object.isRequired,\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(headerLinksStyle)(HeaderLinks);\n","// ##############################\n// // // Button Group styles\n// #############################\n\nconst buttonGroupStyle = {\n  buttonGroup: {\n    position: \"relative\",\n    margin: \"10px 1px\",\n    display: \"inline-block\",\n    verticalAlign: \"middle\"\n  },\n  firstButton: {\n    borderTopRightRadius: \"0\",\n    borderBottomRightRadius: \"0\",\n    margin: \"0\",\n    position: \"relative\",\n    float: \"left\",\n    \"&:hover\": {\n      zIndex: \"2\"\n    }\n  },\n  middleButton: {\n    borderRadius: \"0\",\n    margin: \"0\",\n    position: \"relative\",\n    float: \"left\",\n    \"&:hover\": {\n      zIndex: \"2\"\n    }\n  },\n  lastButton: {\n    borderTopLeftRadius: \"0\",\n    borderBottomLeftRadius: \"0\",\n    margin: \"0\",\n    \"&:hover\": {\n      zIndex: \"2\"\n    }\n  }\n};\n\nexport default buttonGroupStyle;\n","// ##############################\n// // // Buttons view styles\n// #############################\n\nimport buttonGroupStyle from \"assets/jss/material-dashboard-pro-react/buttonGroupStyle.jsx\";\n\nconst buttonsStyle = {\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\",\n    fontSize: \"18px\"\n  },\n  cardHeader: {\n    zIndex: \"3\"\n  },\n  cardContentLeft: {\n    padding: \"15px 20px 15px 0px\",\n    position: \"relative\"\n  },\n  cardContentRight: {\n    padding: \"15px 20px 15px 0px\",\n    position: \"relative\"\n  },\n  cardContentBottom: {\n    padding: \"15px 0px 0px 0px\",\n    position: \"relative\"\n  },\n  marginRight: {\n    marginRight: \"5px\"\n  },\n  paddingRight: {\n    paddingRight: \"15px\"\n  },\n  dropdown: {\n    width: \"25px\",\n    height: \"25px\",\n    marginLeft: \"5px\",\n    marginTop: \"-3px\",\n    marginBottom: \"-5px\"\n  },\n  icons: {\n    width: \"17px\",\n    height: \"17px\",\n    marginRight: \"5px\"\n  },\n  icons2: {\n    width: \"25px\",\n    height: \"25px\",\n    marginRight: \"2px\",\n    marginTop: \"-3px\",\n    marginBottom: \"-5px\"\n  },\n  ...buttonGroupStyle,\n  socialButtonsIcons: {\n    fontSize: \"18px\",\n    marginTop: \"-2px\",\n    position: \"relative\"\n  }\n};\n\nexport default buttonsStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport withStyles from \"material-ui/styles/withStyles\";\nimport buttonsStyle from \"assets/jss/material-dashboard-pro-react/views/buttonsStyle.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\n\nclass AccessLevelButton extends React.Component {\n render() {\n  const { message } = this.props;\n   return (\n    <Button round size=\"sm\">\n     {message}\n    </Button>\n   )\n }\n}\n\nAccessLevelButton.propTypes = {\n  message: PropTypes.string.isRequired,\n}\n\nexport default withStyles(buttonsStyle)(AccessLevelButton);","// ##############################\n// // // Header styles\n// #############################\n\nimport {\n  containerFluid,\n  defaultFont,\n  primaryColor,\n  defaultBoxShadow,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst headerStyle = theme => ({\n  appBar: {\n    backgroundColor: \"transparent\",\n    boxShadow: \"none\",\n    borderBottom: \"0\",\n    marginBottom: \"0\",\n    position: \"absolute\",\n    width: \"100% !important\",\n    paddingTop: \"10px\",\n    zIndex: \"1029\",\n    color: \"#555555\",\n    border: \"0\",\n    borderRadius: \"3px\",\n    padding: \"10px 0\",\n    transition: \"all 150ms ease 0s\",\n    minHeight: \"50px\",\n    display: \"block\"\n  },\n  container: {\n    ...containerFluid,\n    minHeight: \"50px\"\n  },\n  flex: {\n    flex: 1\n  },\n  title: {\n    ...defaultFont,\n    lineHeight: \"30px\",\n    fontSize: \"18px\",\n    borderRadius: \"3px\",\n    textTransform: \"none\",\n    color: \"inherit\",\n    \"&:hover,&:focus\": {\n      background: \"transparent\"\n    }\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  info: {\n    backgroundColor: infoColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  success: {\n    backgroundColor: successColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  warning: {\n    backgroundColor: warningColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    color: \"#FFFFFF\",\n    ...defaultBoxShadow\n  },\n  sidebarMinimize: {\n    float: \"left\",\n    padding: \"0 0 0 15px\",\n    display: \"block\",\n    color: \"#555555\"\n  },\n  sidebarMinimizeRTL: {\n    padding: \"0 15px 0 0 !important\"\n  },\n  sidebarMiniIcon: {\n    width: \"20px\",\n    height: \"17px\"\n  }\n});\n\nexport default headerStyle;\n","import React from \"react\";\nimport { NavLink } from \"react-router-dom\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\nimport { useSelector } from 'react-redux';\n\nimport Log from '../../logging/Log.jsx';\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport AppBar from \"material-ui/AppBar\";\nimport Toolbar from \"material-ui/Toolbar\";\nimport IconButton from \"material-ui/IconButton\";\nimport Button from \"material-ui/Button\";\nimport Hidden from \"material-ui/Hidden\";\n\n// material-ui icons\nimport Menu from \"@material-ui/icons/Menu\";\nimport MoreVert from \"@material-ui/icons/MoreVert\";\nimport ViewList from \"@material-ui/icons/ViewList\";\n\n// core components\nimport HeaderLinks from \"./HeaderLinks\";\nimport CustomIconButton from \"components/CustomButtons/IconButton.jsx\";\nimport AccessLevelButton from \"../../molecules/AccessLevelButton\";\n\nimport headerStyle from \"assets/jss/material-dashboard-pro-react/components/headerStyle.jsx\";\n\nconst pathToRegex = (path) => {\n  let pathParts = path.split(\"/\")\n  pathParts.forEach((element, index, _array) => {\n    if(element.length > 0 && element[0] === \":\") {\n      _array[index] = \".+\"\n    }\n  });\n  return \"^\" + pathParts.join(\"\\\\/\") + \"$\";\n}\n\nfunction Header({ ...props }) {\n  Log.info(\"Rendering header with:\", props)\n  function makeBrand() {\n    var name;\n    props.routes.map((prop, key) => {\n      if (prop.collapse) {\n        prop.views.map((prop, key) => {\n          if (prop.path === props.location.pathname) {\n            name = prop.name;\n          }\n          return null;\n        });\n      }\n      if(props.location.pathname.match(pathToRegex(prop.path))) {\n        name = prop.name;\n      }\n      return null;\n    });\n    return name;\n  }\n  const { classes, color, rtlActive } = props;\n  const appBarClasses = cx({\n    [\" \" + classes[color]]: color\n  });\n  const sidebarMinimize =\n    classes.sidebarMinimize +\n    \" \" +\n    cx({\n      [classes.sidebarMinimizeRTL]: rtlActive\n    });\n\n  const accessLevel = useSelector(state => state.authenticationState.accessLevel);\n  let message;\n  accessLevel === \"blinded\" ? message = \"BLINDED MODE\" : message = \"ADMIN MODE\";\n\n  const makeBreadcrumb = () => {\n    let breadcrumb;\n    if (props.location.pathname === \"/studies\") {\n      return breadcrumb = \"#\";\n    }\n    return breadcrumb = props.routes[2].path;\n  } \n  \n  return (\n    <AppBar className={classes.appBar + appBarClasses}>\n      <Toolbar className={classes.container}>\n        <Hidden smDown>\n          <div className={sidebarMinimize}>\n            {props.miniActive ? (\n              <CustomIconButton color=\"white\" onClick={props.sidebarMinimize}>\n                <ViewList className={classes.sidebarMiniIcon} />\n              </CustomIconButton>\n            ) : (\n              <CustomIconButton color=\"white\" onClick={props.sidebarMinimize}>\n                <MoreVert className={classes.sidebarMiniIcon} />\n              </CustomIconButton>\n            )}\n          </div>\n        </Hidden>\n        <div className={classes.flex}>\n          {/* Here we create navbar brand, based on route name */}\n          <NavLink to={makeBreadcrumb()} style={{color: \"inherit\"}}>\n            <Button  className={classes.title}>\n              <Hidden smDown>{makeBrand()}</Hidden>            \n              <Hidden mdUp>{`${makeBrand()} - Version 1.4.7`}</Hidden>\n            </Button> \n          </NavLink>\n          <AccessLevelButton message={message}/>          \n        </div>\n        <Hidden smDown><p>Version 1.4.7</p></Hidden>        \n        <Hidden smDown implementation=\"css\">\n          <HeaderLinks rtlActive={rtlActive} />\n        </Hidden>\n        <Hidden mdUp>        \n          <IconButton\n            className={classes.appResponsive}\n            color=\"inherit\"\n            aria-label=\"open drawer\"\n            onClick={props.handleDrawerToggle}\n          >\n            <Menu />\n          </IconButton>\n        </Hidden>\n      </Toolbar>\n    </AppBar>\n  );\n}\n\nHeader.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"]),\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(headerStyle)(Header);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Log from '../../logging/Log.jsx';\n\n// javascript plugin used to create scrollbars on windows\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport { NavLink } from \"react-router-dom\";\nimport cx from \"classnames\";\n\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\nimport { deauthenticate } from '../../actions/index';\n\nimport compose from 'recompose/compose';\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Drawer from \"material-ui/Drawer\";\nimport List from \"material-ui/List\";\nimport ListItem from \"material-ui/List/ListItem\";\nimport ListItemIcon from \"material-ui/List/ListItemIcon\";\nimport ListItemText from \"material-ui/List/ListItemText\";\nimport Hidden from \"material-ui/Hidden\";\nimport Collapse from \"material-ui/transitions/Collapse\";\n\nimport PowerSettingsNewIcon from \"@material-ui/icons/PowerSettingsNew\";\n\n// core components\nimport HeaderLinks from \"components/Header/HeaderLinks.jsx\";\n\nimport sidebarStyle from \"assets/jss/material-dashboard-pro-react/components/sidebarStyle.jsx\";\n\nimport avatar from \"assets/img/ne-icon.jpg\";\n\nvar ps;\n\n// We've created this component so we can have a ref to the wrapper of the links that appears in our sidebar.\n// This was necessary so that we could initialize PerfectScrollbar on the links.\n// There might be something with the Hidden component from material-ui, and we didn't have access to\n// the links, and couldn't initialize the plugin.\nclass SidebarWrapper extends React.Component {\n  componentDidMount() {\n    if (navigator.platform.indexOf(\"Win\") > -1) {\n      ps = new PerfectScrollbar(this.refs.sidebarWrapper, {\n        suppressScrollX: true,\n        suppressScrollY: false\n      });\n    }\n  }\n  componentWillUnmount() {\n    if (navigator.platform.indexOf(\"Win\") > -1) {\n      ps.destroy();\n    }\n  }\n  render() {\n    const { className, user, headerLinks, links } = this.props;\n    return (\n      <div className={className} ref=\"sidebarWrapper\">\n        {user}\n        {headerLinks}\n        {links}\n      </div>\n    );\n  }\n}\n\nclass Sidebar extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      openAvatar: false,\n      openComponents: this.activeRoute(\"/components\"),\n      openForms: this.activeRoute(\"/forms\"),\n      openTables: this.activeRoute(\"/tables\"),\n      openMaps: this.activeRoute(\"/maps\"),\n      openPages: this.activeRoute(\"-page\"),\n      miniActive: true\n    };\n    this.activeRoute.bind(this);\n    this.onSignOutButtonClicked = this.onSignOutButtonClicked.bind(this);\n  }\n\n  onSignOutButtonClicked() {\n    Log.info(\"Sign out clicked!\");\n    Log.info(this.state);\n    this.props.deauthenticate();\n  } \n\n  // verifies if routeName is the one active (in browser input)\n  activeRoute(routeName) {\n    return this.props.location.pathname.indexOf(routeName) > -1 ? true : false;\n  }\n  openCollapse(collapse) {\n    var st = {};\n    st[collapse] = !this.state[collapse];\n    this.setState(st);\n  }\n  render() {\n    const {\n      classes,\n      color,\n      logo,\n      image,\n      logoText,\n      routes,\n      bgColor,\n      rtlActive\n    } = this.props;\n    const itemText =\n      classes.itemText +\n      \" \" +\n      cx({\n        [classes.itemTextMini]: this.props.miniActive && this.state.miniActive,\n        [classes.itemTextMiniRTL]:\n          rtlActive && this.props.miniActive && this.state.miniActive,\n        [classes.itemTextRTL]: rtlActive\n      });\n    const collapseItemText =\n      classes.collapseItemText +\n      \" \" +\n      cx({\n        [classes.collapseItemTextMini]:\n          this.props.miniActive && this.state.miniActive,\n        [classes.collapseItemTextMiniRTL]:\n          rtlActive && this.props.miniActive && this.state.miniActive,\n        [classes.collapseItemTextRTL]: rtlActive\n      });\n    const userWrapperClass =\n      classes.user +\n      \" \" +\n      cx({\n        [classes.whiteAfter]: bgColor === \"white\"\n      });\n    const caret =\n      classes.caret +\n      \" \" +\n      cx({\n        [classes.caretRTL]: rtlActive\n      });\n    const collapseItemMini =\n      classes.collapseItemMini +\n      \" \" +\n      cx({\n        [classes.collapseItemMiniRTL]: rtlActive\n      });\n    const photo =\n      classes.photo +\n      \" \" +\n      cx({\n        [classes.photoRTL]: rtlActive\n      });\n    var user = (\n      <div className={userWrapperClass}>\n        <div className={photo}>\n          <img src={this.props.authenticationState.iconUrl} className={classes.avatarImg} alt=\"icon\" />\n        </div>\n        <List className={classes.list}>\n          <ListItem className={classes.item + \" \" + classes.userItem}>\n            <NavLink\n              to={\"#\"}\n              className={classes.itemLink + \" \" + classes.userCollapseButton}\n              onClick={() => this.openCollapse(\"openAvatar\")}\n            >\n              <ListItemText\n                primary={rtlActive ? \"تانيا أندرو\" : this.props.authenticationState.fullname}\n                secondary={\n                  <b\n                    className={\n                      caret + \" \" + classes.userCaret +\n                      \" \" +\n                      (this.state.openAvatar ? classes.caretActive : \"\")\n                    }\n                  />\n                }\n                disableTypography={true}\n                className={itemText + \" \" + classes.userItemText}\n              />\n            </NavLink>\n            <Collapse in={this.state.openAvatar} unmountOnExit>\n              <List className={classes.list + \" \" + classes.collapseList}>\n                {/*<ListItem className={classes.collapseItem}>\n                   <NavLink\n                    to=\"#\"\n                    className={\n                      classes.itemLink + \" \" + classes.userCollapseLinks\n                    }\n                  >\n                    <span className={collapseItemMini}>\n                      {rtlActive ? \"مع\" : \"MP\"}\n                    </span>\n                    <ListItemText\n                      primary={rtlActive ? \"ملفي\" : \"My Profile\"}\n                      disableTypography={true}\n                      className={collapseItemText}\n                    />\n                  </NavLink>\n                </ListItem>\n                <ListItem className={classes.collapseItem}>\n                  <NavLink\n                    to=\"#\"\n                    className={\n                      classes.itemLink + \" \" + classes.userCollapseLinks\n                    }\n                  >\n                    <span className={collapseItemMini}>\n                      {rtlActive ? \"هوع\" : \"EP\"}\n                    </span>\n                    <ListItemText\n                      primary={\n                        rtlActive ? \"تعديل الملف الشخصي\" : \"Edit Profile\"\n                      }\n                      disableTypography={true}\n                      className={collapseItemText}\n                    />\n                  </NavLink>\n                </ListItem> */}\n                {/* <ListItem className={classes.collapseItem}>\n                  <NavLink\n                    to=\"#\"\n                    className={\n                      classes.itemLink + \" \" + classes.userCollapseLinks\n                    }\n                  >\n                    <span className={collapseItemMini}>\n                      {rtlActive ? \"و\" : \"S\"}\n                    </span>\n                    <ListItemText\n                      primary={rtlActive ? \"إعدادات\" : \"Settings\"}\n                      disableTypography={true}\n                      className={collapseItemText}\n                    />\n                  </NavLink>\n                </ListItem> */}\n                <ListItem className={classes.collapseItem}>\n                  <NavLink \n                    to=\"#\"\n                    onClick={this.onSignOutButtonClicked}\n                    className={\n                      classes.itemLink + \" \" + classes.userCollapseLinks\n                    }>\n                    <ListItemIcon className={collapseItemMini}>\n                      <PowerSettingsNewIcon/>\n                    </ListItemIcon>\n                    {/* <span className={collapseItemMini}>\n                      {rtlActive ? \"و\" : \"SO\"}\n                    </span> */}\n                    <ListItemText\n                      primary={rtlActive ? \"إعدادات\" : \"Sign out\"}\n                      disableTypography={true}\n                      className={collapseItemText}\n                    />\n                  </NavLink>\n                  {/* <NavLink\n                    to=\"/pages/sign_in\"\n                    className={\n                      classes.itemLink + \" \" + classes.userCollapseLinks\n                    }\n                  >\n                    <span className={collapseItemMini}>\n                      {rtlActive ? \"و\" : \"SO\"}\n                    </span>\n                    <ListItemText\n                      primary={rtlActive ? \"إعدادات\" : \"Sign out\"}\n                      disableTypography={true}\n                      className={collapseItemText}\n                    />\n                  </NavLink> */}\n                </ListItem>\n              </List>\n            </Collapse>\n          </ListItem>\n        </List>\n      </div>\n    );\n    var links = (\n      <List className={classes.list}>\n        {routes.map((prop, key) => {\n          if (prop.redirect || prop.parameterized) {\n            return null;\n          }\n          if (prop.hr) {\n            return (<hr key={key} className={classes.break}/>);\n          }\n          if (prop.collapse) {\n            const navLinkClasses =\n              classes.itemLink +\n              \" \" +\n              cx({\n                [\" \" + classes.collapseActive]: this.activeRoute(prop.path)\n              });\n            const itemText =\n              classes.itemText +\n              \" \" +\n              cx({\n                [classes.itemTextMini]:\n                  this.props.miniActive && this.state.miniActive,\n                [classes.itemTextMiniRTL]:\n                  rtlActive && this.props.miniActive && this.state.miniActive,\n                [classes.itemTextRTL]: rtlActive\n              });\n            const collapseItemText =\n              classes.collapseItemText +\n              \" \" +\n              cx({\n                [classes.collapseItemTextMini]:\n                  this.props.miniActive && this.state.miniActive,\n                [classes.collapseItemTextMiniRTL]:\n                  rtlActive && this.props.miniActive && this.state.miniActive,\n                [classes.collapseItemTextRTL]: rtlActive\n              });\n            const itemIcon =\n              classes.itemIcon +\n              \" \" +\n              cx({\n                [classes.itemIconRTL]: rtlActive\n              });\n            const caret =\n              classes.caret +\n              \" \" +\n              cx({\n                [classes.caretRTL]: rtlActive\n              });\n            return (\n              <ListItem key={key} className={classes.item}>\n                <NavLink\n                  to={\"#\"}\n                  className={navLinkClasses}\n                  onClick={() => this.openCollapse(prop.state)}\n                >\n                  <ListItemIcon className={itemIcon}>\n                    <prop.icon />\n                  </ListItemIcon>\n                  <ListItemText\n                    primary={prop.name}\n                    secondary={\n                      <b\n                        className={\n                          caret +\n                          \" \" +\n                          (this.state[prop.state] ? classes.caretActive : \"\")\n                        }\n                      />\n                    }\n                    disableTypography={true}\n                    className={itemText}\n                  />\n                </NavLink>\n                <Collapse in={this.state[prop.state]} unmountOnExit>\n                  <List className={classes.list + \" \" + classes.collapseList}>\n                    {prop.views.map((prop, key) => {\n                      if (prop.redirect) {\n                        return null;\n                      }\n                      const navLinkClasses =\n                        classes.collapseItemLink +\n                        \" \" +\n                        cx({\n                          [\" \" + classes[color]]: this.activeRoute(prop.path)\n                        });\n                      const collapseItemMini =\n                        classes.collapseItemMini +\n                        \" \" +\n                        cx({\n                          [classes.collapseItemMiniRTL]: rtlActive\n                        });\n                      return (\n                        <ListItem key={key} className={classes.collapseItem}>\n                          <NavLink to={prop.path} className={navLinkClasses}>\n                            <span className={collapseItemMini}>\n                              {prop.mini}\n                            </span>\n                            <ListItemText\n                              primary={prop.name}\n                              disableTypography={true}\n                              className={collapseItemText}\n                            />\n                          </NavLink>\n                        </ListItem>\n                      );\n                    })}\n                  </List>\n                </Collapse>\n              </ListItem>\n            );\n          }\n          const navLinkClasses =\n            classes.itemLink +\n            \" \" +\n            cx({\n              [\" \" + classes[color]]: this.activeRoute(prop.path)\n            });\n          const itemText =\n            classes.itemText +\n            \" \" +\n            cx({\n              [classes.itemTextMini]:\n                this.props.miniActive && this.state.miniActive,\n              [classes.itemTextMiniRTL]:\n                rtlActive && this.props.miniActive && this.state.miniActive,\n              [classes.itemTextRTL]: rtlActive\n            });\n          const itemIcon =\n            classes.itemIcon +\n            \" \" +\n            cx({\n              [classes.itemIconRTL]: rtlActive\n            });\n          return (\n            <ListItem key={key} className={classes.item}>\n              <NavLink to={prop.path} className={navLinkClasses}>\n                <ListItemIcon className={itemIcon}>\n                  <prop.icon />\n                </ListItemIcon>\n                <ListItemText\n                  primary={prop.name}\n                  disableTypography={true}\n                  className={itemText}\n                />\n              </NavLink>\n            </ListItem>\n          );\n        })}\n      </List>\n    );\n\n    const logoNormal =\n      classes.logoNormal +\n      \" \" +\n      cx({\n        [classes.logoNormalSidebarMini]:\n          this.props.miniActive && this.state.miniActive,\n        [classes.logoNormalSidebarMiniRTL]:\n          rtlActive && this.props.miniActive && this.state.miniActive,\n        [classes.logoNormalRTL]: rtlActive\n      });\n    const logoMini =\n      classes.logoMini +\n      \" \" +\n      cx({\n        [classes.logoMiniRTL]: rtlActive\n      });\n    const logoClasses =\n      classes.logo +\n      \" \" +\n      cx({\n        [classes.whiteAfter]: bgColor === \"white\"\n      });\n\n    var brandStyle = {\n      backgroundColor: \"#E5A82E\"\n    }\n    \n    var brand = (\n      <div className={logoClasses} style={brandStyle}>\n        {/* <a href=\"/\" className={logoMini}>\n          <img src={logo} alt=\"logo\" className={classes.img} />\n        </a>\n        <a href=\"/\" className={logoNormal}>\n          {logoText}\n        </a> */}\n        <div className={logoMini}>\n          <img src={logo} alt=\"logo\" className={classes.img} />\n        </div>\n        <div className={logoNormal}>\n          {logoText}\n        </div>\n      </div>\n    );\n    const drawerPaper =\n      classes.drawerPaper +\n      \" \" +\n      cx({\n        [classes.drawerPaperMini]:\n          this.props.miniActive && this.state.miniActive,\n        [classes.drawerPaperRTL]: rtlActive\n      });\n    const sidebarWrapper =\n      classes.sidebarWrapper +\n      \" \" +\n      cx({\n        [classes.drawerPaperMini]:\n          this.props.miniActive && this.state.miniActive,\n        [classes.sidebarWrapperWithPerfectScrollbar]:\n          navigator.platform.indexOf(\"Win\") > -1\n      });\n    return (\n      <div ref=\"mainPanel\">\n        <Hidden mdUp>\n          <Drawer\n            variant=\"temporary\"\n            anchor={rtlActive ? \"left\" : \"right\"}\n            open={this.props.open}\n            classes={{\n              paper: drawerPaper + \" \" + classes[bgColor + \"Background\"]\n            }}\n            onClose={this.props.handleDrawerToggle}\n            ModalProps={{\n              keepMounted: true // Better open performance on mobile.\n            }}\n          >\n            {brand}\n            <SidebarWrapper\n              className={sidebarWrapper}\n              user={user}\n              headerLinks={<HeaderLinks rtlActive={rtlActive} />}\n              links={links}\n            />\n            {image !== undefined ? (\n              <div\n                className={classes.background}\n                style={{ backgroundImage: \"url(\" + image + \")\" }}\n              />\n            ) : null}\n          </Drawer>\n        </Hidden>\n        <Hidden smDown>\n          <Drawer\n            onMouseOver={() => this.setState({ miniActive: false })}\n            onMouseOut={() => this.setState({ miniActive: true })}\n            anchor={rtlActive ? \"right\" : \"left\"}\n            variant=\"permanent\"\n            open\n            classes={{\n              paper: drawerPaper + \" \" + classes[bgColor + \"Background\"]\n            }}\n          >\n            {brand}\n            <SidebarWrapper\n              className={sidebarWrapper}\n              user={user}\n              links={links}\n            />\n            {image !== undefined ? (\n              <div\n                className={classes.background}\n                style={{ backgroundImage: \"url(\" + image + \")\" }}\n              />\n            ) : null}\n          </Drawer>\n        </Hidden>\n      </div>\n    );\n  }\n}\n\nSidebar.defaultProps = {\n  bgColor: \"blue\"\n};\n\nSidebar.propTypes = {\n  classes: PropTypes.object.isRequired,\n  bgColor: PropTypes.oneOf([\"white\", \"black\", \"blue\", \"NESidebar\"]),\n  rtlActive: PropTypes.bool,\n  color: PropTypes.oneOf([\"white\", \"red\", \"orange\", \"green\", \"blue\", \"purple\", \"rose\", \"NESidebar\"]),\n  logo: PropTypes.string,\n  logoText: PropTypes.string,\n  image: PropTypes.string,\n  routes: PropTypes.arrayOf(PropTypes.object)\n};\n\nfunction mapStateToProps( { authenticationState } ) {\n  Log.info(\"Mapping\", authenticationState);\n  return { authenticationState };\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators({deauthenticate}, dispatch);\n}\n\nexport default compose(\n  withStyles(sidebarStyle),\n  connect(mapStateToProps, mapDispatchToProps)\n)(Sidebar);","// ##############################\n// // // Sidebar styles\n// #############################\n\nimport {\n  drawerWidth,\n  drawerMiniWidth,\n  transition,\n  boxShadow,\n  defaultFont,\n  primaryColor,\n  primaryBoxShadow,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor,\n  roseColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst sidebarStyle = theme => ({\n  drawerPaperRTL: {\n    [theme.breakpoints.up(\"md\")]: {\n      left: \"auto !important\",\n      right: \"0 !important\"\n    },\n    [theme.breakpoints.down(\"sm\")]: {\n      left: \"0  !important\",\n      right: \"auto !important\"\n    }\n  },\n  drawerPaper: {\n    border: \"none\",\n    position: \"fixed\",\n    top: \"0\",\n    bottom: \"0\",\n    left: \"0\",\n    zIndex: \"1032\",\n    transitionProperty: \"top, bottom, width\",\n    transitionDuration: \".2s, .2s, .35s\",\n    transitionTimingFunction: \"linear, linear, ease\",\n    // overflow: 'auto',\n    ...boxShadow,\n    width: drawerWidth,\n    [theme.breakpoints.up(\"md\")]: {\n      width: drawerWidth,\n      position: \"fixed\",\n      height: \"100%\"\n    },\n    [theme.breakpoints.down(\"sm\")]: {\n      width: drawerWidth,\n      ...boxShadow,\n      position: \"fixed\",\n      display: \"block\",\n      top: \"0\",\n      height: \"100vh\",\n      right: \"0\",\n      left: \"auto\",\n      zIndex: \"1032\",\n      visibility: \"visible\",\n      overflowY: \"visible\",\n      borderTop: \"none\",\n      textAlign: \"left\",\n      paddingRight: \"0px\",\n      paddingLeft: \"0\",\n      transform: `translate3d(${drawerWidth}px, 0, 0)`,\n      ...transition\n    },\n    \"&:before,&:after\": {\n      position: \"absolute\",\n      zIndex: \"3\",\n      width: \"100%\",\n      height: \"100%\",\n      content: '\"\"',\n      display: \"block\",\n      top: \"0\"\n    }\n  },\n  blackBackground: {\n    color: \"#FFFFFF\",\n    \"&:after\": {\n      background: \"#000\",\n      opacity: \".8\"\n    }\n  },\n  NESidebarBackground: {\n    color: \"#FFFFFF\",\n    \"&:after\": {\n      background: \"#4D4D4D\",\n      // opacity: \".0\"\n    }\n  },\n  blueBackground: {\n    color: \"#FFFFFF\",\n    \"&:after\": {\n      background: \"#00acc1\",\n      opacity: \".93\"\n    }\n  },\n  whiteBackground: {\n    color: \"#3C4858\",\n    \"&:after\": {\n      background: \"#FFFFFF\",\n      opacity: \".93\"\n    }\n  },\n  whiteAfter: {\n    \"&:after\": {\n      backgroundColor: \"hsla(0,0%,71%,.3) !important\"\n    }\n  },\n  drawerPaperMini: {\n    width: drawerMiniWidth + \"px!important\"\n  },\n  logo: {\n    padding: \"15px 0px\",\n    margin: \"0\",\n    display: \"block\",\n    position: \"relative\",\n    zIndex: \"4\"//,\n    // \"&:after\": {\n    //   content: '\"\"',\n    //   position: \"absolute\",\n    //   bottom: \"0\",\n    //   height: \"1px\",\n    //   right: \"15px\",\n    //   width: \"calc(100% - 30px)\",\n    //   backgroundColor: \"hsla(0,0%,100%,.3)\"\n    // }\n  },\n  logoMini: {\n    transition: \"all 300ms linear\",\n    opacity: 1,\n    float: \"left\",\n    textAlign: \"center\",\n    width: \"30px\",\n    display: \"inline-block\",\n    maxHeight: \"30px\",\n    marginLeft: \"22px\",\n    marginRight: \"18px\",\n    marginTop: \"7px\",\n    color: \"inherit\"\n  },\n  logoMiniRTL: {\n    float: \"right\",\n    marginRight: \"30px\",\n    marginLeft: \"26px\"\n  },\n  logoNormal: {\n    ...defaultFont,\n    transition: \"all 300ms linear\",\n    display: \"block\",\n    opacity: \"1\",\n    transform: \"translate3d(0px, 0, 0)\",\n    textTransform: \"uppercase\",\n    padding: \"5px 0px\",\n    fontSize: \"18px\",\n    whiteSpace: \"nowrap\",\n    fontWeight: \"400\",\n    lineHeight: \"30px\",\n    overflow: \"hidden\",\n    \"&,&:hover,&:focus\": {\n      color: \"inherit\"\n    }\n  },\n  logoNormalRTL: {\n    textAlign: \"right\"\n  },\n  logoNormalSidebarMini: {\n    opacity: \"0\",\n    transform: \"translate3d(-25px, 0, 0)\"\n  },\n  logoNormalSidebarMiniRTL: {\n    transform: \"translate3d(25px, 0, 0)\"\n  },\n  img: {\n    width: \"35px\",\n    verticalAlign: \"middle\",\n    border: \"0\"\n  },\n  background: {\n    position: \"absolute\",\n    zIndex: \"1\",\n    height: \"100%\",\n    width: \"100%\",\n    display: \"block\",\n    top: \"0\",\n    left: \"0\",\n    backgroundSize: \"cover\",\n    backgroundPosition: \"center center\",\n    transition: \"all 300ms linear\",\n  },\n  list: {\n    marginTop: \"15px\",\n    paddingLeft: \"0\",\n    paddingTop: \"0\",\n    paddingBottom: \"0\",\n    marginBottom: \"0\",\n    listStyle: \"none\",\n    color: \"inherit\",\n    \"&:before,&:after\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      clear: \"both\"\n    }\n  },\n  item: {\n    color: \"inherit\",\n    position: \"relative\",\n    display: \"block\",\n    textDecoration: \"none\",\n    margin: \"0\",\n    padding: \"0\"\n  },\n  userItem: {\n    \"&:last-child\": {\n      paddingBottom: \"0px\"\n    }\n  },\n  itemLink: {\n    paddingLeft: \"10px\",\n    paddingRight: \"10px\",\n    transition: \"all 300ms linear\",\n    margin: \"10px 15px 0\",\n    borderRadius: \"3px\",\n    position: \"relative\",\n    display: \"block\",\n    padding: \"10px 15px\",\n    backgroundColor: \"transparent\",\n    ...defaultFont,\n    width: \"auto\",\n    \"&:hover\": {\n      outline: \"none\",\n      backgroundColor: \"rgba(200, 200, 200, 0.2)\",\n      boxShadow: \"none\"\n    },\n    \"&,&:hover,&:focus\": {\n      color: \"inherit\"\n    }\n  },\n  itemIcon: {\n    color: \"inherit\",\n    width: \"30px\",\n    height: \"24px\",\n    float: \"left\",\n    position: \"inherit\",\n    top: \"3px\",\n    marginRight: \"15px\",\n    textAlign: \"center\",\n    verticalAlign: \"middle\",\n    opacity: \"0.8\"\n  },\n  itemIconRTL: {\n    float: \"right\",\n    marginLeft: \"15px\",\n    marginRight: \"1px\"\n  },\n  itemText: {\n    color: \"inherit\",\n    ...defaultFont,\n    margin: \"0\",\n    lineHeight: \"30px\",\n    fontSize: \"14px\",\n    transform: \"translate3d(0px, 0, 0)\",\n    opacity: \"1\",\n    transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\n    position: \"relative\",\n    display: \"block\",\n    height: \"auto\",\n    whiteSpace: \"nowrap\"\n  },\n  userItemText: {\n    lineHeight: \"22px\"\n  },\n  itemTextRTL: {\n    marginRight: \"45px\",\n    textAlign: \"right\"\n  },\n  itemTextMini: {\n    transform: \"translate3d(-25px, 0, 0)\",\n    opacity: \"0\"\n  },\n  itemTextMiniRTL: {\n    transform: \"translate3d(25px, 0, 0) !important\"\n  },\n  collapseList: {\n    marginTop: \"0\"\n  },\n  collapseItem: {\n    position: \"relative\",\n    display: \"block\",\n    textDecoration: \"none\",\n    margin: \"10px 0 0 0\",\n    padding: \"0\"\n  },\n  collapseActive: {\n    outline: \"none\",\n    backgroundColor: \"rgba(200, 200, 200, 0.2)\",\n    boxShadow: \"none\"\n  },\n  collapseItemLink: {\n    transition: \"all 300ms linear\",\n    margin: \"0 15px\",\n    borderRadius: \"3px\",\n    position: \"relative\",\n    display: \"block\",\n    padding: \"10px\",\n    backgroundColor: \"transparent\",\n    ...defaultFont,\n    width: \"auto\",\n    \"&:hover\": {\n      outline: \"none\",\n      backgroundColor: \"rgba(200, 200, 200, 0.2)\",\n      boxShadow: \"none\"\n    },\n    \"&,&:hover,&:focus\": {\n      color: \"inherit\"\n    }\n  },\n  collapseItemMini: {\n    color: \"inherit\",\n    ...defaultFont,\n    textTransform: \"uppercase\",\n    width: \"30px\",\n    marginRight: \"15px\",\n    textAlign: \"center\",\n    letterSpacing: \"1px\",\n    position: \"relative\",\n    float: \"left\",\n    display: \"inherit\",\n    transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\n    fontSize: \"14px\"\n  },\n  collapseItemMiniRTL: {\n    float: \"right\",\n    marginLeft: \"30px\",\n    marginRight: \"1px\"\n  },\n  collapseItemText: {\n    color: \"inherit\",\n    ...defaultFont,\n    margin: \"0\",\n    position: \"relative\",\n    transform: \"translateX(0px)\",\n    opacity: \"1\",\n    whiteSpace: \"nowrap\",\n    display: \"block\",\n    transition: \"transform 300ms ease 0s, opacity 300ms ease 0s\",\n    fontSize: \"14px\"\n  },\n  collapseItemTextRTL: {\n    textAlign: \"right\"\n  },\n  collapseItemTextMiniRTL: {\n    transform: \"translate3d(25px, 0, 0) !important\"\n  },\n  collapseItemTextMini: {\n    transform: \"translate3d(-25px, 0, 0)\",\n    opacity: \"0\"\n  },\n  caret: {\n    marginTop: \"13px\",\n    position: \"absolute\",\n    right: \"18px\",\n    transition: \"all 150ms ease-in\",\n    display: \"inline-block\",\n    width: \"0\",\n    height: \"0\",\n    marginLeft: \"2px\",\n    verticalAlign: \"middle\",\n    borderTop: \"4px solid\",\n    borderRight: \"4px solid transparent\",\n    borderLeft: \"4px solid transparent\"\n  },\n  userCaret: {\n    marginTop: \"10px\",\n  },\n  caretRTL: {\n    left: \"11px\",\n    right: \"auto\"\n  },\n  caretActive: {\n    transform: \"rotate(180deg)\"\n  },\n  purple: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: primaryColor,\n      ...primaryBoxShadow,\n    }\n  },\n  NESidebar: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: primaryColor,\n      ...primaryBoxShadow,\n    }\n  },\n  blue: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: infoColor,\n      boxShadow:\n        \"0 12px 20px -10px rgba(0,188,212,.28), 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px rgba(0,188,212,.2)\",\n    }\n  },\n  green: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: successColor,\n      boxShadow:\n        \"0 12px 20px -10px rgba(76,175,80,.28), 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px rgba(76,175,80,.2)\",\n    }\n  },\n  orange: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: warningColor,\n      boxShadow:\n        \"0 12px 20px -10px rgba(255,152,0,.28), 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px rgba(255,152,0,.2)\",\n    }\n  },\n  NESidebar: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: \"#666666\",\n      boxShadow:\n        \"0 12px 20px -10px rgba(102,102,102,.255), 0 4px 20px 0 rgba(102,102,102,.255), 0 7px 8px -5px rgba(102,102,102,.255)\",\n    }\n  },\n  red: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: dangerColor,\n      boxShadow:\n        \"0 12px 20px -10px rgba(244,67,54,.28), 0 4px 20px 0 rgba(0,0,0,.12), 0 7px 8px -5px rgba(244,67,54,.2)\",\n    }\n  },\n  white: {\n    \"&,&:hover,&:focus\": {\n      color: \"#3C4858\",\n      backgroundColor: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 20px 0 rgba(0,0,0,.14), 0 7px 10px -5px rgba(60,72,88,.4)\",\n    }\n  },\n  rose: {\n    \"&,&:hover,&:focus\": {\n      color: \"#FFFFFF\",\n      backgroundColor: roseColor,\n      boxShadow: \"0 4px 20px 0 rgba(0,0,0,.14), 0 7px 10px -5px rgba(233,30,99,.4)\",\n    },\n  },\n  sidebarWrapper: {\n    position: \"relative\",\n    height: \"calc(100vh - 75px)\",\n    overflow: \"auto\",\n    width: \"260px\",\n    zIndex: \"4\",\n    overflowScrolling: \"touch\",\n    transitionProperty: \"top, bottom, width\",\n    transitionDuration: \".2s, .2s, .35s\",\n    transitionTimingFunction: \"linear, linear, ease\",\n    color: \"inherit\",\n    paddingBottom: \"30px\"\n  },\n  sidebarWrapperWithPerfectScrollbar: {\n    overflow: \"hidden !important\"\n  },\n  user: {\n    paddingBottom: \"20px\",\n    margin: \"20px auto 0\",\n    position: \"relative\",\n    \"&:after\": {\n      content: '\"\"',\n      position: \"absolute\",\n      bottom: \"0\",\n      right: \"15px\",\n      height: \"1px\",\n      width: \"calc(100% - 30px)\",\n      backgroundColor: \"hsla(0,0%,100%,.3)\"\n    }\n  },\n  photo: {\n    transition: \"all 300ms linear\",\n    width: \"34px\",\n    height: \"34px\",\n    overflow: \"hidden\",\n    float: \"left\",\n    zIndex: \"5\",\n    marginRight: \"11px\",\n    borderRadius: \"50%\",\n    marginLeft: \"23px\",\n    ...boxShadow\n  },\n  photoRTL: {\n    float: \"right\",\n    marginLeft: \"12px\",\n    marginRight: \"24px\"\n  },\n  avatarImg: {\n    width: \"100%\",\n    verticalAlign: \"middle\",\n    border: \"0\"\n  },\n  userCollapseButton: {\n    margin: \"0\",\n    padding: \"6px 15px\",\n    \"&:hover\": {\n      background: \"none\"\n    }\n  },\n  userCollapseLinks: {\n    marginTop: \"-4px\",\n    \"&:hover,&:focus\": {\n      color: \"#FFFFFF\"\n    }\n  },\n  break: {\n    bottom: \"0\",\n    height: \"1px\",\n    right: \"15px\",\n    width: \"calc(100% - 30px)\",\n    backgroundColor: \"hsla(0,0%,100%,.3)\",\n    opacity: \"0.3\"\n  }\n});\n\nexport default sidebarStyle;\n","// ##############################\n// // // Table styles\n// #############################\n\nimport {\n  warningColor,\n  primaryColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor,\n  defaultFont\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst tableStyle = theme => ({\n  warning: {\n    color: warningColor\n  },\n  primary: {\n    color: primaryColor\n  },\n  danger: {\n    color: dangerColor\n  },\n  success: {\n    color: successColor\n  },\n  info: {\n    color: infoColor\n  },\n  rose: {\n    color: roseColor\n  },\n  gray: {\n    color: grayColor\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  table: {\n    marginBottom: \"0\",\n    width: \"100%\",\n    maxWidth: \"100%\",\n    backgroundColor: \"transparent\",\n    borderSpacing: \"0\",\n    borderCollapse: \"collapse\",\n    overflow: \"auto\"\n  },\n  tableShoppingHead: {\n    fontSize: \"0.9em !important\",\n    textTransform: \"uppercase !important\"\n  },\n  tableHeadFontSize: {\n    fontSize: \"1.25em !important\"\n  },\n  tableHeadCell: {\n    color: \"rgba(0, 0, 0, 0.87)\",\n    border: \"none !important\",\n  },\n  tableCell: {\n    ...defaultFont,\n    lineHeight: \"1.42857143\",\n    padding: \"12px 8px!important\",\n    verticalAlign: \"middle\",\n    fontSize: \"1em\",\n    borderBottom: \"none\",\n    borderTop: \"1px solid #ddd\",\n    position: \"relative\",\n  },\n  tableCellTotal: {\n    fontWeight: \"500\",\n    fontSize: \"1.25em\",\n    paddingTop: \"14px\",\n    textAlign: \"right\"\n  },\n  tableCellAmount: {\n    fontSize: \"26px\",\n    fontWeight: \"300\",\n    marginTop: \"5px\",\n    textAlign: \"right\"\n  },\n  tableResponsive: {\n    // width: \"100%\",\n    minHeight: \"0.1%\",\n    overflowX: \"auto\"\n  },\n  tableStripedRow: {\n    backgroundColor: \"#f9f9f9\"\n  },\n  tableRowHover: {\n    \"&:hover\": {\n      backgroundColor: \"#f5f5f5\"\n    }\n  },\n  warningRow: {\n    backgroundColor: \"#fcf8e3\",\n    \"&:hover\": {\n      backgroundColor: \"#faf2cc\"\n    }\n  },\n  dangerRow: {\n    backgroundColor: \"#f2dede\",\n    \"&:hover\": {\n      backgroundColor: \"#ebcccc\"\n    }\n  },\n  successRow: {\n    backgroundColor: \"#dff0d8\",\n    \"&:hover\": {\n      backgroundColor: \"#d0e9c6\"\n    }\n  },\n  infoRow: {\n    backgroundColor: \"#d9edf7\",\n    \"&:hover\": {\n      backgroundColor: \"#c4e3f3\"\n    }\n  },\n});\n\nexport default tableStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Table from \"material-ui/Table\";\nimport TableBody from \"material-ui/Table/TableBody\";\nimport TableCell from \"material-ui/Table/TableCell\";\nimport TableHead from \"material-ui/Table/TableHead\";\nimport TableRow from \"material-ui/Table/TableRow\";\n\nimport tableStyle from \"assets/jss/material-dashboard-pro-react/components/tableStyle\";\n\nfunction CustomTable({ ...props }) {\n  const {\n    classes,\n    tableHead,\n    tableData,\n    tableHeaderColor,\n    hover,\n    colorsColls,\n    coloredColls,\n    customCellClasses,\n    customClassesForCells,\n    striped,\n    tableShopping,\n    customHeadCellClasses,\n    customHeadClassesForCells\n  } = props;\n  return (\n    <div className={classes.tableResponsive}>\n      <Table className={classes.table}>\n        {tableHead !== undefined ? (\n          <TableHead className={classes[tableHeaderColor]}>\n            <TableRow className={classes.tableRow}>\n              {tableHead.map((prop, key) => {\n                const tableCellClasses =\n                  classes.tableHeadCell +\n                  \" \" +\n                  classes.tableCell +\n                  \" \" +\n                  cx({\n                    [customHeadCellClasses[\n                      customHeadClassesForCells.indexOf(key)\n                    ]]:\n                      customHeadClassesForCells.indexOf(key) !== -1,\n                    [classes.tableShoppingHead]: tableShopping,\n                    [classes.tableHeadFontSize]: !tableShopping\n                  });\n                return (\n                  <TableCell className={tableCellClasses} key={key}>\n                    {prop}\n                  </TableCell>\n                );\n              })}\n            </TableRow>\n          </TableHead>\n        ) : null}\n        <TableBody>\n          {tableData.map((prop, key) => {\n            var rowColor = \"\";\n            var rowColored = false;\n            if (prop.color !== undefined) {\n              rowColor = prop.color;\n              rowColored = true;\n              prop = prop.data;\n            }\n            const tableRowClasses = cx({\n              [classes.tableRowHover]: hover,\n              [classes[rowColor + \"Row\"]]: rowColored,\n              [classes.tableStripedRow]: striped && key % 2 === 0\n            });\n            if (prop.total) {\n              return (\n                <TableRow key={key} hover={hover} className={tableRowClasses}>\n                  <TableCell\n                    className={classes.tableCell}\n                    colSpan={prop.colspan}\n                  />\n                  <TableCell\n                    className={classes.tableCell + \" \" + classes.tableCellTotal}\n                  >\n                    Total\n                  </TableCell>\n                  <TableCell\n                    className={\n                      classes.tableCell + \" \" + classes.tableCellAmount\n                    }\n                  >\n                    {prop.amount}\n                  </TableCell>\n                  {\n                    tableHead.length - (prop.colspan - 0 + 2) > 0 ? (\n                      <TableCell\n                        className={classes.tableCell}\n                        colSpan={tableHead.length - (prop.colspan - 0 + 2)}\n                      />\n                    ):null\n                  }\n                </TableRow>\n              );\n            }\n            if (prop.purchase) {\n              return (\n                <TableRow key={key} hover={hover} className={tableRowClasses}>\n                  <TableCell\n                    className={classes.tableCell}\n                    colSpan={prop.colspan}\n                  />\n                  <TableCell\n                    className={classes.tableCell + \" \" + classes.right}\n                    colSpan={prop.col.colspan}\n                  >\n                    {prop.col.text}\n                  </TableCell>\n                </TableRow>\n              );\n            }\n            return (\n              <TableRow key={key} hover={hover} className={classes.tableRow + \" \" + tableRowClasses}>\n                {prop.map((prop, key) => {\n                  const tableCellClasses =\n                    classes.tableCell +\n                    \" \" +\n                    cx({\n                      [classes[colorsColls[coloredColls.indexOf(key)]]]:\n                        coloredColls.indexOf(key) !== -1,\n                      [customCellClasses[customClassesForCells.indexOf(key)]]:\n                        customClassesForCells.indexOf(key) !== -1,\n                    });\n                  return (\n                    <TableCell className={tableCellClasses} key={key}>\n                      {prop}\n                    </TableCell>\n                  );\n                })}\n              </TableRow>\n            );\n          })}\n        </TableBody>\n      </Table>\n    </div>\n  );\n}\n\nCustomTable.defaultProps = {\n  tableHeaderColor: \"gray\",\n  hover: false,\n  colorsColls: [],\n  coloredColls: [],\n  striped: false,\n  customCellClasses: [],\n  customClassesForCells: [],\n  customHeadCellClasses: [],\n  customHeadClassesForCells: []\n};\n\nCustomTable.propTypes = {\n  classes: PropTypes.object.isRequired,\n  tableHeaderColor: PropTypes.oneOf([\n    \"warning\",\n    \"primary\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ]),\n  tableHead: PropTypes.arrayOf(PropTypes.string),\n  // Of(PropTypes.arrayOf(PropTypes.node)) || Of(PropTypes.object),\n  tableData: PropTypes.array,\n  hover: PropTypes.bool,\n  coloredColls: PropTypes.arrayOf(PropTypes.number),\n  // Of([\"warning\",\"primary\",\"danger\",\"success\",\"info\",\"rose\",\"gray\"]) - colorsColls\n  colorsColls: PropTypes.array,\n  customCellClasses: PropTypes.arrayOf(PropTypes.string),\n  customClassesForCells: PropTypes.arrayOf(PropTypes.number),\n  customHeadCellClasses: PropTypes.arrayOf(PropTypes.string),\n  customHeadClassesForCells: PropTypes.arrayOf(PropTypes.number),\n  striped: PropTypes.bool,\n  // this will cause some changes in font\n  tableShopping: PropTypes.bool\n};\n\nexport default withStyles(tableStyle)(CustomTable);\n","// ##############################\n// // // StatsCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  cardActions,\n  grayColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  primaryColor,\n  roseColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst statsCardStyle = {\n  card,\n  cardHeader: {\n    ...cardHeader,\n    float: \"left\",\n    textAlign: \"center\"\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  cardContent: {\n    textAlign: \"right\",\n    paddingTop: \"10px\",\n    padding: \"15px 20px\"\n  },\n  cardIcon: {\n    width: \"40px\",\n    height: \"36px\",\n    fill: \"#fff\"\n  },\n  cardAvatar: {\n    margin: '10px 8px 10px',\n    display: 'flex',\n  },\n  cardCategory: {\n    marginBottom: \"0\",\n    color: grayColor,\n    margin: \"0 0 10px\",\n    ...defaultFont\n  },\n  cardTitle: {\n    margin: \"0\",\n    ...defaultFont,\n    fontSize: \"1.825em\"\n  },\n  cardTitleSmall: {\n    fontSize: \"65%\",\n    fontWeight: \"400\",\n    lineHeight: \"1\",\n    color: \"#777\"\n  },\n  cardActions: {\n    ...cardActions,\n    padding: \"10px 0 0 0!important\"\n  },\n  cardStats: {\n    lineHeight: \"22px\",\n    color: grayColor,\n    fontSize: \"12px\",\n    display: \"inline-block\",\n    margin: \"0!important\"\n  },\n  cardStatsIcon: {\n    position: \"relative\",\n    top: \"4px\",\n    width: \"16px\",\n    height: \"16px\"\n  },\n  warningCardStatsIcon: {\n    color: warningColor\n  },\n  primaryCardStatsIcon: {\n    color: primaryColor\n  },\n  dangerCardStatsIcon: {\n    color: dangerColor\n  },\n  successCardStatsIcon: {\n    color: successColor\n  },\n  infoCardStatsIcon: {\n    color: infoColor\n  },\n  roseCardStatsIcon: {\n    color: roseColor\n  },\n  grayCardStatsIcon: {\n    color: grayColor\n  },\n  cardStatsLink: {\n    color: primaryColor,\n    textDecoration: \"none\",\n    ...defaultFont\n  }\n};\n\nexport default statsCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport CardActions from \"material-ui/Card/CardActions\";\nimport Typography from \"material-ui/Typography\";\n\nimport statsCardStyle from \"assets/jss/material-dashboard-pro-react/components/statsCardStyle\";\n\nfunction StatsCard({ ...props }) {\n  const {\n    classes,\n    title,\n    description,\n    statLink,\n    small,\n    statText,\n    statIconColor,\n    iconColor\n  } = props;\n  return (\n    <Card className={classes.card}>\n      <CardHeader\n        classes={{\n          root: classes.cardHeader + \" \" + classes[iconColor + \"CardHeader\"],\n          avatar: classes.cardAvatar\n        }}\n        avatar={<props.icon className={classes.cardIcon} />}\n      />\n      <CardContent className={classes.cardContent}>\n        <Typography component=\"p\" className={classes.cardCategory}>\n          {title}\n        </Typography>\n        <Typography\n          variant=\"headline\"\n          component=\"h2\"\n          className={classes.cardTitle}\n        >\n          {description}{\" \"}\n          {small !== undefined ? (\n            <small className={classes.cardTitleSmall}>{small}</small>\n          ) : null}\n        </Typography>\n      </CardContent>\n      <CardActions className={classes.cardActions}>\n        <div className={classes.cardStats}>\n          <props.statIcon\n            className={\n              classes.cardStatsIcon +\n              \" \" +\n              classes[statIconColor + \"CardStatsIcon\"]\n            }\n          />{\" \"}\n          {statLink !== undefined ? (\n            <a href={statLink.href} className={classes.cardStatsLink}>\n              {statLink.text}\n            </a>\n          ) : statText !== undefined ? (\n            statText\n          ) : null}\n        </div>\n      </CardActions>\n    </Card>\n  );\n}\n\nStatsCard.defaultProps = {\n  iconColor: \"purple\",\n  statIconColor: \"gray\"\n};\n\nStatsCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  icon: PropTypes.func.isRequired,\n  iconColor: PropTypes.oneOf([\"orange\", \"green\", \"red\", \"blue\", \"purple\"]),\n  title: PropTypes.node,\n  description: PropTypes.node,\n  small: PropTypes.node,\n  statIcon: PropTypes.func.isRequired,\n  statIconColor: PropTypes.oneOf([\n    \"warning\",\n    \"primary\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ]),\n  statLink: PropTypes.object,\n  statText: PropTypes.node\n};\n\nexport default withStyles(statsCardStyle)(StatsCard);\n","// ##############################\n// // // ChartCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardActions,\n  grayColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  primaryColor,\n  roseColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst chartCardStyle = {\n  card,\n  cardHeader: {\n    ...cardHeader,\n    padding: \"0\",\n    minHeight: \"160px\",\n    ...defaultFont,\n    position: \"relative\",\n    zIndex: 3,\n    transition: \"all 300ms cubic-bezier(0.34, 1.61, 0.7, 1)\",\n    transform: \"translate3d(0, 0, 0)\"\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardContent: {\n    padding: \"15px 20px\",\n    position: \"relative\"\n  },\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"5px\",\n    ...defaultFont,\n    fontSize: \"1.175em\"\n  },\n  cardCategory: {\n    marginBottom: \"0\",\n    color: grayColor,\n    ...defaultFont,\n    fontSize: \"0.9em\"\n  },\n  cardActions: {\n    ...cardActions,\n    padding: \"10px 0 0 0!important\"\n  },\n  cardStats: {\n    lineHeight: \"22px\",\n    color: grayColor,\n    fontSize: \"12px\",\n    display: \"inline-block\",\n    margin: \"0!important\"\n  },\n  cardStatsIcon: {\n    position: \"relative\",\n    top: \"4px\",\n    width: \"16px\",\n    height: \"16px\"\n  },\n  warningCardStatsIcon: {\n    color: warningColor\n  },\n  primaryCardStatsIcon: {\n    color: primaryColor\n  },\n  dangerCardStatsIcon: {\n    color: dangerColor\n  },\n  successCardStatsIcon: {\n    color: successColor\n  },\n  infoCardStatsIcon: {\n    color: infoColor\n  },\n  roseCardStatsIcon: {\n    color: roseColor\n  },\n  grayCardStatsIcon: {\n    color: grayColor\n  },\n  cardStatsLink: {\n    color: primaryColor,\n    textDecoration: \"none\",\n    ...defaultFont\n  },\n  underChart: {\n    position: \"absolute\",\n    zIndex: \"1\",\n    top: \"-50px\",\n    width: \"calc(100% - 30px)\",\n    left: \"17px\",\n    right: \"17px\",\n    textAlign: \"center\"\n  },\n  moveChartUp: {\n    transform: \"translate3d(0, -50px, 0)\"\n  }\n};\n\nexport default chartCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport CardActions from \"material-ui/Card/CardActions\";\nimport Typography from \"material-ui/Typography\";\n\nimport chartCardStyle from \"assets/jss/material-dashboard-pro-react/components/chartCardStyle\";\n\nclass ChartCard extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      hover: false\n    };\n  }\n  render() {\n    const {\n      classes,\n      chartColor,\n      statIconColor,\n      chart,\n      title,\n      text,\n      statLink,\n      statText,\n      underChart,\n      hover\n    } = this.props;\n    const cardHeaderClasses =\n      classes.cardHeader +\n      \" \" +\n      classes[chartColor + \"CardHeader\"] +\n      cx({\n        [\" \" + classes.moveChartUp]: this.state.hover && hover\n      });\n    var addHoverEvent = {};\n    if (hover) {\n      if (navigator.userAgent.match(/iPad/i) != null) {\n        addHoverEvent.onClick = () =>\n          this.setState({ hover: !this.state.hover });\n      } else {\n        addHoverEvent.onMouseEnter = () => this.setState({ hover: true });\n        addHoverEvent.onMouseLeave = () => this.setState({ hover: false });\n      }\n    }\n    return (\n      <Card className={classes.card} {...addHoverEvent}>\n        <CardHeader className={cardHeaderClasses} subheader={chart} />\n        <CardContent className={classes.cardContent}>\n          {hover ? (\n            <div className={classes.underChart}>{underChart}</div>\n          ) : null}\n          <Typography\n            variant=\"title\"\n            component=\"h4\"\n            className={classes.cardTitle}\n          >\n            {title}\n          </Typography>\n          <Typography component=\"p\" className={classes.cardCategory}>\n            {text}\n          </Typography>\n        </CardContent>\n        {this.props.statIcon !== undefined ||\n        statLink !== undefined ||\n        statText !== undefined ? (\n          <CardActions className={classes.cardActions}>\n            <div className={classes.cardStats}>\n              {this.props.statIcon !== undefined ? (\n                <this.props.statIcon\n                  className={\n                    classes.cardStatsIcon +\n                    \" \" +\n                    classes[statIconColor + \"CardStatsIcon\"]\n                  }\n                />\n              ) : null}{\" \"}\n              {statLink !== undefined ? (\n                <a href={statLink.href} className={classes.cardStatsLink}>\n                  {statLink.text}\n                </a>\n              ) : statText !== undefined ? (\n                statText\n              ) : null}\n            </div>\n          </CardActions>\n        ) : null}\n      </Card>\n    );\n  }\n}\n\nChartCard.defaultProps = {\n  statIconColor: \"gray\",\n  chartColor: \"purple\",\n  hover: false\n};\n\nChartCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  chart: PropTypes.object.isRequired,\n  title: PropTypes.node,\n  text: PropTypes.node,\n  statIcon: PropTypes.func,\n  statIconColor: PropTypes.oneOf([\n    \"warning\",\n    \"primary\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ]),\n  chartColor: PropTypes.oneOf([\n    \"orange\",\n    \"green\",\n    \"red\",\n    \"blue\",\n    \"purple\",\n    \"rose\"\n  ]),\n  statLink: PropTypes.object,\n  statText: PropTypes.node,\n  // if the chart should move up on hover\n  hover: PropTypes.bool,\n  // what to be displayed under tha chart on hover\n  underChart: PropTypes.node\n};\n\nexport default withStyles(chartCardStyle)(ChartCard);\n","// ##############################\n// // // IconCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst iconCardStyle = {\n  card,\n  cardPlain: {\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  cardHeader: {\n    ...cardHeader,\n    float: \"left\"\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardContent: {\n    padding: \"15px 20px\",\n    position: \"relative\"\n  },\n  cardAvatar: {\n    margin: \"0px\"\n  },\n  cardIcon: {\n    paddingTop: \"3px\",\n    paddingLeft: \"4px\",\n    paddingRight: \"5px\",\n    color: \"#FFFFFF\",\n    width: \"33px\",\n    height: \"27px\"\n  },\n  cardTitle: {\n    paddingBottom: \"15px\",\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\",\n    textDecoration: \"none\"\n  },\n  cardCategory: {\n    color: \"#999999\",\n    fontSize: \"14px\",\n    fontWeight: \"400\",\n    lineHeight: \"1\",\n    marginBottom: \"0\"\n  },\n  cardFooter: {\n    margin: \"0 20px 10px\",\n    paddingTop: \"10px\",\n    borderTop: \"1px solid #eeeeee\"\n  }\n};\n\nexport default iconCardStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\n\nimport iconCardStyle from \"assets/jss/material-dashboard-pro-react/components/iconCardStyle.jsx\";\n\nfunction IconCard({ ...props }) {\n  const {\n    classes,\n    title,\n    content,\n    iconColor,\n    category,\n    footer,\n    plain,\n    customCardContentClass\n  } = props;\n  const cardClasses =\n    classes.card +\n    \" \" +\n    cx({\n      [classes.cardPlain]: plain\n    });\n  const cardContentClasses =\n    classes.cardContent +\n    \" \" +\n    cx({\n      [customCardContentClass]: customCardContentClass !== undefined\n    });\n  return (\n    <Card className={cardClasses}>\n      <CardHeader\n        classes={{\n          root: classes.cardHeader + \" \" + classes[iconColor + \"CardHeader\"],\n          avatar: classes.cardAvatar\n        }}\n        avatar={<props.icon className={classes.cardIcon} />}\n      />\n      <CardContent className={cardContentClasses}>\n        <h4 className={classes.cardTitle}>\n          {title}\n          {category !== undefined ? (\n            <small className={classes.cardCategory}>{category}</small>\n          ) : null}\n        </h4>\n        {content}\n      </CardContent>\n      {footer !== undefined ? (\n        <div className={classes.cardFooter}>{footer}</div>\n      ) : null}\n    </Card>\n  );\n}\n\nIconCard.defaultProps = {\n  iconColor: \"purple\",\n};\n\nIconCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  icon: PropTypes.func.isRequired,\n  iconColor: PropTypes.oneOf([\n    \"orange\",\n    \"green\",\n    \"red\",\n    \"blue\",\n    \"purple\",\n    \"rose\"\n  ]),\n  title: PropTypes.node,\n  category: PropTypes.node,\n  content: PropTypes.node,\n  footer: PropTypes.node,\n  plain: PropTypes.bool,\n  customCardContentClass: PropTypes.string\n};\n\nexport default withStyles(iconCardStyle)(IconCard);\n","// ##############################\n// // // ChartCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  cardActions,\n  grayColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  primaryColor,\n  roseColor,\n  boxShadow\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst imagePriceCardStyle = {\n  card,\n  cardHeader: {\n    ...cardHeader,\n    padding: \"0\",\n    ...defaultFont,\n    position: \"relative\",\n    zIndex: 3,\n    transition: \"all 300ms cubic-bezier(0.34, 1.61, 0.7, 1)\",\n    transform: \"translate3d(0, 0, 0)\",\n    height: \"60%\",\n    overflow: \"hidden\",\n    marginLeft: \"15px\",\n    marginRight: \"15px\",\n    marginTop: \"-30px\",\n    borderRadius: \"6px\",\n    ...boxShadow\n  },\n  underImage: {\n    position: \"absolute\",\n    zIndex: \"1\",\n    top: \"-50px\",\n    width: \"calc(100% - 30px)\",\n    left: \"17px\",\n    right: \"17px\",\n    textAlign: \"center\"\n  },\n  moveImageUp: {\n    transform: \"translate3d(0, -50px, 0)\"\n  },\n  cardImage: {\n    width: \"100%\",\n    height: \"100%\",\n    borderRadius: \"6px\",\n    pointerEvents: \"none\",\n    verticalAlign: \"middle\"\n  },\n  cardContent: {\n    padding: \"15px 20px\",\n    position: \"relative\"\n  },\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"5px\",\n    ...defaultFont,\n    fontSize: \"1.175em\",\n    textAlign: \"center\"\n  },\n  cardCategory: {\n    marginBottom: \"0\",\n    color: grayColor,\n    ...defaultFont,\n    fontSize: \"0.9em\",\n    textAlign: \"center\"\n  },\n  cardActions: {\n    ...cardActions,\n    padding: \"10px 0 0 0!important\"\n  },\n  cardPrice: {\n    display: \"inline-block\",\n    margin: \"0!important\"\n  },\n  cardPriceText: {\n    margin: \"5px 0\"\n  },\n  cardStats: {\n    lineHeight: \"22px\",\n    color: grayColor,\n    fontSize: \"12px\",\n    display: \"inline-block\",\n    marginRight: \"0\",\n    marginLeft: \"auto\"\n  },\n  cardStatsIcon: {\n    position: \"relative\",\n    top: \"4px\",\n    width: \"16px\",\n    height: \"16px\"\n  },\n  warningCardStatsIcon: {\n    color: warningColor\n  },\n  primaryCardStatsIcon: {\n    color: primaryColor\n  },\n  dangerCardStatsIcon: {\n    color: dangerColor\n  },\n  successCardStatsIcon: {\n    color: successColor\n  },\n  infoCardStatsIcon: {\n    color: infoColor\n  },\n  roseCardStatsIcon: {\n    color: roseColor\n  },\n  grayCardStatsIcon: {\n    color: grayColor\n  },\n  cardStatsLink: {\n    color: primaryColor,\n    textDecoration: \"none\",\n    ...defaultFont\n  },\n  link: {\n    margin: \"0 !important\",\n    padding: \"0 !important\"\n  }\n};\n\nexport default imagePriceCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport CardActions from \"material-ui/Card/CardActions\";\nimport Typography from \"material-ui/Typography\";\n\n// core components\nimport Button from \"components/CustomButtons/Button\";\n\nimport imagePriceCardStyle from \"assets/jss/material-dashboard-pro-react/components/imagePriceCardStyle.jsx\";\n\nclass ImagePriceCard extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      hover: false\n    };\n  }\n  render() {\n    const {\n      classes,\n      image,\n      title,\n      text,\n      price,\n      statIconColor,\n      statLink,\n      statText,\n      underImage,\n      hover\n    } = this.props;\n    const cardHeaderClasses =\n      classes.cardHeader +\n      cx({\n        [\" \" + classes.moveImageUp]: this.state.hover && hover\n      });\n    var addHoverEvent = {};\n    if (hover) {\n      if (navigator.userAgent.match(/iPad/i) != null) {\n        addHoverEvent.onClick = () =>\n          this.setState({ hover: !this.state.hover });\n      } else {\n        addHoverEvent.onMouseEnter = () => this.setState({ hover: true });\n        addHoverEvent.onMouseLeave = () => this.setState({ hover: false });\n      }\n    }\n    return (\n      <Card className={classes.card} {...addHoverEvent}>\n        <CardHeader\n          className={cardHeaderClasses}\n          subheader={\n            <Button color=\"defaultNoBackground\" customClass={classes.link}>\n              <img src={image} alt=\"...\" className={classes.cardImage} />\n            </Button>\n          }\n        />\n        <CardContent className={classes.cardContent}>\n          {hover ? (\n            <div className={classes.underImage}>{underImage}</div>\n          ) : null}\n          <Typography\n            variant=\"title\"\n            component=\"h4\"\n            className={classes.cardTitle}\n          >\n            {title}\n          </Typography>\n          <Typography component=\"p\" className={classes.cardCategory}>\n            {text}\n          </Typography>\n        </CardContent>\n        <CardActions className={classes.cardActions}>\n          <div className={classes.cardPrice}>\n            <h4 className={classes.cardPriceText}>{price}</h4>\n          </div>\n          <div className={classes.cardStats}>\n            <this.props.statIcon\n              className={\n                classes.cardStatsIcon +\n                \" \" +\n                classes[statIconColor + \"CardStatsIcon\"]\n              }\n            />{\" \"}\n            {statLink !== undefined ? (\n              <a href={statLink.href} className={classes.cardStatsLink}>\n                {statLink.text}\n              </a>\n            ) : statText !== undefined ? (\n              statText\n            ) : null}\n          </div>\n        </CardActions>\n      </Card>\n    );\n  }\n}\n\nImagePriceCard.defaultProps = {\n  hover: false,\n};\n\nImagePriceCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  image: PropTypes.string,\n  title: PropTypes.node,\n  text: PropTypes.node,\n  price: PropTypes.string,\n  location: PropTypes.string,\n  statIcon: PropTypes.func.isRequired,\n  statIconColor: PropTypes.oneOf([\n    \"warning\",\n    \"primary\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ]),\n  statLink: PropTypes.object,\n  statText: PropTypes.node,\n  // if the chart should move up on hover\n  hover: PropTypes.bool,\n  // what to be displayed under tha chart on hover\n  underImage: PropTypes.node\n};\n\nexport default withStyles(imagePriceCardStyle)(ImagePriceCard);\n","// ##############################\n// // // Dashboard View styles\n// #############################\n\nimport {\n  successColor,\n  tooltip\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst dashboardStyle = {\n  successText: {\n    color: successColor\n  },\n  upArrowCardCategory: {\n    width: 14,\n    height: 14\n  },\n  underChartIcons: {\n    width: \"17px\",\n    height: \"17px\"\n  },\n  tooltip\n};\n\nexport default dashboardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n// react plugin for creating charts\nimport ChartistGraph from \"react-chartist\";\n// react plugin for creating vector maps\nimport { VectorMap } from \"react-jvectormap\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Tooltip from \"material-ui/Tooltip\";\n\n// @material-ui/icons\nimport ContentCopy from \"@material-ui/icons/ContentCopy\";\nimport Store from \"@material-ui/icons/Store\";\nimport InfoOutline from \"@material-ui/icons/InfoOutline\";\nimport Warning from \"@material-ui/icons/Warning\";\nimport DateRange from \"@material-ui/icons/DateRange\";\nimport LocalOffer from \"@material-ui/icons/LocalOffer\";\nimport Update from \"@material-ui/icons/Update\";\nimport ArrowUpward from \"@material-ui/icons/ArrowUpward\";\nimport AccessTime from \"@material-ui/icons/AccessTime\";\nimport Accessibility from \"@material-ui/icons/Accessibility\";\nimport Refresh from \"@material-ui/icons/Refresh\";\nimport Edit from \"@material-ui/icons/Edit\";\nimport Place from \"@material-ui/icons/Place\";\nimport ArtTrack from \"@material-ui/icons/ArtTrack\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport Table from \"components/Table/Table.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport StatsCard from \"components/Cards/StatsCard.jsx\";\nimport ChartCard from \"components/Cards/ChartCard.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport ImagePriceCard from \"components/Cards/ImagePriceCard.jsx\";\n\nimport {\n  dailySalesChart,\n  emailsSubscriptionChart,\n  completedTasksChart\n} from \"variables/charts\";\n\nimport dashboardStyle from \"assets/jss/material-dashboard-pro-react/views/dashboardStyle\";\n\nimport priceImage1 from \"assets/img/card-2.jpeg\";\nimport priceImage2 from \"assets/img/card-3.jpeg\";\nimport priceImage3 from \"assets/img/card-1.jpeg\";\n\nconst us_flag = require(\"assets/img/flags/US.png\");\nconst de_flag = require(\"assets/img/flags/DE.png\");\nconst au_flag = require(\"assets/img/flags/AU.png\");\nconst gb_flag = require(\"assets/img/flags/GB.png\");\nconst ro_flag = require(\"assets/img/flags/RO.png\");\nconst br_flag = require(\"assets/img/flags/BR.png\");\n\nvar mapData = {\n  AU: 760,\n  BR: 550,\n  CA: 120,\n  DE: 1300,\n  FR: 540,\n  GB: 690,\n  GE: 200,\n  IN: 200,\n  RO: 600,\n  RU: 300,\n  US: 2920\n};\n\nclass Dashboard extends React.Component {\n  state = {\n    value: 0\n  };\n  handleChange = (event, value) => {\n    this.setState({ value });\n  };\n  handleChangeIndex = index => {\n    this.setState({ value: index });\n  };\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <GridContainer>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <StatsCard\n              icon={ContentCopy}\n              iconColor=\"orange\"\n              title=\"Used Space\"\n              description=\"49/50\"\n              small=\"GB\"\n              statIcon={Warning}\n              statIconColor=\"danger\"\n              statLink={{ text: \"Get More Space...\", href: \"#pablo\" }}\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <StatsCard\n              icon={Store}\n              iconColor=\"green\"\n              title=\"Revenue\"\n              description=\"$34,245\"\n              statIcon={DateRange}\n              statText=\"Last 24 Hours\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <StatsCard\n              icon={InfoOutline}\n              iconColor=\"red\"\n              title=\"Fixed Issues\"\n              description=\"75\"\n              statIcon={LocalOffer}\n              statText=\"Tracked from Github\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <StatsCard\n              icon={Accessibility}\n              iconColor=\"blue\"\n              title=\"Followers\"\n              description=\"+245\"\n              statIcon={Update}\n              statText=\"Just Updated\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12}>\n            <IconCard\n              icon={InfoOutline}\n              title=\"Global Sales by Top Locations\"\n              iconColor=\"green\"\n              content={\n                <GridContainer justify=\"space-between\">\n                  <ItemGrid xs={12} sm={12} md={5}>\n                    <Table\n                      tableData={[\n                        [\n                          <img src={us_flag} alt=\"us_flag\" />,\n                          \"USA\",\n                          \"2.920\",\n                          \"53.23%\"\n                        ],\n                        [\n                          <img src={de_flag} alt=\"us_flag\" />,\n                          \"Germany\",\n                          \"1.300\",\n                          \"20.43%\"\n                        ],\n                        [\n                          <img src={au_flag} alt=\"us_flag\" />,\n                          \"Australia\",\n                          \"760\",\n                          \"10.35%\"\n                        ],\n                        [\n                          <img src={gb_flag} alt=\"us_flag\" />,\n                          \"United Kingdom\",\n                          \"690\",\n                          \"7.87%\"\n                        ],\n                        [\n                          <img src={ro_flag} alt=\"us_flag\" />,\n                          \"Romania\",\n                          \"600\",\n                          \"5.94%\"\n                        ],\n                        [\n                          <img src={br_flag} alt=\"us_flag\" />,\n                          \"Brasil\",\n                          \"550\",\n                          \"4.34%\"\n                        ]\n                      ]}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={6}>\n                    <VectorMap\n                      map={\"world_mill\"}\n                      backgroundColor=\"transparent\"\n                      zoomOnScroll={false}\n                      containerStyle={{\n                        width: \"100%\",\n                        height: \"280px\"\n                      }}\n                      containerClassName=\"map\"\n                      regionStyle={{\n                        initial: {\n                          fill: \"#e4e4e4\",\n                          \"fill-opacity\": 0.9,\n                          stroke: \"none\",\n                          \"stroke-width\": 0,\n                          \"stroke-opacity\": 0\n                        }\n                      }}\n                      series={{\n                        regions: [\n                          {\n                            values: mapData,\n                            scale: [\"#AAAAAA\", \"#444444\"],\n                            normalizeFunction: \"polynomial\"\n                          }\n                        ]\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={dailySalesChart.data}\n                  type=\"Line\"\n                  options={dailySalesChart.options}\n                  listener={dailySalesChart.animation}\n                />\n              }\n              underChart={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Refresh\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"infoNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Change Date\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n              hover\n              chartColor=\"blue\"\n              title=\"Daily Sales\"\n              text={\n                <span>\n                  <span className={classes.successText}>\n                    <ArrowUpward className={classes.upArrowCardCategory} /> 55%\n                  </span>{\" \"}\n                  increase in today sales.\n                </span>\n              }\n              statIcon={AccessTime}\n              statText=\"updated 4 minutes ago\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={emailsSubscriptionChart.data}\n                  type=\"Bar\"\n                  options={emailsSubscriptionChart.options}\n                  responsiveOptions={emailsSubscriptionChart.responsiveOptions}\n                  listener={emailsSubscriptionChart.animation}\n                />\n              }\n              underChart={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Refresh\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"infoNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Change Date\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n              hover\n              chartColor=\"orange\"\n              title=\"Email Subscriptions\"\n              text=\"Last Campaign Performance\"\n              statIcon={AccessTime}\n              statText=\"campaign sent 2 days ago\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={completedTasksChart.data}\n                  type=\"Line\"\n                  options={completedTasksChart.options}\n                  listener={completedTasksChart.animation}\n                />\n              }\n              underChart={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Refresh\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"infoNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Change Date\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n              hover\n              chartColor=\"red\"\n              title=\"Completed Tasks\"\n              text=\"Last Campaign Performance\"\n              statIcon={AccessTime}\n              statText=\"campaign sent 2 days ago\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h3>Manage Listings</h3>\n        <br />\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ImagePriceCard\n              image={priceImage1}\n              title=\"Cozy 5 Stars Apartment\"\n              text=\"The place is close to Barceloneta Beach and bus stop just 2 min by walk and near to &quot;Naviglio&quot; where you can enjoy the main night life in Barcelona.\"\n              price=\"$899/night\"\n              statIcon={Place}\n              statText=\"Barcelona, Spain\"\n              hover\n              underImage={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"View\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <ArtTrack className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Edit\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"successNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Remove\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"dangerNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ImagePriceCard\n              image={priceImage2}\n              title=\"Office Studio\"\n              text=\"The place is close to Metro Station and bus stop just 2 min by walk and near to &quot;Naviglio&quot; where you can enjoy the night life in London, UK.\"\n              price=\"$1.119/night\"\n              statIcon={Place}\n              statText=\"London, UK\"\n              hover\n              underImage={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"View\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <ArtTrack className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Edit\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"successNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Remove\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"dangerNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ImagePriceCard\n              image={priceImage3}\n              title=\"Beautiful Castle\"\n              text=\"The place is close to Metro Station and bus stop just 2 min by walk and near to &quot;Naviglio&quot; where you can enjoy the main night life in Milan.\"\n              price=\"$459/night\"\n              statIcon={Place}\n              statText=\"Milan, Italy\"\n              hover\n              underImage={\n                <div>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"View\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"defaultNoBackground\" justIcon>\n                      <ArtTrack className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Edit\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"successNoBackground\" justIcon>\n                      <Refresh className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                  <Tooltip\n                    id=\"tooltip-top\"\n                    title=\"Remove\"\n                    placement=\"bottom\"\n                    classes={{ tooltip: classes.tooltip }}\n                  >\n                    <Button color=\"dangerNoBackground\" justIcon>\n                      <Edit className={classes.underChartIcons} />\n                    </Button>\n                  </Tooltip>\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nDashboard.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(dashboardStyle)(Dashboard);\n","// ##############################\n// // // Pagination component styles\n// #############################\n\nimport {\n  grayColor,\n  primaryColor,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst paginationStyle = {\n  pagination: {\n    display: \"inline-block\",\n    paddingLeft: \"0\",\n    margin: \"20px 0\",\n    borderRadius: \"4px\"\n  },\n  paginationItem: {\n    display: \"inline\"\n  },\n  paginationLink: {\n    \":first-of-type\": {\n      marginleft: \"0\"\n    },\n    border: \"0\",\n    borderRadius: \"30px !important\",\n    transition: \"all .3s\",\n    padding: \"0px 11px\",\n    margin: \"0 3px\",\n    minWidth: \"30px\",\n    height: \"30px\",\n    minHeight: \"auto\",\n    lineHeight: \"30px\",\n    fontWeight: \"400\",\n    fontSize: \"12px\",\n    textTransform: \"uppercase\",\n    background: \"transparent\",\n    position: \"relative\",\n    float: \"left\",\n    textDecoration: \"none\",\n    boxSizing: \"border-box\",\n    \"&,&:hover,&:focus\": {\n      color: grayColor\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"3\",\n      backgroundColor: \"#eee\",\n      borderColor: \"#ddd\"\n    },\n    \"&:hover\": {\n      cursor: \"pointer\"\n    }\n  },\n  primary: {\n    \"&,&:hover,&:focus\": {\n      backgroundColor: primaryColor,\n      borderColor: primaryColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 5px 0 rgba(156, 39, 176, 0.14), 0 1px 10px 0 rgba(156, 39, 176, 0.12), 0 2px 4px -1px rgba(156, 39, 176, 0.2)\"\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"2\",\n      cursor: \"default\"\n    }\n  },\n  info: {\n    \"&,&:hover,&:focus\": {\n      backgroundColor: infoColor,\n      borderColor: infoColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 5px 0 rgba(0, 188, 212, 0.14), 0 1px 10px 0 rgba(0, 188, 212, 0.12), 0 2px 4px -1px rgba(0, 188, 212, 0.2)\"\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"2\",\n      cursor: \"default\"\n    }\n  },\n  success: {\n    \"&,&:hover,&:focus\": {\n      backgroundColor: successColor,\n      borderColor: successColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 5px 0 rgba(76, 175, 80, 0.14), 0 1px 10px 0 rgba(76, 175, 80, 0.12), 0 2px 4px -1px rgba(76, 175, 80, 0.2)\"\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"2\",\n      cursor: \"default\"\n    }\n  },\n  warning: {\n    \"&,&:hover,&:focus\": {\n      backgroundColor: warningColor,\n      borderColor: warningColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 5px 0 rgba(255, 152, 0, 0.14), 0 1px 10px 0 rgba(255, 152, 0, 0.12), 0 2px 4px -1px rgba(255, 152, 0, 0.2)\"\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"2\",\n      cursor: \"default\"\n    }\n  },\n  danger: {\n    \"&,&:hover,&:focus\": {\n      backgroundColor: dangerColor,\n      borderColor: dangerColor,\n      color: \"#FFFFFF\",\n      boxShadow:\n        \"0 4px 5px 0 rgba(244, 67, 54, 0.14), 0 1px 10px 0 rgba(244, 67, 54, 0.12), 0 2px 4px -1px rgba(244, 67, 54, 0.2)\"\n    },\n    \"&:hover,&:focus\": {\n      zIndex: \"2\",\n      cursor: \"default\"\n    }\n  },\n  disabled: {\n    \"&,&:hover,&:focus\": {\n      color: \"#777\",\n      cursor: \"not-allowed\",\n      backgroundColor: \"#fff\",\n      borderColor: \"#ddd\",\n    },\n  },\n};\n\nexport default paginationStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\nimport Log from '../../logging/Log.jsx';\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Button from 'material-ui/Button';\n\nimport paginationStyle from \"assets/jss/material-dashboard-pro-react/components/paginationStyle.jsx\";\n\nfunction Pagination({ ...props }) {\n  const { classes, pages, color } = props;\n  return (\n    <ul className={classes.pagination}>\n      {pages.map((prop, key) => {\n        const paginationLink = cx({\n          [classes.paginationLink]: true,\n          [classes[color]]: prop.active,\n          [classes.disabled]: prop.disabled\n        });\n        return (\n          <li className={classes.paginationItem} key={key}>\n            {prop.onClick !== undefined ? (\n              <Button onClick={prop.onClick} className={paginationLink}>\n                {prop.text}\n              </Button>\n            ) : (\n              <Button\n                onClick={() => Log.info(\"you've clicked \" + prop.text)}\n                className={paginationLink}\n              >\n                {prop.text}\n              </Button>\n            )}\n          </li>\n        );\n      })}\n    </ul>\n  );\n}\n\nPagination.defaultProps = {\n  color: \"primary\"\n};\n\nPagination.propTypes = {\n  classes: PropTypes.object.isRequired,\n  pages: PropTypes.arrayOf(\n    PropTypes.shape({\n      active: PropTypes.bool,\n      disabled: PropTypes.bool,\n      text: PropTypes.oneOfType([\n        PropTypes.number,\n        PropTypes.oneOf([\"PREV\", \"NEXT\", \"...\"])\n      ]).isRequired,\n      onClick: PropTypes.func\n    })\n  ).isRequired,\n  color: PropTypes.oneOf([\"primary\", \"info\", \"success\", \"warning\", \"danger\"])\n};\n\nexport default withStyles(paginationStyle)(Pagination);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// @material-ui/icons\nimport KeyboardArrowLeft from \"@material-ui/icons/KeyboardArrowLeft\";\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\nimport PriorityHigh from \"@material-ui/icons/PriorityHigh\";\nimport Check from \"@material-ui/icons/Check\";\nimport Warning from \"@material-ui/icons/Warning\";\nimport Close from \"@material-ui/icons/Close\";\nimport Favorite from \"@material-ui/icons/Favorite\";\n\n// core components\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport Pagination from \"components/Pagination/Pagination.jsx\";\nimport IconButton from \"components/CustomButtons/IconButton.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport buttonsStyle from \"assets/jss/material-dashboard-pro-react/views/buttonsStyle.jsx\";\n\nclass Buttons extends React.Component {\n  render() {\n    const { classes } = this.props;\n    return (\n      <RegularCard\n        content={\n          <div>\n            <GridContainer>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Pick your Color</h4>\n                </div>\n                <div className={classes.cardContentLeft}>\n                  <Button customClass={classes.marginRight}>Default</Button>\n                  <Button color=\"primary\" customClass={classes.marginRight}>\n                    Primary\n                  </Button>\n                  <Button color=\"info\" customClass={classes.marginRight}>\n                    Info\n                  </Button>\n                  <Button color=\"success\" customClass={classes.marginRight}>\n                    Success\n                  </Button>\n                  <Button color=\"warning\" customClass={classes.marginRight}>\n                    Warning\n                  </Button>\n                  <Button color=\"danger\" customClass={classes.marginRight}>\n                    Danger\n                  </Button>\n                  <Button color=\"rose\" customClass={classes.marginRight}>\n                    Rose\n                  </Button>\n                </div>\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Buttons with Label</h4>\n                </div>\n                <div className={classes.cardContentRight}>\n                  <Button customClass={classes.marginRight}>\n                    <KeyboardArrowLeft className={classes.icons} /> Left\n                  </Button>\n                  <Button customClass={classes.marginRight}>\n                    Right <KeyboardArrowRight className={classes.icons} />\n                  </Button>\n                  <Button color=\"info\" customClass={classes.marginRight}>\n                    <PriorityHigh className={classes.icons} /> Info\n                  </Button>\n                  <Button color=\"success\" customClass={classes.marginRight}>\n                    <Check className={classes.icons} /> Success\n                  </Button>\n                  <Button color=\"warning\" customClass={classes.marginRight}>\n                    <Warning className={classes.icons} /> Warning\n                  </Button>\n                  <Button color=\"danger\" customClass={classes.marginRight}>\n                    <Close className={classes.icons} /> Danger\n                  </Button>\n                </div>\n              </ItemGrid>\n            </GridContainer>\n            <GridContainer>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Pick your Size</h4>\n                </div>\n                <div className={classes.cardContentLeft}>\n                  <Button\n                    color=\"primary\"\n                    size=\"xs\"\n                    customClass={classes.marginRight}\n                  >\n                    x-Small\n                  </Button>\n                  <Button\n                    color=\"primary\"\n                    size=\"sm\"\n                    customClass={classes.marginRight}\n                  >\n                    Small\n                  </Button>\n                  <Button color=\"primary\" customClass={classes.marginRight}>\n                    Regular\n                  </Button>\n                  <Button\n                    color=\"primary\"\n                    size=\"lg\"\n                    customClass={classes.marginRight}\n                  >\n                    Large\n                  </Button>\n                </div>\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Pick your Style</h4>\n                </div>\n                <div className={classes.cardContentRight}>\n                  <Button color=\"primary\" customClass={classes.marginRight}>\n                    Default\n                  </Button>\n                  <Button\n                    color=\"primary\"\n                    round\n                    customClass={classes.marginRight}\n                  >\n                    round\n                  </Button>\n                  <Button\n                    color=\"primary\"\n                    round\n                    customClass={classes.marginRight}\n                  >\n                    <Favorite className={classes.icons} /> with icon\n                  </Button>\n                  <IconButton color=\"primary\" customClass={classes.marginRight}>\n                    <Favorite className={classes.icons} />\n                  </IconButton>\n                  <Button\n                    color=\"primaryNoBackground\"\n                    customClass={classes.marginRight}\n                  >\n                    simple\n                  </Button>\n                </div>\n              </ItemGrid>\n            </GridContainer>\n            <GridContainer>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Pagination</h4>\n                </div>\n                <div className={classes.cardContentLeft}>\n                  <Pagination\n                    pages={[\n                      { text: 1 },\n                      { text: \"...\" },\n                      { text: 5 },\n                      { text: 6 },\n                      { active: true, text: 7 },\n                      { text: 8 },\n                      { text: 9 },\n                      { text: \"...\" },\n                      { text: 12 }\n                    ]}\n                  />\n                  <Pagination\n                    pages={[\n                      { text: \"PREV\" },\n                      { text: 1 },\n                      { text: 2 },\n                      { active: true, text: 3 },\n                      { text: 4 },\n                      { text: 5 },\n                      { text: \"NEXT\" }\n                    ]}\n                    color=\"info\"\n                  />\n                </div>\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} md={6}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Button Group</h4>\n                </div>\n                <div className={classes.cardContentRight}>\n                  <div className={classes.buttonGroup}>\n                    <Button color=\"info\" customClass={classes.firstButton}>\n                      Left\n                    </Button>\n                    <Button color=\"info\" customClass={classes.middleButton}>\n                      Middle\n                    </Button>\n                    <Button color=\"info\" customClass={classes.lastButton}>\n                      Right\n                    </Button>\n                  </div>\n                  <br />\n                  <br />\n                  <div className={classes.buttonGroup}>\n                    <Button\n                      color=\"info\"\n                      round\n                      customClass={classes.firstButton}\n                    >\n                      1\n                    </Button>\n                    <Button\n                      color=\"info\"\n                      round\n                      customClass={classes.middleButton}\n                    >\n                      2\n                    </Button>\n                    <Button\n                      color=\"info\"\n                      round\n                      customClass={classes.middleButton}\n                    >\n                      3\n                    </Button>\n                    <Button color=\"info\" round customClass={classes.lastButton}>\n                      4\n                    </Button>\n                  </div>\n                  {` `}\n                  <div className={classes.buttonGroup}>\n                    <Button\n                      color=\"info\"\n                      round\n                      customClass={classes.firstButton}\n                    >\n                      5\n                    </Button>\n                    <Button\n                      color=\"info\"\n                      round\n                      customClass={classes.middleButton}\n                    >\n                      6\n                    </Button>\n                    <Button color=\"info\" round customClass={classes.lastButton}>\n                      7\n                    </Button>\n                  </div>\n                </div>\n              </ItemGrid>\n            </GridContainer>\n            <GridContainer>\n              <ItemGrid xs={12}>\n                <div className={classes.cardHeader}>\n                  <h4 className={classes.cardTitle}>Social buttons</h4>\n                </div>\n                <div className={classes.cardContentBottom}>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"twitter\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-twitter\"\n                          }\n                        />{\" \"}\n                        Connect with Twitter\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"twitter\">\n                        <i className={\"fab fa-twitter\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"twitter\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-twitter\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"twitterNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-twitter\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"twitterNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-twitter\"\n                          }\n                        />{\" \"}\n                        Connect with Twitter\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"facebook\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-facebook-square\"\n                          }\n                        />{\" \"}\n                        Share · 2.2k\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"facebook\">\n                        <i className={\"fab fa-facebook\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"facebook\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-facebook\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"facebookNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-facebook-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"facebookNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-facebook-square\"\n                          }\n                        />{\" \"}\n                        Share · 2.2k\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"google\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-google-plus-g\"\n                          }\n                        />{\" \"}\n                        Share on Google+\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"google\">\n                        <i className={\"fab fa-google\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"google\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-google\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"googleNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-google\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"googleNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-google-plus-g\"\n                          }\n                        />{\" \"}\n                        Share on Google+\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"linkedin\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-linkedin\"\n                          }\n                        />{\" \"}\n                        Connect with Linkedin\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"linkedin\">\n                        <i className={\"fab fa-linkedin\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"linkedin\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-linkedin\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"linkedinNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-linkedin\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"linkedinNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-linkedin\"\n                          }\n                        />{\" \"}\n                        Connect with Linkedin\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"pinterest\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-pinterest\"\n                          }\n                        />{\" \"}\n                        Pint it · 212\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"pinterest\">\n                        <i className={\"fab fa-pinterest\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"pinterest\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-pinterest\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"pinterestNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-pinterest\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"pinterestNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-pinterest\"\n                          }\n                        />{\" \"}\n                        Pint it · 212\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"youtube\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-youtube\"\n                          }\n                        />{\" \"}\n                        View on Youtube\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"youtube\">\n                        <i className={\"fab fa-youtube-square\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"youtube\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" fab fa-youtube-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"youtubeNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-youtube-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"youtubeNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-youtube\"\n                          }\n                        />{\" \"}\n                        View on Youtube\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"tumblr\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-tumblr-square\"\n                          }\n                        />{\" \"}\n                        Repost\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"tumblr\">\n                        <i className={\"fab fa-tumblr-square\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"tumblr\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-tumblr-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"tumblrNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-tumblr-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"tumblrNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-tumblr-square\"\n                          }\n                        />{\" \"}\n                        Repost\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"github\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-github\"\n                          }\n                        />{\" \"}\n                        Connect with Github\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"github\">\n                        <i className={\"fab fa-github\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"github\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-github\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"githubNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-github\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"githubNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-github\"\n                          }\n                        />{\" \"}\n                        Connect with Github\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"behance\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-behance-square\"\n                          }\n                        />{\" \"}\n                        Follow us\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"behance\">\n                        <i className={\"fab fa-behance\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"behance\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" fab fa-behance-square\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"behanceNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-behance\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"behanceNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-behance-square\"\n                          }\n                        />{\" \"}\n                        Follow us\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"dribbble\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-dribbble\"\n                          }\n                        />{\" \"}\n                        Find us on Dribble\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"dribbble\">\n                        <i className={\"fab fa-dribbble\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"dribbble\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-dribbble\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"dribbbleNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-dribbble\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"dribbbleNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-dribbble\"\n                          }\n                        />{\" \"}\n                        Find us on Dribble\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <Button color=\"reddit\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-reddit\"\n                          }\n                        />{\" \"}\n                        Repost · 232\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"reddit\">\n                        <i className={\"fab fa-reddit\"} />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon round color=\"reddit\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons + \" fab fa-reddit\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={1} md={1}>\n                      <Button justIcon color=\"redditNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-reddit\"\n                          }\n                        />\n                      </Button>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <Button color=\"redditNoBackground\">\n                        <i\n                          className={\n                            classes.socialButtonsIcons +\n                            \" \" +\n                            classes.marginRight +\n                            \" fab fa-reddit\"\n                          }\n                        />{\" \"}\n                        Repost · 232\n                      </Button>\n                    </ItemGrid>\n                  </GridContainer>\n                </div>\n              </ItemGrid>\n            </GridContainer>\n          </div>\n        }\n      />\n    );\n  }\n}\n\nButtons.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(buttonsStyle)(Buttons);\n","// ##############################\n// // // GridSystem view styles\n// #############################\n\nconst gridSystemStyle = {\n  title: {\n    color: \"#3C4858\",\n    textDecoration: \"none\"\n  }\n};\n\nexport default gridSystemStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport gridSystemStyle from \"assets/jss/material-dashboard-pro-react/views/gridSystemStyle.jsx\";\n\nclass GridSystem extends React.Component {\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <h4 className={classes.title}>\n          XS Grid <small>Always Horizontal</small>\n        </h4>\n        <GridContainer>\n          <ItemGrid xs={4}>\n            <RegularCard\n              content={<code>{`xs={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={4}>\n            <RegularCard\n              content={<code>{`xs={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={4}>\n            <RegularCard\n              content={<code>{`xs={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>\n          SM Grid <small>Collapsed at 768px</small>\n        </h4>\n        <GridContainer>\n          <ItemGrid xs={12} sm={4}>\n            <RegularCard\n              content={<code>{`sm={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={4}>\n            <RegularCard\n              content={<code>{`sm={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={4}>\n            <RegularCard\n              content={<code>{`sm={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>\n          MD Grid <small>Collapsed at 992px</small>\n        </h4>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <RegularCard\n              content={<code>{`md={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <RegularCard\n              content={<code>{`md={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <RegularCard\n              content={<code>{`md={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>\n          LG Grid <small>Collapsed at 1200px</small>\n        </h4>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={12} lg={4}>\n            <RegularCard\n              content={<code>{`lg={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={12} lg={4}>\n            <RegularCard\n              content={<code>{`lg={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={12} lg={4}>\n            <RegularCard\n              content={<code>{`lg={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>\n          Mixed Grid <small>Showing different sizes on different screens</small>\n        </h4>\n        <GridContainer>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <RegularCard\n              content={<code>{`sm={6} lg={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <RegularCard\n              content={<code>{`sm={6} lg={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <RegularCard\n              content={<code>{`sm={6} lg={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={6} md={6} lg={3}>\n            <RegularCard\n              content={<code>{`sm={6} lg={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>\n          Offset Grid <small>Adding some space when needed</small>\n        </h4>\n        <GridContainer\n          justify=\"space-between\"\n          alignItems=\"center\"\n          direction=\"row\"\n        >\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={<code>{`md={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={<code>{`md={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={<code>{`md={3}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer justify=\"space-between\">\n          <ItemGrid xs={12} sm={12} md={4}>\n            <RegularCard\n              content={<code>{`md={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <RegularCard\n              content={<code>{`md={4}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              content={<code>{`md={6}`}</code>}\n              contentAlign=\"center\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <h4 className={classes.title}>Paragraphs</h4>\n        <RegularCard\n          content={\n            <div>\n              <GridContainer>\n                <ItemGrid xs={12} sm={6}>\n                  <h3>Some Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment. His many legs, pitifully thin compared with the size\n                    of the rest of him, waved about helplessly as he looked.\n                    \"What's happened to me?\" he thought.\n                  </p>\n                </ItemGrid>\n                <ItemGrid xs={12} sm={6}>\n                  <h3>Another Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment. His many legs, pitifully thin compared with the size\n                    of the rest of him, waved about helplessly as he looked.\n                    \"What's happened to me?\" he thought.\n                  </p>\n                </ItemGrid>\n              </GridContainer>\n              <br />\n              <GridContainer>\n                <ItemGrid xs={12} sm={4}>\n                  <h3>Some Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment.\n                  </p>\n                </ItemGrid>\n                <ItemGrid xs={12} sm={4}>\n                  <h3>Another Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment.\n                  </p>\n                </ItemGrid>\n                <ItemGrid xs={12} sm={4}>\n                  <h3>Another Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment.\n                  </p>\n                </ItemGrid>\n              </GridContainer>\n              <br />\n              <GridContainer>\n                <ItemGrid xs={12} sm={4}>\n                  <h3>Some Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment.\n                  </p>\n                </ItemGrid>\n                <ItemGrid xs={12} sm={8}>\n                  <h3>Another Title Here</h3>\n                  <p>\n                    One morning, when Gregor Samsa woke from troubled dreams, he\n                    found himself transformed in his bed into a horrible vermin.\n                    He lay on his armour-like back, and if he lifted his head a\n                    little he could see his brown belly, slightly domed and\n                    divided by arches into stiff sections. The bedding was\n                    hardly able to cover it and seemed ready to slide off any\n                    moment. One morning, when Gregor Samsa woke from troubled\n                    dreams, he found himself transformed in his bed into a\n                    horrible vermin. He lay on his armour-like back, and if he\n                    lifted his head a little he could see his brown belly,\n                    slightly domed and divided by arches into stiff sections.\n                    The bedding was hardly able to cover it and seemed ready to\n                    slide off any moment.\n                  </p>\n                </ItemGrid>\n              </GridContainer>\n            </div>\n          }\n        />\n      </div>\n    );\n  }\n}\n\nGridSystem.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(gridSystemStyle)(GridSystem);\n","// ##############################\n// // // NavPills component style\n// #############################\n\nimport {\n  roseColor,\n  primaryColor,\n  infoColor,\n  successColor,\n  warningColor,\n  dangerColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst navPillsStyle = theme => ({\n  root: {\n    marginTop: \"20px\",\n    paddingLeft: \"0\",\n    marginBottom: \"0\",\n    overflow: \"visible !important\"\n  },\n  flexContainer: {\n    [theme.breakpoints.down(\"xs\")]: {\n      display: \"flex\",\n      flexWrap: \"wrap\"\n    }\n  },\n  displayNone: {\n    display: \"none !important\"\n  },\n  fixed: {\n    overflowX: \"visible\"\n  },\n  horizontalDisplay: {\n    display: \"block\"\n  },\n  pills: {\n    float: \"left\",\n    position: \"relative\",\n    display: \"block\",\n    borderRadius: \"30px\",\n    minWidth: \"100px\",\n    textAlign: \"center\",\n    transition: \"all .3s\",\n    padding: \"10px 15px\",\n    color: \"#555555\",\n    height: \"auto\",\n    opacity: \"1\",\n    maxWidth: \"100%\"\n  },\n  pillsWithIcons: {\n    borderRadius: \"4px\"\n  },\n  tabIcon: {\n    width: \"30px\",\n    height: \"30px\",\n    display: \"block\",\n    margin: \"15px 0\"\n  },\n  horizontalPills: {\n    width: \"100%\",\n    float: \"none !important\",\n    \"& + button\": {\n      margin: \"10px 0\"\n    }\n  },\n  labelContainer: {\n    padding: \"0!important\",\n    color: \"inherit\"\n  },\n  label: {\n    lineHeight: \"24px\",\n    textTransform: \"uppercase\",\n    fontSize: \"12px\",\n    fontWeight: \"500\",\n    position: \"relative\",\n    display: \"block\",\n    color: \"inherit\"\n  },\n  contentWrapper: {\n    marginTop: \"20px\"\n  },\n  primary: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: primaryColor,\n      boxShadow:\n        \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4)\"\n    }\n  },\n  info: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: infoColor,\n      boxShadow:\n        \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4)\"\n    }\n  },\n  success: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: successColor,\n      boxShadow:\n        \"0 2px 2px 0 rgba(76, 175, 80, 0.14), 0 3px 1px -2px rgba(76, 175, 80, 0.2), 0 1px 5px 0 rgba(76, 175, 80, 0.12)\"\n    }\n  },\n  warning: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: warningColor,\n      boxShadow:\n        \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)\"\n    }\n  },\n  danger: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: dangerColor,\n      boxShadow:\n        \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)\"\n    }\n  },\n  rose: {\n    \"&,&:hover\": {\n      color: \"#FFFFFF\",\n      backgroundColor: roseColor,\n      boxShadow:\n        \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)\"\n    }\n  },\n  alignCenter: {\n    alignItems: \"center\",\n    justifyContent: \"center\"\n  }\n});\n\nexport default navPillsStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport SwipeableViews from \"react-swipeable-views\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Tab from \"material-ui/Tabs/Tab\";\nimport Tabs from \"material-ui/Tabs\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport navPillsStyle from \"assets/jss/material-dashboard-pro-react/components/navPillsStyle.jsx\";\n\nclass NavPills extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      active: props.active\n    };\n  }\n  handleChange = (event, active) => {\n    this.setState({ active });\n  };\n  handleChangeIndex = index => {\n    this.setState({ active: index });\n  };\n  render() {\n    const {\n      classes,\n      tabs,\n      direction,\n      color,\n      horizontal,\n      alignCenter\n    } = this.props;\n    const flexContainerClasses =\n      classes.flexContainer +\n      \" \" +\n      cx({\n        [classes.horizontalDisplay]: horizontal !== undefined\n      });\n    const tabButtons = (\n      <Tabs\n        classes={{\n          root: classes.root,\n          fixed: classes.fixed,\n          flexContainer: flexContainerClasses,\n          indicator: classes.displayNone,\n        }}\n        value={this.state.active}\n        onChange={this.handleChange}\n        centered={alignCenter}\n      >\n        {tabs.map((prop, key) => {\n          var icon = {};\n          if (prop.tabIcon !== undefined) {\n            icon[\"icon\"] = <prop.tabIcon className={classes.tabIcon} />;\n          }\n          const pillsClasses =\n            classes.pills +\n            \" \" +\n            cx({\n              [classes.horizontalPills]: horizontal !== undefined,\n              [classes.pillsWithIcons]: prop.tabIcon !== undefined\n            });\n          return (\n            <Tab\n              label={prop.tabButton}\n              key={key}\n              {...icon}\n              classes={{\n                root: pillsClasses,\n                labelContainer: classes.labelContainer,\n                label: classes.label,\n                textColorInheritSelected: classes[color]\n              }}\n            />\n          );\n        })}\n      </Tabs>\n    );\n    const tabContent = (\n      <div className={classes.contentWrapper}>\n        <SwipeableViews\n          axis={direction === \"rtl\" ? \"x-reverse\" : \"x\"}\n          index={this.state.active}\n          onChangeIndex={this.handleChangeIndex}\n        >\n          {tabs.map((prop, key) => {\n            return (\n              <div className={classes.tabContent} key={key}>\n                {prop.tabContent}\n              </div>\n            );\n          })}\n        </SwipeableViews>\n      </div>\n    );\n    return horizontal !== undefined ? (\n      <GridContainer>\n        <ItemGrid {...horizontal.tabsGrid}>{tabButtons}</ItemGrid>\n        <ItemGrid {...horizontal.contentGrid}>{tabContent}</ItemGrid>\n      </GridContainer>\n    ) : (\n      <div>\n        {tabButtons}\n        {tabContent}\n      </div>\n    );\n  }\n}\n\nNavPills.defaultProps = {\n  active: 0,\n  color: \"primary\"\n};\n\nNavPills.propTypes = {\n  classes: PropTypes.object.isRequired,\n  // index of the default active pill\n  active: PropTypes.number,\n  tabs: PropTypes.arrayOf(\n    PropTypes.shape({\n      tabButton: PropTypes.string,\n      tabIcon: PropTypes.func,\n      tabContent: PropTypes.node\n    })\n  ).isRequired,\n  color: PropTypes.oneOf([\n    \"primary\",\n    \"warning\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\"\n  ]),\n  direction: PropTypes.string,\n  horizontal: PropTypes.shape({\n    tabsGrid: PropTypes.object,\n    contentGrid: PropTypes.object\n  }),\n  alignCenter: PropTypes.bool\n};\n\nexport default withStyles(navPillsStyle)(NavPills);\n","// ##############################\n// // // Accordion component style\n// #############################\n\nimport { roseColor } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst accordionStyle = theme => ({\n  root: {\n    flexGrow: 1,\n    marginBottom: \"20px\"\n  },\n  expansionPanel: {\n    boxShadow: \"none\",\n    \"&:before\": {\n      display: \"none !important\"\n    }\n  },\n  expansionPanelExpanded: {\n    margin: \"0\"\n  },\n  expansionPanelSummary: {\n    minHeight: \"auto !important\",\n    backgroundColor: \"transparent\",\n    borderBottom: \"1px solid #ddd\",\n    padding: \"25px 10px 5px 0px\",\n    borderTopLeftRadius: \"3px\",\n    borderTopRightRadius: \"3px\",\n    color: \"#3C4858\",\n    \"&:hover\": {\n      color: roseColor\n    }\n  },\n  expansionPanelSummaryExpaned: {\n    color: roseColor\n  },\n  expansionPanelSummaryContent: {\n    margin: \"0\"\n  },\n  expansionPanelSummaryExpandIcon: {\n    [theme.breakpoints.up(\"md\")]: {\n      top: \"auto !important\"\n    },\n    transform: \"rotate(0deg)\",\n    color: \"inherit\",\n    [theme.breakpoints.down(\"sm\")]: {\n      top: \"10px !important\"\n    }\n  },\n  expansionPanelSummaryExpandIconExpanded: {\n    [theme.breakpoints.up(\"md\")]: {\n      top: \"auto !important\"\n    },\n    transform: \"rotate(180deg)\",\n    [theme.breakpoints.down(\"sm\")]: {\n      top: \"10px !important\"\n    }\n  },\n  title: {\n    fontSize: \"15px\",\n    fontWeight: \"bolder\",\n    marginTop: \"0\",\n    marginBottom: \"0\",\n    color: \"inherit\"\n  },\n  expansionPanelDetails: {\n    padding: \"15px 0px 5px\"\n  }\n});\n\nexport default accordionStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport ExpansionPanel from \"material-ui/ExpansionPanel\";\nimport ExpansionPanelSummary from \"material-ui/ExpansionPanel/ExpansionPanelSummary\";\nimport ExpansionPanelDetails from \"material-ui/ExpansionPanel/ExpansionPanelDetails\";\n\n// @material-ui/icons\nimport ExpandMore from \"@material-ui/icons/ExpandMore\";\n\nimport accordionStyle from \"assets/jss/material-dashboard-pro-react/components/accordionStyle.jsx\";\n\nclass Accordion extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      active: props.active\n    };\n  }\n  handleChange = panel => (event, expanded) => {\n    this.setState({\n      active: expanded ? panel : -1\n    });\n  };\n  render() {\n    const { classes, collapses } = this.props;\n    return (\n      <div className={classes.root}>\n        {collapses.map((prop, key) => {\n          return (\n            <ExpansionPanel\n              expanded={this.state.active === key}\n              onChange={this.handleChange(key)}\n              key={key}\n              classes={{\n                root: classes.expansionPanel,\n                expanded: classes.expansionPanelExpanded\n              }}\n            >\n              <ExpansionPanelSummary\n                expandIcon={<ExpandMore />}\n                classes={{\n                  root: classes.expansionPanelSummary,\n                  expanded: classes.expansionPanelSummaryExpaned,\n                  content: classes.expansionPanelSummaryContent,\n                  expandIcon: classes.expansionPanelSummaryExpandIcon,\n                  expandIconExpanded:\n                    classes.expansionPanelSummaryExpandIconExpanded\n                }}\n              >\n                <h4 className={classes.title}>{prop.title}</h4>\n              </ExpansionPanelSummary>\n              <ExpansionPanelDetails className={classes.expansionPanelDetails}>\n                {prop.content}\n              </ExpansionPanelDetails>\n            </ExpansionPanel>\n          );\n        })}\n      </div>\n    );\n  }\n}\n\nAccordion.defaultProps = {\n  active: -1\n};\n\nAccordion.propTypes = {\n  classes: PropTypes.object.isRequired,\n  // index of the default active collapse\n  active: PropTypes.number,\n  collapses: PropTypes.arrayOf(\n    PropTypes.shape({\n      title: PropTypes.string,\n      content: PropTypes.node\n    })\n  ).isRequired\n};\n\nexport default withStyles(accordionStyle)(Accordion);\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// @material-ui/icons\nimport Dashboard from \"@material-ui/icons/Dashboard\";\nimport Schedule from \"@material-ui/icons/Schedule\";\nimport Info from \"@material-ui/icons/Info\";\nimport LocationOn from \"@material-ui/icons/LocationOn\";\nimport Gavel from \"@material-ui/icons/Gavel\";\nimport HelpOutline from \"@material-ui/icons/HelpOutline\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport NavPills from \"components/NavPills/NavPills.jsx\";\nimport Accordion from \"components/Accordion/Accordion.jsx\";\n\nconst styles = {\n  pageSubcategoriesTitle: {\n    color: \"#3C4858\",\n    textDecoration: \"none\",\n    textAlign: \"center\"\n  }\n};\n\nclass Panels extends React.Component {\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              cardTitle={\n                <span>\n                  Navigation Pills <small> - Horizontal Tabs</small>\n                </span>\n              }\n              content={\n                <NavPills\n                  color=\"warning\"\n                  tabs={[\n                    {\n                      tabButton: \"Profile\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Collaboratively administrate empowered markets via\n                            plug-and-play networks. Dynamically procrastinate\n                            B2C users after installed base benefits.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically visualize customer directed convergence\n                            without revolutionary ROI. Collaboratively\n                            administrate empowered markets via plug-and-play\n                            networks. Dynamically procrastinate B2C users after\n                            installed base benefits.\n                          </p>\n                          <br />\n                          <p>This is very nice.</p>\n                        </span>\n                      )\n                    },\n                    {\n                      tabButton: \"Settings\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Efficiently unleash cross-media information without\n                            cross-media value. Quickly maximize timely\n                            deliverables for real-time schemas.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically maintain clicks-and-mortar solutions\n                            without functional solutions.\n                          </p>\n                        </span>\n                      )\n                    },\n                    {\n                      tabButton: \"Options\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Completely synergize resource taxing relationships\n                            via premier niche markets. Professionally cultivate\n                            one-to-one customer service with robust ideas.{\" \"}\n                          </p>\n                          <br />\n                          <p>\n                            Dynamically innovate resource-leveling customer\n                            service for state of the art customer service.\n                          </p>\n                        </span>\n                      )\n                    }\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              cardTitle={\n                <span>\n                  Navigation Pills <small> - Vertical Tabs</small>\n                </span>\n              }\n              content={\n                <NavPills\n                  color=\"rose\"\n                  horizontal={{\n                    tabsGrid: { xs: 12, sm: 12, md: 4 },\n                    contentGrid: { xs: 12, sm: 12, md: 8 }\n                  }}\n                  tabs={[\n                    {\n                      tabButton: \"Profile\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Collaboratively administrate empowered markets via\n                            plug-and-play networks. Dynamically procrastinate\n                            B2C users after installed base benefits.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically visualize customer directed convergence\n                            without revolutionary ROI. Collaboratively\n                            administrate empowered markets via plug-and-play\n                            networks. Dynamically procrastinate B2C users after\n                            installed base benefits.\n                          </p>\n                          <br />\n                          <p>This is very nice.</p>\n                        </span>\n                      )\n                    },\n                    {\n                      tabButton: \"Settings\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Efficiently unleash cross-media information without\n                            cross-media value. Quickly maximize timely\n                            deliverables for real-time schemas.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically maintain clicks-and-mortar solutions\n                            without functional solutions.\n                          </p>\n                        </span>\n                      )\n                    },\n                    {\n                      tabButton: \"Options\",\n                      tabContent: (\n                        <span>\n                          <p>\n                            Completely synergize resource taxing relationships\n                            via premier niche markets. Professionally cultivate\n                            one-to-one customer service with robust ideas.{\" \"}\n                          </p>\n                          <br />\n                          <p>\n                            Dynamically innovate resource-leveling customer\n                            service for state of the art customer service.\n                          </p>\n                        </span>\n                      )\n                    }\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              cardTitle=\"Collapsible Accordion\"\n              content={\n                <Accordion\n                  active={0}\n                  collapses={[\n                    {\n                      title: \"Collapsible group Item #1\",\n                      content:\n                        \"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.\"\n                    },\n                    {\n                      title: \"Collapsible group Item #2\",\n                      content:\n                        \"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.\"\n                    },\n                    {\n                      title: \"Collapsible group Item #3\",\n                      content:\n                        \"Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.\"\n                    }\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              cardTitle={\n                <span>\n                  Navigation Pills Icons <small> - Vertical Tabs</small>\n                </span>\n              }\n              content={\n                <NavPills\n                  color=\"rose\"\n                  horizontal={{\n                    tabsGrid: { xs: 12, sm: 12, md: 4 },\n                    contentGrid: { xs: 12, sm: 12, md: 8 }\n                  }}\n                  tabs={[\n                    {\n                      tabButton: \"Dashboard\",\n                      tabIcon: Dashboard,\n                      tabContent: (\n                        <span>\n                          <p>\n                            Collaboratively administrate empowered markets via\n                            plug-and-play networks. Dynamically procrastinate\n                            B2C users after installed base benefits.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically visualize customer directed convergence\n                            without revolutionary ROI. Collaboratively\n                            administrate empowered markets via plug-and-play\n                            networks. Dynamically procrastinate B2C users after\n                            installed base benefits.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically visualize customer directed convergence\n                            without revolutionary ROI. Collaboratively\n                            administrate empowered markets via plug-and-play\n                            networks. Dynamically procrastinate B2C users after\n                            installed base benefits.\n                          </p>\n                        </span>\n                      )\n                    },\n                    {\n                      tabButton: \"Schedule\",\n                      tabIcon: Schedule,\n                      tabContent: (\n                        <span>\n                          <p>\n                            Efficiently unleash cross-media information without\n                            cross-media value. Quickly maximize timely\n                            deliverables for real-time schemas.\n                          </p>\n                          <br />\n                          <p>\n                            Dramatically maintain clicks-and-mortar solutions\n                            without functional solutions. Dramatically visualize\n                            customer directed convergence without revolutionary\n                            ROI. Collaboratively administrate empowered markets\n                            via plug-and-play networks. Dynamically\n                            procrastinate B2C users after installed base\n                            benefits.\n                          </p>\n                        </span>\n                      )\n                    }\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={12} md={8}>\n            <h3 className={classes.pageSubcategoriesTitle}>\n              Page Subcategories\n            </h3>\n            <br />\n            <NavPills\n              color=\"warning\"\n              alignCenter\n              tabs={[\n                {\n                  tabButton: \"Description\",\n                  tabIcon: Info,\n                  tabContent: (\n                    <RegularCard\n                      cardTitle=\"Description about product\"\n                      cardSubtitle=\"More information here\"\n                      content={\n                        <span>\n                          Collaboratively administrate empowered markets via\n                          plug-and-play networks. Dynamically procrastinate B2C\n                          users after installed base benefits.\n                          <br />\n                          <br />\n                          Dramatically visualize customer directed convergence\n                          without revolutionary ROI.\n                        </span>\n                      }\n                    />\n                  )\n                },\n                {\n                  tabButton: \"Location\",\n                  tabIcon: LocationOn,\n                  tabContent: (\n                    <RegularCard\n                      cardTitle=\"Location of the product\"\n                      cardSubtitle=\"More information here\"\n                      content={\n                        <span>\n                          Efficiently unleash cross-media information without\n                          cross-media value. Quickly maximize timely\n                          deliverables for real-time schemas.\n                          <br />\n                          <br />\n                          Dramatically maintain clicks-and-mortar solutions\n                          without functional solutions.\n                        </span>\n                      }\n                    />\n                  )\n                },\n                {\n                  tabButton: \"Legal Info\",\n                  tabIcon: Gavel,\n                  tabContent: (\n                    <RegularCard\n                      cardTitle=\"Legal info of the product\"\n                      cardSubtitle=\"More information here\"\n                      content={\n                        <span>\n                          Completely synergize resource taxing relationships via\n                          premier niche markets. Professionally cultivate\n                          one-to-one customer service with robust ideas.\n                          <br />\n                          <br />\n                          Dynamically innovate resource-leveling customer\n                          service for state of the art customer service.\n                        </span>\n                      }\n                    />\n                  )\n                },\n                {\n                  tabButton: \"Help Center\",\n                  tabIcon: HelpOutline,\n                  tabContent: (\n                    <RegularCard\n                      cardTitle=\"Help center\"\n                      cardSubtitle=\"More information here\"\n                      content={\n                        <span>\n                          From the seamless transition of glass and metal to the\n                          streamlined profile, every detail was carefully\n                          considered to enhance your experience. So while its\n                          display is larger, the phone feels just right.\n                          <br />\n                          <br />\n                          Another Text. The first thing you notice when you hold\n                          the phone is how great it feels in your hand. The\n                          cover glass curves down around the sides to meet the\n                          anodized aluminum enclosure in a remarkable,\n                          simplified design.\n                        </span>\n                      }\n                    />\n                  )\n                }\n              ]}\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(styles)(Panels);\n","// ##############################\n// // // Heading component styles\n// #############################\n\nconst headingStyle = {\n  heading: {\n    marginBottom: \"30px\"\n  },\n  rightTextAlign: {\n    textAlign: \"right\"\n  },\n  leftTextAlign: {\n    textAlign: \"left\"\n  },\n  centerTextAlign: {\n    textAlign: \"center\"\n  },\n  title: {\n    marginTop: \"10px\",\n    color: \"#3C4858\",\n    textDecoration: \"none\"\n  },\n  category: {\n    margin: \"0 0 10px\"\n  }\n};\n\nexport default headingStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport headingStyle from \"assets/jss/material-dashboard-pro-react/components/headingStyle.jsx\";\n\nfunction Heading({ ...props }) {\n  const { textAlign, category, title, classes } = props;\n  const heading =\n    classes.heading +\n    \" \" +\n    cx({\n      [classes[textAlign + \"TextAlign\"]]: textAlign !== undefined\n    });\n  if (title !== undefined || category !== undefined) {\n    return (\n      <div className={heading}>\n        {title !== undefined ? (\n          <h3 className={classes.title}>{title}</h3>\n        ) : null}\n        {category !== undefined ? (\n          <p className={classes.category}>{category}</p>\n        ) : null}\n      </div>\n    );\n  }\n  return null;\n}\n\nHeading.propTypes = {\n  classes: PropTypes.object.isRequired,\n  title: PropTypes.node,\n  category: PropTypes.node,\n  textAlign: PropTypes.oneOf([\"right\", \"left\", \"center\"])\n};\n\nexport default withStyles(headingStyle)(Heading);\n","// ##############################\n// // // SweetAlert view styles\n// #############################\n\nimport buttonStyle from \"assets/jss/material-dashboard-pro-react/components/buttonStyle.jsx\";\n\nconst sweetAlertStyle = {\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\",\n    fontSize: \"18px\"\n  },\n  center: {\n    textAlign: \"center\"\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  ...buttonStyle\n};\n\nexport default sweetAlertStyle;\n","import React from \"react\";\n// react component used to create sweet alerts\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Heading from \"components/Heading/Heading.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\n\nimport sweetAlertStyle from \"assets/jss/material-dashboard-pro-react/views/sweetAlertStyle.jsx\";\n\nclass SweetAlertPage extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      alert: null,\n      show: false\n    };\n    this.hideAlert = this.hideAlert.bind(this);\n    this.successDelete = this.successDelete.bind(this);\n    this.cancelDetele = this.cancelDetele.bind(this);\n    this.inputConfirmAlert = this.inputConfirmAlert.bind(this);\n    this.inputConfirmAlertNext = this.inputConfirmAlertNext.bind(this);\n  }\n  basicAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Here's a message!\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n        />\n      )\n    });\n  }\n  titleAndTextAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Here's a message!\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.info\n          }\n        >\n          It's pretty, isn't it?\n        </SweetAlert>\n      )\n    });\n  }\n  successAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          success\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Good job!\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n        >\n          You clicked the button!\n        </SweetAlert>\n      )\n    });\n  }\n  htmlAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"HTML example\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n        >\n          You can use <b>bold</b> text,{\" \"}\n          <a href=\"https://www.creative-tim.com/\">links</a> and other HTML tags\n        </SweetAlert>\n      )\n    });\n  }\n  warningWithConfirmMessage() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          warning\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Are you sure?\"\n          onConfirm={() => this.successDelete()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n          cancelBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.danger\n          }\n          confirmBtnText=\"Yes, delete it!\"\n          cancelBtnText=\"Cancel\"\n          showCancel\n        >\n          You will not be able to recover this imaginary file!\n        </SweetAlert>\n      )\n    });\n  }\n  warningWithConfirmAndCancelMessage() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          warning\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Are you sure?\"\n          onConfirm={() => this.successDelete()}\n          onCancel={() => this.cancelDetele()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n          cancelBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.danger\n          }\n          confirmBtnText=\"Yes, delete it!\"\n          cancelBtnText=\"Cancel\"\n          showCancel\n        >\n          You will not be able to recover this imaginary file!\n        </SweetAlert>\n      )\n    });\n  }\n  autoCloseAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Auto close alert!\"\n          onConfirm={() => this.hideAlert()}\n          showConfirm={false}\n        >\n          I will close in 2 seconds.\n        </SweetAlert>\n      )\n    });\n    setTimeout(this.hideAlert, 2000);\n  }\n  inputAlert() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          input\n          showCancel\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Input something\"\n          onConfirm={e => this.inputConfirmAlert(e)}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.info\n          }\n          cancelBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.danger\n          }\n        />\n      )\n    });\n  }\n  inputConfirmAlert(e) {\n    this.setState({ alert: e });\n    setTimeout(this.inputConfirmAlertNext, 200);\n  }\n  inputConfirmAlertNext() {\n    const inputValue = this.state.alert;\n    this.setState({\n      alert: (\n        <SweetAlert\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.info\n          }\n          title={\n            <p>\n              You entered: <b>{inputValue}</b>\n            </p>\n          }\n        />\n      )\n    });\n  }\n  successDelete() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          success\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Deleted!\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n        >\n          Your imaginary file has been deleted.\n        </SweetAlert>\n      )\n    });\n  }\n  cancelDetele() {\n    this.setState({\n      alert: (\n        <SweetAlert\n          danger\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Cancelled\"\n          onConfirm={() => this.hideAlert()}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n        >\n          Your imaginary file is safe :)\n        </SweetAlert>\n      )\n    });\n  }\n  hideAlert() {\n    this.setState({\n      alert: null\n    });\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <Heading\n          textAlign=\"center\"\n          title=\"Sweet Alert\"\n          category={\n            <span>\n              A beautiful plugin, that replace the classic alert, Handcrafted by\n              our friend{\" \"}\n              <a\n                target=\"_blank\"\n                href=\"https://github.com/djorg83\"\n                rel=\"noopener noreferrer\"\n              >\n                Daniel Jorgensen\n              </a>. Please check out the{\" \"}\n              <a\n                href=\"https://github.com/djorg83/react-bootstrap-sweetalert\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                full documentation.\n              </a>.\n            </span>\n          }\n        />\n        {this.state.alert}\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>Basic example</h5>\n                  <Button color=\"rose\" onClick={this.basicAlert.bind(this)}>\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>A title with a text under</h5>\n                  <Button\n                    color=\"rose\"\n                    onClick={this.titleAndTextAlert.bind(this)}\n                  >\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>A success message</h5>\n                  <Button color=\"rose\" onClick={this.successAlert.bind(this)}>\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>Custom HTML description</h5>\n                  <Button color=\"rose\" onClick={this.htmlAlert.bind(this)}>\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>\n                    A warning message, with a function attached to the \"Confirm\"\n                    Button...\n                  </h5>\n                  <Button\n                    color=\"rose\"\n                    onClick={this.warningWithConfirmMessage.bind(this)}\n                  >\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>\n                    ...and by passing a parameter, you can execute something\n                    else for \"Cancel\"\n                  </h5>\n                  <Button\n                    color=\"rose\"\n                    onClick={this.warningWithConfirmAndCancelMessage.bind(this)}\n                  >\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>A message with auto close timer set to 2 seconds</h5>\n                  <Button color=\"rose\" onClick={this.autoCloseAlert.bind(this)}>\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={3}>\n            <RegularCard\n              content={\n                <div className={classes.center}>\n                  <h5>Modal window with input field</h5>\n                  <Button color=\"rose\" onClick={this.inputAlert.bind(this)}>\n                    Try me!\n                  </Button>\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(sweetAlertStyle)(SweetAlertPage);\n","// ##############################\n// // // SnackbarContent styles\n// #############################\n\nimport {\n  defaultFont,\n  primaryBoxShadow,\n  infoBoxShadow,\n  successBoxShadow,\n  warningBoxShadow,\n  dangerBoxShadow,\n  roseBoxShadow\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst snackbarContentStyle = {\n  root: {\n    ...defaultFont,\n    flexWrap: \"unset\",\n    position: \"relative\",\n    padding: \"20px 15px\",\n    lineHeight: \"20px\",\n    marginBottom: \"20px\",\n    fontSize: \"14px\",\n    backgroundColor: \"white\",\n    color: \"#555555\",\n    borderRadius: \"3px\",\n    boxShadow:\n      \"0 12px 20px -10px rgba(255, 255, 255, 0.28), 0 4px 20px 0px rgba(0, 0, 0, 0.12), 0 7px 8px -5px rgba(255, 255, 255, 0.2)\"\n  },\n  top20: {\n    top: \"20px\"\n  },\n  top40: {\n    top: \"40px\"\n  },\n  default: {\n    backgroundColor: \"#ffffff\",\n    color: \"#f55a4e\",\n    ...dangerBoxShadow\n  },\n  info: {\n    backgroundColor: \"#00d3ee\",\n    color: \"#ffffff\",\n    ...infoBoxShadow\n  },\n  success: {\n    backgroundColor: \"#5cb860\",\n    color: \"#ffffff\",\n    ...successBoxShadow\n  },\n  warning: {\n    backgroundColor: \"#ffa21a\",\n    color: \"#ffffff\",\n    ...warningBoxShadow\n  },\n  danger: {\n    backgroundColor: \"#f55a4e\",\n    color: \"#ffffff\",\n    ...dangerBoxShadow\n  },\n  primary: {\n    backgroundColor: \"#af2cc5\",\n    color: \"#ffffff\",\n    ...primaryBoxShadow\n  },\n  rose: {\n    backgroundColor: \"#eb3573\",\n    color: \"#ffffff\",\n    ...roseBoxShadow\n  },\n  message: {\n    padding: \"0\",\n    display: \"block\",\n    maxWidth: \"89%\"\n  },\n  close: {\n    width: \"11px\",\n    height: \"11px\"\n  },\n  iconButton: {\n    width: \"24px\",\n    height: \"24px\"\n  },\n  icon: {\n    // display: \"block\",\n    // left: \"15px\",\n    // position: \"absolute\",\n    // top: \"50%\",\n    // marginTop: \"-15px\",\n    width: \"38px\",\n    height: \"38px\",\n    display: \"block\",\n    left: \"15px\",\n    position: \"absolute\",\n    marginTop: \"-39px\",\n    fontSize: \"20px\",\n    backgroundColor: \"#FFFFFF\",\n    padding: \"9px\",\n    borderRadius: \"50%\",\n    maxWidth: \"38px\",\n    boxShadow:\n      \"0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n  },\n  infoIcon: {\n    color: \"#00d3ee\"\n  },\n  successIcon: {\n    color: \"#5cb860\"\n  },\n  warningIcon: {\n    color: \"#ffa21a\"\n  },\n  dangerIcon: {\n    color: \"#f55a4e\"\n  },\n  primaryIcon: {\n    color: \"#af2cc5\"\n  },\n  roseIcon: {\n    color: \"#eb3573\"\n  },\n  iconMessage: {\n    paddingLeft: \"50px\",\n    display: \"block\"\n  }\n};\n\nexport default snackbarContentStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Snack from \"material-ui/Snackbar/SnackbarContent\";\nimport IconButton from \"material-ui/IconButton\";\n\n// @material-ui/icons\nimport Close from \"@material-ui/icons/Close\";\n\nimport snackbarContentStyle from \"assets/jss/material-dashboard-pro-react/components/snackbarContentStyle.jsx\";\n\nfunction SnackbarContent({ ...props }) {\n  const { classes, message, color, close, icon } = props;\n  var action = [];\n  const messageClasses = cx({\n    [classes.iconMessage]: icon !== undefined\n  });\n  if (close !== undefined) {\n    action = [\n      <IconButton\n        className={classes.iconButton}\n        key=\"close\"\n        aria-label=\"Close\"\n        color=\"inherit\"\n      >\n        <Close className={classes.close} />\n      </IconButton>\n    ];\n  }\n  const iconClasses = cx({\n    [classes.icon]: classes.icon,\n    [classes.infoIcon]: color === \"info\",\n    [classes.successIcon]: color === \"success\",\n    [classes.warningIcon]: color === \"warning\",\n    [classes.dangerIcon]: color === \"danger\",\n    [classes.primaryIcon]: color === \"primary\",\n    [classes.roseIcon]: color === \"rose\"\n  });\n  return (\n    <Snack\n      message={\n        <div>\n          {icon !== undefined ? <props.icon className={iconClasses} /> : null}\n          <span className={messageClasses}>{message}</span>\n        </div>\n      }\n      classes={{\n        root: classes.root + \" \" + classes[color],\n        message: classes.message,\n      }}\n      action={action}\n    />\n  );\n}\n\nSnackbarContent.defaultProps = {\n  color: \"info\"\n};\n\nSnackbarContent.propTypes = {\n  classes: PropTypes.object.isRequired,\n  message: PropTypes.node.isRequired,\n  color: PropTypes.oneOf([\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"primary\",\n    \"rose\"\n  ]),\n  close: PropTypes.bool,\n  icon: PropTypes.func\n};\n\nexport default withStyles(snackbarContentStyle)(SnackbarContent);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Snack from \"material-ui/Snackbar\";\nimport IconButton from \"material-ui/IconButton\";\n\n// @material-ui/icons\nimport Close from \"@material-ui/icons/Close\";\n\nimport snackbarContentStyle from \"assets/jss/material-dashboard-pro-react/components/snackbarContentStyle.jsx\";\n\nfunction Snackbar({ ...props }) {\n  const { classes, message, color, close, icon, place, open } = props;\n  var action = [];\n  const messageClasses = cx({\n    [classes.iconMessage]: icon !== undefined\n  });\n  if (close !== undefined) {\n    action = [\n      <IconButton\n        className={classes.iconButton}\n        key=\"close\"\n        aria-label=\"Close\"\n        color=\"inherit\"\n        onClick={() => props.closeNotification()}\n      >\n        <Close className={classes.close} />\n      </IconButton>\n    ];\n  }\n  const iconClasses = cx({\n    [classes.icon]: classes.icon,\n    [classes.infoIcon]: color === \"info\",\n    [classes.successIcon]: color === \"success\",\n    [classes.warningIcon]: color === \"warning\",\n    [classes.dangerIcon]: color === \"danger\",\n    [classes.primaryIcon]: color === \"primary\",\n    [classes.roseIcon]: color === \"rose\"\n  });\n  return (\n    <Snack\n      classes={{\n        anchorOriginTopCenter: classes.top20,\n        anchorOriginTopRight: classes.top40,\n        anchorOriginTopLeft: classes.top40\n      }}\n      anchorOrigin={{\n        vertical: place.indexOf(\"t\") === -1 ? \"bottom\" : \"top\",\n        horizontal:\n          place.indexOf(\"l\") !== -1\n            ? \"left\"\n            : place.indexOf(\"c\") !== -1 ? \"center\" : \"right\"\n      }}\n      open={open}\n      message={\n        <div>\n          {icon !== undefined ? <props.icon className={iconClasses} /> : null}\n          <span className={messageClasses}>{message}</span>\n        </div>\n      }\n      action={action}\n      SnackbarContentProps={{\n        classes: {\n          root: classes.root + \" \" + classes[color],\n          message: classes.message,\n        }\n      }}\n    />\n  );\n}\n\nSnackbar.defaultProps = {\n  color: \"info\"\n};\n\nSnackbar.propTypes = {\n  classes: PropTypes.object.isRequired,\n  message: PropTypes.node.isRequired,\n  color: PropTypes.oneOf([\n    \"default\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"primary\",\n    \"rose\"\n  ]),\n  close: PropTypes.bool,\n  icon: PropTypes.func,\n  place: PropTypes.oneOf([\"tl\", \"tr\", \"tc\", \"br\", \"bl\", \"bc\"]),\n  open: PropTypes.bool\n};\n\nSnackbar.defaultProps = {\n  color: \"default\",\n  place: \"bc\",\n  close: true\n};\n\nexport default withStyles(snackbarContentStyle)(Snackbar);\n","// ##############################\n// // // Instruction component styles\n// #############################\n\nconst instructionStyle = {\n  instruction: {},\n  picture: {},\n  image: {\n    width: \"100%\",\n    height: \"auto\",\n    borderRadius: \"6px\",\n    display: \"block\",\n    maxWidth: \"100%\"\n  }\n};\n\nexport default instructionStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid\";\n\nimport instructionStyle from \"assets/jss/material-dashboard-pro-react/components/instructionStyle.jsx\";\n\nfunction Instruction({ ...props }) {\n  const {\n    classes,\n    title,\n    text,\n    image,\n    className,\n    imageClassName,\n    imageAlt\n  } = props;\n  const instructionClasses = cx({\n    [classes.instruction]: true,\n    [className]: className !== undefined\n  });\n  const pictureClasses = cx({\n    [classes.picture]: true,\n    [imageClassName]: imageClassName !== undefined\n  });\n  return (\n    <div className={instructionClasses}>\n      <GridContainer>\n        <ItemGrid xs={12} sm={12} md={8}>\n          <strong>{title}</strong>\n          <p>{text}</p>\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={4}>\n          <div className={pictureClasses}>\n            <img src={image} alt={imageAlt} className={classes.image} />\n          </div>\n        </ItemGrid>\n      </GridContainer>\n    </div>\n  );\n}\n\nInstruction.defaultProps = {\n  imageAlt: \"...\"\n};\n\nInstruction.propTypes = {\n  classes: PropTypes.object.isRequired,\n  title: PropTypes.node.isRequired,\n  text: PropTypes.node.isRequired,\n  image: PropTypes.string.isRequired,\n  imageAlt: PropTypes.string,\n  className: PropTypes.string,\n  imageClassName: PropTypes.string\n};\n\nexport default withStyles(instructionStyle)(Instruction);\n","// ##############################\n// // // Modal component styles\n// #############################\n\nconst modalStyle = {\n  modal: {\n    borderRadius: \"6px\"\n  },\n  modalHeader: {\n    borderBottom: \"none\",\n    paddingTop: \"24px\",\n    paddingRight: \"24px\",\n    paddingBottom: \"0\",\n    paddingLeft: \"24px\",\n    minHeight: \"16.43px\"\n  },\n  modalTitle: {\n    margin: \"0\",\n    lineHeight: \"1.42857143\"\n  },\n  modalCloseButton: {\n    color: \"#999999\",\n    marginTop: \"-12px\",\n    WebkitAppearance: \"none\",\n    padding: \"0\",\n    cursor: \"pointer\",\n    background: \"0 0\",\n    border: \"0\",\n    fontSize: \"inherit\",\n    opacity: \".9\",\n    textShadow: \"none\",\n    fontWeight: \"700\",\n    lineHeight: \"1\",\n    float: \"right\"\n  },\n  modalClose: {\n    width: \"16px\",\n    height: \"16px\"\n  },\n  modalBody: {\n    paddingTop: \"24px\",\n    paddingRight: \"24px\",\n    paddingBottom: \"16px\",\n    paddingLeft: \"24px\",\n    position: \"relative\"\n  },\n  modalFooter: {\n    padding: \"15px\",\n    textAlign: \"right\",\n    paddingTop: \"0\",\n    margin: \"0\"\n  },\n  modalFooterCenter: {\n    marginLeft: \"auto\",\n    marginRight: \"auto\"\n  },\n  instructionNoticeModal: {\n    marginBottom: \"25px\"\n  },\n  imageNoticeModal: {\n    maxWidth: \"150px\"\n  },\n  modalSmall: {\n    width: \"300px\"\n  },\n  modalMedium: {\n    width: \"500px\"\n  },\n  modalSmallBody: {\n    paddingTop: \"0\"\n  },\n  modalSmallFooterFirstButton: {\n    margin: \"0\",\n    paddingLeft: \"16px\",\n    paddingRight: \"16px\",\n    width: \"auto\"\n  },\n  modalSmallFooterSecondButton: {\n    marginBottom: \"0\",\n    marginLeft: \"5px\"\n  }\n};\n\nexport default modalStyle;\n","// ##############################\n// // // Notifications view styles\n// #############################\n\nimport { defaultFont } from \"assets/jss/material-dashboard-pro-react.jsx\";\nimport modalStyle from \"assets/jss/material-dashboard-pro-react/modalStyle.jsx\";\n\nconst notificationsStyle = {\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\",\n    fontSize: \"18px\"\n  },\n  cardHeader: {\n    zIndex: \"3\"\n  },\n  cardSubtitle: {\n    ...defaultFont,\n    color: \"#999999\",\n    fontSize: \"14px\",\n    margin: \"0 0 10px\"\n  },\n  center: {\n    textAlign: \"center\"\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  marginRight: {\n    marginRight: \"5px\"\n  },\n  modalSectionTitle: {\n    marginTop: \"30px\"\n  },\n  ...modalStyle\n};\n\nexport default notificationsStyle;\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Slide from \"material-ui/transitions/Slide\";\nimport IconButton from \"material-ui/IconButton\";\nimport Dialog from \"material-ui/Dialog\";\nimport DialogTitle from \"material-ui/Dialog/DialogTitle\";\nimport DialogContent from \"material-ui/Dialog/DialogContent\";\nimport DialogActions from \"material-ui/Dialog/DialogActions\";\n\n// @material-ui/icons\nimport AddAlert from \"@material-ui/icons/AddAlert\";\nimport Close from \"@material-ui/icons/Close\";\n\n// core components\nimport Heading from \"components/Heading/Heading.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport SnackbarContent from \"components/Snackbar/SnackbarContent.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport Snackbar from \"components/Snackbar/Snackbar.jsx\";\nimport Instruction from \"components/Instruction/Instruction.jsx\";\n\nimport notificationsStyle from \"assets/jss/material-dashboard-pro-react/views/notificationsStyle.jsx\";\n\nimport noticeModal1 from \"assets/img/card-1.jpeg\";\nimport noticeModal2 from \"assets/img/card-2.jpeg\";\n\nfunction Transition(props) {\n  return <Slide direction=\"down\" {...props} />;\n}\n\nclass Notifications extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      tl: false,\n      tc: false,\n      tr: false,\n      bl: false,\n      bc: false,\n      br: false,\n      classicModal: false,\n      noticeModal: false,\n      smallModal: false\n    };\n  }\n  showNotification(place) {\n    if(!this.state[place]){\n      var x = [];\n      x[place] = true;\n      this.setState(x);\n      setTimeout(\n        function() {\n          x[place] = false;\n          this.setState(x);\n        }.bind(this),\n        6000\n      );\n    }\n  }\n  handleClickOpen(modal) {\n    var x = [];\n    x[modal] = true;\n    this.setState(x);\n  }\n  handleClose(modal) {\n    var x = [];\n    x[modal] = false;\n    this.setState(x);\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <Heading\n          title=\"Notifications\"\n          textAlign=\"center\"\n          category={\n            <span>\n              Handcrafted by our friends from{\" \"}\n              {\n                // eslint-disable-next-line\n              }<a target=\"_blank\" href=\"https://material-ui-next.com/\">\n                Material UI\n              </a>{\" \"}\n              and styled by{\" \"}\n              {\n                // eslint-disable-next-line\n              }<a target=\"_blank\" href=\"https://www.creative-tim.com/\">\n                Creative Tim\n              </a>. Please checkout the{\" \"}\n              <a href=\"#pablo\" target=\"_blank\">\n                full documentation\n              </a>.\n            </span>\n          }\n        />\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              content={\n                <div>\n                  <div className={classes.cardHeader}>\n                    <h4 className={classes.cardTitle}>Notifications Style</h4>\n                  </div>\n                  <br />\n                  <SnackbarContent\n                    message={\"This is a plain notification\"}\n                    color=\"info\"\n                  />\n                  <SnackbarContent\n                    message={\"This is a notification with close button.\"}\n                    close\n                    color=\"info\"\n                  />\n                  <br />\n                  <SnackbarContent\n                    message={\n                      \"This is a notification with close button and icon and have many lines. You can see that the icon and the close button are always vertically aligned. This is a beautiful notification. So you don't have to worry about the style.\"\n                    }\n                    close\n                    icon={AddAlert}\n                    color=\"info\"\n                  />\n                  <br />\n                  <SnackbarContent\n                    message={\n                      'This is a notification with close button and icon and is made with color=\"rose\". You can see that the icon and the close button are always vertically aligned. This is a beautiful notification. So you don\\'t have to worry about the style.'\n                    }\n                    close\n                    icon={AddAlert}\n                    color=\"rose\"\n                  />\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <RegularCard\n              content={\n                <div>\n                  <div className={classes.cardHeader}>\n                    <h4 className={classes.cardTitle}>Notification states</h4>\n                  </div>\n                  <br />\n                  <SnackbarContent\n                    message={\n                      'INFO - This is a regular notification made with color=\"info\"'\n                    }\n                    close\n                    color=\"info\"\n                  />\n                  <SnackbarContent\n                    message={\n                      'SUCCESS - This is a regular notification made with color=\"success\"'\n                    }\n                    close\n                    color=\"success\"\n                  />\n                  <SnackbarContent\n                    message={\n                      'WARNING - This is a regular notification made with color=\"warning\"'\n                    }\n                    close\n                    color=\"warning\"\n                  />\n                  <SnackbarContent\n                    message={\n                      'DANGER - This is a regular notification made with color=\"danger\"'\n                    }\n                    close\n                    color=\"danger\"\n                  />\n                  <SnackbarContent\n                    message={\n                      'PRIMARY - This is a regular notification made with color=\"primary\"'\n                    }\n                    close\n                    color=\"primary\"\n                  />\n                  <SnackbarContent\n                    message={\n                      'ROSE - This is a regular notification made with color=\"primary\"'\n                    }\n                    close\n                    color=\"rose\"\n                  />\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={12}>\n            <RegularCard\n              content={\n                <div>\n                  <GridContainer justify=\"center\">\n                    <ItemGrid xs={12}>\n                      <div\n                        className={classes.cardHeader + \" \" + classes.center}\n                      >\n                        <h4 className={classes.cardTitle}>\n                          Notifications Places\n                        </h4>\n                        <p className={classes.cardSubtitle}>\n                          Click to view notifications\n                        </p>\n                      </div>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer justify=\"center\">\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"tl\")}\n                      >\n                        Top Left\n                      </Button>\n                      <Snackbar\n                        place=\"tl\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.tl}\n                        closeNotification={() => this.setState({ tl: false })}\n                        close\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"tc\")}\n                      >\n                        Top Center\n                      </Button>\n                      <Snackbar\n                        place=\"tc\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.tc}\n                        closeNotification={() => this.setState({ tc: false })}\n                        close\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"tr\")}\n                      >\n                        Top Right\n                      </Button>\n                      <Snackbar\n                        place=\"tr\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.tr}\n                        closeNotification={() => this.setState({ tr: false })}\n                        close\n                      />\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer justify=\"center\">\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"bl\")}\n                      >\n                        Bottom Left\n                      </Button>\n                      <Snackbar\n                        place=\"bl\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.bl}\n                        closeNotification={() => this.setState({ bl: false })}\n                        close\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"bc\")}\n                      >\n                        Bottom Center\n                      </Button>\n                      <Snackbar\n                        place=\"bc\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.bc}\n                        closeNotification={() => this.setState({ bc: false })}\n                        close\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={3}>\n                      <Button\n                        fullWidth\n                        color=\"primary\"\n                        onClick={() => this.showNotification(\"br\")}\n                      >\n                        Bottom Right\n                      </Button>\n                      <Snackbar\n                        place=\"br\"\n                        color=\"info\"\n                        icon={AddAlert}\n                        message=\"Welcome to MATERIAL DASHBOARD React - a beautiful freebie for every web developer.\"\n                        open={this.state.br}\n                        closeNotification={() => this.setState({ br: false })}\n                        close\n                      />\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer justify=\"center\">\n                    <ItemGrid\n                      xs={12}\n                      sm={12}\n                      md={12}\n                      className={classes.center}\n                    >\n                      <div\n                        className={\n                          classes.cardHeader +\n                          \" \" +\n                          classes.center +\n                          \" \" +\n                          classes.modalSectionTitle\n                        }\n                      >\n                        <h4 className={classes.cardTitle}>Modal</h4>\n                      </div>\n                      <Button\n                        color=\"primary\"\n                        round\n                        customClass={classes.marginRight}\n                        onClick={() => this.handleClickOpen(\"classicModal\")}\n                      >\n                        Classic modal\n                      </Button>\n                      <Dialog\n                        classes={{\n                          root: classes.center,\n                          paper: classes.modal\n                        }}\n                        open={this.state.classicModal}\n                        transition={Transition}\n                        keepMounted\n                        onClose={() => this.handleClose(\"classicModal\")}\n                        aria-labelledby=\"classic-modal-slide-title\"\n                        aria-describedby=\"classic-modal-slide-description\"\n                      >\n                        <DialogTitle\n                          id=\"classic-modal-slide-title\"\n                          disableTypography\n                          className={classes.modalHeader}\n                        >\n                          <IconButton\n                            className={classes.modalCloseButton}\n                            key=\"close\"\n                            aria-label=\"Close\"\n                            color=\"inherit\"\n                            onClick={() => this.handleClose(\"classicModal\")}\n                          >\n                            <Close className={classes.modalClose} />\n                          </IconButton>\n                          <h4 className={classes.modalTitle}>Modal title</h4>\n                        </DialogTitle>\n                        <DialogContent\n                          id=\"classic-modal-slide-description\"\n                          className={classes.modalBody}\n                        >\n                          <p>\n                            Far far away, behind the word mountains, far from\n                            the countries Vokalia and Consonantia, there live\n                            the blind texts. Separated they live in\n                            Bookmarksgrove right at the coast of the Semantics,\n                            a large language ocean. A small river named Duden\n                            flows by their place and supplies it with the\n                            necessary regelialia. It is a paradisematic country,\n                            in which roasted parts of sentences fly into your\n                            mouth. Even the all-powerful Pointing has no control\n                            about the blind texts it is an almost unorthographic\n                            life One day however a small line of blind text by\n                            the name of Lorem Ipsum decided to leave for the far\n                            World of Grammar.\n                          </p>\n                        </DialogContent>\n                        <DialogActions className={classes.modalFooter}>\n                          <Button color=\"simple\">Nice Button</Button>\n                          <Button\n                            onClick={() => this.handleClose(\"classicModal\")}\n                            color=\"dangerNoBackground\"\n                          >\n                            Close\n                          </Button>\n                        </DialogActions>\n                      </Dialog>\n                      <Button\n                        color=\"info\"\n                        round\n                        customClass={classes.marginRight}\n                        onClick={() => this.handleClickOpen(\"noticeModal\")}\n                      >\n                        Notice Modal\n                      </Button>\n                      <Dialog\n                        classes={{\n                          root: classes.center,\n                          paper: classes.modal\n                        }}\n                        open={this.state.noticeModal}\n                        transition={Transition}\n                        keepMounted\n                        onClose={() => this.handleClose(\"noticeModal\")}\n                        aria-labelledby=\"notice-modal-slide-title\"\n                        aria-describedby=\"notice-modal-slide-description\"\n                      >\n                        <DialogTitle\n                          id=\"notice-modal-slide-title\"\n                          disableTypography\n                          className={classes.modalHeader}\n                        >\n                          <IconButton\n                            className={classes.modalCloseButton}\n                            key=\"close\"\n                            aria-label=\"Close\"\n                            color=\"inherit\"\n                            onClick={() => this.handleClose(\"noticeModal\")}\n                          >\n                            <Close className={classes.modalClose} />\n                          </IconButton>\n                          <h4 className={classes.modalTitle}>Notice Modal</h4>\n                        </DialogTitle>\n                        <DialogContent\n                          id=\"notice-modal-slide-description\"\n                          className={classes.modalBody}\n                        >\n                          <Instruction\n                            title=\"1. Register\"\n                            text={\n                              <span>\n                                The first step is to create an account at{\" \"}\n                                <a href=\"https://www.creative-tim.com/\">\n                                  Creative Tim\n                                </a>. You can choose a social network or go for\n                                the classic version, whatever works best for\n                                you.\n                              </span>\n                            }\n                            image={noticeModal1}\n                            className={classes.instructionNoticeModal}\n                            imageClassName={classes.imageNoticeModal}\n                          />\n                          <Instruction\n                            title=\"2. Apply\"\n                            text={\n                              <span>\n                                The first step is to create an account at{\" \"}\n                                <a href=\"https://www.creative-tim.com/\">\n                                  Creative Tim\n                                </a>. You can choose a social network or go for\n                                the classic version, whatever works best for\n                                you.\n                              </span>\n                            }\n                            image={noticeModal2}\n                            className={classes.instructionNoticeModal}\n                            imageClassName={classes.imageNoticeModal}\n                          />\n                          <p>\n                            If you have more questions, don't hesitate to\n                            contact us or send us a tweet @creativetim. We're\n                            here to help!\n                          </p>\n                        </DialogContent>\n                        <DialogActions\n                          className={\n                            classes.modalFooter +\n                            \" \" +\n                            classes.modalFooterCenter\n                          }\n                        >\n                          <Button\n                            onClick={() => this.handleClose(\"noticeModal\")}\n                            color=\"info\"\n                            round\n                          >\n                            Sounds Good\n                          </Button>\n                        </DialogActions>\n                      </Dialog>\n                      <Button\n                        color=\"rose\"\n                        round\n                        customClass={classes.marginRight}\n                        onClick={() => this.handleClickOpen(\"smallModal\")}\n                      >\n                        Small alert modal\n                      </Button>\n                      <Dialog\n                        classes={{\n                          root: classes.center,\n                          paper: classes.modal + \" \" + classes.modalSmall\n                        }}\n                        open={this.state.smallModal}\n                        transition={Transition}\n                        keepMounted\n                        onClose={() => this.handleClose(\"noticeModal\")}\n                        aria-labelledby=\"small-modal-slide-title\"\n                        aria-describedby=\"small-modal-slide-description\"\n                      >\n                        <DialogTitle\n                          id=\"small-modal-slide-title\"\n                          disableTypography\n                          className={classes.modalHeader}\n                        >\n                          <IconButton\n                            className={classes.modalCloseButton}\n                            key=\"close\"\n                            aria-label=\"Close\"\n                            color=\"inherit\"\n                            onClick={() => this.handleClose(\"smallModal\")}\n                          >\n                            <Close className={classes.modalClose} />\n                          </IconButton>\n                        </DialogTitle>\n                        <DialogContent\n                          id=\"small-modal-slide-description\"\n                          className={\n                            classes.modalBody + \" \" + classes.modalSmallBody\n                          }\n                        >\n                          <h5>Are you sure you want to do this?</h5>\n                        </DialogContent>\n                        <DialogActions\n                          className={\n                            classes.modalFooter +\n                            \" \" +\n                            classes.modalFooterCenter\n                          }\n                        >\n                          <Button\n                            onClick={() => this.handleClose(\"smallModal\")}\n                            color=\"simple\"\n                            customClass={classes.modalSmallFooterFirstButton}\n                          >\n                            Never Mind\n                          </Button>\n                          <Button\n                            onClick={() => this.handleClose(\"smallModal\")}\n                            color=\"successNoBackground\"\n                            customClass={\n                              classes.modalSmallFooterFirstButton +\n                              \" \" +\n                              classes.modalSmallFooterSecondButton\n                            }\n                          >\n                            Yes\n                          </Button>\n                        </DialogActions>\n                      </Dialog>\n                    </ItemGrid>\n                  </GridContainer>\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(notificationsStyle)(Notifications);\n","// ##############################\n// // // Icons styles\n// #############################\n\nimport { boxShadow } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst iconsStyle = {\n  iframe: {\n    width: \"100%\",\n    height: \"500px\",\n    border: \"0\",\n    ...boxShadow\n  },\n  iframeContainer: {\n    margin: \"0 -20px 0\"\n  }\n};\n\nexport default iconsStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Hidden from \"material-ui/Hidden\";\n\n// core components\nimport Heading from \"components/Heading/Heading.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport iconsStyle from \"assets/jss/material-dashboard-pro-react/views/iconsStyle\";\n\nfunction Icons({ ...props }) {\n  return (\n    <GridContainer>\n      <ItemGrid xs={12} sm={12} md={12}>\n        <Heading\n          textAlign=\"center\"\n          title=\"Material Design Icons\"\n          category={\n            <span>\n              Handcrafted by our friends from{\" \"}\n              {\n                // eslint-disable-next-line\n              }<a target=\"_blank\" href=\"https://design.google.com/icons/\">\n                Google\n              </a>\n            </span>\n          }\n        />\n        <RegularCard\n          plainCard\n          content={\n            <div>\n              <Hidden only={[\"sm\", \"xs\"]}>\n                <iframe\n                  className={props.classes.iframe}\n                  src=\"https://material.io/icons/\"\n                  title=\"Icons iframe\"\n                >\n                  <p>Your browser does not support iframes.</p>\n                </iframe>\n              </Hidden>\n              <Hidden only={[\"lg\", \"md\"]}>\n                <ItemGrid xs={12} sm={12} md={6}>\n                  <h5>\n                    The icons are visible on Desktop mode inside an iframe.\n                    Since the iframe is not working on Mobile and Tablets please\n                    visit the icons on their original page on Google. Check the\n                    <a\n                      href=\"https://design.google.com/icons/\"\n                      target=\"_blank\"\n                      rel=\"noopener noreferrer\"\n                    >\n                      Material Icons\n                    </a>\n                  </h5>\n                </ItemGrid>\n              </Hidden>\n            </div>\n          }\n        />\n      </ItemGrid>\n    </GridContainer>\n  );\n}\n\nIcons.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(iconsStyle)(Icons);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Quote({ ...props }) {\n  const { classes, text, author } = props;\n  return (\n    <blockquote className={classes.defaultFontStyle + \" \" + classes.quote}>\n      <p className={classes.quoteText}>{text}</p>\n      <small className={classes.quoteAuthor}>{author}</small>\n    </blockquote>\n  );\n}\n\nQuote.propTypes = {\n  classes: PropTypes.object.isRequired,\n  text: PropTypes.node,\n  author: PropTypes.node\n};\n\nexport default withStyles(typographyStyle)(Quote);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Muted({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.mutedText}>\n      {children}\n    </div>\n  );\n}\n\nMuted.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Muted);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Primary({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.primaryText}>\n      {children}\n    </div>\n  );\n}\n\nPrimary.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Primary);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Info({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.infoText}>\n      {children}\n    </div>\n  );\n}\n\nInfo.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Info);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Success({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.successText}>\n      {children}\n    </div>\n  );\n}\n\nSuccess.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Success);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport typographyStyle from \"assets/jss/material-dashboard-pro-react/components/typographyStyle.jsx\";\n\nfunction Warning({ ...props }) {\n  const { classes, children } = props;\n  return (\n    <div className={classes.defaultFontStyle + \" \" + classes.warningText}>\n      {children}\n    </div>\n  );\n}\n\nWarning.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(typographyStyle)(Warning);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Quote from \"components/Typography/Quote.jsx\";\nimport Muted from \"components/Typography/Muted.jsx\";\nimport Primary from \"components/Typography/Primary.jsx\";\nimport Info from \"components/Typography/Info.jsx\";\nimport Success from \"components/Typography/Success.jsx\";\nimport Warning from \"components/Typography/Warning.jsx\";\nimport Danger from \"components/Typography/Danger.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport Heading from \"components/Heading/Heading.jsx\";\n\nconst style = {\n  typo: {\n    paddingLeft: \"25%\",\n    marginBottom: \"40px\",\n    position: \"relative\"\n  },\n  note: {\n    fontFamily: '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif',\n    bottom: \"10px\",\n    color: \"#c0c1c2\",\n    display: \"block\",\n    fontWeight: \"400\",\n    fontSize: \"13px\",\n    lineHeight: \"13px\",\n    left: \"0\",\n    marginLeft: \"20px\",\n    position: \"absolute\",\n    width: \"260px\"\n  }\n};\nfunction Typography({ ...props }) {\n  return (\n    <div>\n      <Heading\n        textAlign=\"center\"\n        title=\"Material Dashboard Heading\"\n        category=\"Created using Roboto Font Family\"\n      />\n      <RegularCard\n        content={\n          <div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 1</div>\n              <h1>The Life of Material Dashboard</h1>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 2</div>\n              <h2>The Life of Material Dashboard</h2>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 3</div>\n              <h3>The Life of Material Dashboard</h3>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 4</div>\n              <h4>The Life of Material Dashboard</h4>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 5</div>\n              <h5>The Life of Material Dashboard</h5>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Header 6</div>\n              <h6>The Life of Material Dashboard</h6>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Paragraph</div>\n              <p>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers. I understand\n                culture. I am the nucleus. I think that’s a responsibility that\n                I have, to push possibilities, to show people, this is the level\n                that things could be at.\n              </p>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Quote</div>\n              <Quote\n                text=\"I will be the leader of a company that ends up being worth billions of dollars, because I got the answers. I understand culture. I am the nucleus. I think that’s a responsibility that I have, to push possibilities, to show people, this is the level that things could be at.\"\n                author=\" Kanye West, Musician\"\n              />\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Muted Text</div>\n              <Muted>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Muted>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Primary Text</div>\n              <Primary>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Primary>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Info Text</div>\n              <Info>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Info>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Success Text</div>\n              <Success>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Success>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Warning Text</div>\n              <Warning>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Warning>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Danger Text</div>\n              <Danger>\n                I will be the leader of a company that ends up being worth\n                billions of dollars, because I got the answers...\n              </Danger>\n            </div>\n            <div className={props.classes.typo}>\n              <div className={props.classes.note}>Small Tag</div>\n              <h2>\n                Header with small subtitle<br />\n                <small>Use \"small\" tag for the headers</small>\n              </h2>\n            </div>\n          </div>\n        }\n      />\n    </div>\n  );\n}\n\nTypography.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(style)(Typography);\n","// ##############################\n// // // Main Table HeaderLinks styles\n// #############################\n  \n  const mainTableHeaderLinksStyle = theme => ({    \n    search: {\n      [theme.breakpoints.down(\"sm\")]: {\n        margin: \"10px 15px\",\n        float: \"none !important\",\n        paddingTop: \"1px\",\n        paddingBottom: \"1px\",\n        padding: \"10px 15px\",\n        width: \"auto\"\n      }\n    },\n    searchInput: {\n      paddingTop: \"2px\"\n    },    \n    searchButton: {\n      [theme.breakpoints.down(\"sm\")]: {\n        top: \"-50px !important\",\n        marginRight: \"38px\",\n        float: \"right\"\n      }\n    },\n    top: {\n      zIndex: \"4\"\n    },\n    searchIcon: {\n      width: \"17px\",\n      zIndex: \"4\"\n    },    \n    searchInTable: {\n      marginRight: \"20px\", \n      display: \"flex\",\n      float: \"right\"\n    },\n    backButton: {\n      margin: \"20px 20px 0 0\",\n      width: \"auto\" \n    },\n    searchInput: {\n      display: \"inline-block\"\n    }\n  });\n  \n  export default mainTableHeaderLinksStyle;\n  ","import React, { useState, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Search from \"@material-ui/icons/Search\";\n\nimport {\n  getPatients,\n  getOnePatient,\n  startLoadingOneByOne,\n  setUnfullData,\n  searchPatients,\n  saveTokenToPatiens,\n} from \"../../actions/index\";\n\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport SearchButton from \"components/CustomButtons/IconButton.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport mainTableHeaderLinksStyle from \"assets/jss/material-dashboard-pro-react/components/mainTableHeaderLinksStyle\";\n\nfunction MainTableHeaderLinks({ ...props }) {\n  const { classes } = props;\n  const searchButton = classes.top + \" \" + classes.searchButton;\n\n  const dispatch = useDispatch();\n  const token = useSelector((state) => state.authenticationState.token);\n  const patients = useSelector((state) => state.patients);\n  let searched = useSelector((state) => state.patients.searched);\n  const [query, setQuery] = useState(\"\");\n\n  const findSubject = (query) => {\n    if (query !== \"\") {\n      searched = patients.data.filter((item) => {\n        return item.code.toLowerCase().includes(query.toLowerCase());\n      });\n    } else {\n      searched = [];\n    }\n    dispatch(searchPatients(searched));\n  };\n\n  const handleChange = (e) => {\n    e.preventDefault();\n    e.target.value !== \"\" ? setQuery(e.target.value) : setQuery(\"\");\n    findSubject(e.target.value);\n  };\n\n  const handleKeyPress = (e) => {\n    if (e.key === \"Enter\") {\n      findSubject(query);\n    }\n  };\n\n  const onSearchButtonClicked = () => {\n    findSubject(query);\n  };\n\n  const onBackButtonClicked = () => {\n    if (searched && searched.length) {\n      setQuery(\"\");\n      searched = [];\n      dispatch(searchPatients(searched));\n    }\n  };\n\n  const onResfreshButtonClicked = () => {\n    dispatch(setUnfullData());\n  };\n\n  const getOneByOneData = async (data) => {\n    data.sort((a, b) => {\n      if (a.devices === null) return 1;\n      else if (b.devices === null) return -1;\n      else if (a.devices[0].mac > b.devices[0].mac) return 1;\n      else return -1;\n    });\n    for (let i = 0; i < data.length; i++) {\n      try {\n        const el = data[i];\n        await dispatch(getOnePatient(el));\n      } catch (error) {\n        console.log(\"Error in getOneByOneData: \", error);\n      }\n    }\n  };\n\n  useEffect(() => {\n    if (patients.token !== token) {\n      dispatch(saveTokenToPatiens(token));\n      onResfreshButtonClicked();\n    }\n    if (!patients.data.length && patients.token === token) {\n      dispatch(getPatients());\n    }\n    if (\n      patients.data.length > 0 &&\n      !patients.fullData &&\n      !patients.loadingOneByOne\n    ) {\n      dispatch(startLoadingOneByOne());\n      getOneByOneData(patients.data);\n    }\n    return function cleanup() {\n      onBackButtonClicked();\n    };\n  }, [patients.data]);\n\n  return (\n    <>\n      <Button\n        round\n        color=\"primary\"\n        size=\"sm\"\n        style={{ marginLeft: \"15px\" }}\n        onClick={onResfreshButtonClicked}\n      >\n        Refresh Patient List\n      </Button>\n      <div className={classes.searchInTable}>\n        {query !== \"\" && (\n          <div className={classes.backButton}>\n            <Button\n              round\n              color=\"primary\"\n              size=\"sm\"\n              onClick={onBackButtonClicked}\n            >\n              Back to all results\n            </Button>\n          </div>\n        )}\n        <div className={classes.searchInput}>\n          <CustomInput\n            formControlProps={{\n              className: classes.top + \" \" + classes.search,\n            }}\n            inputProps={{\n              placeholder: \"Search\",\n              inputProps: {\n                className: classes.searchInput,\n                value: query,\n                onChange: handleChange,\n                onKeyPress: handleKeyPress,\n              },\n            }}\n          />\n          <SearchButton\n            color=\"white\"                   \n            className={searchButton}\n            onClick={onSearchButtonClicked}\n          >\n            <Search className={classes.searchIcon}/>\n          </SearchButton>\n        </div>\n      </div>\n    </>\n  );\n}\n\nMainTableHeaderLinks.propTypes = {\n  classes: PropTypes.object.isRequired,\n};\n\nexport default withStyles(mainTableHeaderLinksStyle)(MainTableHeaderLinks);\n","// ##############################\n// // // RegularCard styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst headerCardStyle = {\n  card,\n  cardPlain: {\n    background: \"transparent\",\n    boxShadow: \"none\"\n  },\n  cardHeader: {\n    ...cardHeader,\n    ...defaultFont,\n    display: \"inline-block\",\n  },\n  cardPlainHeader: {\n    marginLeft: 0,\n    marginRight: 0\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardTitle: {\n    color: \"#FFFFFF\",\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    ...defaultFont,\n    fontSize: \"1.3em\",\n  },\n  cardSubtitle: {\n    marginBottom: \"0\",\n    color: \"rgba(255, 255, 255, 0.62)\",\n    fontSize: \"14px\"\n  },\n  cardActions: {\n    padding: \"14px\",\n    display: \"block\",\n    height: \"auto\"\n  },\n  cardContent: {\n    padding: \"15px 20px\",\n    position: \"relative\"\n  },\n  left: {\n    textAlign: \"left\"\n  },\n  right: {\n    textAlign: \"right\"\n  },\n  center: {\n    textAlign: \"center\"\n  }\n};\n\nexport default headerCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport cx from \"classnames\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport CardActions from \"material-ui/Card/CardActions\";\n\nimport MainTableHeaderLinks from \"components/Cards/MainTableHeaderLinks\";\n\nimport headerCardStyle from \"assets/jss/material-dashboard-pro-react/components/headerCardStyle.jsx\";\n\nfunction HeaderCard({ ...props }) { \n\n  const {\n    classes,\n    headerColor,\n    plainCard,\n    cardTitle,\n    cardSubtitle,\n    content,\n    footer,\n    footerAlign,\n    search\n  } = props;\n  const plainCardClasses = cx({\n    [\" \" + classes.cardPlain]: plainCard\n  });\n  const cardPlainHeaderClasses = cx({\n    [\" \" + classes.cardPlainHeader]: plainCard\n  });\n  const cardFooterClasses =\n    classes.cardActions +\n    \"  \" +\n    cx({\n      [classes[footerAlign]]: footerAlign !== undefined\n    });\n\n  return (\n    <Card className={classes.card + plainCardClasses}>\n      <CardHeader\n        classes={{\n          root:\n            classes.cardHeader +\n            \" \" +\n            classes[headerColor + \"CardHeader\"] +\n            cardPlainHeaderClasses,\n          // avatar: classes.cardAvatar,\n          title: classes.cardTitle,\n          subheader: classes.cardSubtitle\n        }}\n        title={cardTitle}\n        subheader={cardSubtitle}\n        // avatar={<props.icon className={classes.cardIcon} />}\n        // action={\n        //   <IconButton>\n        //     <Close/>\n        //   </IconButton>\n        // }\n      />\n      \n      {search && <MainTableHeaderLinks/>}\n      \n      <CardContent className={classes.cardContent}>{content}</CardContent>\n      {footer !== undefined ? (\n        <CardActions className={cardFooterClasses}>{footer}</CardActions>\n      ) : null}\n    </Card>\n  );\n}\n\nHeaderCard.defaultProps = {\n  headerColor: \"purple\"\n};\n\nHeaderCard.propTypes = {\n  plainCard: PropTypes.bool,\n  classes: PropTypes.object.isRequired,\n  headerColor: PropTypes.oneOf([\n    \"orange\",\n    \"green\",\n    \"red\",\n    \"blue\",\n    \"purple\",\n    \"rose\",\n    \"NEStyle\"\n  ]),\n  cardTitle: PropTypes.node,\n  cardSubtitle: PropTypes.node,\n  content: PropTypes.node,\n  footer: PropTypes.node,\n  footerAlign: PropTypes.oneOf([\"left\", \"center\", \"right\"])\n};\n\nexport default withStyles(headerCardStyle)(HeaderCard);\n","// ##############################\n// // // RegularForms view styles\n// #############################\n\nimport customCheckboxRadioSwitch from \"assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx\";\n\nconst regularFormsStyle = {\n  ...customCheckboxRadioSwitch,\n  staticFormGroup: {\n    marginLeft: \"0\",\n    marginRight: \"0\",\n    paddingBottom: \"10px\",\n    margin: \"8px 0 0 0\",\n    position: \"relative\",\n    \"&:before,&:after\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      clear: \"both\"\n    }\n  },\n  staticFormControl: {\n    marginBottom: \"0\",\n    paddingTop: \"8px\",\n    paddingBottom: \"8px\",\n    minHeight: \"34px\"\n  },\n};\n\nexport default regularFormsStyle;\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport FormLabel from \"material-ui/Form/FormLabel\";\nimport FormControlLabel from \"material-ui/Form/FormControlLabel\";\nimport Radio from \"material-ui/Radio\";\nimport Checkbox from \"material-ui/Checkbox\";\n\n// @material-ui/icons\nimport MailOutline from \"@material-ui/icons/MailOutline\";\nimport Check from \"@material-ui/icons/Check\";\nimport Contacts from \"@material-ui/icons/Contacts\";\nimport FiberManualRecord from \"@material-ui/icons/FiberManualRecord\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport regularFormsStyle from \"assets/jss/material-dashboard-pro-react/views/regularFormsStyle\";\n\nclass RegularForms extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      checked: [24, 22],\n      selectedValue: null,\n      selectedEnabled: \"b\"\n    };\n    this.handleChange = this.handleChange.bind(this);\n    this.handleChangeEnabled = this.handleChangeEnabled.bind(this);\n  }\n  handleChange(event) {\n    this.setState({ selectedValue: event.target.value });\n  }\n  handleChangeEnabled(event) {\n    this.setState({ selectedEnabled: event.target.value });\n  }\n  handleToggle(value) {\n    const { checked } = this.state;\n    const currentIndex = checked.indexOf(value);\n    const newChecked = [...checked];\n\n    if (currentIndex === -1) {\n      newChecked.push(value);\n    } else {\n      newChecked.splice(currentIndex, 1);\n    }\n\n    this.setState({\n      checked: newChecked\n    });\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <GridContainer>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            icon={MailOutline}\n            iconColor=\"rose\"\n            title=\"Stacked Form\"\n            content={\n              <form>\n                <CustomInput\n                  labelText=\"Email adress\"\n                  id=\"email_adress\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    type: \"email\"\n                  }}\n                />\n                <CustomInput\n                  labelText=\"Password\"\n                  id=\"password\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    type: \"password\"\n                  }}\n                />\n                <div className={classes.checkboxAndRadio}>\n                  <FormControlLabel\n                    control={\n                      <Checkbox\n                        tabIndex={-1}\n                        onClick={() => this.handleToggle(2)}\n                        checkedIcon={<Check className={classes.checkedIcon} />}\n                        icon={<Check className={classes.uncheckedIcon} />}\n                        classes={{\n                          checked: classes.checked\n                        }}\n                      />\n                    }\n                    classes={{\n                      label: classes.label\n                    }}\n                    label=\"Subscribe to newsletter\"\n                  />\n                </div>\n                <Button color=\"rose\">Submit</Button>\n              </form>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            icon={Contacts}\n            iconColor=\"rose\"\n            title=\"Horizontal Form\"\n            content={\n              <form>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={3}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Email\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={9}>\n                    <CustomInput\n                      id=\"email_adress2\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        type: \"email\"\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={3}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Password\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={9}>\n                    <CustomInput\n                      id=\"password2\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        type: \"password\"\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer justify=\"flex-end\">\n                  <ItemGrid xs={12} sm={12} md={9}>\n                    <div className={classes.checkboxAndRadio}>\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(1)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Remember me\"\n                      />\n                    </div>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer justify=\"flex-end\">\n                  <ItemGrid xs={12} sm={12} md={9}>\n                    <Button color=\"rose\">Submit</Button>\n                  </ItemGrid>\n                </GridContainer>\n              </form>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={12}>\n          <HeaderCard\n            cardTitle=\"Form Elements\"\n            headerColor=\"rose\"\n            content={\n              <form>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      With Help\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"help-text\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        type: \"text\"\n                      }}\n                      helpText=\"A block of help text that breaks onto a new line.\"\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Password\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"pass\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        type: \"password\"\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Placeholder\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"placeholder\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        placeholder: \"placeholder\"\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Disabled\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"disabled\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        placeholder: \"Disabled\",\n                        disabled: true\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Static control\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <div className={classes.staticFormGroup}>\n                      <p className={classes.staticFormControl}>\n                        hello@creative-tim.com\n                      </p>\n                    </div>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal + \" \" + classes.labelHorizontalRadioCheckbox}>\n                      Checkboxes and radios\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(3)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"First Checkbox\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(4)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Second Checkbox\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Radio\n                            checked={this.state.selectedValue === \"a\"}\n                            onChange={this.handleChange}\n                            value=\"a\"\n                            name=\"radio button demo\"\n                            aria-label=\"A\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"First Radio\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Radio\n                            checked={this.state.selectedValue === \"b\"}\n                            onChange={this.handleChange}\n                            value=\"b\"\n                            name=\"radio button demo\"\n                            aria-label=\"B\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Second Radio\"\n                      />\n                    </div>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal + \" \" + classes.labelHorizontalRadioCheckbox}>\n                      Inline checkboxes\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <div className={classes.inlineChecks}>\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(10)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"a\"\n                      />\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(11)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"b\"\n                      />\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(12)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"c\"\n                      />\n                    </div>\n                  </ItemGrid>\n                </GridContainer>\n              </form>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={12}>\n          <HeaderCard\n            cardTitle=\"Input Variants\"\n            content={\n              <form>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal + \" \" + classes.labelHorizontalRadioCheckbox}>\n                      Custom Checkboxes & Radios\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={4}>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(21)}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Unchecked\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            onClick={() => this.handleToggle(22)}\n                            checked={\n                              this.state.checked.indexOf(22) !== -1\n                                ? true\n                                : false\n                            }\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Checked\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        disabled\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label,\n                          disabled: classes.disabledCheckboxAndRadio\n                        }}\n                        label=\"Disabled Unchecked\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        disabled\n                        control={\n                          <Checkbox\n                            tabIndex={-1}\n                            checked={\n                              this.state.checked.indexOf(24) !== -1\n                                ? true\n                                : false\n                            }\n                            checkedIcon={\n                              <Check className={classes.checkedIcon} />\n                            }\n                            icon={<Check className={classes.uncheckedIcon} />}\n                            classes={{\n                              checked: classes.checked\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label,\n                          disabled: classes.disabledCheckboxAndRadio\n                        }}\n                        label=\"Disabled Checked\"\n                      />\n                    </div>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={4}>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Radio\n                            checked={this.state.selectedEnabled === \"a\"}\n                            onChange={this.handleChangeEnabled}\n                            value=\"a\"\n                            name=\"radio button enabled\"\n                            aria-label=\"A\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"First Radio\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        control={\n                          <Radio\n                            checked={this.state.selectedEnabled === \"b\"}\n                            onChange={this.handleChangeEnabled}\n                            value=\"b\"\n                            name=\"radio button enabled\"\n                            aria-label=\"B\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Second Radio\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        disabled\n                        control={\n                          <Radio\n                            checked={false}\n                            value=\"a\"\n                            name=\"radio button disabled\"\n                            aria-label=\"B\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio,\n                              disabled: classes.disabledCheckboxAndRadio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Second Radio\"\n                      />\n                    </div>\n                    <div\n                      className={\n                        classes.checkboxAndRadio +\n                        \" \" +\n                        classes.checkboxAndRadioHorizontal\n                      }\n                    >\n                      <FormControlLabel\n                        disabled\n                        control={\n                          <Radio\n                            checked={true}\n                            value=\"b\"\n                            name=\"radio button disabled\"\n                            aria-label=\"B\"\n                            icon={\n                              <FiberManualRecord\n                                className={classes.radioUnchecked}\n                              />\n                            }\n                            checkedIcon={\n                              <FiberManualRecord\n                                className={classes.radioChecked}\n                              />\n                            }\n                            classes={{\n                              checked: classes.radio,\n                              disabled: classes.disabledCheckboxAndRadio\n                            }}\n                          />\n                        }\n                        classes={{\n                          label: classes.label\n                        }}\n                        label=\"Second Radio\"\n                      />\n                    </div>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Input with success\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"success\"\n                      labelText=\"Success\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      success\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Input with error\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <CustomInput\n                      id=\"error\"\n                      labelText=\"Error\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      error\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Column sizing\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={10}>\n                    <GridContainer>\n                      <ItemGrid xs={12} sm={12} md={3}>\n                        <CustomInput\n                          id=\"md3\"\n                          formControlProps={{\n                            fullWidth: true\n                          }}\n                          inputProps={{\n                            placeholder: \"md={3}\"\n                          }}\n                        />\n                      </ItemGrid>\n                      <ItemGrid xs={12} sm={12} md={4}>\n                        <CustomInput\n                          id=\"md4\"\n                          formControlProps={{\n                            fullWidth: true\n                          }}\n                          inputProps={{\n                            placeholder: \"md={4}\"\n                          }}\n                        />\n                      </ItemGrid>\n                      <ItemGrid xs={12} sm={12} md={5}>\n                        <CustomInput\n                          id=\"md5\"\n                          formControlProps={{\n                            fullWidth: true\n                          }}\n                          inputProps={{\n                            placeholder: \"md={5}\"\n                          }}\n                        />\n                      </ItemGrid>\n                    </GridContainer>\n                  </ItemGrid>\n                </GridContainer>\n              </form>\n            }\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(regularFormsStyle)(RegularForms);\n","// ##############################\n// // // CustomDropdown component styles\n// #############################\n\nimport {\n  defaultFont,\n  primaryColor,\n  primaryBoxShadow\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst customDropdownStyle = theme => ({\n  popperClose: {\n    pointerEvents: \"none\"\n  },\n  dropdown: {\n    borderRadius: \"3px\",\n    border: \"0\",\n    boxShadow: \"0 2px 5px 0 rgba(0, 0, 0, 0.26)\",\n    top: \"100%\",\n    zIndex: \"1000\",\n    minWidth: \"160px\",\n    padding: \"5px 0\",\n    margin: \"2px 0 0\",\n    fontSize: \"14px\",\n    textAlign: \"left\",\n    listStyle: \"none\",\n    backgroundColor: \"#fff\",\n    backgroundClip: \"padding-box\"\n  },\n  menuList: {\n    padding: \"0\"\n  },\n  pooperResponsive: {\n    zIndex: \"2\",\n    [theme.breakpoints.down(\"sm\")]: {\n      zIndex: \"1640\",\n      position: \"static\",\n      float: \"none\",\n      width: \"auto\",\n      marginTop: \"0\",\n      backgroundColor: \"transparent\",\n      border: \"0\",\n      boxShadow: \"none\",\n      color: \"black\"\n    }\n  },\n  dropdownItem: {\n    ...defaultFont,\n    fontSize: \"13px\",\n    padding: \"10px 20px\",\n    margin: \"0 5px\",\n    borderRadius: \"2px\",\n    position: \"relative\",\n    transition: \"all 150ms linear\",\n    display: \"block\",\n    clear: \"both\",\n    fontWeight: \"400\",\n    height: \"59.3px\", // \"fit-content\", <- does not work with edge\n    color: \"#333\",\n    whiteSpace: \"nowrap\",\n    \"&:hover\": {\n      backgroundColor: primaryColor,\n      color: \"#FFFFFF\",\n      ...primaryBoxShadow\n    }\n  },\n  dropdownItemRTL: {\n    textAlign: \"right\"\n  },\n  dropdownDividerItem: {\n    margin: \"5px 0\",\n    backgroundColor: \"rgba(0, 0, 0, 0.12)\",\n    height: \"1px\",\n    overflow: \"hidden\"\n  },\n  buttonIcon: {\n    width: \"17px\",\n    height: \"17px\"\n  },\n  caret: {\n    transition: \"all 150ms ease-in\",\n    display: \"inline-block\",\n    width: \"0\",\n    height: \"0\",\n    marginLeft: \"4px\",\n    verticalAlign: \"middle\",\n    borderTop: \"4px solid\",\n    borderRight: \"4px solid transparent\",\n    borderLeft: \"4px solid transparent\"\n  },\n  caretActive: {\n    transform: \"rotate(180deg)\"\n  },\n  caretRTL: {\n    marginRight: \"4px\"\n  },\n  dropdownHeader: {\n    display: \"block\",\n    padding: \"3px 20px\",\n    fontSize: \"12px\",\n    lineHeight: \"1.42857143\",\n    color: \"#777\",\n    whiteSpace: \"nowrap\",\n    \"&:hover,&:focus\": {\n      backgroundColor: \"transparent\",\n      cursor: \"auto\"\n    }\n  }\n});\n\nexport default customDropdownStyle;\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Manager, Target, Popper } from \"react-popper\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport MenuList from \"material-ui/Menu/MenuList\";\nimport ClickAwayListener from \"material-ui/utils/ClickAwayListener\";\nimport Paper from \"material-ui/Paper\";\nimport Grow from \"material-ui/transitions/Grow\";\nimport Divider from \"material-ui/Divider\";\n\n// core components\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport customDropdownStyle from \"assets/jss/material-dashboard-pro-react/components/customDropdownStyle\";\n\nclass CustomDropdown extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      open: false\n    };\n    this.handleClick = this.handleClick.bind(this);\n    this.handleClose = this.handleClose.bind(this);\n  }\n  handleClick() {\n    this.setState({ open: true });\n  }\n  handleClose() {\n    this.setState({ open: false });\n  }\n  render() {\n    const { open } = this.state;\n    const {\n      classes,\n      buttonColor,\n      buttonText,\n      buttonIcon,\n      dropdownList,\n      buttonProps,\n      dropup,\n      dropdownHeader,\n      rtlActive\n    } = this.props;\n    const caretClasses =\n      classes.caret +\n      \" \" +\n      classNames({\n        [classes.caretActive]: open,\n        [classes.caretRTL]: rtlActive\n      });\n    const dropdownItem =\n      classes.dropdownItem +\n      \" \" +\n      classNames({\n        [classes.dropdownItemRTL]: rtlActive\n      });\n    return (\n      <Manager style={{ display: \"inline-block\" }}>\n        <Target>\n          <Button\n            color={buttonColor}\n            aria-label=\"Notifications\"\n            aria-owns={open ? \"menu-list\" : null}\n            aria-haspopup=\"true\"\n            {...buttonProps}\n            onClick={this.handleClick}\n          >\n            {buttonIcon !== undefined ? (\n              <this.props.buttonIcon className={classes.buttonIcon} />\n            ) : null}\n            {buttonText !== undefined ? buttonText : null}\n            <b className={caretClasses} />\n          </Button>\n        </Target>\n        <Popper\n          placement={dropup ? \"top-start\" : \"bottom-start\"}\n          eventsEnabled={open}\n          className={\n            classNames({ [classes.popperClose]: !open }) +\n            \" \" +\n            classes.pooperResponsive\n          }\n        >\n          <ClickAwayListener onClickAway={this.handleClose}>\n            <Grow\n              in={open}\n              id=\"menu-list\"\n              style={\n                dropup\n                  ? { transformOrigin: \"0 100% 0\" }\n                  : { transformOrigin: \"0 0 0\" }\n              }\n            >\n              <Paper className={classes.dropdown}>\n                <MenuList role=\"menu\" className={classes.menuList}>\n                  {dropdownHeader !== undefined ? (\n                    <MenuItem\n                      onClick={this.handleClose}\n                      className={classes.dropdownHeader}\n                    >\n                      {dropdownHeader}\n                    </MenuItem>\n                  ) : null}\n                  {dropdownList.map((prop, key) => {\n                    if (prop.divider) {\n                      return (\n                        <Divider\n                          key={key}\n                          onClick={this.handleClose}\n                          className={classes.dropdownDividerItem}\n                        />\n                      );\n                    }\n                    return (\n                      <MenuItem\n                        key={key}\n                        onClick={this.handleClose}\n                        className={dropdownItem}\n                      >\n                        {prop}\n                      </MenuItem>\n                    );\n                  })}\n                </MenuList>\n              </Paper>\n            </Grow>\n          </ClickAwayListener>\n        </Popper>\n      </Manager>\n    );\n  }\n}\n\nCustomDropdown.propTypes = {\n  classes: PropTypes.object.isRequired,\n  buttonColor: PropTypes.oneOf([\n    \"primary\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"rose\",\n    \"defaultNoBackground\",\n    \"primaryNoBackground\",\n    \"infoNoBackground\",\n    \"successNoBackground\",\n    \"warningNoBackground\",\n    \"dangerNoBackground\",\n    \"roseNoBackground\",\n    \"white\",\n    \"simple\",\n    \"transparent\"\n  ]),\n  buttonText: PropTypes.node,\n  buttonIcon: PropTypes.func,\n  dropdownList: PropTypes.array,\n  buttonProps: PropTypes.object,\n  dropup: PropTypes.bool,\n  dropdownHeader: PropTypes.node,\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(customDropdownStyle)(CustomDropdown);\n","// ##############################\n// // // CustomLinearProgress component styles\n// #############################\n\nimport {\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst customLinearProgressStyle = {\n  root: {\n    height: \"8px\",\n    marginBottom: \"20px\",\n    overflow: \"hidden\"\n  },\n  bar: {\n    height: \"8px\"\n  },\n  primary: {\n    backgroundColor: primaryColor\n  },\n  warning: {\n    backgroundColor: warningColor\n  },\n  danger: {\n    backgroundColor: \"#f44336\"\n  },\n  success: {\n    backgroundColor: \"#4caf50\"\n  },\n  info: {\n    backgroundColor: infoColor\n  },\n  rose: {\n    backgroundColor: roseColor\n  },\n  gray: {\n    backgroundColor: grayColor\n  },\n  primaryBackground: {\n    background: \"rgba(156, 39, 176, 0.2)\"\n  },\n  warningBackground: {\n    background: \"rgba(255, 152, 0, 0.2)\"\n  },\n  dangerBackground: {\n    background: \"rgba(244, 67, 54, 0.4)\"\n  },\n  successBackground: {\n    background: \"rgba(76, 175, 80, 0.2)\"\n  },\n  infoBackground: {\n    background: \"rgba(0, 188, 212, 0.2)\"\n  },\n  roseBackground: {\n    background: \"rgba(233, 30, 99, 0.2)\"\n  },\n  grayBackground: {\n    background: \"rgba(221, 221, 221, 1.0)\"\n  }\n};\n\nexport default customLinearProgressStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport LinearProgress from \"material-ui/Progress/LinearProgress\";\n\nimport customLinearProgressStyle from \"assets/jss/material-dashboard-pro-react/components/customLinearProgressStyle.jsx\";\n\nfunction CustomLinearProgress({ ...props }) {\n  const { classes, color, ...rest } = props;\n  return (\n    <LinearProgress\n      {...rest}\n      classes={{\n        root: classes.root + \" \" + classes[color + \"Background\"],\n        bar: classes.bar + \" \" + classes[color]\n      }}\n    />\n  );\n}\n\nCustomLinearProgress.defaultProps = {\n  color: \"gray\"\n};\n\nCustomLinearProgress.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\n    \"primary\",\n    \"warning\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ])\n};\n\nexport default withStyles(customLinearProgressStyle)(CustomLinearProgress);\n","import React from \"react\";\n// used for making the prop types of this component\nimport PropTypes from \"prop-types\";\n\n// core components\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport defaultImage from \"assets/img/image_placeholder.jpg\";\nimport defaultAvatar from \"assets/img/placeholder.jpg\";\n\nclass ImageUpload extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      file: null,\n      imagePreviewUrl: this.props.avatar ? defaultAvatar : defaultImage\n    };\n    this.handleImageChange = this.handleImageChange.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n    this.handleClick = this.handleClick.bind(this);\n    this.handleRemove = this.handleRemove.bind(this);\n  }\n  handleImageChange(e) {\n    e.preventDefault();\n    let reader = new FileReader();\n    let file = e.target.files[0];\n    reader.onloadend = () => {\n      this.setState({\n        file: file,\n        imagePreviewUrl: reader.result\n      });\n    };\n    reader.readAsDataURL(file);\n  }\n  handleSubmit(e) {\n    e.preventDefault();\n    // this.state.file is the file/image uploaded\n    // in this function you can save the image (this.state.file) on form submit\n    // you have to call it yourself\n  }\n  handleClick() {\n    var input = document.createElement(\"input\");\n    input.type = \"file\";\n    input.onchange = this.handleImageChange;\n    input.click();\n  }\n  handleRemove() {\n    this.setState({\n      file: null,\n      imagePreviewUrl: this.props.avatar ? defaultAvatar : defaultImage\n    });\n  }\n  render() {\n    return (\n      <div className=\"fileinput text-center\">\n        <div className={\"thumbnail\" + (this.props.avatar ? \" img-circle\" : \"\")}>\n          <img src={this.state.imagePreviewUrl} alt=\"...\" />\n        </div>\n        <div>\n          {this.state.file === null ? (\n            <Button round color=\"rose\" onClick={() => this.handleClick()}>\n              {this.props.avatar ? \"Add Photo\" : \"Select image\"}\n            </Button>\n          ) : (\n            <span>\n              <Button round color=\"rose\" onClick={() => this.handleClick()}>\n                Change\n              </Button>\n              {this.props.avatar ? <br /> : null}\n              <Button color=\"danger\" round onClick={() => this.handleRemove()}>\n                <i className=\"fa fa-times\" /> Remove\n              </Button>\n            </span>\n          )}\n        </div>\n      </div>\n    );\n  }\n}\n\nImageUpload.propTypes = {\n  avatar: PropTypes.bool\n};\n\nexport default ImageUpload;\n","// ##############################\n// // // CustomSelects styles\n// #############################\n\nimport { primaryColor, primaryBoxShadow } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst customSelectStyle = {\n  select: {\n    padding: \"12px 0 7px\",\n    \"&:focus\": {\n      backgroundColor: \"transparent\"\n    },\n    \"&[aria-owns] + input + svg\": {\n      transform: \"rotate(180deg)\"\n    },\n    \"& + input + svg\": {\n      transition: \"all 300ms linear\"\n    }\n  },\n  selectFormControl: {\n    \"& > div\": {\n      \"&:before\": {\n        backgroundColor: \"#D2D2D2 !important\",\n        height: \"1px !important\"\n      },\n      \"&:after\": {\n        backgroundColor: primaryColor\n      }\n    }\n  },\n  selectLabel: {\n    fontSize: \"12px\",\n    // textTransform: \"uppercase\",\n    color: \"#3C4858 !important\",\n    top: \"8px\"\n  },\n  selectMenu: {\n    \"& > div\": {\n      boxSizing: \"borderBox\",\n      borderRadius: \"4px\",\n      padding: \"0\",\n      minWidth: \"100%\",\n      display: \"block\",\n      border: \"0\",\n      boxShadow: \"0 2px 5px 0 rgba(0, 0, 0, 0.26)\",\n      backgroundClip: \"padding-box\",\n      margin: \"2px 0 0\",\n      fontSize: \"14px\",\n      textAlign: \"left\",\n      listStyle: \"none\",\n      backgroundColor: \"transparent\"\n    },\n    \"& > div > ul\": {\n      border: \"0\",\n      padding: \"5px 0\",\n      margin: \"0\",\n      boxShadow: \"none\",\n      minWidth: \"100%\",\n      borderRadius: \"4px\",\n      boxSizing: \"border-box\",\n      display: \"block\",\n      fontSize: \"14px\",\n      textAlign: \"left\",\n      listStyle: \"none\",\n      backgroundColor: \"#fff\",\n      backgroundClip: \"padding-box\"\n    }\n  },\n  selectMenuItem: {\n    fontSize: \"13px\",\n    padding: \"10px 20px\",\n    margin: \"0 5px\",\n    borderRadius: \"2px\",\n    transition: \"all 150ms linear\",\n    display: \"block\",\n    clear: \"both\",\n    fontWeight: \"400\",\n    lineHeight: \"2\",\n    whiteSpace: \"nowrap\",\n    color: \"#333\",\n    \"&:hover\": {\n      backgroundColor: primaryColor,\n      color: \"#FFFFFF\",\n      ...primaryBoxShadow\n    }\n  },\n  selectMenuItemSelected: {\n    backgroundColor: primaryColor + \"!important\",\n    color: \"#FFFFFF\"\n  }\n};\n\nexport default customSelectStyle;\n","// ##############################\n// // // ExtendedForms view styles\n// #############################\n\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\";\nimport customCheckboxRadioSwitch from \"assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx\";\n\nconst extendedFormsStyle = {\n  label: {\n    cursor: \"pointer\",\n    paddingLeft: \"0\",\n    color: \"rgba(0, 0, 0, 0.26)\",\n    fontSize: \"14px\",\n    lineHeight: \"1.428571429\",\n    fontWeight: \"400\",\n    display: \"inline-flex\"\n  },\n  ...customCheckboxRadioSwitch,\n  ...customSelectStyle\n};\n\nexport default extendedFormsStyle;\n","import React from \"react\";\n// react component plugin for creating a beautiful datetime dropdown picker\nimport Datetime from \"react-datetime\";\n// react component plugin for creating beatiful tags on an input\nimport TagsInput from \"react-tagsinput\";\n// react plugin that creates slider\nimport Nouislider from \"react-nouislider\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport FormControl from \"material-ui/Form/FormControl\";\nimport FormControlLabel from \"material-ui/Form/FormControlLabel\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\nimport Switch from \"material-ui/Switch\";\nimport Select from \"material-ui/Select\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\n\n// @material-ui/icons\nimport Today from \"@material-ui/icons/Today\";\nimport LibraryBooks from \"@material-ui/icons/LibraryBooks\";\nimport AvTimer from \"@material-ui/icons/AvTimer\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport CustomDropdown from \"components/CustomDropdown/CustomDropdown.jsx\";\nimport CustomLinearProgress from \"components/CustomLinearProgress/CustomLinearProgress.jsx\";\nimport ImageUpload from \"components/CustomUpload/ImageUpload.jsx\";\n\nimport extendedFormsStyle from \"assets/jss/material-dashboard-pro-react/views/extendedFormsStyle.jsx\";\n\nclass ExtendedForms extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      checkedA: true,\n      checkedB: false,\n      simpleSelect: \"\",\n      multipleSelect: [],\n      tags: [\"pizza\", \"pasta\", \"parmesan\"]\n    };\n    this.handleTags = this.handleTags.bind(this);\n  }\n  handleSimple = event => {\n    this.setState({ [event.target.name]: event.target.value });\n  };\n  handleMultiple = event => {\n    this.setState({ multipleSelect: event.target.value });\n  };\n  handleChange = name => event => {\n    this.setState({ [name]: event.target.checked });\n  };\n  handleTags(regularTags) {\n    this.setState({ tags: regularTags });\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <IconCard\n              icon={Today}\n              iconColor=\"rose\"\n              title=\"Datetime Picker\"\n              content={\n                <div>\n                  <InputLabel className={classes.label}>\n                    Datetime Picker\n                  </InputLabel>\n                  <br />\n                  <FormControl fullWidth>\n                    <Datetime\n                      inputProps={{ placeholder: \"Datetime Picker Here\" }}\n                    />\n                  </FormControl>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <IconCard\n              icon={LibraryBooks}\n              iconColor=\"rose\"\n              title=\"Datetime Picker\"\n              content={\n                <div>\n                  <InputLabel className={classes.label}>Date Picker</InputLabel>\n                  <br />\n                  <FormControl fullWidth>\n                    <Datetime\n                      timeFormat={false}\n                      inputProps={{ placeholder: \"Date Picker Here\" }}\n                    />\n                  </FormControl>\n                </div>\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <IconCard\n              icon={AvTimer}\n              iconColor=\"rose\"\n              title=\"Datetime Picker\"\n              content={\n                <div>\n                  <InputLabel className={classes.label}>Time Picker</InputLabel>\n                  <br />\n                  <FormControl fullWidth>\n                    <Datetime\n                      dateFormat={false}\n                      inputProps={{ placeholder: \"Time Picker Here\" }}\n                    />\n                  </FormControl>\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={12}>\n            <RegularCard\n              content={\n                <div>\n                  <br />\n                  <br />\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Switches</legend>\n                      <div className={classes.block}>\n                        <FormControlLabel\n                          control={\n                            <Switch\n                              checked={this.state.checkedA}\n                              onChange={this.handleChange(\"checkedA\")}\n                              value=\"checkedA\"\n                              classes={{\n                                checked: classes.switchChecked,\n                                bar: classes.switchBarChecked,\n                                icon: classes.switchIcon,\n                                default: classes.switchUnchecked,\n                                iconChecked: classes.switchIconChecked\n                              }}\n                            />\n                          }\n                          classes={{\n                            label: classes.label\n                          }}\n                          label=\"Toggle is on\"\n                        />\n                      </div>\n                      <div className={classes.block}>\n                        <FormControlLabel\n                          control={\n                            <Switch\n                              checked={this.state.checkedB}\n                              onChange={this.handleChange(\"checkedB\")}\n                              value=\"checkedB\"\n                              classes={{\n                                checked: classes.switchChecked,\n                                bar: classes.switchBarChecked,\n                                icon: classes.switchIcon,\n                                default: classes.switchUnchecked,\n                                iconChecked: classes.switchIconChecked\n                              }}\n                            />\n                          }\n                          classes={{\n                            label: classes.label\n                          }}\n                          label=\"Toggle is off\"\n                        />\n                      </div>\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Customisable Select</legend>\n                      <GridContainer>\n                        <ItemGrid xs={12} sm={6} md={5} lg={5}>\n                          <FormControl\n                            fullWidth\n                            className={classes.selectFormControl}\n                          >\n                            <InputLabel\n                              htmlFor=\"simple-select\"\n                              className={classes.selectLabel}\n                            >\n                              Choose City\n                            </InputLabel>\n                            <Select\n                              MenuProps={{\n                                className: classes.selectMenu\n                              }}\n                              classes={{\n                                select: classes.select\n                              }}\n                              value={this.state.simpleSelect}\n                              onChange={this.handleSimple}\n                              inputProps={{\n                                name: \"simpleSelect\",\n                                id: \"simple-select\"\n                              }}\n                            >\n                              <MenuItem\n                                disabled\n                                classes={{\n                                  root: classes.selectMenuItem\n                                }}\n                              >\n                                Choose City\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"2\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"3\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"4\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"5\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"6\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"7\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"8\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"9\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"10\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"11\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"12\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"13\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"14\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"15\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"16\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"17\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"18\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"19\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                            </Select>\n                          </FormControl>\n                        </ItemGrid>\n                        <ItemGrid xs={12} sm={6} md={5} lg={5}>\n                          <FormControl\n                            fullWidth\n                            className={classes.selectFormControl}\n                          >\n                            <InputLabel\n                              htmlFor=\"multiple-select\"\n                              className={classes.selectLabel}\n                            >\n                              Choose City\n                            </InputLabel>\n                            <Select\n                              multiple\n                              value={this.state.multipleSelect}\n                              onChange={this.handleMultiple}\n                              MenuProps={{ className: classes.selectMenu }}\n                              classes={{ select: classes.select }}\n                              inputProps={{\n                                name: \"multipleSelect\",\n                                id: \"multiple-select\"\n                              }}\n                            >\n                              <MenuItem\n                                disabled\n                                classes={{\n                                  root: classes.selectMenuItem\n                                }}\n                              >\n                                Choose City\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"2\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"3\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"4\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"5\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"6\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"7\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"8\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"9\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"10\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"11\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"12\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"13\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"14\"\n                              >\n                                Paris\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"15\"\n                              >\n                                Bucharest\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"16\"\n                              >\n                                Rome\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"17\"\n                              >\n                                New York\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"18\"\n                              >\n                                Miami\n                              </MenuItem>\n                              <MenuItem\n                                classes={{\n                                  root: classes.selectMenuItem,\n                                  selected: classes.selectMenuItemSelected\n                                }}\n                                value=\"19\"\n                              >\n                                Piatra Neamt\n                              </MenuItem>\n                            </Select>\n                          </FormControl>\n                        </ItemGrid>\n                      </GridContainer>\n                    </ItemGrid>\n                  </GridContainer>\n                  <br />\n                  <br />\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Tags</legend>\n                      <TagsInput\n                        value={this.state.tags}\n                        onChange={this.handleTags}\n                        tagProps={{ className: \"react-tagsinput-tag info\" }}\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Dropdown & Dropup</legend>\n                      <GridContainer>\n                        <ItemGrid xs={12} sm={6} md={5} lg={4}>\n                          <CustomDropdown\n                            buttonColor=\"info\"\n                            buttonText=\"Dropdown\"\n                            buttonProps={{\n                              round: true,\n                              fullWidth: true,\n                              style: { marginBottom: \"0\" }\n                            }}\n                            dropdownHeader=\"Dropdown header\"\n                            dropdownList={[\n                              \"Action\",\n                              \"Another action\",\n                              \"Something else here\",\n                              { divider: true },\n                              \"Separated link\",\n                              { divider: true },\n                              \"One more separated link\"\n                            ]}\n                          />\n                        </ItemGrid>\n                        <ItemGrid xs={12} sm={6} md={5} lg={4}>\n                          <CustomDropdown\n                            dropup\n                            buttonColor=\"info\"\n                            buttonText=\"Dropup\"\n                            buttonProps={{\n                              round: true,\n                              fullWidth: true,\n                              style: { marginBottom: \"0\" }\n                            }}\n                            dropdownHeader=\"Dropdown header\"\n                            dropdownList={[\n                              \"Action\",\n                              \"Another action\",\n                              \"Something else here\",\n                              { divider: true },\n                              \"Separated link\",\n                              { divider: true },\n                              \"One more separated link\"\n                            ]}\n                          />\n                        </ItemGrid>\n                      </GridContainer>\n                    </ItemGrid>\n                  </GridContainer>\n                  <br />\n                  <br />\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Progress Bars</legend>\n                      <CustomLinearProgress\n                        variant=\"determinate\"\n                        color=\"primary\"\n                        value={30}\n                      />\n                      <CustomLinearProgress\n                        variant=\"determinate\"\n                        color=\"info\"\n                        value={60}\n                      />\n                      <CustomLinearProgress\n                        variant=\"determinate\"\n                        color=\"success\"\n                        value={100}\n                        style={{ width: \"35%\", display: \"inline-block\" }}\n                      />\n                      <CustomLinearProgress\n                        variant=\"determinate\"\n                        color=\"warning\"\n                        value={100}\n                        style={{ width: \"20%\", display: \"inline-block\" }}\n                      />\n                      <CustomLinearProgress\n                        variant=\"determinate\"\n                        color=\"danger\"\n                        value={25}\n                        style={{ width: \"45%\", display: \"inline-block\" }}\n                      />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={12} md={6}>\n                      <legend>Sliders</legend>\n                      <Nouislider\n                        start={[40]}\n                        connect={[true, false]}\n                        step={1}\n                        range={{ min: 0, max: 100 }}\n                      />\n                      <br />\n                      <div className=\"slider slider-info\">\n                        <Nouislider\n                          start={[20, 60]}\n                          connect={[false, true, false]}\n                          step={1}\n                          range={{ min: 0, max: 100 }}\n                        />\n                      </div>\n                    </ItemGrid>\n                  </GridContainer>\n                  <GridContainer>\n                    <ItemGrid xs={12} sm={4} md={4}>\n                      <legend>Regular Image</legend>\n                      <ImageUpload />\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4} md={3}>\n                      <legend>Avatar</legend>\n                      <ImageUpload avatar />\n                    </ItemGrid>\n                  </GridContainer>\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(extendedFormsStyle)(ExtendedForms);\n","// ##############################\n// // // ValidationForms view styles\n// #############################\n\nimport customCheckboxRadioSwitch from \"assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx\";\n\nconst validationFormsStyle = {\n  formCategory: {\n    marginBottom: \"0\",\n    color: \"#999999\",\n    fontSize: \"14px\",\n    padding: \"10px 0 10px\"\n  },\n  ...customCheckboxRadioSwitch,\n  center: {\n    textAlign: \"center\"\n  }\n};\n\nexport default validationFormsStyle;\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport FormControlLabel from \"material-ui/Form/FormControlLabel\";\nimport FormLabel from \"material-ui/Form/FormLabel\";\nimport Checkbox from \"material-ui/Checkbox\";\n\n// material ui icons\nimport MailOutline from \"@material-ui/icons/MailOutline\";\nimport Contacts from \"@material-ui/icons/Contacts\";\nimport Check from \"@material-ui/icons/Check\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\n// style for this view\nimport validationFormsStyle from \"assets/jss/material-dashboard-pro-react/views/validationFormsStyle.jsx\";\n\nclass ValidationForms extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      // register form\n      registerEmail: \"\",\n      registerEmailState: \"\",\n      registerPassword: \"\",\n      registerPasswordState: \"\",\n      registerConfirmPassword: \"\",\n      registerConfirmPasswordState: \"\",\n      registerCheckbox: false,\n      registerCheckboxState: \"\",\n      // login form\n      loginEmail: \"\",\n      loginEmailState: \"\",\n      loginPassword: \"\",\n      loginPasswordState: \"\",\n      // type validation\n      required: \"\",\n      requiredState: \"\",\n      typeEmail: \"\",\n      typeEmailState: \"\",\n      number: \"\",\n      numberState: \"\",\n      url: \"\",\n      urlState: \"\",\n      equalTo: \"\",\n      whichEqualTo: \"\",\n      equalToState: \"\",\n      // range validation\n      minLength: \"\",\n      minLengthState: \"\",\n      maxLength: \"\",\n      maxLengthState: \"\",\n      range: \"\",\n      rangeState: \"\",\n      minValue: \"\",\n      minValueState: \"\",\n      maxValue: \"\",\n      maxValueState: \"\"\n    };\n    this.registerClick = this.registerClick.bind(this);\n    this.loginClick = this.loginClick.bind(this);\n    this.typeClick = this.typeClick.bind(this);\n    this.rangeClick = this.rangeClick.bind(this);\n  }\n  // function that returns true if value is email, false otherwise\n  verifyEmail(value) {\n    var emailRex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n    if (emailRex.test(value)) {\n      return true;\n    }\n    return false;\n  }\n  // function that verifies if a string has a given length or not\n  verifyLength(value, length) {\n    if (value.length >= length) {\n      return true;\n    }\n    return false;\n  }\n  // function that verifies if two strings are equal\n  compare(string1, string2) {\n    if (string1 === string2) {\n      return true;\n    }\n    return false;\n  }\n  // function that verifies if value contains only numbers\n  verifyNumber(value) {\n    var numberRex = new RegExp(\"^[0-9]+$\");\n    if (numberRex.test(value)) {\n      return true;\n    }\n    return false;\n  }\n  // verifies if value is a valid URL\n  verifyUrl(value) {\n    try {\n      new URL(value);\n      return true;\n    } catch (_) {\n      return false;\n    }\n  }\n  change(event, stateName, type, stateNameEqualTo, maxValue) {\n    switch (type) {\n      case \"email\":\n        if (this.verifyEmail(event.target.value)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"password\":\n        if (this.verifyLength(event.target.value, 1)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"equalTo\":\n        if (this.compare(event.target.value, this.state[stateNameEqualTo])) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"checkbox\":\n        if (event.target.checked) {\n          this.setState({ [stateName + \"State\"]: \"\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"number\":\n        if (this.verifyNumber(event.target.value)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"length\":\n        if (this.verifyLength(event.target.value, stateNameEqualTo)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"max-length\":\n        if (!this.verifyLength(event.target.value, stateNameEqualTo + 1)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"url\":\n        if (this.verifyUrl(event.target.value)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"min-value\":\n        if (\n          this.verifyNumber(event.target.value) &&\n          event.target.value >= stateNameEqualTo\n        ) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"max-value\":\n        if (\n          this.verifyNumber(event.target.value) &&\n          event.target.value <= stateNameEqualTo\n        ) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"range\":\n        if (\n          this.verifyNumber(event.target.value) &&\n          event.target.value >= stateNameEqualTo &&\n          event.target.value <= maxValue\n        ) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      default:\n        break;\n    }\n    switch (type) {\n      case \"checkbox\":\n        this.setState({ [stateName]: event.target.checked });\n        break;\n      default:\n        this.setState({ [stateName]: event.target.value });\n        break;\n    }\n  }\n  registerClick() {\n    if (this.state.registerEmailState === \"\") {\n      this.setState({ registerEmailState: \"error\" });\n    }\n    if (this.state.registerPasswordState === \"\") {\n      this.setState({ registerPasswordState: \"error\" });\n    }\n    if (this.state.registerConfirmPasswordState === \"\") {\n      this.setState({ registerConfirmPasswordState: \"error\" });\n    }\n    if (this.state.registerCheckboxState === \"\") {\n      this.setState({ registerCheckboxState: \"error\" });\n    }\n  }\n  loginClick() {\n    if (this.state.loginEmailState === \"\") {\n      this.setState({ loginEmailState: \"error\" });\n    }\n    if (this.state.loginPasswordState === \"\") {\n      this.setState({ loginPasswordState: \"error\" });\n    }\n  }\n  typeClick() {\n    if (this.state.requiredState === \"\") {\n      this.setState({ requiredState: \"error\" });\n    }\n    if (this.state.typeEmailState === \"\") {\n      this.setState({ typeEmailState: \"error\" });\n    }\n    if (this.state.numberState === \"\") {\n      this.setState({ numberState: \"error\" });\n    }\n    if (this.state.urlState === \"\") {\n      this.setState({ urlState: \"error\" });\n    }\n    if (this.state.equalToState === \"\") {\n      this.setState({ equalToState: \"error\" });\n    }\n  }\n  rangeClick() {\n    if (this.state.minLengthState === \"\") {\n      this.setState({ minLengthState: \"error\" });\n    }\n    if (this.state.maxLengthState === \"\") {\n      this.setState({ maxLengthState: \"error\" });\n    }\n    if (this.state.rangeState === \"\") {\n      this.setState({ rangeState: \"error\" });\n    }\n    if (this.state.minValueState === \"\") {\n      this.setState({ minValueState: \"error\" });\n    }\n    if (this.state.maxValueState === \"\") {\n      this.setState({ maxValueState: \"error\" });\n    }\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <GridContainer>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            icon={MailOutline}\n            iconColor=\"rose\"\n            title=\"Register Forms\"\n            content={\n              <form>\n                <CustomInput\n                  success={this.state.registerEmailState === \"success\"}\n                  error={this.state.registerEmailState === \"error\"}\n                  labelText=\"Email Address *\"\n                  id=\"registeremail\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    onChange: event =>\n                      this.change(event, \"registerEmail\", \"email\"),\n                    type: \"email\"\n                  }}\n                />\n                <CustomInput\n                  success={this.state.registerPasswordState === \"success\"}\n                  error={this.state.registerPasswordState === \"error\"}\n                  labelText=\"Password *\"\n                  id=\"registerpassword\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    onChange: event =>\n                      this.change(event, \"registerPassword\", \"password\"),\n                    type: \"password\"\n                  }}\n                />\n                <CustomInput\n                  success={\n                    this.state.registerConfirmPasswordState === \"success\"\n                  }\n                  error={this.state.registerConfirmPasswordState === \"error\"}\n                  labelText=\"Confirm Password *\"\n                  id=\"registerconfirmpassword\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    onChange: event =>\n                      this.change(\n                        event,\n                        \"registerConfirmPassword\",\n                        \"equalTo\",\n                        \"registerPassword\"\n                      ),\n                    type: \"password\"\n                  }}\n                />\n                <div className={classes.formCategory}>\n                  <small>*</small> Required fields\n                </div>\n                <FormControlLabel\n                  control={\n                    <Checkbox\n                      tabIndex={-1}\n                      onClick={event =>\n                        this.change(event, \"registerCheckbox\", \"checkbox\")\n                      }\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />\n                  }\n                  classes={{\n                    label:\n                      classes.label +\n                      (this.state.registerCheckboxState === \"error\"\n                        ? \" \" + classes.labelError\n                        : \"\")\n                  }}\n                  label=\"Subscribe to newsletter\"\n                />\n                <Button color=\"rose\" right onClick={this.registerClick}>\n                  Register\n                </Button>\n              </form>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            icon={Contacts}\n            iconColor=\"rose\"\n            title=\"Login Form\"\n            content={\n              <form>\n                <CustomInput\n                  success={this.state.loginEmailState === \"success\"}\n                  error={this.state.loginEmailState === \"error\"}\n                  labelText=\"Email Address *\"\n                  id=\"loginemail\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    onChange: event =>\n                      this.change(event, \"loginEmail\", \"email\"),\n                    type: \"email\"\n                  }}\n                />\n                <CustomInput\n                  success={this.state.loginPasswordState === \"success\"}\n                  error={this.state.loginPasswordState === \"error\"}\n                  labelText=\"Password *\"\n                  id=\"loginpassword\"\n                  formControlProps={{\n                    fullWidth: true\n                  }}\n                  inputProps={{\n                    onChange: event =>\n                      this.change(event, \"loginPassword\", \"password\"),\n                    type: \"password\"\n                  }}\n                />\n                <div className={classes.formCategory}>\n                  <small>*</small> Required fields\n                </div>\n                <div className={classes.center}>\n                  <Button color=\"rose\" onClick={this.loginClick}>\n                    Login\n                  </Button>\n                </div>\n              </form>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={12}>\n          <HeaderCard\n            cardTitle=\"Type Validation\"\n            headerColor=\"rose\"\n            content={\n              <form>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Required Text\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.requiredState === \"success\"}\n                      error={this.state.requiredState === \"error\"}\n                      id=\"required\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"required\", \"length\", 0),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>required</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Email\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.typeEmailState === \"success\"}\n                      error={this.state.typeEmailState === \"error\"}\n                      id=\"typeemail\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"typeEmail\", \"email\"),\n                        type: \"email\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>email</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Number\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.numberState === \"success\"}\n                      error={this.state.numberState === \"error\"}\n                      id=\"number\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"number\", \"number\"),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>number</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Url\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.urlState === \"success\"}\n                      error={this.state.urlState === \"error\"}\n                      id=\"url\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event => this.change(event, \"url\", \"url\"),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>url</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Equal to\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <CustomInput\n                      success={this.state.equalToState === \"success\"}\n                      error={this.state.equalToState === \"error\"}\n                      id=\"equalto\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event => this.change(event, \"whichEqualTo\"),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <CustomInput\n                      success={this.state.equalToState === \"success\"}\n                      error={this.state.equalToState === \"error\"}\n                      id=\"whichequalto\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(\n                            event,\n                            \"equalTo\",\n                            \"equalTo\",\n                            \"whichEqualTo\"\n                          ),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>equalTo</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n              </form>\n            }\n            footer={\n              <Button color=\"rose\" onClick={this.typeClick}>\n                Validate Inputs\n              </Button>\n            }\n            footerAlign=\"center\"\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={12}>\n          <HeaderCard\n            cardTitle=\"Range Validation\"\n            headerColor=\"rose\"\n            content={\n              <form>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Min Length\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.minLengthState === \"success\"}\n                      error={this.state.minLengthState === \"error\"}\n                      id=\"minlength\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"minLength\", \"length\", 5),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>minLength=\"5\"</code>\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Max Length\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.maxLengthState === \"success\"}\n                      error={this.state.maxLengthState === \"error\"}\n                      id=\"maxlength\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"maxLength\", \"max-length\", 5),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>maxLength=\"5\"</code>\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Range\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.rangeState === \"success\"}\n                      error={this.state.rangeState === \"error\"}\n                      id=\"range\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"range\", \"range\", 6, 10),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>range=\"[6,10]\"</code>\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Min Value\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.minValueState === \"success\"}\n                      error={this.state.minValueState === \"error\"}\n                      id=\"minvalue\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"minValue\", \"min-value\", 6),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>min=\"6\"</code>\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={2}>\n                    <FormLabel className={classes.labelHorizontal}>\n                      Max Value\n                    </FormLabel>\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={7}>\n                    <CustomInput\n                      success={this.state.maxValueState === \"success\"}\n                      error={this.state.maxValueState === \"error\"}\n                      id=\"maxvalue\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        onChange: event =>\n                          this.change(event, \"maxValue\", \"max-value\", 6),\n                        type: \"text\"\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={3}>\n                    <FormLabel className={classes.labelLeftHorizontal}>\n                      <code>max=\"6\"</code>\n                    </FormLabel>\n                  </ItemGrid>\n                </GridContainer>\n              </form>\n            }\n            footer={\n              <Button color=\"rose\" onClick={this.rangeClick}>\n                Validate Inputs\n              </Button>\n            }\n            footerAlign=\"center\"\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(validationFormsStyle)(ValidationForms);\n","// ##############################\n// // // Wizard component styles\n// #############################\n\nimport {\n  primaryColor,\n  dangerColor,\n  successColor,\n  roseColor,\n  infoColor,\n  warningColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst wizardStyle = {\n  wizardContainer: {},\n  card: {\n    display: \"inline-block\",\n    position: \"relative\",\n    width: \"100%\",\n    margin: \"25px 0\",\n    boxShadow: \"0 1px 4px 0 rgba(0, 0, 0, 0.14)\",\n    borderRadius: \"6px\",\n    color: \"rgba(0, 0, 0, 0.87)\",\n    background: \"#fff\",\n    transition: \"all 300ms linear\",\n    minHeight: \"410px\"\n  },\n  wizardHeader: {\n    textAlign: \"center\",\n    padding: \"25px 0 35px\"\n  },\n  title: {\n    margin: \"0\"\n  },\n  subtitle: {\n    margin: \"5px 0 0\"\n  },\n  wizardNavigation: {\n    position: \"relative\"\n  },\n  nav: {\n    marginTop: \"20px\",\n    paddingLeft: \"0\",\n    marginBottom: \"0\",\n    listStyle: \"none\",\n    backgroundColor: \"rgba(200, 200, 200, 0.2)\",\n    \"&:after,&:before\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      boxSizing: \"border-box\"\n    }\n  },\n  steps: {\n    marginLeft: \"0\",\n    textAlign: \"center\",\n    // float: \"left\",\n    // display: \"block\",\n    position: \"relative\",\n    display: \"inline-block\"\n  },\n  stepsAnchor: {\n    cursor: \"pointer\",\n    position: \"relative\",\n    display: \"block\",\n    padding: \"10px 15px\",\n    textDecoration: \"none\",\n    transition: \"all .3s\",\n    border: \"0 !important\",\n    borderRadius: \"30px\",\n    lineHeight: \"18px\",\n    textTransform: \"uppercase\",\n    fontSize: \"12px\",\n    fontWeight: \"500\",\n    minWidth: \"100px\",\n    textAlign: \"center\",\n    color: \"#555555 !important\"\n  },\n  content: {\n    marginTop: \"20px\",\n    minHeight: \"340px\",\n    padding: \"20px 15px\"\n  },\n  stepContent: {\n    display: \"none\"\n  },\n  stepContentActive: {\n    display: \"block\"\n  },\n  movingTab: {\n    position: \"absolute\",\n    textAlign: \"center\",\n    padding: \"12px\",\n    fontSize: \"12px\",\n    textTransform: \"uppercase\",\n    WebkitFontSmoothing: \"subpixel-antialiased\",\n    top: \"-4px\",\n    left: \"0px\",\n    borderRadius: \"4px\",\n    color: \"#FFFFFF\",\n    cursor: \"pointer\",\n    fontWeight: \"500\"\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4)\"\n  },\n  warning: {\n    backgroundColor: warningColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)\"\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4)\"\n  },\n  success: {\n    backgroundColor: successColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4)\"\n  },\n  info: {\n    backgroundColor: infoColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4)\"\n  },\n  rose: {\n    backgroundColor: roseColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(233, 30, 99, 0.4)\"\n  },\n  footer: {\n    padding: \"0 15px\"\n  },\n  left: {\n    float: \"left!important\"\n  },\n  right: {\n    float: \"right!important\"\n  },\n  clearfix: {\n    \"&:after,&:before\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    clear: \"both\"\n  }\n};\n\nexport default wizardStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\";\n\n\n// core components\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport wizardStyle from \"assets/jss/material-dashboard-pro-react/components/wizardStyle.jsx\";\n\nclass Wizard extends React.Component {\n  constructor(props) {\n    super(props);\n    var width;\n    if (this.props.steps.length === 1) {\n      width = \"100%\";\n    } else {\n      if (window.innerWidth < 600) {\n        if (this.props.steps.length !== 3) {\n          width = \"50%\";\n        } else {\n          width = 100 / 3 + \"%\";\n        }\n      } else {\n        if (this.props.steps.length === 2) {\n          width = \"50%\";\n        } else {\n          width = 100 / 3 + \"%\";\n        }\n      }\n    }\n    this.state = {\n      currentStep: 0,\n      color: this.props.color,\n      cancelButton: this.props.cancelButtonClick,\n      nextButton: this.props.steps.length > 1 ? true : false,\n      previousButton: false,\n      finishButton: this.props.steps.length === 1 ? true : false,\n      batchButton: false,\n      width: width,\n      movingTabStyle: {\n        transition: \"transform 0s\"\n      }\n    };\n    this.navigationStepChange = this.navigationStepChange.bind(this);\n    this.refreshAnimation = this.refreshAnimation.bind(this);\n    this.cancelButtonClick = this.cancelButtonClick.bind(this);\n    this.previousButtonClick = this.previousButtonClick.bind(this);\n    this.finishButtonClick = this.finishButtonClick.bind(this);\n    this.renderWizardNavigation = this.renderWizardNavigation.bind(this);\n    this.showBatchButton = this.showBatchButton.bind(this);\n    this.batchButtonClick = this.batchButtonClick.bind(this);\n    this.getOutput = this.getOutput.bind(this);\n  }\n  componentDidMount() {\n    this.refreshAnimation(0);\n    window.addEventListener(\"resize\", this.updateWidth.bind(this));\n  }\n  componentWillUnmount() {\n    window.removeEventListener(\"resize\", this.updateWidth.bind(this), true);\n  }\n  updateWidth() {\n    this.refreshAnimation(this.state.currentStep);\n  }\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    if (this.props.batchButtonText && prevProps !== this.props) {\n      this.showBatchButton()\n    }\n  }\n  navigationStepChange(key) {\n    if (this.props.steps) {\n      var validationState = true;\n      if (key > this.state.currentStep) {\n        for (var i = this.state.currentStep; i < key; i++) {\n          if (\n            this[this.props.steps[i].stepId].isValidated !== undefined &&\n            this[this.props.steps[i].stepId].isValidated() === false\n          ) {\n            validationState = false;\n            break;\n          }\n        }\n      }\n      if (validationState) {\n        this.setState({\n          currentStep: key,\n          nextButton: this.props.steps.length > key + 1 ? true : false,\n          previousButton: key > 0 ? true : false,\n          cancelButton: key > 0 ? false : this.props.cancelButtonClick,\n          finishButton: this.props.steps.length === key + 1 ? true : false\n        });\n        this.refreshAnimation(key);\n      }\n    }\n  }\n  cancelButtonClick() {\n    this.props.cancelButtonClick();\n  }\n  nextButtonClick() {\n    if (\n      (this.props.validate &&\n        ((this[this.props.steps[this.state.currentStep].stepId].isValidated !==\n          undefined &&\n          this[\n            this.props.steps[this.state.currentStep].stepId\n          ].isValidated()) ||\n          this[this.props.steps[this.state.currentStep].stepId].isValidated ===\n            undefined)) ||\n      this.props.validate === undefined\n    ) {\n      var key = this.state.currentStep + 1;\n      this.setState({\n        currentStep: key,\n        nextButton: this.props.steps.length > key + 1 ? true : false,\n        previousButton: key > 0 ? true : false,\n        cancelButton: key > 0 ? false : this.props.cancelButtonClick,\n        finishButton: this.props.steps.length === key + 1 ? true : false\n      });\n      this.refreshAnimation(key);\n    }\n  }\n  previousButtonClick() {\n    var key = this.state.currentStep - 1;\n    if (key >= 0) {\n      this.setState({\n        currentStep: key,\n        nextButton: this.props.steps.length > key + 1 ? true : false,\n        previousButton: key > 0 ? true : false,\n        cancelButton: key > 0 ? false : this.props.cancelButtonClick,\n        finishButton: this.props.steps.length === key + 1 ? true : false\n      });\n      this.refreshAnimation(key);\n    }\n  }\n  getOutput() {\n    const currentStepComponent = this[this.props.steps[this.state.currentStep].stepId];\n\n    if (this.props.validate &&\n      ((currentStepComponent.isValidated !== undefined && currentStepComponent.isValidated()) || currentStepComponent.isValidated === undefined) &&\n      this.props.finishButtonClick !== undefined) {\n        let output = { };\n        this.props.steps.forEach(step => {\n          output = {\n            ...output,\n            ...this[step.stepId].getFormOutput()\n          };\n        });\n        return output;\n      }\n  }\n  finishButtonClick() {    \n    let output = this.getOutput();\n    if (output) {\n      output.doBatchSchedule = false;\n      this.props.finishButtonClick(output);\n    }\n  }\n  batchButtonClick() {    \n    const output = this.getOutput();\n    if (output) {      \n      this.props.finishButtonClick(output);\n    }\n  }\n  showBatchButton() {\n    if (this[this.props.steps[1].stepId].state.doBatchSchedule) {\n      this.setState({ batchButton: true });\n    } else {\n      this.setState({ batchButton: false });\n    }\n  }\n\n  refreshAnimation(index) {\n    var total = this.props.steps.length;\n    var li_width = 100 / total;\n    var total_steps = this.props.steps.length;\n    var move_distance = this.refs.wizard.children[0].offsetWidth / total_steps;\n    var index_temp = index;\n    var vertical_level = 0;\n\n    var mobile_device = window.innerWidth < 600 && total > 3;\n\n    if (mobile_device) {\n      move_distance = this.refs.wizard.children[0].offsetWidth / 2;\n      index_temp = index % 2;\n      li_width = 50;\n    }\n\n    this.setState({ width: li_width + \"%\" });\n\n    var step_width = move_distance;\n    move_distance = move_distance * index_temp;\n\n    var current = index + 1;\n\n    if (current === 1 || (mobile_device === true && index % 2 === 0)) {\n      move_distance -= 8;\n    } else if (\n      current === total_steps ||\n      (mobile_device === true && index % 2 === 1)\n    ) {\n      move_distance += 8;\n    }\n\n    if (mobile_device) {\n      vertical_level = parseInt(index / 2, 10);\n      vertical_level = vertical_level * 38;\n    }\n    var movingTabStyle = {\n      width: step_width,\n      transform:\n        \"translate3d(\" + move_distance + \"px, \" + vertical_level + \"px, 0)\",\n      transition: \"all 0.5s cubic-bezier(0.29, 1.42, 0.79, 1)\"\n    };\n    this.setState({ movingTabStyle: movingTabStyle });\n  }\n\n  renderWizardNavigation() {\n    const { classes, title, subtitle, color, steps } = this.props;\n    \n    if(this.props.steps.length > 1) {\n      return (\n        <div className={classes.wizardNavigation}>\n          <ul className={classes.nav}>\n            {steps.map((prop, key) => {\n              return (\n                <li\n                  className={classes.steps}\n                  key={key}\n                  style={{ width: this.state.width }}\n                >\n                  <a\n                    className={classes.stepsAnchor}\n                    onClick={() => this.navigationStepChange(key)}\n                  >\n                    {prop.stepName}\n                  </a>\n                </li>\n              );\n            })}\n          </ul>\n          <div\n            className={classes.movingTab + \" \" + classes[color]}\n            style={this.state.movingTabStyle}\n          >\n            {steps[this.state.currentStep].stepName}\n          </div>\n        </div>\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  render() {\n    const { classes, title, subtitle, color, steps, finishButtonDisabled } = this.props;\n\n    return (\n      <div className={classes.wizardContainer} ref=\"wizard\">\n        <HeaderCard\n            headerColor=\"orange\"\n            cardTitle={title}\n            cardSubtitle={subtitle}\n            content={\n              <div>\n                {this.renderWizardNavigation()}\n                <div className={classes.content}>\n                  {steps.map((prop, key) => {\n                    const stepContentClasses = cx({\n                      [classes.stepContentActive]: this.state.currentStep === key,\n                      [classes.stepContent]: this.state.currentStep !== key\n                    });\n                    return (\n                      <div className={stepContentClasses} key={key}>\n                        {/* <prop.stepComponent innerRef={prop.stepId}/> */}\n                        <prop.stepComponent\n                          innerRef={node => (this[prop.stepId] = node)}\n                          {...this.props.stepsProps}\n                        />\n                      </div>\n                    );\n                  })}\n                </div>\n                <div className={classes.footer}>\n                  <div className={classes.left}>\n                    {this.state.previousButton ? (\n                      <Button\n                        customClass={this.props.previousButtonClasses}\n                        onClick={() => this.previousButtonClick()}\n                      >\n                        {this.props.previousButtonText}\n                      </Button>\n                    ) : null}\n                    {this.state.cancelButton ? (\n                      <Button\n                        customClass={this.props.previousButtonClasses}\n                        onClick={() => this.cancelButtonClick()}\n                      >\n                        {this.props.cancelButtonText}\n                      </Button>\n                    ) : null}\n                  </div>\n                  <div className={classes.right}>\n                    {this.state.nextButton ? (\n                      <Button\n                        color=\"primary\"\n                        customClass={this.props.nextButtonClasses}\n                        onClick={() => this.nextButtonClick()}\n                      >\n                        {this.props.nextButtonText}\n                      </Button>\n                    ) : null}\n                    {this.state.batchButton && this.state.finishButton ? (\n                        <Button\n                          color=\"primary\"\n                          disabled={finishButtonDisabled}\n                          customClass={this.props.finishButtonClasses}\n                          onClick={() => this.batchButtonClick()}\n                        >                          \n                          {this.props.batchButtonText}\n                        </Button>\n                      ) : null}\n                    {this.state.finishButton ? (\n                      <Button\n                        color=\"primary\"\n                        disabled={finishButtonDisabled}\n                        customClass={this.finishButtonClasses}\n                        onClick={() => this.finishButtonClick()}\n                      >\n                        {this.state.batchButton ? this.props.finishOneButtonText : this.props.finishButtonText}                        \n                      </Button>\n                    ) : null}\n                  </div>\n                  <div className={classes.clearfix} />\n                </div>\n              </div>\n            }\n          />\n      </div>\n    );\n  }\n}\n\nWizard.defaultProps = {\n  color: \"primary\",\n  title: \"Here should go your title\",\n  subtitle: \"And this would be your subtitle\",\n  previousButtonText: \"Previous\",\n  previousButtonClasses: \"\",\n  nextButtonClasses: \"\",\n  nextButtonText: \"Next\",\n  cancelButtonClasses: \"\",\n  cancelButtonText: \"Cancel\",\n  finishButtonClasses: \"\",\n  finishButtonText: \"Finish\"\n};\n\nWizard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  steps: PropTypes.arrayOf(\n    PropTypes.shape({\n      stepName: PropTypes.string.isRequired,\n      stepComponent: PropTypes.func.isRequired,\n      stepId: PropTypes.string.isRequired\n    })\n  ).isRequired,\n  color: PropTypes.oneOf([\n    \"primary\",\n    \"warning\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\"\n  ]),\n  title: PropTypes.string,\n  subtitle: PropTypes.string,\n  previousButtonClasses: PropTypes.string,\n  previousButtonText: PropTypes.string,\n  nextButtonClasses: PropTypes.string,\n  nextButtonText: PropTypes.string,\n  finishButtonClasses: PropTypes.string,\n  finishButtonText: PropTypes.string,\n  finishButtonClick: PropTypes.func,\n  validate: PropTypes.bool\n};\n\nexport default withStyles(wizardStyle)(Wizard);\n","import React from \"react\";\n\nimport defaultImage from \"assets/img/default-avatar.png\";\n\nclass PictureUpload extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      file: null,\n      imagePreviewUrl: defaultImage\n    };\n    this.handleImageChange = this.handleImageChange.bind(this);\n    this.handleSubmit = this.handleSubmit.bind(this);\n  }\n  handleImageChange(e) {\n    e.preventDefault();\n    let reader = new FileReader();\n    let file = e.target.files[0];\n    reader.onloadend = () => {\n      this.setState({\n        file: file,\n        imagePreviewUrl: reader.result\n      });\n    };\n    reader.readAsDataURL(file);\n  }\n  handleSubmit(e) {\n    e.preventDefault();\n    // this.state.file is the file/image uploaded\n    // in this function you can save the image (this.state.file) on form submit\n    // you have to call it yourself\n  }\n  render() {\n    return (\n      <div className=\"picture-container\">\n        <div className=\"picture\">\n          <img\n            src={this.state.imagePreviewUrl}\n            className=\"picture-src\"\n            alt=\"...\"\n          />\n          <input type=\"file\" onChange={e => this.handleImageChange(e)} />\n        </div>\n        <h6 className=\"description\">Choose Picture</h6>\n      </div>\n    );\n  }\n}\n\nexport default PictureUpload;\n","import React from \"react\";\n\n// @material-ui/icons\nimport Face from \"@material-ui/icons/Face\";\nimport RecordVoiceOver from \"@material-ui/icons/RecordVoiceOver\";\nimport Email from \"@material-ui/icons/Email\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport InputAdornment from \"material-ui/Input/InputAdornment\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport PictureUpload from \"components/CustomUpload/PictureUpload.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\n\nconst style = {\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  inputAdornmentIcon: {\n    color: \"#555\"\n  },\n  inputAdornment: {\n    top: \"3px\",\n    position: \"relative\",\n  }\n};\n\nclass Step1 extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      firstname: \"\",\n      firstnameState: \"\",\n      lastname: \"\",\n      lastnameState: \"\",\n      email: \"\",\n      emailState: \"\"\n    };\n  }\n  // function that returns true if value is email, false otherwise\n  verifyEmail(value) {\n    var emailRex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n    if (emailRex.test(value)) {\n      return true;\n    }\n    return false;\n  }\n  // function that verifies if a string has a given length or not\n  verifyLength(value, length) {\n    if (value.length >= length) {\n      return true;\n    }\n    return false;\n  }\n  change(event, stateName, type, stateNameEqualTo) {\n    switch (type) {\n      case \"email\":\n        if (this.verifyEmail(event.target.value)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      case \"length\":\n        if (this.verifyLength(event.target.value, stateNameEqualTo)) {\n          this.setState({ [stateName + \"State\"]: \"success\" });\n        } else {\n          this.setState({ [stateName + \"State\"]: \"error\" });\n        }\n        break;\n      default:\n        break;\n    }\n    this.setState({ [stateName]: event.target.value });\n  }\n  isValidated() {\n    if (\n      this.state.firstnameState === \"success\" &&\n      this.state.lastnameState === \"success\" &&\n      this.state.emailState === \"success\"\n    ) {\n      return true;\n    } else {\n      if (this.state.firstnameState !== \"success\") {\n        this.setState({ firstnameState: \"error\" });\n      }\n      if (this.state.lastnameState !== \"success\") {\n        this.setState({ lastnameState: \"error\" });\n      }\n      if (this.state.emailState !== \"success\") {\n        this.setState({ emailState: \"error\" });\n      }\n    }\n    return false;\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <GridContainer justify=\"center\">\n        <ItemGrid xs={12} sm={12}>\n          <h4 className={classes.infoText}>\n            Let's start with the basic information (with validation)\n          </h4>\n        </ItemGrid>\n        <ItemGrid xs={12} sm={4}>\n          <PictureUpload />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={6}>\n          <CustomInput\n            success={this.state.firstnameState === \"success\"}\n            error={this.state.firstnameState === \"error\"}\n            labelText={\n              <span>\n                First Name <small>(required)</small>\n              </span>\n            }\n            id=\"firstname\"\n            formControlProps={{\n              fullWidth: true\n            }}\n            inputProps={{\n              onChange: event => this.change(event, \"firstname\", \"length\", 3),\n              endAdornment: (\n                <InputAdornment position=\"end\" className={classes.inputAdornment}>\n                  <Face className={classes.inputAdornmentIcon} />\n                </InputAdornment>\n              )\n            }}\n          />\n          <CustomInput\n            success={this.state.lastnameState === \"success\"}\n            error={this.state.lastnameState === \"error\"}\n            labelText={\n              <span>\n                Last Name <small>(required)</small>\n              </span>\n            }\n            id=\"lastname\"\n            formControlProps={{\n              fullWidth: true\n            }}\n            inputProps={{\n              onChange: event => this.change(event, \"lastname\", \"length\", 3),\n              endAdornment: (\n                <InputAdornment position=\"end\" className={classes.inputAdornment}>\n                  <RecordVoiceOver className={classes.inputAdornmentIcon} />\n                </InputAdornment>\n              )\n            }}\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={12} lg={10}>\n          <CustomInput\n            success={this.state.emailState === \"success\"}\n            error={this.state.emailState === \"error\"}\n            labelText={\n              <span>\n                Email <small>(required)</small>\n              </span>\n            }\n            id=\"email\"\n            formControlProps={{\n              fullWidth: true\n            }}\n            inputProps={{\n              onChange: event => this.change(event, \"email\", \"email\"),\n              endAdornment: (\n                <InputAdornment position=\"end\" className={classes.inputAdornment}>\n                  <Email className={classes.inputAdornmentIcon} />\n                </InputAdornment>\n              )\n            }}\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(style)(Step1);\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Select from \"material-ui/Select\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\nimport FormControl from \"material-ui/Form/FormControl\";\nimport Checkbox from \"material-ui/Checkbox\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\";\nimport customCheckboxRadioSwitch from \"assets/jss/material-dashboard-pro-react/customCheckboxRadioSwitch.jsx\";\n\nconst style = {\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  inputAdornmentIcon: {\n    color: \"#555\"\n  },\n  choiche: {\n    textAlign: \"center\",\n    cursor: \"pointer\",\n    marginTop: \"20px\"\n  },\n  ...customSelectStyle,\n  ...customCheckboxRadioSwitch\n};\n\nclass Step2 extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      simpleSelect: \"\",\n      desgin: false,\n      code: false,\n      develop: false\n    };\n  }\n  handleSimple = event => {\n    this.setState({ [event.target.name]: event.target.value });\n  };\n  handleChange = name => event => {\n    this.setState({ [name]: event.target.checked });\n  };\n  isValidated() {\n    return true;\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <h4 className={classes.infoText}>What are you doing? (checkboxes)</h4>\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={12} md={12} lg={10}>\n            <GridContainer>\n              <ItemGrid xs={12} sm={4}>\n                <div className={classes.choiche}>\n                  <Checkbox\n                    tabIndex={-1}\n                    onClick={this.handleChange(\"desgin\")}\n                    checkedIcon={\n                      <i\n                        className={\n                          \"fas fa-pencil-alt \" + classes.iconCheckboxIcon\n                        }\n                      />\n                    }\n                    icon={\n                      <i\n                        className={\n                          \"fas fa-pencil-alt \" + classes.iconCheckboxIcon\n                        }\n                      />\n                    }\n                    classes={{\n                      checked: classes.iconCheckboxChecked,\n                      default: classes.iconCheckbox\n                    }}\n                  />\n                  <h6>Design</h6>\n                </div>\n              </ItemGrid>\n              <ItemGrid xs={12} sm={4}>\n                <div className={classes.choiche}>\n                  <Checkbox\n                    tabIndex={-1}\n                    onClick={this.handleChange(\"code\")}\n                    checkedIcon={\n                      <i\n                        className={\n                          \"fas fa-terminal \" + classes.iconCheckboxIcon\n                        }\n                      />\n                    }\n                    icon={\n                      <i\n                        className={\n                          \"fas fa-terminal \" + classes.iconCheckboxIcon\n                        }\n                      />\n                    }\n                    classes={{\n                      checked: classes.iconCheckboxChecked,\n                      default: classes.iconCheckbox\n                    }}\n                  />\n                  <h6>Code</h6>\n                </div>\n              </ItemGrid>\n              <ItemGrid xs={12} sm={4}>\n                <div className={classes.choiche}>\n                  <Checkbox\n                    tabIndex={-1}\n                    onClick={this.handleChange(\"develop\")}\n                    checkedIcon={\n                      <i\n                        className={\"fas fa-laptop \" + classes.iconCheckboxIcon}\n                      />\n                    }\n                    icon={\n                      <i\n                        className={\"fas fa-laptop \" + classes.iconCheckboxIcon}\n                      />\n                    }\n                    classes={{\n                      checked: classes.iconCheckboxChecked,\n                      default: classes.iconCheckbox\n                    }}\n                  />\n                  <h6>Develop</h6>\n                </div>\n                <FormControl fullWidth className={classes.selectFormControl}>\n                  <InputLabel\n                    htmlFor=\"simple-select\"\n                    className={classes.selectLabel}\n                  >\n                    Choose City\n                  </InputLabel>\n                  <Select\n                    MenuProps={{\n                      className: classes.selectMenu\n                    }}\n                    classes={{\n                      select: classes.select\n                    }}\n                    value={this.state.simpleSelect}\n                    onChange={this.handleSimple}\n                    inputProps={{\n                      name: \"simpleSelect\",\n                      id: \"simple-select\"\n                    }}\n                  >\n                    <MenuItem\n                      disabled\n                      classes={{\n                        root: classes.selectMenuItem\n                      }}\n                    >\n                      Choose City\n                    </MenuItem>\n                    <MenuItem\n                      classes={{\n                        root: classes.selectMenuItem,\n                        selected: classes.selectMenuItemSelected\n                      }}\n                      value=\"2\"\n                    >\n                      Paris\n                    </MenuItem>\n                    <MenuItem\n                      classes={{\n                        root: classes.selectMenuItem,\n                        selected: classes.selectMenuItemSelected\n                      }}\n                      value=\"3\"\n                    >\n                      Bucharest\n                    </MenuItem>\n                  </Select>\n                </FormControl>\n              </ItemGrid>\n            </GridContainer>\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(style)(Step2);\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Select from \"material-ui/Select\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\nimport FormControl from \"material-ui/Form/FormControl\";\n\n// core components\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\";\n\nconst style = {\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  ...customSelectStyle\n};\n\nclass Step3 extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      simpleSelect: \"\",\n      desgin: false,\n      code: false,\n      develop: false\n    };\n  }\n  handleSimple = event => {\n    this.setState({ [event.target.name]: event.target.value });\n  };\n  isValidated() {\n    return true;\n  }\n  render() {\n    const { classes } = this.props;\n    return (\n      <GridContainer justify=\"center\">\n        <ItemGrid xs={12} sm={12}>\n          <h4 className={classes.infoText}>Are you living in a nice area?</h4>\n        </ItemGrid>\n        <ItemGrid xs={12} sm={7}>\n          <CustomInput\n            labelText=\"Street Name\"\n            id=\"streetname\"\n            formControlProps={{\n              fullWidth: true\n            }}\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={3}>\n          <CustomInput\n            labelText=\"Street No.\"\n            id=\"streetno\"\n            formControlProps={{\n              fullWidth: true\n            }}\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={5}>\n          <CustomInput\n            labelText=\"City\"\n            id=\"city\"\n            formControlProps={{\n              fullWidth: true\n            }}\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={5}>\n          <FormControl fullWidth className={classes.selectFormControl}>\n            <InputLabel htmlFor=\"simple-select\" className={classes.selectLabel}>\n              Choose City\n            </InputLabel>\n            <Select\n              MenuProps={{\n                className: classes.selectMenu\n              }}\n              classes={{\n                select: classes.select\n              }}\n              value={this.state.simpleSelect}\n              onChange={this.handleSimple}\n              inputProps={{\n                name: \"simpleSelect\",\n                id: \"simple-select\"\n              }}\n            >\n              <MenuItem\n                disabled\n                classes={{\n                  root: classes.selectMenuItem\n                }}\n              >\n                Country\n              </MenuItem>\n              <MenuItem\n                classes={{\n                  root: classes.selectMenuItem,\n                  selected: classes.selectMenuItemSelected\n                }}\n                value=\"2\"\n              >\n                France\n              </MenuItem>\n              <MenuItem\n                classes={{\n                  root: classes.selectMenuItem,\n                  selected: classes.selectMenuItemSelected\n                }}\n                value=\"3\"\n              >\n                Romania\n              </MenuItem>\n            </Select>\n          </FormControl>\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(style)(Step3);\n","import React from \"react\";\n\n// core components\nimport Wizard from \"molecules/Wizard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport Step1 from \"./WizardSteps/Step1.jsx\";\nimport Step2 from \"./WizardSteps/Step2.jsx\";\nimport Step3 from \"./WizardSteps/Step3.jsx\";\n\nclass WizardView extends React.Component {\n  render() {\n    return (\n      <GridContainer justify=\"center\">\n        <ItemGrid xs={12} sm={8}>\n          <Wizard\n            validate\n            steps={[\n              { stepName: \"About\", stepComponent: Step1, stepId: \"about\" },\n              { stepName: \"Account\", stepComponent: Step2, stepId: \"account\" },\n              { stepName: \"Address\", stepComponent: Step3, stepId: \"address\" }\n            ]}\n            title=\"Build Your Profile\"\n            subtitle=\"This information will let us know more about you.\"\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default WizardView;\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// material-ui icons\nimport Assignment from \"@material-ui/icons/Assignment\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport Table from \"components/Table/Table.jsx\";\n\nconst style = {\n  customCardContentClass: {\n    paddingLeft: \"0\",\n    paddingRight: \"0\"\n  }\n};\n\nfunction RegularTables({ ...props }) {\n  const { classes } = props;\n  return (\n    <GridContainer>\n      <ItemGrid xs={12}>\n        <IconCard\n          icon={Assignment}\n          iconColor=\"rose\"\n          title=\"Simple Table\"\n          content={\n            <Table\n              tableHeaderColor=\"primary\"\n              tableHead={[\"Name\", \"Country\", \"City\", \"Salary\"]}\n              tableData={[\n                [\"Dakota Rice\", \"Niger\", \"Oud-Turnhout\", \"$36,738\"],\n                [\"Minerva Hooper\", \"Curaçao\", \"Sinaai-Waas\", \"$23,789\"],\n                [\"Sage Rodriguez\", \"Netherlands\", \"Baileux\", \"$56,142\"],\n                [\"Philip Chaney\", \"Korea, South\", \"Overland Park\", \"$38,735\"],\n                [\"Doris Greene\", \"Malawi\", \"Feldkirchen in Kärnten\", \"$63,542\"],\n                [\"Mason Porter\", \"Chile\", \"Gloucester\", \"$78,615\"]\n              ]}\n              coloredColls={[3]}\n              colorsColls={[\"primary\"]}\n            />\n          }\n        />\n      </ItemGrid>\n      <ItemGrid xs={12}>\n        <IconCard\n          icon={Assignment}\n          iconColor=\"rose\"\n          title=\"Table on Plain Background\"\n          category=\" - Here is a subtitle for this table\"\n          plain\n          content={\n            <Table\n              hover\n              tableHead={[\"ID\", \"Name\", \"Salary\", \"Country\", \"City\"]}\n              tableData={[\n                [\"1\", \"Dakota Rice\", \"$36,738\", \"Niger\", \"Oud-Turnhout\"],\n                [\"2\", \"Minerva Hooper\", \"$23,789\", \"Curaçao\", \"Sinaai-Waas\"],\n                [\"3\", \"Sage Rodriguez\", \"$56,142\", \"Netherlands\", \"Baileux\"],\n                [\n                  \"4\",\n                  \"Philip Chaney\",\n                  \"$38,735\",\n                  \"Korea, South\",\n                  \"Overland Park\"\n                ],\n                [\n                  \"5\",\n                  \"Doris Greene\",\n                  \"$63,542\",\n                  \"Malawi\",\n                  \"Feldkirchen in Kärnten\"\n                ],\n                [\"6\", \"Mason Porter\", \"$78,615\", \"Chile\", \"Gloucester\"]\n              ]}\n            />\n          }\n        />\n      </ItemGrid>\n      <ItemGrid xs={12}>\n        <IconCard\n          customCardContentClass={classes.customCardContentClass}\n          icon={Assignment}\n          iconColor=\"rose\"\n          title=\"Regular Table with Colors\"\n          content={\n            <Table\n              hover\n              tableHead={[\"ID\", \"Name\", \"Salary\", \"Country\", \"City\"]}\n              tableData={[\n                {\n                  color: \"success\",\n                  data: [\n                    \"1\",\n                    \"Dakota Rice (Success)\",\n                    \"$36,738\",\n                    \"Niger\",\n                    \"Oud-Turnhout\"\n                  ]\n                },\n                [\"2\", \"Minerva Hooper\", \"$23,789\", \"Curaçao\", \"Sinaai-Waas\"],\n                {\n                  color: \"info\",\n                  data: [\n                    \"3\",\n                    \"Sage Rodriguez (Info)\",\n                    \"$56,142\",\n                    \"Netherlands\",\n                    \"Baileux\"\n                  ]\n                },\n                [\n                  \"4\",\n                  \"Philip Chaney\",\n                  \"$38,735\",\n                  \"Korea, South\",\n                  \"Overland Park\"\n                ],\n                {\n                  color: \"danger\",\n                  data: [\n                    \"5\",\n                    \"Doris Greene (Danger)\",\n                    \"$63,542\",\n                    \"Malawi\",\n                    \"Feldkirchen in Kärnten\"\n                  ]\n                },\n                [\"6\", \"Mason Porter\", \"$78,615\", \"Chile\", \"Gloucester\"],\n                {\n                  color: \"warning\",\n                  data: [\n                    \"7\",\n                    \"Mike Chaney (Warning)\",\n                    \"$38,735\",\n                    \"Romania\",\n                    \"Bucharest\"\n                  ]\n                }\n              ]}\n            />\n          }\n        />\n      </ItemGrid>\n    </GridContainer>\n  );\n}\n\nexport default withStyles(style)(RegularTables);\n","// ##############################\n// // // ExtendedTables view styles\n// #############################\n\nimport buttonGroupStyle from \"assets/jss/material-dashboard-pro-react/buttonGroupStyle.jsx\";\nimport { primaryColor } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst extendedTablesStyle = {\n  right: {\n    textAlign: \"right\"\n  },\n  center: {\n    textAlign: \"center\"\n  },\n  description: {\n    maxWidth: \"150px\"\n  },\n  actionButton: {\n    margin: \"0 0 0 5px\",\n    padding: \"5px\"\n  },\n  icon: {\n    verticalAlign: \"middle\",\n    width: \"17px\",\n    height: \"17px\",\n    top: \"-1px\",\n    position: \"relative\"\n  },\n  checked: {\n    color: primaryColor\n  },\n  checkedIcon: {\n    width: \"20px\",\n    height: \"20px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  uncheckedIcon: {\n    width: \"0px\",\n    height: \"0px\",\n    padding: \"9px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  ...buttonGroupStyle,\n  imgContainer: {\n    width: \"120px\",\n    maxHeight: \"160px\",\n    overflow: \"hidden\",\n    display: \"block\"\n  },\n  img: {\n    width: \"100%\",\n    height: \"auto\",\n    verticalAlign: \"middle\",\n    border: \"0\"\n  },\n  tdName: {\n    minWidth: \"200px\",\n    fontWeight: \"400\",\n    fontSize: \"1.5em\"\n  },\n  tdNameAnchor: {\n    color: \"#3C4858\"\n  },\n  tdNameSmall: {\n    color: \"#999999\",\n    fontSize: \"0.75em\",\n    fontWeight: \"300\"\n  },\n  tdNumber: {\n    textAlign: \"right\",\n    minWidth: \"145px\",\n    fontWeight: \"300\",\n    fontSize: \"1.3em !important\"\n  },\n  tdNumberSmall: {\n    marginRight: \"3px\"\n  },\n  tdNumberAndButtonGroup: {\n    lineHeight: \"1 !important\"\n  },\n  positionAbsolute: {\n    position: \"absolute\",\n    right: \"0\",\n    top: \"0\",\n  },\n  customFont: {\n    fontSize: \"16px !important\"\n  },\n  actionButtonRound: {\n    width: \"auto\",\n    height: \"auto\",\n    minWidth: \"auto\"\n  }\n};\n\nexport default extendedTablesStyle;\n","import React from \"react\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Checkbox from \"material-ui/Checkbox\";\n\n// material-ui icons\nimport Assignment from \"@material-ui/icons/Assignment\";\nimport Person from \"@material-ui/icons/Person\";\nimport Edit from \"@material-ui/icons/Edit\";\nimport Close from \"@material-ui/icons/Close\";\nimport Check from \"@material-ui/icons/Check\";\nimport Remove from \"@material-ui/icons/Remove\";\nimport Add from \"@material-ui/icons/Add\";\nimport KeyboardArrowRight from \"@material-ui/icons/KeyboardArrowRight\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport Table from \"components/Table/Table.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport IconButton from \"components/CustomButtons/IconButton.jsx\";\n\nimport extendedTablesStyle from \"assets/jss/material-dashboard-pro-react/views/extendedTablesStyle.jsx\";\n\nimport product1 from \"assets/img/product1.jpg\";\nimport product2 from \"assets/img/product2.jpg\";\nimport product3 from \"assets/img/product3.jpg\";\n\nclass ExtendedTables extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      checked: []\n    };\n    this.handleToggle = this.handleToggle.bind(this);\n  }\n  handleToggle(value) {\n    const { checked } = this.state;\n    const currentIndex = checked.indexOf(value);\n    const newChecked = [...checked];\n\n    if (currentIndex === -1) {\n      newChecked.push(value);\n    } else {\n      newChecked.splice(currentIndex, 1);\n    }\n\n    this.setState({\n      checked: newChecked\n    });\n  }\n  render() {\n    const { classes } = this.props;\n    const fillButtons = [\n      { color: \"info\", icon: Person },\n      { color: \"success\", icon: Edit },\n      { color: \"danger\", icon: Close }\n    ].map((prop, key) => {\n      return (\n        <Button color={prop.color} customClass={classes.actionButton} key={key}>\n          <prop.icon className={classes.icon} />\n        </Button>\n      );\n    });\n    const simpleButtons = [\n      { color: \"infoNoBackground\", icon: Person },\n      { color: \"successNoBackground\", icon: Edit },\n      { color: \"dangerNoBackground\", icon: Close }\n    ].map((prop, key) => {\n      return (\n        <Button color={prop.color} customClass={classes.actionButton} key={key}>\n          <prop.icon className={classes.icon} />\n        </Button>\n      );\n    });\n    const roundButtons = [\n      { color: \"info\", icon: Person },\n      { color: \"success\", icon: Edit },\n      { color: \"danger\", icon: Close }\n    ].map((prop, key) => {\n      return (\n        <IconButton color={prop.color} customClass={classes.actionButton + \" \" + classes.actionButtonRound} key={key}>\n          <prop.icon className={classes.icon} />\n        </IconButton>\n      );\n    });\n    return (\n      <GridContainer>\n        <ItemGrid xs={12}>\n          <IconCard\n            icon={Assignment}\n            iconColor=\"rose\"\n            title=\"Simple Table\"\n            content={\n              <Table\n                tableHead={[\n                  \"#\",\n                  \"Name\",\n                  \"Job Position\",\n                  \"Since\",\n                  \"Salary\",\n                  \"Actions\"\n                ]}\n                tableData={[\n                  [\n                    \"1\",\n                    \"Andrew Mike\",\n                    \"Develop\",\n                    \"2013\",\n                    \"€ 99,225\",\n                    fillButtons\n                  ],\n                  [\"2\", \"John Doe\", \"Design\", \"2012\", \"€ 89,241\", roundButtons],\n                  [\n                    \"3\",\n                    \"Alex Mike\",\n                    \"Design\",\n                    \"2010\",\n                    \"€ 92,144\",\n                    simpleButtons\n                  ],\n                  [\n                    \"4\",\n                    \"Mike Monday\",\n                    \"Marketing\",\n                    \"2013\",\n                    \"€ 49,990\",\n                    roundButtons\n                  ],\n                  [\n                    \"5\",\n                    \"Paul Dickens\",\n                    \"Communication\",\n                    \"2015\",\n                    \"€ 69,201\",\n                    fillButtons\n                  ]\n                ]}\n                customCellClasses={[\n                  classes.center,\n                  classes.right,\n                  classes.right\n                ]}\n                customClassesForCells={[0, 4, 5]}\n                customHeadCellClasses={[\n                  classes.center,\n                  classes.right,\n                  classes.right\n                ]}\n                customHeadClassesForCells={[0, 4, 5]}\n              />\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12}>\n          <IconCard\n            icon={Assignment}\n            iconColor=\"rose\"\n            title=\"Striped Table\"\n            content={\n              <Table\n                striped\n                tableHead={[\n                  \"#\",\n                  \"\",\n                  \"Product Name\",\n                  \"Type\",\n                  \"Qty\",\n                  \"Price\",\n                  \"Amount\"\n                ]}\n                tableData={[\n                  [\n                    \"1\",\n                    <Checkbox\n                      className={classes.positionAbsolute}\n                      tabIndex={-1}\n                      onClick={() => this.handleToggle(1)}\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />,\n                    \"Moleskine Agenda\",\n                    \"Office\",\n                    \"25\",\n                    \"€ 49\",\n                    \"€ 1,225\"\n                  ],\n                  [\n                    \"2\",\n                    <Checkbox\n                      className={classes.positionAbsolute}\n                      tabIndex={-1}\n                      onClick={() => this.handleToggle(2)}\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />,\n                    \"Stabilo Pen\",\n                    \"Office\",\n                    \"30\",\n                    \"€ 10\",\n                    \"€ 300\"\n                  ],\n                  [\n                    \"3\",\n                    <Checkbox\n                      className={classes.positionAbsolute}\n                      tabIndex={-1}\n                      onClick={() => this.handleToggle(3)}\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />,\n                    \"A4 Paper Pack\",\n                    \"Office\",\n                    \"50\",\n                    \"€ 10.99\",\n                    \"€ 109\"\n                  ],\n                  [\n                    \"4\",\n                    <Checkbox\n                      className={classes.positionAbsolute}\n                      tabIndex={-1}\n                      onClick={() => this.handleToggle(4)}\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />,\n                    \"Apple iPad\",\n                    \"Communication\",\n                    \"10\",\n                    \"€ 499.00\",\n                    \"€ 4,990\"\n                  ],\n                  [\n                    \"5\",\n                    <Checkbox\n                      className={classes.positionAbsolute}\n                      tabIndex={-1}\n                      onClick={() => this.handleToggle(5)}\n                      checkedIcon={<Check className={classes.checkedIcon} />}\n                      icon={<Check className={classes.uncheckedIcon} />}\n                      classes={{\n                        checked: classes.checked\n                      }}\n                    />,\n                    \"Apple iPhone\",\n                    \"Communication\",\n                    \"10\",\n                    \"€ 599.00\",\n                    \"€ 5,999\"\n                  ],\n                  { total: true, colspan: \"5\", amount: \"€12,999\" }\n                ]}\n                customCellClasses={[\n                  classes.center,\n                  classes.right,\n                  classes.right\n                ]}\n                customClassesForCells={[0, 5, 6]}\n                customHeadCellClasses={[\n                  classes.center,\n                  classes.right,\n                  classes.right\n                ]}\n                customHeadClassesForCells={[0, 5, 6]}\n              />\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12}>\n          <IconCard\n            icon={Assignment}\n            iconColor=\"rose\"\n            title=\"Shopping Cart Table\"\n            content={\n              <Table\n                tableHead={[\n                  \"\",\n                  \"PRODUCT\",\n                  \"COLOR\",\n                  \"SIZE\",\n                  \"PRICE\",\n                  \"QTY\",\n                  \"AMOUNT\",\n                  \"\"\n                ]}\n                tableData={[\n                  [\n                    <div className={classes.imgContainer}>\n                      <img src={product1} alt=\"...\" className={classes.img} />\n                    </div>,\n                    <span>\n                      <a href=\"#jacket\" className={classes.tdNameAnchor}>\n                        Spring Jacket\n                      </a>\n                      <br />\n                      <small className={classes.tdNameSmall}>\n                        by Dolce&amp;Gabbana\n                      </small>\n                    </span>,\n                    \"Red\",\n                    \"M\",\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 549\n                    </span>,\n                    <span>\n                      1{` `}\n                      <div className={classes.buttonGroup}>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.firstButton}\n                        >\n                          <Remove className={classes.icon} />\n                        </Button>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.lastButton}\n                        >\n                          <Add className={classes.icon} />\n                        </Button>\n                      </div>\n                    </span>,\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 549\n                    </span>,\n                    <Button color=\"simple\" customClass={classes.actionButton}>\n                      <Close className={classes.icon} />\n                    </Button>\n                  ],\n                  [\n                    <div className={classes.imgContainer}>\n                      <img src={product2} alt=\"...\" className={classes.img} />\n                    </div>,\n                    <span>\n                      <a href=\"#jacket\" className={classes.tdNameAnchor}>\n                        Short Pants{\" \"}\n                      </a>\n                      <br />\n                      <small className={classes.tdNameSmall}>by Pucci</small>\n                    </span>,\n                    \"Purple\",\n                    \"M\",\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 499\n                    </span>,\n                    <span>\n                      2{` `}\n                      <div className={classes.buttonGroup}>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.firstButton}\n                        >\n                          <Remove className={classes.icon} />\n                        </Button>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.lastButton}\n                        >\n                          <Add className={classes.icon} />\n                        </Button>\n                      </div>\n                    </span>,\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 998\n                    </span>,\n                    <Button color=\"simple\" customClass={classes.actionButton}>\n                      <Close className={classes.icon} />\n                    </Button>\n                  ],\n                  [\n                    <div className={classes.imgContainer}>\n                      <img src={product3} alt=\"...\" className={classes.img} />\n                    </div>,\n                    <span>\n                      <a href=\"#jacket\" className={classes.tdNameAnchor}>\n                        Pencil Skirt\n                      </a>\n                      <br />\n                      <small className={classes.tdNameSmall}>\n                        by Valentino\n                      </small>\n                    </span>,\n                    \"White\",\n                    \"XL\",\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 799\n                    </span>,\n                    <span>\n                      1{` `}\n                      <div className={classes.buttonGroup}>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.firstButton}\n                        >\n                          <Remove className={classes.icon} />\n                        </Button>\n                        <Button\n                          color=\"info\"\n                          size=\"xs\"\n                          round\n                          customClass={classes.lastButton}\n                        >\n                          <Add className={classes.icon} />\n                        </Button>\n                      </div>\n                    </span>,\n                    <span>\n                      <small className={classes.tdNumberSmall}>€</small> 799\n                    </span>,\n                    <Button color=\"simple\" customClass={classes.actionButton}>\n                      <Close className={classes.icon} />\n                    </Button>\n                  ],\n                  {\n                    total: true,\n                    colspan: \"5\",\n                    amount: (\n                      <span>\n                        <small>€</small>2,346\n                      </span>\n                    )\n                  },\n                  {\n                    purchase: true,\n                    colspan: \"6\",\n                    col: {\n                      colspan: 2,\n                      text: (\n                        <Button color=\"info\" round>\n                          Complete Purchase{\" \"}\n                          <KeyboardArrowRight className={classes.icon} />\n                        </Button>\n                      )\n                    }\n                  }\n                ]}\n                tableShopping\n                customHeadCellClasses={[\n                  classes.center,\n                  classes.description,\n                  classes.description,\n                  classes.right,\n                  classes.right,\n                  classes.right\n                ]}\n                customHeadClassesForCells={[0, 2, 3, 4, 5, 6]}\n                customCellClasses={[\n                  classes.tdName,\n                  classes.customFont,\n                  classes.customFont,\n                  classes.tdNumber,\n                  classes.tdNumber + \" \" + classes.tdNumberAndButtonGroup,\n                  classes.tdNumber\n                ]}\n                customClassesForCells={[1, 2, 3, 4, 5, 6]}\n              />\n            }\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(extendedTablesStyle)(ExtendedTables);\n","import React, { Component, Suspense } from \"react\";\nimport { connect } from \"react-redux\";\nimport { bindActionCreators } from \"redux\";\nimport { NavLink } from \"react-router-dom\";\nimport ReactTable from \"react-table\";\nimport Loader from \"react-loader-spinner\";\n\nimport { getPatients } from \"../actions/index\";\n\nimport deviceImage from \"../assets/img/NEDevice.png\";\n\nimport CheckboxOn from \"@material-ui/icons/Done\";\nimport CheckboxOff from \"@material-ui/icons/Remove\";\nimport Tooltip from \"material-ui/Tooltip\";\n\nimport moment from \"moment\";\n\nimport ReactMinimalPieChart from \"react-minimal-pie-chart\";\n\nconst today = moment().format(\"YYYY-MM-DD\");\n\nclass ComplianceTable extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      loading: true\n    }\n\n    this.renderPatientCompliance = this.renderPatientCompliance.bind(this);\n    this.Schedule = this.Schedule.bind(this);\n    this.Compliance = this.Compliance.bind(this);\n  }\n\n  componentDidMount() {\n    this.setState({loading: false});\n  }\n\n  shouldComponentUpdate(nextProps, nextState) {\n    if (!nextProps.patients.loadingOneByOne && nextProps.patients.fullData) {\n      return true;\n    }\n\n    if (nextProps.patients.loadingOneByOne && this.state.loading) {\n      this.setState({loading: false});\n      return true;\n    }\n    \n    let isPatientWithDeviceFullData = false;\n    let countNoDevice = 0;\n    for (let i = 0; i < nextProps.patients.data.length; i++) {\n      if (nextProps.patients.data[i].devices !== null) {\n        if (!isPatientWithDeviceFullData && nextProps.patients.data[i].fullData) {\n            isPatientWithDeviceFullData = true\n        }\n      } else {\n        if (nextProps.patients.data[i].fullData) {\n          countNoDevice++;\n        }\n      }\n    }\n    if (isPatientWithDeviceFullData && countNoDevice === 0) {\n      return true;\n    } else if (countNoDevice > 0 && (countNoDevice % 100) === 0) {\n      return true;\n    }\n    return false;\n  }\n\n  Schedule({patientData}) {\n    let element;\n\n    patientData.fullData ? (\n    patientData.treatments &&\n    patientData.treatments.length > 0 &&      \n    patientData.treatments[0].start_date ? (\n      patientData.treatments[0].end_date < today ? (\n        element =  <div key={2} sort={patientData.treatments[0].end_date}>\n            Ended: {patientData.treatments[0].end_date}\n          </div>\n        ) : patientData.treatments[0].start_date > today ? (\n          element = <div key={4} sort={patientData.treatments[0].start_date}>\n            Starts: {patientData.treatments[0].start_date}\n          </div>\n        ) : (\n          element = <div key={3} sort={patientData.treatments[0].end_date}>\n            Started: {patientData.treatments[0].start_date}\n            <br />\n            Ends: {patientData.treatments[0].end_date}\n          </div>\n        )\n      ) : (\n        element = <div key={1}>No treatment scheduled</div>\n      ) \n      ) : (\n        element = <Loader type=\"Oval\" color=\"#4caf50\" height=\"35\" width=\"35\" style={{ margin: \"3%\" }}/>\n        )\n\n    return <Suspense fallback={<div>Loading...</div>}>\n        {element}\n      </Suspense>\n  };\n\n  Compliance({patientData, sessionsToRender, futureSessions, beforeSessions}) {\n    let element;\n\n    patientData.fullData ? (\n    patientData.treatments &&\n    patientData.treatments.length > 0 &&\n    patientData.treatments[0].time_compliance ? (\n      element = <div\n        key={\n          1.0 -\n          patientData.treatments[0].time_compliance[1] /\n            (patientData.treatments[0].time_compliance[0] +\n              patientData.treatments[0].time_compliance[1] +\n              patientData.treatments[0].time_compliance[2])\n        }\n        style={{\n          display: \"flex\",\n          alignItems: \"center\",\n          flexWrap: \"wrap\",\n          marginTop: 10,\n          marginBottom: 10,\n          width: \"90%\"\n        }}\n      >\n          {sessionsToRender.map((item, i) => {\n              // ITEM TIME_COMPLIANCE\n              let executed = Math.round(item.time_compliance[0])\n              let duration = Math.round(\n                item.time_compliance[0] +\n                  item.time_compliance[1] +\n                  item.time_compliance[2]\n              )\n\n              // EVALUATE STATUS OF SESSION\n              let color\n              if (item.session_date > today) color = \"default\"\n              else if (item.session_date === today && executed === 0)\n                color = \"default\"\n              else {\n                if (executed >= duration - 1) color = \"green\"\n                else if (executed >= 1) color = \"orange\"\n                else color = \"red\"\n              }\n\n              // TOOLTIP TEXT\n              if (item.session_date > today) {\n                var tooltipTitle = ` Protocol: ${item.sessionprotocol.name} Day: ${item.session_date} `\n              } else {\n                var tooltipTitle = ` Protocol: ${\n                  item.sessionprotocol.name\n                } Day:\n                  ${item.session_date}\n                  Sucessfull: ${Math.round(\n                    (item.time_compliance[0] / duration) * 100\n                  )}% Failed: ${Math.round(\n                  (item.time_compliance[1] / duration) * 100\n                )}% `\n              }\n\n              // PIE SETUP\n              const data =\n                color === \"green\"\n                  ? [\n                      {\n                        color: \"#4caf50\",\n                        value: item.time_compliance[0]\n                      },\n                      {\n                        color: \"#f44336\",\n                        value: item.time_compliance[1]\n                      },\n                      {\n                        color: \"#ff9800\",\n                        value: item.time_compliance[2]\n                      }\n                    ]\n                  : color === \"default\"\n                  ? [\n                      {\n                        color: \"#bfbfbf\",\n                        value: 33\n                      },\n                      {\n                        color: \"#bfbfbf\",\n                        value: 0\n                      },\n                      {\n                        color: \"#bfbfbf\",\n                        value: 0\n                      }\n                    ]\n                  : [\n                      {\n                        color: \"#ff9800\",\n                        value: item.time_compliance[0]\n                      },\n                      {\n                        color: \"#f44336\",\n                        value: item.time_compliance[1]\n                      },\n                      {\n                        color: \"#ff9800\",\n                        value: item.time_compliance[2]\n                      }\n                    ]\n\n              return (\n                <>\n                  {futureSessions > 0 && i === 0 && (<div key={`${i}-futureSessions`} style={{ position: \"relative\", width: \"70px\", marginRight: \"8%\" }}>\n                    + {futureSessions} scheduled</div>)}\n                  <div key={i} style={{ margin: \"2%\", width: \"35px\", display: \"flex\", alignItems: \"center\" }}>\n                    <div>\n                      <Tooltip\n                        title={tooltipTitle}\n                        placement=\"right-end\"\n                        key={item.sessionprotocol.name}\n                      >\n                        <CheckboxOff\n                          style={{\n                            position: \"absolute\",\n                            opacity: 0,\n                            height: \"45px\",\n                            width: \"45px\"\n                          }}\n                        />\n                      </Tooltip>\n                      <ReactMinimalPieChart\n                        animate={false}\n                        animationDuration={500}\n                        animationEasing=\"ease-out\"\n                        background=\"#bfbfbf\"\n                        cx={50}\n                        cy={50}\n                        data={data}\n                        label={false}\n                        labelPosition={50}\n                        lengthAngle={360}\n                        lineWidth={100}\n                        onClick={undefined}\n                        onMouseOut={undefined}\n                        onMouseOver={undefined}\n                        paddingAngle={0}\n                        radius={50}\n                        rounded={false}\n                        startAngle={0}\n                        style={{\n                          height: \"35px\"\n                        }}\n                        viewBoxSize={[100, 100]}\n                      />\n                    </div>\n                    {beforeSessions > 0 && i === sessionsToRender.length - 1 && (<div key={`${i}-beforeSessions`} style={{ marginLeft: \"50px\", width: \"70px\", position: \"absolute\" }}>+ {beforeSessions} before</div>)}\n                  </div>\n                  \n                </>\n              )\n          })}\n      </div>\n    ) : (\n      element = <div key={-1.0} />      \n    )\n    ) : (\n      element = <Loader type=\"Oval\" color=\"#4caf50\" height=\"35\" width=\"35\" style={{ margin: \"3%\" }}/>\n      )\n\n    return <Suspense fallback={<div>Loading...</div>}>\n        {element}\n      </Suspense>\n  };\n\n  renderPatientCompliance(patientData) {\n    console.log(\"Rendering patient compliance...\", patientData);\n\n    let futureSessions = 0;\n    let futureSessionsToRender = [];\n    let todaySessions = 0;\n    let sessionsToRender = [];\n    let beforeSessions = 0;\n    \n    if (patientData.treatments && patientData.treatments.length && patientData.treatments[0].time_compliance) {\n        const sortedSessions = patientData.treatments[0].sessions.sort((a, b) => new Date(b.session_date) - new Date(a.session_date));\n        sortedSessions.forEach((item, i) => {\n          if (item.time_compliance) {\n            if (item.session_date > today) {\n              futureSessions = futureSessions + 1;            \n              futureSessionsToRender.push(item);\n            } else if (item.session_date === today) {\n              todaySessions = todaySessions + 1;            \n              sessionsToRender.push(item);\n            } else {\n              sessionsToRender.push(item);\n            }\n          }\n        })\n      }\n\n    if (todaySessions === 0 && futureSessions > 0 ) {\n      const firstSession = futureSessionsToRender.pop();\n      sessionsToRender.unshift(firstSession);\n      futureSessions = futureSessions - 1;\n    }\n\n    if (futureSessions > 0 && !sessionsToRender.length || sessionsToRender.length < 18) {\n      sessionsToRender = futureSessionsToRender.concat(sessionsToRender);\n      if (sessionsToRender.length <= 20) {\n        futureSessions = 0;\n      }      \n      if (sessionsToRender.length > 20) {\n        futureSessions = sessionsToRender.length - 18;\n        sessionsToRender = sessionsToRender.slice(sessionsToRender.length - 18);\n      }\n    } else if (futureSessions > 0 && sessionsToRender.length && sessionsToRender.length >= 18) {\n      beforeSessions = sessionsToRender.length - 16;\n      sessionsToRender = sessionsToRender.slice(0, 16);\n    }\n\n    if (futureSessions === 0 && sessionsToRender.length && sessionsToRender.length > 20) {\n      beforeSessions = sessionsToRender.length - 18;\n      sessionsToRender = sessionsToRender.slice(0, 18);\n    } \n\n    return {\n      code: (\n        <NavLink to={\"/studies/subjects/\" + patientData.code} key={patientData.code}>\n          {patientData.code}\n        </NavLink>\n      ),\n\n      lang: patientData.lang && Object.keys(this.props.languages.byId).length > 0  \n        ? this.props.languages.byId[patientData.lang].name\n        : \"-\",\n\n      isdevice:\n        patientData.devices && patientData.devices.length > 0 ? (\n          <Tooltip\n            title={patientData.devices[0].mac}\n            placement=\"left-end\"\n            key={patientData.devices[0].mac}\n          >\n            <CheckboxOn />\n          </Tooltip>\n        ) : (\n          <CheckboxOff key=\"ZZZ\" />\n      ),        \n      \n      schedule:\n        (<this.Schedule patientData={patientData}/>),\n\n      compliance:\n        (<this.Compliance patientData={patientData} sessionsToRender={sessionsToRender} futureSessions={futureSessions} beforeSessions={beforeSessions}/>)\n    }\n  };\n\n  render() {\n    return (\n      <ReactTable\n        data={\n          this.props.patients.searched && this.props.patients.searched.length > 0 ? this.props.patients.searched.map(this.renderPatientCompliance) :\n          this.props.patients.data.map(this.renderPatientCompliance).slice().reverse()\n        }\n        columns={[\n          {\n            Header: \"Subject Code\",\n            accessor: \"code\",\n            sortMethod: (a, b) => {\n              if (a.key.toLowerCase() > b.key.toLowerCase()) {\n                return 1\n              } else {\n                return -1\n              }\n            }\n          },          \n          {\n            Header: \"Language\",\n            accessor: \"lang\",\n            maxWidth: 160\n          },\n          {\n            Header: (\n              <img\n                src={deviceImage}\n                height={\"30px\"}\n                alt={\"Is Device Assigned?\"}\n              />\n            ),\n            accessor: \"isdevice\",\n            width: 80,\n            sortMethod: (a, b) => {\n              if (a.key > b.key) return 1\n              else return -1\n            }\n          },\n          {\n            Header: \"Treatment Schedule\",\n            accessor: \"schedule\",\n            sortMethod: (a, b) => {\n              if (a.key > b.key) return 2\n              else if (a.key === b.key) {\n                if (a.props.sort > b.props.sort) return 1\n                else return -1\n              } else return -2\n            }\n          },\n          {\n            Header: \"Treatment Compliance (most recent first)\",\n            accessor: \"compliance\",\n            minWidth: 180,\n            sortMethod: (a, b) => {\n              if (a.key > b.key) {\n                return 1\n              } else {\n                return -1\n              }\n            },\n            headerStyle: { textAlign: \"left\" }\n          }\n        ]}\n        defaultSorted={[\n          {\n            id: \"isdevice\"\n          }\n        ]}\n        defaultPageSize={100}\n        pageSize={100}\n        minRows={6}\n        showPaginationBottom={false}\n        showPageSizeOptions={false}\n        className=\"-highlight\"\n        noDataText=\"There are no patients defined in your organization\"\n        loading={this.state.loading}        \n      />\n    )\n  }\n}\n\nfunction mapStateToProps({ patients, languages }) {\n  console.log(\"Received patients\", patients, languages)  \n  return { patients, languages }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators(\n    { getPatients }, // Not in use\n    dispatch\n  )\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ComplianceTable);\n","import React from \"react\";\n\n// @material-ui/icons\nimport CardTravel from \"@material-ui/icons/CardTravel\";\nimport Extension from \"@material-ui/icons/Extension\";\nimport Fingerprint from \"@material-ui/icons/Fingerprint\";\nimport FlightLand from \"@material-ui/icons/FlightLand\";\nimport Build from \"@material-ui/icons/Build\";\n\n// core components\nimport CustomDropdown from \"components/CustomDropdown/CustomDropdown.jsx\";\n\n// ##############################\n// // // stories for RTLSupport view\n// #############################\n\nconst rtlStories = [\n  {\n    // First story\n    inverted: true,\n    badgeColor: \"danger\",\n    badgeIcon: CardTravel,\n    title: \"جهة أي\",\n    titleColor: \"danger\",\n    body: (\n      <p>\n        قام كل ماذا العصبة اوروبا. أي جورج العالمي أخر, كان تم أطراف القوى\n        استبدال. أسر ميناء تكتيكاً الجديدة، كل. جُل اللا التكاليف بـ, عرفها\n        النزاع لليابان بـ أضف. انتهت المدن الثالث من وقد.وقبل قادة إحتار عن أخر.\n        حين ونتج أخرى قد. بالعمل بالمطالبة فقد قد. عن جنوب ومضى الشتاء.\n      </p>\n    ),\n    footerTitle: \"مدن أن هُزم سكان, مكن.\"\n  },\n  {\n    // Second story\n    inverted: true,\n    badgeColor: \"success\",\n    badgeIcon: Extension,\n    title: \"جُل حكومة\",\n    titleColor: \"success\",\n    body: (\n      <p>\n        عل فكانت الثقيلة بلا. شيء بخطوط بالرّغم التبرعات عن, يطول بأيدي لم كلّ.\n        معقل الغالي واتّجه لم وتم, أن الصفحة بالمحور حول, بال مرمى الصفحات\n        قُدُماً و. الأخذ سبتمبر العالم من ذلك. ان يبق شدّت الأبرياء, الى الربيع،\n        والمانيا كل. ودول الأهداف التقليدي عل أضف, كلا يقوم الأخذ الآلاف بل.\n      </p>\n    )\n  },\n  {\n    // Third story\n    inverted: true,\n    badgeColor: \"info\",\n    badgeIcon: Fingerprint,\n    title: \"هذا غينيا\",\n    titleColor: \"info\",\n    body: (\n      <p>\n        جهة المارق والديون التقليدية في, هو وترك المجتمع بريطانيا ذلك, لمّ ما\n        العالم، اليابان،. ٣٠ فقامت أوروبا مشاركة بعد, ٢٠٠٤ الجو مساعدة ما حدى.\n        في عليها وبحلول معارضة بعض. عن الأرض وبداية العمليات ولم. الجو جديداً\n        الأوروبيّون أم به،. ثم التي نتيجة الآلاف جعل, عن المارق السادس قام. ما\n        أخر فقامت الأجل الشرق،, فصل كل وسوء الأرواح. ثم بعد وشعار بأيدي. قبل\n        وكسبت الغالي الولايات بل, ٣٠ أمّا أخرى لأداء أضف. هو منتصف معزّزة على.\n        بـ أفريقيا التغييرات مما, أثره،.\n      </p>\n    ),\n    footer: (\n      <CustomDropdown\n        rtlActive\n        buttonColor=\"info\"\n        buttonIcon={Build}\n        buttonProps={{\n          round: true,\n          style: { marginBottom: \"0\" }\n        }}\n        dropdownList={[\n          \"ان\",\n          \"إجلاء لفرنسا\",\n          \"أواخر الأرض بل\",\n          { divider: true },\n          \"عل اليها\"\n        ]}\n      />\n    )\n  }\n];\n\n// ##############################\n// // // stories for Widgets view\n// #############################\n\nconst widgetStories = [\n  {\n    // First story\n    inverted: true,\n    badgeColor: \"danger\",\n    badgeIcon: CardTravel,\n    title: \"Some Title\",\n    titleColor: \"danger\",\n    body: (\n      <p>\n        Wifey made the best Father's Day meal ever. So thankful so happy so\n        blessed. Thank you for making my family We just had fun with the\n        “future” theme !!! It was a fun night all together ... The always rude\n        Kanye Show at 2am Sold Out Famous viewing @ Figueroa and 12th in\n        downtown.\n      </p>\n    ),\n    footerTitle: \"11 hours ago via Twitter\"\n  },\n  {\n    // Second story\n    inverted: true,\n    badgeColor: \"success\",\n    badgeIcon: Extension,\n    title: \"Another One\",\n    titleColor: \"success\",\n    body: (\n      <p>\n        Thank God for the support of my wife and real friends. I also wanted to\n        point out that it’s the first album to go number 1 off of streaming!!! I\n        love you Ellen and also my number one design rule of anything I do from\n        shoes to music to homes is that Kim has to like it....\n      </p>\n    )\n  },\n  {\n    // Third story\n    inverted: true,\n    badgeColor: \"info\",\n    badgeIcon: Fingerprint,\n    title: \"Another Title\",\n    titleColor: \"info\",\n    body: (\n      <div>\n        <p>\n          Called I Miss the Old Kanye That’s all it was Kanye And I love you\n          like Kanye loves Kanye Famous viewing @ Figueroa and 12th in downtown\n          LA 11:10PM\n        </p>\n        <p>\n          What if Kanye made a song about Kanye Royère doesn't make a Polar bear\n          bed but the Polar bear couch is my favorite piece of furniture we own\n          It wasn’t any Kanyes Set on his goals Kanye\n        </p>\n      </div>\n    ),\n    footer: (\n      <CustomDropdown\n        buttonColor=\"info\"\n        buttonIcon={Build}\n        buttonProps={{\n          round: true,\n          style: { marginBottom: \"0\" }\n        }}\n        dropdownList={[\n          \"Action\",\n          \"Another action\",\n          \"Something else here\",\n          { divider: true },\n          \"Separated link\"\n        ]}\n      />\n    )\n  }\n];\n\n// ##############################\n// // // stories for Timeline view\n// #############################\n\nconst stories = [\n  {\n    // First story\n    inverted: true,\n    badgeColor: \"danger\",\n    badgeIcon: CardTravel,\n    title: \"Some Title\",\n    titleColor: \"danger\",\n    body: (\n      <p>\n        Wifey made the best Father's Day meal ever. So thankful so happy so\n        blessed. Thank you for making my family We just had fun with the\n        “future” theme !!! It was a fun night all together ... The always rude\n        Kanye Show at 2am Sold Out Famous viewing @ Figueroa and 12th in\n        downtown.\n      </p>\n    ),\n    footerTitle: \"11 hours ago via Twitter\"\n  },\n  {\n    // Second story\n    badgeColor: \"success\",\n    badgeIcon: Extension,\n    title: \"Another One\",\n    titleColor: \"success\",\n    body: (\n      <p>\n        Thank God for the support of my wife and real friends. I also wanted to\n        point out that it’s the first album to go number 1 off of streaming!!! I\n        love you Ellen and also my number one design rule of anything I do from\n        shoes to music to homes is that Kim has to like it....\n      </p>\n    )\n  },\n  {\n    // Third story\n    inverted: true,\n    badgeColor: \"info\",\n    badgeIcon: Fingerprint,\n    title: \"Another Title\",\n    titleColor: \"info\",\n    body: (\n      <div>\n        <p>\n          Called I Miss the Old Kanye That’s all it was Kanye And I love you\n          like Kanye loves Kanye Famous viewing @ Figueroa and 12th in downtown\n          LA 11:10PM\n        </p>\n        <p>\n          What if Kanye made a song about Kanye Royère doesn't make a Polar bear\n          bed but the Polar bear couch is my favorite piece of furniture we own\n          It wasn’t any Kanyes Set on his goals Kanye\n        </p>\n      </div>\n    ),\n    footer: (\n      <CustomDropdown\n        buttonColor=\"info\"\n        buttonIcon={Build}\n        buttonProps={{\n          round: true,\n          style: { marginBottom: \"0\" }\n        }}\n        dropdownList={[\n          \"Action\",\n          \"Another action\",\n          \"Something else here\",\n          { divider: true },\n          \"Separated link\"\n        ]}\n      />\n    )\n  },\n  {\n    // Fourth story\n    badgeColor: \"warning\",\n    badgeIcon: FlightLand,\n    title: \"Another One\",\n    titleColor: \"warning\",\n    body: (\n      <p>\n        Tune into Big Boy's 92.3 I'm about to play the first single from Cruel\n        Winter also to Kim’s hair and makeup Lorraine jewelry and the whole\n        style squad at Balmain and the Yeezy team. Thank you Anna for the invite\n        thank you to the whole Vogue team\n      </p>\n    )\n  }\n];\n\n// ##############################\n// // // data for populating the calendar in Calendar view\n// #############################\n\nvar today = new Date();\nvar y = today.getFullYear();\nvar m = today.getMonth();\nvar d = today.getDate();\n\nconst events = [\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    allDay: true,\n    start: new Date(y, m, 1),\n    end: new Date(y, m, 1),\n    color: \"red\",\n    executed: 0,\n    duration: 20,\n    problem: 1\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, d - 1, 10, 30),\n    end: new Date(y, m, d - 1, 11, 30),\n    allDay: false,\n    executed: 20,\n    duration: 20,\n    color: \"green\"\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, d - 2),\n    end: new Date(y, m, d - 2),\n    allDay: true,\n    color: \"orange\",\n    executed: 5,\n    duration: 20,\n    problem: 2\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, d + 7, 12, 0),\n    end: new Date(y, m, d + 7, 14, 0),\n    allDay: false,\n    color: \"default\"\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, d + 1, 19, 0),\n    end: new Date(y, m, d + 1, 22, 30),\n    allDay: false,\n    color: \"default\"\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, 21, 8, 0),\n    end: new Date(y, m, 21, 12, 0),\n    allDay: false,\n    color: \"default\"\n  },\n  {\n    title: \"F8 anoday 5min - SHAM\",\n    start: new Date(y, m, 21, 16),\n    end: new Date(y, m, 21, 20),\n    allDay: false,\n    color: \"default\"\n  }\n];\n\n// ##############################\n// // // Tasks for TasksCard - see Widget view\n// #############################\n\nvar bugs = [\n  'Sign contract for \"What are conference organizers afraid of?\"',\n  \"Lines From Great Russian Literature? Or E-mails From My Boss?\",\n  \"Flooded: One year later, assessing what was lost and what was found when a ravaging rain swept through metro Detroit\",\n  \"Create 4 Invisible User Experiences you Never Knew About\"\n];\nvar website = [\n  \"Flooded: One year later, assessing what was lost and what was found when a ravaging rain swept through metro Detroit\",\n  'Sign contract for \"What are conference organizers afraid of?\"'\n];\nvar server = [\n  \"Lines From Great Russian Literature? Or E-mails From My Boss?\",\n  \"Flooded: One year later, assessing what was lost and what was found when a ravaging rain swept through metro Detroit\",\n  'Sign contract for \"What are conference organizers afraid of?\"'\n];\n\n// ##############################\n// // // Tasks for TasksCard - see RTLSupport view\n// #############################\n\nvar rtlBugs = [\n  \"فقد لمحاكم الاندونيسية, بلاده بالتوقيع تم يبق. جعل السبب وفرنسا الصينية أي.\",\n  \"بحث. كل مما ٢٠٠٤ شاسعة العسكري جعل السبب وفرنسا الصينية أي.\",\n  \"تسبب أفريقيا ضرب عن, عن إنطلاق جعل السبب وفرنسا الصينية أي.\",\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\"\n];\nvar rtlWebsite = [\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\",\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\"\n];\nvar rtlServer = [\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\",\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\",\n  \"قدما مليون بين عن, مرجع منتصف الأمريكية جعل السبب وفرنسا الصينية أي.\"\n];\n\n// ##############################\n// // // data for datatables.net in DataTables view\n// #############################\n\nconst dataTable = {\n  headerRow: [\"Name\", \"Position\", \"Office\", \"Age\", \"Actions\"],\n  footerRow: [\"Name\", \"Position\", \"Office\", \"Age\", \"Actions\"],\n  dataRows: [\n    [\"Tiger Nixon\", \"System Architect\", \"Edinburgh\", \"61\"],\n    [\"Garrett Winters\", \"Accountant\", \"Tokyo\", \"63\"],\n    [\"Ashton Cox\", \"Junior Technical Author\", \"San Francisco\", \"66\"],\n    [\"Cedric Kelly\", \"Senior Javascript Developer\", \"Edinburgh\", \"22\"],\n    [\"Airi Satou\", \"Accountant\", \"Tokyo\", \"33\"],\n    [\"Brielle Williamson\", \"Integration Specialist\", \"New York\", \"61\"],\n    [\"Herrod Chandler\", \"Sales Assistant\", \"San Francisco\", \"59\"],\n    [\"Rhona Davidson\", \"Integration Specialist\", \"Tokyo\", \"55\"],\n    [\"Colleen Hurst\", \"Javascript Developer\", \"San Francisco\", \"39\"],\n    [\"Sonya Frost\", \"Software Engineer\", \"Edinburgh\", \"23\"],\n    [\"Jena Gaines\", \"Office Manager\", \"London\", \"30\"],\n    [\"Quinn Flynn\", \"Support Lead\", \"Edinburgh\", \"22\"],\n    [\"Charde Marshall\", \"Regional Director\", \"San Francisco\", \"36\"],\n    [\"Haley Kennedy\", \"Senior Marketing Designer\", \"London\", \"43\"],\n    [\"Tatyana Fitzpatrick\", \"Regional Director\", \"London\", \"19\"],\n    [\"Michael Silva\", \"Marketing Designer\", \"London\", \"66\"],\n    [\"Paul Byrd\", \"Chief Financial Officer (CFO)\", \"New York\", \"64\"],\n    [\"Gloria Little\", \"Systems Administrator\", \"New York\", \"59\"],\n    [\"Bradley Greer\", \"Software Engineer\", \"London\", \"41\"],\n    [\"Dai Rios\", \"Personnel Lead\", \"Edinburgh\", \"35\"],\n    [\"Jenette Caldwell\", \"Development Lead\", \"New York\", \"30\"],\n    [\"Yuri Berry\", \"Chief Marketing Officer (CMO)\", \"New York\", \"40\"],\n    [\"Caesar Vance\", \"Pre-Sales Support\", \"New York\", \"21\"],\n    [\"Doris Wilder\", \"Sales Assistant\", \"Sidney\", \"23\"],\n    [\"Angelica Ramos\", \"Chief Executive Officer (CEO)\", \"London\", \"47\"],\n    [\"Gavin Joyce\", \"Developer\", \"Edinburgh\", \"42\"],\n    [\"Jennifer Chang\", \"Regional Director\", \"Singapore\", \"28\"],\n    [\"Brenden Wagner\", \"Software Engineer\", \"San Francisco\", \"28\"],\n    [\"Fiona Green\", \"Chief Operating Officer (COO)\", \"San Francisco\", \"48\"],\n    [\"Shou Itou\", \"Regional Marketing\", \"Tokyo\", \"20\"],\n    [\"Michelle House\", \"Integration Specialist\", \"Sidney\", \"37\"],\n    [\"Suki Burks\", \"Developer\", \"London\", \"53\"],\n    [\"Prescott Bartlett\", \"Technical Author\", \"London\", \"27\"],\n    [\"Gavin Cortez\", \"Team Leader\", \"San Francisco\", \"22\"],\n    [\"Martena Mccray\", \"Post-Sales support\", \"Edinburgh\", \"46\"],\n    [\"Unity Butler\", \"Marketing Designer\", \"San Francisco\", \"47\"],\n    [\"Howard Hatfield\", \"Office Manager\", \"San Francisco\", \"51\"],\n    [\"Hope Fuentes\", \"Secretary\", \"San Francisco\", \"41\"],\n    [\"Vivian Harrell\", \"Financial Controller\", \"San Francisco\", \"62\"],\n    [\"Timothy Mooney\", \"Office Manager\", \"London\", \"37\"],\n    [\"Jackson Bradshaw\", \"Director\", \"New York\", \"65\"],\n    [\"Olivia Liang\", \"Support Engineer\", \"Singapore\", \"64\"]\n  ]\n};\n\nexport {\n  // data for React Big Calendar in Calendar view\n  events,\n  // stories for RTLSupport view\n  rtlStories,\n  // stories for Widgets view\n  widgetStories,\n  // stories for Timeline view\n  stories,\n  // these 3 are used to create the tasks lists in TasksCard - Widget view\n  bugs,\n  website,\n  server,\n  // these 3 are used to create the tasks lists in TasksCard - RTLSupport view\n  rtlBugs,\n  rtlWebsite,\n  rtlServer,\n  // data for datatables.net in DataTables view\n  dataTable\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport withStyles from \"material-ui/styles/withStyles\";\nimport buttonsStyle from \"assets/jss/material-dashboard-pro-react/views/buttonsStyle.jsx\";\n\nimport AddCircleOutline from \"@material-ui/icons/AddCircleOutline\";\nimport PersonAdd from \"@material-ui/icons/PersonAdd\";\nimport KeyboardArrowDown from \"@material-ui/icons/KeyboardArrowDown\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport SvgIcon from 'material-ui/SvgIcon';\n\n\nfunction NEDevice(props) {\n  return (\n    <SvgIcon {...props}>\n      <path d=\"M6.33.24C4.2.6 3.03 1.34 2.37 2.6c-.5 1.04-.5 1.27.24 6.94.41 3.24.83 6.08.91 6.34.06.24.54.86 1.04 1.33.88.86.91.86 4.54.86s3.66 0 4.55-.86c.5-.47.97-1.09 1.03-1.33.09-.26.5-3.1.91-6.31.65-5.2.71-5.93.33-6.82-.47-1.12-1.36-1.83-2.83-2.24A19.82 19.82 0 0 0 6.33.24zm7.26 1.27c.53.27 1.2.83 1.47 1.27.48.74.48 1.06-.23 6.82-.77 6.05-.77 6.08-1.71 6.9-.89.8-1.04.83-4.02.83-2.98 0-3.13-.03-4.01-.83-.92-.82-.95-.88-1.68-6.78-.83-6.47-.77-6.97.67-7.91C5.3 1 6.53.83 9.7.92c2.07.06 3.25.24 3.9.6z\"/>\n      <path d=\"M4.82 6.7c0 1.4.12 2.37.3 2.37.17 0 .3-.71.3-1.57V5.97l1.5 1.53c1.3 1.36 1.62 1.57 2.65 1.57.62 0 1.15-.15 1.15-.3 0-.18-.47-.3-1.03-.3-.82 0-1.03-.11-1.03-.58 0-.45.2-.6.7-.6.42 0 .83-.14.92-.29.12-.18.36-.12.62.15.71.68 2.1.56 2.63-.27.94-1.41-.65-3.07-2.19-2.24-.4.2-.62.2-.62 0 0-.15-.59-.3-1.32-.3H8.07v1.54l-.03 1.56-1.39-1.56a8.59 8.59 0 0 0-1.6-1.54c-.14 0-.23 1.07-.23 2.37z\"/>           \n    </SvgIcon>\n  )\n}\n\n\nvar componentList = {\n  AddCircleOutline: AddCircleOutline,\n  PersonAdd: PersonAdd,\n  NEDevice: NEDevice\n}\n\nclass ButtonStyled extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n    };\n  }\n\n  Icon(props) {\n    const { classes, icon } = props;\n    const Icon = componentList[icon];\n    const style = icon !== \"NEDevice\" ? classes.icons : classes.icons2;\n    if(Icon) {\n      return (\n        <Icon className={style} />\n      )\n    }\n  }\n\n  render() {\n    const { classes, icon, message, inactive, dropdown } = this.props;\n\n    const color = inactive ? \"default\" : \"primary\";\n    const buttonClasses = dropdown ? (classes.marginRight + \" \" + classes.paddingRight) : classes.marginRight;\n\n    return (\n      <Button\n        color={color}\n        round\n        customClass={buttonClasses}\n        onClick={this.props.onClick}\n      >\n        <this.Icon classes={classes} icon={icon}/> \n        {message} \n        {dropdown ? <KeyboardArrowDown className={classes.dropdown}/> : \"\"}\n      </Button>\n    )\n  }\n\n}\n\nButtonStyled.propTypes = {\n  classes: PropTypes.object.isRequired,\n  message: PropTypes.string.isRequired,\n  icon: PropTypes.string.isRequired,\n  inactive: PropTypes.bool,\n  dropdown: PropTypes.bool\n}\n\nexport default withStyles(buttonsStyle)(ButtonStyled);","import {  createSelector } from 'reselect'\n\nconst getPatientByCode = (state, code) => state.patients.data.filter(patient => patient.code === code)[0]\n\nconst getPatientsCodes = (state) => state.patients.data.map(patient => (patient.code))\n\nexport const patientByCodeSelector = createSelector(\n  [getPatientByCode],\n  (patient) => (patient === null ? {} : patient)\n)\n\nexport const patientCodesSelector = createSelector(\n  [getPatientsCodes],\n  (patientCodes) => (patientCodes)\n)","// ##############################\n// // // Tasks styles\n// #############################\n\nimport {\n  defaultFont,\n  primaryColor,\n  dangerColor,\n  tooltip\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst tasksStyle = {\n  table: {\n    marginBottom: \"0\"\n  },\n  tableRow: {\n    position: \"relative\",\n    borderBottom: \"1px solid #dddddd\"\n  },\n  tableActions: {\n    border: \"none\",\n    padding: \"12px 8px !important\",\n    verticalAlign: \"middle\"\n  },\n  tableCell: {\n    ...defaultFont,\n    padding: \"0\",\n    verticalAlign: \"middle\",\n    border: \"none\",\n    lineHeight: \"1.42857143\",\n    fontSize: \"14px\"\n  },\n  tableActionButton: {\n    width: \"27px\",\n    height: \"27px\"\n  },\n  tableActionButtonIcon: {\n    width: \"17px\",\n    height: \"17px\"\n  },\n  edit: {\n    backgroundColor: \"transparent\",\n    color: primaryColor,\n    boxShadow: \"none\"\n  },\n  close: {\n    backgroundColor: \"transparent\",\n    color: dangerColor,\n    boxShadow: \"none\"\n  },\n  checked: {\n    color: primaryColor\n  },\n  checkedIcon: {\n    width: \"20px\",\n    height: \"20px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  uncheckedIcon: {\n    width: \"0px\",\n    height: \"0px\",\n    padding: \"9px\",\n    border: \"1px solid rgba(0, 0, 0, .54)\",\n    borderRadius: \"3px\"\n  },\n  tooltip\n};\nexport default tasksStyle;\n","import React, {Component} from 'react';\n\nimport Log from '../logging/Log.jsx';\n\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Select from \"material-ui/Select\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\nimport FormControl from \"material-ui/Form/FormControl\";\nimport Divider from 'material-ui/Divider';\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport tasksStyle from \"assets/jss/material-dashboard-pro-react/components/tasksStyle.jsx\";\n\nimport moment from 'moment';\n\nconst style = theme => ({\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  divider: {\n    margin: `${theme.spacing.unit * 2}px 0`,\n  },\n  ...customSelectStyle,\n  ...tasksStyle\n});\n\nclass LayoutEditPatientBasicData extends React.Component {\n  constructor(props) {\n    super(props);\n\n    Log.info(\"Creating LayoutEditPatientBasicData with props:\", props)\n\n    let lang = props.lang\n    if (!lang) lang = 1\n\n    this.state = {\n      existingCodes: props.existingCodes,\n      code: props.code,\n      isEdit: props.code ? true : false,\n      codeValid: null,\n      lang: lang.toString(),\n      langValid: null\n    };\n\n    this.handleToggle = this.handleToggle.bind(this);\n    this.handleChange = this.handleChange.bind(this);\n    this.validate = this.validate.bind(this);\n    this.isChanged = this.isChanged.bind(this);\n  }\n\n  getFormOutput() {\n    const lang = parseInt(this.state.lang)\n    return {code: this.state.code, lang}\n  }\n\n  isValidated() {\n    let valid = this.validate(\"code\") && this.validate(\"lang\")\n    let changed = this.isChanged(\"code\") || this.isChanged(\"lang\")\n\n    return valid && changed;\n  }\n\n  handleToggle = name => event => {\n    this.setState({ allDay: event.target.checked });\n  }\n\n  isChanged(field) {\n    return this.state[field] != this.props[field]\n  }\n\n  handleChange(event) {\n    Log.info(event.target)\n\n    const field = event.target.name;\n    const fieldValidField = field+\"Valid\";\n    const value = event.target.value;\n    let valid = true\n\n    valid = this.validate(field, value)\n\n    var stateUpdate = {}\n    stateUpdate[fieldValidField] = valid\n    stateUpdate[field] = value\n\n    Log.info(\"Updating state:\", stateUpdate)\n    this.setState(stateUpdate)\n  }\n\n  // languageSelectionChanged = event => {\n  //   Log.info(\"Handling list pick:\", event.target);\n  //   this.setState({ [event.target.name]: event.target.value });\n  // };\n\n  validate(field, value) {\n    if (value === undefined) value = this.state[field]\n    if (field === \"code\") {\n      const codeFormatCorrect = (value.length >= 6 && value.length <= 20 && value.indexOf(' ') < 0)\n      const codeNonRepeating = (this.props.existingCodes.indexOf(value) < 0)\n      const codeUnchanged = (value === this.props[field])\n      this.setState({repeatingCode: !codeNonRepeating})\n      return codeFormatCorrect && (codeNonRepeating || codeUnchanged);\n    }\n    else if (field === \"lang\") {\n      return true\n    }\n  }\n\n  render() {\n    const { classes } = this.props;\n\n    const menuItems = Object.keys(this.props.languages.byId).map(id => {\n      return (\n        <MenuItem\n          key={id}\n          value={id}\n          classes={{\n            root: classes.selectMenuItem,\n            selected: classes.selectMenuItemSelected\n          }}\n          >\n          {this.props.languages.byId[id].name}\n        </MenuItem>\n      );\n    });\n\n    return (\n      <form className={classes.container} noValidate>\n        <GridContainer spacing={40}>\n\n          <ItemGrid xs={12} sm={3}>\n            Identification:\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={4}>\n            <CustomInput\n              success={this.state.codeValid===true}\n              error={this.state.codeValid===false}\n              labelText={\n                <span>\n                  Subject code\n                </span>\n              }\n              helpText={\n                  this.state.repeatingCode\n                    ? \"A patient with this code already exists!\"\n                    : \"Use 6-20 characters without spaces\"\n              }\n              formControlProps={{\n                fullWidth: true\n              }}\n              disabled={this.state.isEdit}\n              inputProps={{\n                onChange: event => this.handleChange(event),\n                type: \"text\",\n                name: \"code\",\n                value: this.state.code,\n                disabled: this.state.isEdit\n              }}\n            />\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={12}>\n            <Divider className={classes.divider} />\n          </ItemGrid> \n\n          <ItemGrid xs={12} sm={3}>\n            Personalization:\n            <br></br>\n            <small>Configures Home Interface</small>\n          </ItemGrid>  \n\n          <ItemGrid xs={12} sm={4}>\n            <FormControl fullWidth className={classes.selectFormControl}>\n              <InputLabel htmlFor=\"simple-select\" className={classes.selectLabel} >\n                Choose language...\n              </InputLabel>\n              <Select\n                MenuProps={{\n                  className: classes.selectMenu\n                }}\n                classes={{\n                  select: classes.select\n                }}\n                value={this.state.lang}\n                inputProps={{\n                  name: \"lang\",\n                  id: \"simple-select\",\n                  onChange: event => this.handleChange(event),\n                }}\n              >\n                <MenuItem\n                  disabled\n                  classes={{\n                    root: classes.selectMenuItem\n                  }}\n                  key={0}\n                >\n                  Choose language...\n                </MenuItem>\n                {menuItems}\n              </Select>\n            </FormControl>\n          </ItemGrid>\n\n          {/* <ItemGrid xs={12} sm={12}>\n            <Divider className={classes.divider} />\n          </ItemGrid>        \n\n          <ItemGrid xs={12} sm={12}>\n            <small>We will enable storing of more contextual information about subjects in the future. Please, reach out to <a href=\"mailto:support@neuroelectrics.com\">support@neuroelectrics.com</a> if\n            there is a particular type of information about your subjects that you would like to store in our system.</small>\n          </ItemGrid> */}\n\n        </GridContainer>\n      </form>\n    );\n  }\n}\n  \nexport default withStyles(style)(LayoutEditPatientBasicData);","export const DataSubmissionStates = Object.freeze({IDLE: 0, POSTING: 1, POSTED: 2, FAILED: 3})\nexport const DataDeleteStates = Object.freeze({IDLE: 0, DELETING: 1, DELETED: 2, FAILED: 3})","import React from \"react\";\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport Log from '../logging/Log.jsx';\n\n// core components\nimport Wizard from \"molecules/Wizard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport { patientCodesSelector, patientByCodeSelector } from \"../selectors/patientSelectors\";\n\nimport LayoutEditPatientBasicData from \"../molecules/LayoutEditPatientBasicData.jsx\"\n\nimport { addPatient, editPatient, pushNotification } from '../actions/index';\n\nimport {DataSubmissionStates} from '../reducers/utils.js'\n\nclass PatientEditor extends React.Component {\n\n  constructor(props) {\n    Log.info(\"Creating PatientEditor with props:\", props);\n    super(props);\n    this.state = {\n      submitFailed: false\n    };\n\n    this.finishWizard = this.finishWizard.bind(this);\n    this.closeWizard = this.closeWizard.bind(this);\n  }\n\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    Log.info(\"Patient submission state:\", this.props.patientSubmissionState)\n\n    if (prevProps.patientSubmissionState === DataSubmissionStates.POSTING) {\n      if (this.props.patientSubmissionState === DataSubmissionStates.POSTED) {\n        this.closeWizard();\n      }\n      else if (this.props.patientSubmissionState === DataSubmissionStates.FAILED) {\n        this.props.pushNotification(this.props.errorMessage);\n      }\n    }\n  }\n\n  finishWizard(result) {\n    if (this.props.patient) this.props.editPatient(Object.assign(this.props.patient, result))\n    else this.props.addPatient(result.code, result.lang);\n  }\n\n  closeWizard() {\n    this.props.onClose();\n  }\n\n  render() {\n    let title\n    let lang\n    let patientCode\n    if (this.props.patient) {\n      patientCode = this.props.patient.code\n      lang = this.props.patient.lang\n      title = \"Edit subject \" + patientCode\n    }\n    else {\n      patientCode = \"\"\n      title = \"Add new subject\"\n    }\n\n    return (\n      <GridContainer justify=\"center\">\n        <ItemGrid xs={12} sm={8}>\n          <Wizard\n            validate={true}\n            steps={[\n              { stepName: \"Basic\", stepComponent: LayoutEditPatientBasicData, stepId: \"basic\" }\n            ]} // TODO: Props separately per step - and naming reflecting parameter and callback naming\n            title={title}\n            subtitle={\"\"}\n            finishButtonClick={(result) => this.finishWizard(result)}\n            cancelButtonClick={() => this.closeWizard()}\n            color=\"primary\"\n            stepsProps={{\n              code: patientCode,\n              lang: lang,\n              languages: this.props.languages,\n              existingCodes: this.props.patientCodes\n            }}\n            finishButtonText=\"Save\"\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nPatientEditor.propTypes = {\n  code: PropTypes.string\n};\n\nfunction mapStateToProps(state, props) {\n  const patientCodes = patientCodesSelector(state);\n\n  const patient = patientByCodeSelector(state, props.code);\n\n  let patientSubmissionState\n  let errorMessage = null\n  if ( !state.patients.isFetching && !state.patients.posted && state.patients.error === null ) patientSubmissionState = DataSubmissionStates.IDLE;\n  else if ( state.patients.isFetching && !state.patients.posted ) patientSubmissionState = DataSubmissionStates.POSTING;\n  else if ( !state.patients.isFetching && state.patients.posted ) patientSubmissionState = DataSubmissionStates.POSTED;\n  else if ( !state.patients.isFetching && state.patients.error !== null ) {\n    patientSubmissionState = DataSubmissionStates.FAILED;\n    errorMessage = state.patients.error.data.message;\n  }\n\n  return { patient, patientCodes, patientSubmissionState, errorMessage, languages: state.languages };\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators({addPatient, editPatient, pushNotification}, dispatch);\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PatientEditor);\n\n","import React from \"react\";\n\nimport Log from '../logging/Log.jsx';\n\nimport withStyles from \"material-ui/styles/withStyles\";\nimport ButtonStyled from \"./ButtonStyled\";\nimport PatientEditor from \"../organisms/PatientEditor\";\nimport { Modal } from \"material-ui\";\n\nconst styles = {\n  root: {\n    textAlign: \"right\"\n  }\n}\n\nclass MenuHomeStudyActions extends React.Component {\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      addOpen: false\n    };\n  }\n\n  componentDidUpdate() {\n    Log.info(\"MenuPatientsActions updated. New state:\", this.state)\n  }\n\n  renderAddPatientModal() {\n    return (\n      <Modal\n        onClose={() => this.setState({addOpen: false})}\n        open={this.state.addOpen}\n      >\n        <PatientEditor \n          onClose={() => this.setState({addOpen: false})}\n        />\n      </Modal>\n    )\n  }\n\n  render() {\n    const { classes } = this.props;\n\n    return (\n      <div>\n        {this.renderAddPatientModal()}\n\n        <div className={classes.root}>\n          <ButtonStyled\n            icon=\"AddCircleOutline\"\n            message=\"new subject\"\n            onClick={() => this.setState({addOpen: true})}\n          />\n        </div>\n      </div>\n    )\n  }\n\n}\n\nexport default withStyles(styles)(MenuHomeStudyActions);","import React from 'react'\nimport Log from '../logging/Log.jsx'\n\n// react component for creating dynamic tables\nimport ReactTable from 'react-table'\n\nimport ComplianceTable from 'organisms/TableCompliance.jsx'\n\n// @material-ui/icons\nimport Assignment from '@material-ui/icons/Assignment'\nimport Dvr from '@material-ui/icons/Dvr'\nimport Favorite from '@material-ui/icons/Favorite'\nimport Close from '@material-ui/icons/Close'\n\n// core components\nimport GridContainer from 'components/Grid/GridContainer.jsx'\nimport ItemGrid from 'components/Grid/ItemGrid.jsx'\nimport IconCard from 'components/Cards/IconCard.jsx'\nimport HeaderCard from 'components/Cards/HeaderCard.jsx'\nimport IconButton from 'components/CustomButtons/IconButton.jsx'\n\nimport { dataTable } from 'variables/general.jsx'\nimport ButtonStyled from '../molecules/ButtonStyled'\nimport MenuPatientsActions from '../molecules/MenuHomeStudyActions'\nimport ReactGA from 'react-ga'\n\nexport const initializeReactGA = () => {\n  ReactGA.initialize('UA-100557389-4')\n}\n\nexport const logPageView = () => {\n  ReactGA.set({ page: window.location.pathname })\n  ReactGA.pageview(window.location.pathname)\n}\n\nconst PatientsEcosystem = () => {\n  // Google analytics -> Check production/development\n  if (\n    window.location.href == 'https://ne-portal-app.azurewebsites.net/studies'\n  ) {\n    initializeReactGA()\n    logPageView()\n  }\n\n  Log.info('Generating patients ecosystem')\n  return (\n    <GridContainer>\n      <ItemGrid xs={1} md={8} />\n      <ItemGrid xs={12} md={4}>\n        <MenuPatientsActions />\n      </ItemGrid>\n      <ItemGrid xs={12}>\n        <HeaderCard\n          headerColor='orange'\n          cardTitle='Study Summary'\n          cardSubtitle='Status of all subjects in Home Study'\n          search={true}\n          icon={Assignment}\n          content={\n            <div>\n              <ComplianceTable />\n            </div>\n          }\n        />\n      </ItemGrid>\n    </GridContainer>\n  )\n}\n\nexport default PatientsEcosystem\n","import React from \"react\";\n// react components used to create a google map\nimport {\n  withScriptjs,\n  withGoogleMap,\n  GoogleMap,\n  Marker\n} from \"react-google-maps\";\n\n// @material-ui/icons\nimport Map from \"@material-ui/icons/Map\";\nimport AddLocation from \"@material-ui/icons/AddLocation\";\nimport Place from \"@material-ui/icons/Place\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\n\nconst SatelliteMap = withScriptjs(\n  withGoogleMap(props => (\n    <GoogleMap\n      defaultZoom={3}\n      mapTypeId={\"satellite\"}\n      defaultCenter={{ lat: 40.748817, lng: -73.985428 }}\n      defaultOptions={{\n        scrollwheel: false\n      }}\n    >\n      <Marker position={{ lat: 40.748817, lng: -73.985428 }} />\n    </GoogleMap>\n  ))\n);\n\nconst RegularMap = withScriptjs(\n  withGoogleMap(props => (\n    <GoogleMap\n      defaultZoom={8}\n      defaultCenter={{ lat: 40.748817, lng: -73.985428 }}\n      defaultOptions={{\n        scrollwheel: false\n      }}\n    >\n      <Marker position={{ lat: 40.748817, lng: -73.985428 }} />\n    </GoogleMap>\n  ))\n);\n\nconst CustomSkinMap = withScriptjs(\n  withGoogleMap(props => (\n    <GoogleMap\n      defaultZoom={13}\n      defaultCenter={{ lat: 40.748817, lng: -73.985428 }}\n      defaultOptions={{\n        scrollwheel: false,\n        disableDefaultUI: true,\n        zoomControl: true,\n        styles: [\n          {\n            featureType: \"water\",\n            stylers: [\n              { saturation: 43 },\n              { lightness: -11 },\n              { hue: \"#0088ff\" }\n            ]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"geometry.fill\",\n            stylers: [\n              { hue: \"#ff0000\" },\n              { saturation: -100 },\n              { lightness: 99 }\n            ]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"geometry.stroke\",\n            stylers: [{ color: \"#808080\" }, { lightness: 54 }]\n          },\n          {\n            featureType: \"landscape.man_made\",\n            elementType: \"geometry.fill\",\n            stylers: [{ color: \"#ece2d9\" }]\n          },\n          {\n            featureType: \"poi.park\",\n            elementType: \"geometry.fill\",\n            stylers: [{ color: \"#ccdca1\" }]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"labels.text.fill\",\n            stylers: [{ color: \"#767676\" }]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"labels.text.stroke\",\n            stylers: [{ color: \"#ffffff\" }]\n          },\n          { featureType: \"poi\", stylers: [{ visibility: \"off\" }] },\n          {\n            featureType: \"landscape.natural\",\n            elementType: \"geometry.fill\",\n            stylers: [{ visibility: \"on\" }, { color: \"#b8cb93\" }]\n          },\n          { featureType: \"poi.park\", stylers: [{ visibility: \"on\" }] },\n          {\n            featureType: \"poi.sports_complex\",\n            stylers: [{ visibility: \"on\" }]\n          },\n          { featureType: \"poi.medical\", stylers: [{ visibility: \"on\" }] },\n          {\n            featureType: \"poi.business\",\n            stylers: [{ visibility: \"simplified\" }]\n          }\n        ]\n      }}\n    >\n      <Marker position={{ lat: 40.748817, lng: -73.985428 }} />\n    </GoogleMap>\n  ))\n);\n\nclass GoogleMaps extends React.Component {\n  render() {\n    return (\n      <GridContainer>\n        <ItemGrid xs={12} sm={12} md={12}>\n          <IconCard\n            title=\"Satellite Map\"\n            iconColor=\"rose\"\n            icon={Map}\n            content={\n              <SatelliteMap\n                googleMapURL=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"\n                loadingElement={<div style={{ height: `100%` }} />}\n                containerElement={<div style={{ height: `280px`, borderRadius: \"6px\", overflow: \"hidden\" }} />}\n                mapElement={<div style={{ height: `100%` }} />}\n              />\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            title=\"Regular Map\"\n            iconColor=\"rose\"\n            icon={AddLocation}\n            content={\n              <RegularMap\n                googleMapURL=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"\n                loadingElement={<div style={{ height: `100%` }} />}\n                containerElement={<div style={{ height: `280px`, borderRadius: \"6px\", overflow: \"hidden\" }} />}\n                mapElement={<div style={{ height: `100%` }} />}\n              />\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={6}>\n          <IconCard\n            icon={Place}\n            iconColor=\"rose\"\n            title=\"Custom Skin & Settings Map\"\n            content={\n              <CustomSkinMap\n                googleMapURL=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"\n                loadingElement={<div style={{ height: `100%` }} />}\n                containerElement={<div style={{ height: `280px`, borderRadius: \"6px\", overflow: \"hidden\" }} />}\n                mapElement={<div style={{ height: `100%` }} />}\n              />\n            }\n          />\n        </ItemGrid>\n      </GridContainer>\n    );\n  }\n}\n\nexport default GoogleMaps;\n","import React from \"react\";\nimport {\n  withScriptjs,\n  withGoogleMap,\n  GoogleMap,\n  Marker\n} from \"react-google-maps\";\n\nconst CustomSkinMap = withScriptjs(\n  withGoogleMap(props => (\n    <GoogleMap\n      defaultZoom={13}\n      defaultCenter={{ lat: 40.748817, lng: -73.985428 }}\n      defaultOptions={{\n        scrollwheel: false,\n        zoomControl: true,\n        styles: [\n          {\n            featureType: \"water\",\n            stylers: [\n              { saturation: 43 },\n              { lightness: -11 },\n              { hue: \"#0088ff\" }\n            ]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"geometry.fill\",\n            stylers: [\n              { hue: \"#ff0000\" },\n              { saturation: -100 },\n              { lightness: 99 }\n            ]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"geometry.stroke\",\n            stylers: [{ color: \"#808080\" }, { lightness: 54 }]\n          },\n          {\n            featureType: \"landscape.man_made\",\n            elementType: \"geometry.fill\",\n            stylers: [{ color: \"#ece2d9\" }]\n          },\n          {\n            featureType: \"poi.park\",\n            elementType: \"geometry.fill\",\n            stylers: [{ color: \"#ccdca1\" }]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"labels.text.fill\",\n            stylers: [{ color: \"#767676\" }]\n          },\n          {\n            featureType: \"road\",\n            elementType: \"labels.text.stroke\",\n            stylers: [{ color: \"#ffffff\" }]\n          },\n          { featureType: \"poi\", stylers: [{ visibility: \"off\" }] },\n          {\n            featureType: \"landscape.natural\",\n            elementType: \"geometry.fill\",\n            stylers: [{ visibility: \"on\" }, { color: \"#b8cb93\" }]\n          },\n          { featureType: \"poi.park\", stylers: [{ visibility: \"on\" }] },\n          {\n            featureType: \"poi.sports_complex\",\n            stylers: [{ visibility: \"on\" }]\n          },\n          { featureType: \"poi.medical\", stylers: [{ visibility: \"on\" }] },\n          {\n            featureType: \"poi.business\",\n            stylers: [{ visibility: \"simplified\" }]\n          }\n        ]\n      }}\n    >\n      <Marker position={{ lat: 40.748817, lng: -73.985428 }} />\n    </GoogleMap>\n  ))\n);\n\nfunction FullScreenMap({ ...prop }) {\n  return (\n    <CustomSkinMap\n      googleMapURL=\"https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE\"\n      loadingElement={<div style={{ height: `100%` }} />}\n      containerElement={<div style={{ height: `100vh` }} />}\n      mapElement={<div style={{ height: `100%` }} />}\n    />\n  );\n}\n\nexport default FullScreenMap;\n","import React from \"react\";\n// react plugin for creating vector maps\nimport { VectorMap } from \"react-jvectormap\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport Heading from \"components/Heading/Heading.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\n\nvar mapData = {\n  AU: 760,\n  BR: 550,\n  CA: 120,\n  DE: 1300,\n  FR: 540,\n  GB: 690,\n  GE: 200,\n  IN: 200,\n  RO: 600,\n  RU: 300,\n  US: 2920\n};\n\nfunction VectorMaps({ ...prop }) {\n  return (\n    <div>\n      <Heading\n        textAlign=\"center\"\n        title=\"World Map\"\n        category={\n          // eslint-disable-next-line\n          <span>\n            {\n              // eslint-disable-next-line\n            }<a href=\"https://www.npmjs.com/package/react-jvectormap\" target=\"_blank\">\n              React wrapper component\n            </a>{\" \"}\n            of jQuery{\" \"}\n            {\n              // eslint-disable-next-line\n            }<a href=\"http://jvectormap.com/\" target=\"_blank\">\n              jVector Map\n            </a>{\" \"}\n            pluging.\n          </span>\n        }\n      />\n      <GridContainer>\n        <ItemGrid xs={12}>\n          <RegularCard\n            plainCard\n            content={\n              <VectorMap\n                map={\"world_mill\"}\n                backgroundColor=\"transparent\"\n                zoomOnScroll={false}\n                containerStyle={{\n                  width: \"100%\",\n                  height: \"420px\"\n                }}\n                containerClassName=\"map\"\n                regionStyle={{\n                  initial: {\n                    fill: \"#e4e4e4\",\n                    \"fill-opacity\": 0.9,\n                    stroke: \"none\",\n                    \"stroke-width\": 0,\n                    \"stroke-opacity\": 0\n                  }\n                }}\n                series={{\n                  regions: [\n                    {\n                      values: mapData,\n                      scale: [\"#AAAAAA\", \"#444444\"],\n                      normalizeFunction: \"polynomial\"\n                    }\n                  ]\n                }}\n              />\n            }\n          />\n        </ItemGrid>\n      </GridContainer>\n    </div>\n  );\n}\n\nexport default VectorMaps;\n","// ##############################\n// // // IconCard styles\n// #############################\n\nimport {\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst chartsStyle = {\n  legendTitle: {\n    color: grayColor,\n    margin: \"10px 0 !important\"\n  },\n  primary: {\n    color: primaryColor\n  },\n  warning: {\n    color: warningColor\n  },\n  danger: {\n    color: dangerColor\n  },\n  success: {\n    color: successColor\n  },\n  info: {\n    color: infoColor\n  },\n  rose: {\n    color: roseColor\n  },\n  gray: {\n    color: grayColor\n  }\n};\n\nexport default chartsStyle;\n","import React from \"react\";\n// react plugin for creating charts\nimport ChartistGraph from \"react-chartist\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// @material-ui/icons\nimport Timeline from \"@material-ui/icons/Timeline\";\n\n// core components\nimport Heading from \"components/Heading/Heading.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport ChartCard from \"components/Cards/ChartCard.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\n\nimport {\n  roundedLineChart,\n  straightLinesChart,\n  simpleBarChart,\n  colouredLineChart,\n  multipleBarsChart,\n  colouredLinesChart,\n  pieChart\n} from \"variables/charts.jsx\";\n\nimport chartsStyle from \"assets/jss/material-dashboard-pro-react/views/chartsStyle.jsx\";\n\nclass Charts extends React.Component {\n  render() {\n    const { classes } = this.props;\n    return (\n      <div>\n        <Heading\n          textAlign=\"center\"\n          title=\"React Chartist\"\n          category={\n            <span>\n              A react wrapper for{\" \"}\n              <a\n                target=\"_blank\"\n                href=\"https://gionkunz.github.io/chartist-js/\"\n                rel=\"noopener noreferrer\"\n              >\n                Chartist.js\n              </a>. Please checkout the{\" \"}\n              <a\n                href=\"https://gionkunz.github.io/chartist-js/getting-started.html\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                full documentation of Chartist.js\n              </a>{\" \"}\n              and{\" \"}\n              <a\n                href=\"https://fraserxu.me/react-chartist/\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                full documentation of react-cahrtist\n              </a>.\n            </span>\n          }\n        />\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={roundedLineChart.data}\n                  type=\"Line\"\n                  options={roundedLineChart.options}\n                  listener={roundedLineChart.animation}\n                />\n              }\n              chartColor=\"rose\"\n              title=\"Rounded Line Chart\"\n              text=\"Line Chart\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={straightLinesChart.data}\n                  type=\"Line\"\n                  options={straightLinesChart.options}\n                  listener={straightLinesChart.animation}\n                />\n              }\n              chartColor=\"orange\"\n              title=\"Straight Lines Chart\"\n              text=\"Line Chart with Points\"\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={4}>\n            <ChartCard\n              chart={\n                <ChartistGraph\n                  className=\"ct-chart-white-colors\"\n                  data={simpleBarChart.data}\n                  type=\"Bar\"\n                  options={simpleBarChart.options}\n                  responsiveOptions={simpleBarChart.responsiveOptions}\n                  listener={simpleBarChart.animation}\n                />\n              }\n              chartColor=\"blue\"\n              title=\"Simple Bar Chart\"\n              text=\"Bar Chart\"\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <IconCard\n              icon={Timeline}\n              title=\"Coloured Line Chart \"\n              category=\"- Rounded\"\n              iconColor=\"blue\"\n              content={\n                <ChartistGraph\n                  data={colouredLineChart.data}\n                  type=\"Line\"\n                  options={colouredLineChart.options}\n                  listener={colouredLineChart.animation}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <IconCard\n              icon={Timeline}\n              iconColor=\"rose\"\n              title=\"Multiple Bars Chart \"\n              category=\"- Bar Chart\"\n              content={\n                <ChartistGraph\n                  data={multipleBarsChart.data}\n                  type=\"Bar\"\n                  options={multipleBarsChart.options}\n                  listener={multipleBarsChart.animation}\n                />\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={7}>\n            <IconCard\n              icon={Timeline}\n              title=\"Coloured Lines Chart \"\n              category=\"- Rounded\"\n              iconColor=\"blue\"\n              content={\n                <ChartistGraph\n                  data={colouredLinesChart.data}\n                  type=\"Line\"\n                  options={colouredLinesChart.options}\n                  listener={colouredLinesChart.animation}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={5}>\n            <IconCard\n              icon={Timeline}\n              iconColor=\"red\"\n              title=\"Pie Chart\"\n              content={\n                <ChartistGraph\n                  data={pieChart.data}\n                  type=\"Pie\"\n                  options={pieChart.options}\n                />\n              }\n              footer={\n                <div>\n                  <h6 className={classes.legendTitle}>Legend</h6>\n                  <i className={\"fas fa-circle \" + classes.info} /> Apple{` `}\n                  <i\n                    className={\"fas fa-circle \" + classes.warning}\n                  /> Samsung{` `}\n                  <i className={\"fas fa-circle \" + classes.danger} /> Windows\n                  Phone{` `}\n                </div>\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(chartsStyle)(Charts);\n","import React from \"react\";\n// react component used to create a calendar with events on it\nimport BigCalendar from \"react-big-calendar\";\n// dependency plugin for react-big-calendar\nimport moment from \"moment\";\n// react component used to create alerts\nimport SweetAlert from \"react-bootstrap-sweetalert\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Heading from \"components/Heading/Heading.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\n\nimport buttonStyle from \"assets/jss/material-dashboard-pro-react/components/buttonStyle.jsx\";\n\nimport { events } from \"variables/general.jsx\";\n\nBigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment));\n\nclass Calendar extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      events: events,\n      alert: null\n    };\n    this.hideAlert = this.hideAlert.bind(this);\n  }\n  selectedEvent(event) {\n    alert(event.title);\n  }\n  addNewEventAlert(slotInfo) {\n    this.setState({\n      alert: (\n        <SweetAlert\n          input\n          showCancel\n          style={{ display: \"block\", marginTop: \"-100px\" }}\n          title=\"Input something\"\n          onConfirm={e => this.addNewEvent(e, slotInfo)}\n          onCancel={() => this.hideAlert()}\n          confirmBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.success\n          }\n          cancelBtnCssClass={\n            this.props.classes.button + \" \" + this.props.classes.danger\n          }\n        />\n      )\n    });\n  }\n  addNewEvent(e, slotInfo) {\n    var newEvents = this.state.events;\n    newEvents.push({\n      title: e,\n      start: slotInfo.start,\n      end: slotInfo.end\n    });\n    this.setState({\n      alert: null,\n      events: newEvents\n    });\n  }\n  hideAlert() {\n    this.setState({\n      alert: null\n    });\n  }\n  eventColors(event, start, end, isSelected) {\n    var backgroundColor = \"event-\";\n    event.color\n      ? (backgroundColor = backgroundColor + event.color)\n      : (backgroundColor = backgroundColor + \"default\");\n    return {\n      className: backgroundColor\n    };\n  }\n  render() {\n    return (\n      <div>\n        <Heading\n          textAlign=\"center\"\n          title=\"React Big Calendar\"\n          category={\n            <span>\n              A beautiful react component made by{\" \"}\n              <a\n                href=\"https://github.com/intljusticemission\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                International Justice Mission\n              </a>. Please checkout their{\" \"}\n              <a\n                href=\"https://github.com/intljusticemission/react-big-calendar\"\n                target=\"_blank\"\n                rel=\"noopener noreferrer\"\n              >\n                full documentation.\n              </a>\n            </span>\n          }\n        />\n        {this.state.alert}\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={12} md={10}>\n            <RegularCard\n              content={\n                <BigCalendar\n                  selectable\n                  events={this.state.events}\n                  defaultView=\"month\"\n                  scrollToTime={new Date(1970, 1, 1, 6)}\n                  defaultDate={new Date()}\n                  onSelectEvent={event => this.selectedEvent(event)}\n                  onSelectSlot={slotInfo => this.addNewEventAlert(slotInfo)}\n                  eventPropGetter={this.eventColors}\n                />\n              }\n            />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default withStyles(buttonStyle)(Calendar);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Table from \"material-ui/Table\";\nimport TableBody from \"material-ui/Table/TableBody\";\nimport TableCell from \"material-ui/Table/TableCell\";\nimport TableRow from \"material-ui/Table/TableRow\";\nimport IconButton from \"material-ui/IconButton\";\nimport Checkbox from \"material-ui/Checkbox\";\nimport Tooltip from \"material-ui/Tooltip\";\n\n// @material-ui/icons\nimport Edit from \"@material-ui/icons/Edit\";\nimport Close from \"@material-ui/icons/Close\";\nimport Check from \"@material-ui/icons/Check\";\n\nimport tasksStyle from \"assets/jss/material-dashboard-pro-react/components/tasksStyle.jsx\";\n\nclass Tasks extends React.Component {\n  state = {\n    checked: this.props.checkedIndexes\n  };\n  handleToggle = value => () => {\n    const { checked } = this.state;\n    const currentIndex = checked.indexOf(value);\n    const newChecked = [...checked];\n\n    if (currentIndex === -1) {\n      newChecked.push(value);\n    } else {\n      newChecked.splice(currentIndex, 1);\n    }\n\n    this.setState({\n      checked: newChecked\n    });\n  };\n  render() {\n    const { classes, tasksIndexes, tasks } = this.props;\n    return (\n      <Table className={classes.table}>\n        <TableBody>\n          {tasksIndexes.map(value => (\n            <TableRow key={value} className={classes.tableRow}>\n              <TableCell className={classes.tableCell}>\n                <Checkbox\n                  checked={this.state.checked.indexOf(value) !== -1}\n                  tabIndex={-1}\n                  onClick={this.handleToggle(value)}\n                  checkedIcon={<Check className={classes.checkedIcon} />}\n                  icon={<Check className={classes.uncheckedIcon} />}\n                  classes={{\n                    checked: classes.checked\n                  }}\n                />\n              </TableCell>\n              <TableCell className={classes.tableCell}>\n                {tasks[value]}\n              </TableCell>\n              <TableCell className={classes.tableActions}>\n                <Tooltip\n                  id=\"tooltip-top\"\n                  title=\"Edit Task\"\n                  placement=\"top\"\n                  classes={{ tooltip: classes.tooltip }}\n                >\n                  <IconButton\n                    aria-label=\"Edit\"\n                    className={classes.tableActionButton}\n                  >\n                    <Edit\n                      className={\n                        classes.tableActionButtonIcon + \" \" + classes.edit\n                      }\n                    />\n                  </IconButton>\n                </Tooltip>\n                <Tooltip\n                  id=\"tooltip-top-start\"\n                  title=\"Remove\"\n                  placement=\"top\"\n                  classes={{ tooltip: classes.tooltip }}\n                >\n                  <IconButton\n                    aria-label=\"Close\"\n                    className={classes.tableActionButton}\n                  >\n                    <Close\n                      className={\n                        classes.tableActionButtonIcon + \" \" + classes.close\n                      }\n                    />\n                  </IconButton>\n                </Tooltip>\n              </TableCell>\n            </TableRow>\n          ))}\n        </TableBody>\n      </Table>\n    );\n  }\n}\n\nTasks.propTypes = {\n  classes: PropTypes.object.isRequired,\n  tasksIndexes: PropTypes.arrayOf(PropTypes.number),\n  checkedIndexes: PropTypes.arrayOf(PropTypes.number),\n  tasks: PropTypes.arrayOf(PropTypes.node)\n};\n\nexport default withStyles(tasksStyle)(Tasks);\n","// ##############################\n// // // TasksCard component styles\n// #############################\n\nimport {\n  card,\n  cardHeader,\n  defaultFont,\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst tasksCardStyle = theme => ({\n  card,\n  cardHeader: {\n    flex: \"none\",\n    ...cardHeader,\n    ...defaultFont\n  },\n  cardHeaderRTL: {\n    display: \"block\",\n    \"&:after,&:before\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      boxSizing: \"border-box\"\n    }\n  },\n  orangeCardHeader,\n  greenCardHeader,\n  redCardHeader,\n  blueCardHeader,\n  purpleCardHeader,\n  roseCardHeader,\n  cardTitle: {\n    ...defaultFont,\n    float: \"left\",\n    padding: \"10px 10px 10px 0\",\n    lineHeight: \"24px\",\n    fontSize: \"14px\",\n    color: \"#FFFFFF\"\n  },\n  cardTitleRTL: {\n    float: \"right\",\n    padding: \"10px 0px 10px 10px !important\"\n  },\n  tabWrapper: {\n    width: \"auto\",\n    display: \"inline-flex\",\n    alignItems: \"inherit\",\n    flexDirection: \"row\",\n    justifyContent: \"center\",\n    [theme.breakpoints.down(\"sm\")]: {\n      display: \"flex\"\n    }\n  },\n  tabWrapperRTL: {\n    display: \"block\"\n  },\n  tabIcon: {\n    float: \"left\",\n    [theme.breakpoints.down(\"sm\")]: {\n      marginTop: \"-2px\"\n    }\n  },\n  tabIconRTL: {\n    float: \"right\",\n    top: \"2px\",\n    position: \"relative\",\n    [theme.breakpoints.down(\"sm\")]: {\n      marginRight: \"14px\",\n      top: \"5px\"\n    }\n  },\n  displayNone: {\n    display: \"none\"\n  },\n  labelContainerRTL: {\n    float: \"right\",\n    paddingRight: \"10px\",\n    paddingLeft: \"14px\"\n  },\n  labelIcon: {\n    height: \"44px\",\n    width: \"110px\",\n    minWidth: \"72px\",\n    paddingLeft: \"14px\",\n    borderRadius: \"3px\"\n  },\n  labelIconRTL: {\n    paddingLeft: \"0px\",\n    paddingRight: \"0px\"\n  },\n  tabsContainer: {\n    marginTop: \"4px\",\n    color: \"#FFFFFF\",\n    display: \"flex\",\n    flexWrap: \"wrap\"\n  },\n  tabsContainerRTL: {\n    float: \"right\"\n  },\n  tabs: {\n    width: \"110px\",\n    minWidth: \"70px\",\n    paddingLeft: \"12px\"\n  },\n  cardHeaderContent: {\n    flex: \"none\"\n  },\n  label: {\n    lineHeight: \"19px\",\n    textTransform: \"uppercase\",\n    fontSize: \"12px\",\n    fontWeight: \"500\",\n    marginLeft: \"-10px\"\n  },\n  textColorInheritSelected: {\n    backgroundColor: \"rgba(255, 255, 255, 0.2)\",\n    transition: \"background-color .4s\"\n  }\n});\n\nexport default tasksCardStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\nimport CardHeader from \"material-ui/Card/CardHeader\";\nimport Typography from \"material-ui/Typography\";\nimport Tabs from \"material-ui/Tabs\";\nimport Tab from \"material-ui/Tabs/Tab\";\n\n// core components\nimport Tasks from \"components/Tasks/Tasks.jsx\";\n\nimport tasksCardStyle from \"assets/jss/material-dashboard-pro-react/components/tasksCardStyle\";\n\nclass TasksCard extends React.Component {\n  state = {\n    value: 0\n  };\n  handleChange = (event, value) => {\n    this.setState({ value });\n  };\n  render() {\n    const { classes, headerColor, title, tabs, rtlActive } = this.props;\n    const cardHeader =\n      classes.cardHeader +\n      \" \" +\n      classes[headerColor + \"CardHeader\"] +\n      \" \" +\n      cx({\n        [classes.cardHeaderRTL]: rtlActive\n      });\n    const cardTitle =\n      classes.cardTitle +\n      \" \" +\n      cx({\n        [classes.cardTitleRTL]: rtlActive\n      });\n    const tabsContainer =\n      classes.tabsContainer +\n      \" \" +\n      cx({\n        [classes.tabsContainerRTL]: rtlActive\n      });\n    const tabWrapper =\n      classes.tabWrapper +\n      \" \" +\n      cx({\n        [classes.tabWrapperRTL]: rtlActive\n      });\n    const tabIcon =\n      classes.tabIcon +\n      \" \" +\n      cx({\n        [classes.tabIconRTL]: rtlActive\n      });\n    const labelContainer = cx({ [classes.labelContainerRTL]: rtlActive });\n    const labelIcon =\n      classes.labelIcon +\n      \" \" +\n      cx({\n        [classes.labelIconRTL]: rtlActive\n      });\n    return (\n      <Card className={classes.card}>\n        <CardHeader\n          classes={{\n            root: cardHeader,\n            title: cardTitle,\n            content: classes.cardHeaderContent\n          }}\n          title={title}\n          action={\n            <Tabs\n              classes={{\n                flexContainer: tabsContainer,\n                indicator: classes.displayNone\n              }}\n              value={this.state.value}\n              onChange={this.handleChange}\n              textColor=\"inherit\"\n            >\n              {tabs.map((prop, key) => {\n                return (\n                  <Tab\n                    key={key}\n                    classes={{\n                      wrapper: tabWrapper,\n                      labelIcon: labelIcon,\n                      label: classes.label,\n                      textColorInheritSelected: classes.textColorInheritSelected,\n                      labelContainer: labelContainer\n                    }}\n                    icon={<prop.tabIcon className={tabIcon} />}\n                    label={prop.tabName}\n                  />\n                );\n              })}\n            </Tabs>\n          }\n        />\n        <CardContent>\n          {tabs.map((prop, key) => {\n            if (key === this.state.value) {\n              return (\n                <Typography component=\"div\" key={key}>\n                  <Tasks\n                    rtlActive={rtlActive}\n                    checkedIndexes={prop.tabTasksChekedIndexes}\n                    tasksIndexes={prop.tabTasksIndexes}\n                    tasks={prop.tabTasks}\n                  />\n                </Typography>\n              );\n            }\n            return null;\n          })}\n        </CardContent>\n      </Card>\n    );\n  }\n}\n\nTasksCard.defaultProps = {\n  headerColor: \"purple\"\n};\n\nTasksCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  headerColor: PropTypes.oneOf([\n    \"orange\",\n    \"green\",\n    \"red\",\n    \"blue\",\n    \"purple\",\n    \"rose\"\n  ]),\n  title: PropTypes.string,\n  tabs: PropTypes.arrayOf(\n    PropTypes.shape({\n      tabName: PropTypes.string.isRequired,\n      tabIcon: PropTypes.func.isRequired,\n      tabTasks: PropTypes.arrayOf(PropTypes.string).isRequired,\n      tabTasksIndexes: PropTypes.arrayOf(PropTypes.number).isRequired,\n      tabTasksChekedIndexes: PropTypes.arrayOf(PropTypes.number).isRequired\n    })\n  ),\n  rtlActive: PropTypes.bool\n};\n\nexport default withStyles(tasksCardStyle)(TasksCard);\n","// ##############################\n// // // TestimonialCard component styles\n// #############################\n\nimport { card } from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst testimonialCardStyle = {\n  card: {\n    ...card,\n    marginBottom: \"65px\",\n    marginTop: \"30px\",\n    textAlign: \"center\"\n  },\n  iconWrapper: {\n    marginTop: \"30px\"\n  },\n  icon: {\n    width: \"40px\",\n    height: \"40px\"\n  },\n  cardContent: {\n    padding: \"15px 20px\",\n    position: \"relative\"\n  },\n  cardDescription: {\n    fontStyle: \"italic\",\n    color: \"#999999\"\n  },\n  footer: {\n    marginTop: \"0\"\n  },\n  cardTitle: {\n    marginTop: \"0\",\n    marginBottom: \"3px\",\n    color: \"#3C4858\",\n    textDecoration: \"none\"\n  },\n  cardCategory: {\n    color: \"#999999\",\n    fontSize: \"14px\",\n    margin: \"10px 0\"\n  },\n  cardAvatar: {\n    marginTop: \"10px\",\n    marginBottom: \"-50px\",\n    maxWidth: \"100px\",\n    maxHeight: \"100px\",\n    margin: \"-50px auto 0\",\n    borderRadius: \"50%\",\n    overflow: \"hidden\",\n    boxShadow:\n      \"0 10px 30px -12px rgba(0, 0, 0, 0.42), 0 4px 25px 0px rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(0, 0, 0, 0.2)\"\n  },\n  img: {\n    width: \"100%\",\n    height: \"auto\",\n    verticalAlign: \"middle\",\n    border: \"0\"\n  }\n};\n\nexport default testimonialCardStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport Card from \"material-ui/Card\";\nimport CardContent from \"material-ui/Card/CardContent\";\n\n// @material-ui/icons\nimport FormatQuote from \"@material-ui/icons/FormatQuote\";\n\nimport testimonialCardStyle from \"assets/jss/material-dashboard-pro-react/components/testimonialCardStyle.jsx\";\n\nfunction TestimonialCard({ ...props }) {\n  const {\n    classes,\n    cardDescription,\n    cardTitle,\n    cardSubtitle,\n    imageAlt,\n    image\n  } = props;\n  return (\n    <Card className={classes.card}>\n      <div className={classes.iconWrapper}>\n        <FormatQuote className={classes.icon} />\n      </div>\n      <CardContent className={classes.cardContent}>\n        <h5 className={classes.cardDescription}>{cardDescription}</h5>\n      </CardContent>\n      <div className={classes.footer}>\n        <h4 className={classes.cardTitle}>{cardTitle}</h4>\n        <h6 className={classes.cardCategory}>{cardSubtitle}</h6>\n        <div className={classes.cardAvatar}>\n          <img className={classes.img} alt={imageAlt} src={image} />\n        </div>\n      </div>\n    </Card>\n  );\n}\n\nTestimonialCard.defaultProps = {\n  whitePrice: true\n};\n\nTestimonialCard.propTypes = {\n  classes: PropTypes.object.isRequired,\n  cardDescription: PropTypes.string,\n  cardTitle: PropTypes.string,\n  cardSubtitle: PropTypes.string,\n  imageAlt: PropTypes.string,\n  image: PropTypes.string\n};\n\nexport default withStyles(testimonialCardStyle)(TestimonialCard);\n","// ##############################\n// // // Badge component styles\n// #############################\n\nimport {\n  primaryColor,\n  warningColor,\n  dangerColor,\n  successColor,\n  infoColor,\n  roseColor,\n  grayColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst badgeStyle = {\n  badge: {\n    borderRadius: \"12px\",\n    padding: \"5px 12px\",\n    textTransform: \"uppercase\",\n    fontSize: \"10px\",\n    fontWeight: \"700\",\n    lineHeight: \"1\",\n    color: \"#fff\",\n    textAlign: \"center\",\n    whiteSpace: \"nowrap\",\n    verticalAlign: \"baseline\",\n    display: \"inline\"\n  },\n  primary: {\n    backgroundColor: primaryColor\n  },\n  warning: {\n    backgroundColor: warningColor\n  },\n  danger: {\n    backgroundColor: dangerColor\n  },\n  success: {\n    backgroundColor: successColor\n  },\n  info: {\n    backgroundColor: infoColor\n  },\n  rose: {\n    backgroundColor: roseColor\n  },\n  gray: {\n    backgroundColor: grayColor\n  }\n};\n\nexport default badgeStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport badgeStyle from \"assets/jss/material-dashboard-pro-react/components/badgeStyle.jsx\";\n\nfunction Badge({ ...props }) {\n  const { classes, color, children } = props;\n  return (\n    <span className={classes.badge + \" \" + classes[color]}>{children}</span>\n  );\n}\n\nBadge.propTypes = {\n  classes: PropTypes.object.isRequired,\n  color: PropTypes.oneOf([\n    \"primary\",\n    \"warning\",\n    \"danger\",\n    \"success\",\n    \"info\",\n    \"rose\",\n    \"gray\"\n  ])\n};\n\nexport default withStyles(badgeStyle)(Badge);\n","// ##############################\n// // // Timeline component styles\n// #############################\n\nimport {\n  infoColor,\n  primaryColor,\n  successColor,\n  dangerColor,\n  warningColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\nconst timelineStyle = theme => ({\n  timeline: {\n    [theme.breakpoints.down(\"sm\")]: {\n      \"&:before\": {\n        left: \"5% !important\"\n      }\n    },\n    listStyle: \"none\",\n    padding: \"20px 0 20px\",\n    position: \"relative\",\n    marginTop: \"30px\",\n    \"&:before\": {\n      top: \"50px\",\n      bottom: \"0\",\n      position: \"absolute\",\n      content: '\" \"',\n      width: \"3px\",\n      backgroundColor: \"#E5E5E5\",\n      left: \"50%\",\n      marginLeft: \"-1px\"\n    }\n  },\n  timelineSimple: {\n    marginTop: \"30px\",\n    padding: \"0 0 20px\",\n    \"&:before\": {\n      left: \"5%\"\n    }\n  },\n  item: {\n    marginBottom: \"20px\",\n    position: \"relative\",\n    \"&:before,&:after\": {\n      content: '\" \"',\n      display: \"table\"\n    },\n    \"&:after\": {\n      clear: \"both\"\n    }\n  },\n  timelineBadge: {\n    [theme.breakpoints.down(\"sm\")]: {\n      left: \"5% !important\"\n    },\n    color: \"#FFFFFF\",\n    width: \"50px\",\n    height: \"50px\",\n    lineHeight: \"51px\",\n    fontSize: \"1.4em\",\n    textAlign: \"center\",\n    position: \"absolute\",\n    top: \"16px\",\n    left: \"50%\",\n    marginLeft: \"-24px\",\n    zIndex: \"100\",\n    borderTopRightRadius: \"50%\",\n    borderTopLeftRadius: \"50%\",\n    borderBottomRightRadius: \"50%\",\n    borderBottomLeftRadius: \"50%\"\n  },\n  timelineSimpleBadge: {\n    left: \"5%\"\n  },\n  info: {\n    backgroundColor: infoColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(0, 188, 212, 0.4)\"\n  },\n  success: {\n    backgroundColor: successColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(76, 175, 80, 0.4)\"\n  },\n  danger: {\n    backgroundColor: dangerColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(244, 67, 54, 0.4)\"\n  },\n  warning: {\n    backgroundColor: warningColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(255, 152, 0, 0.4)\"\n  },\n  primary: {\n    backgroundColor: primaryColor,\n    boxShadow:\n      \"0 4px 20px 0px rgba(0, 0, 0, 0.14), 0 7px 10px -5px rgba(156, 39, 176, 0.4)\"\n  },\n  badgeIcon: {\n    width: \"24px\",\n    height: \"51px\"\n  },\n  timelinePanel: {\n    [theme.breakpoints.down(\"sm\")]: {\n      float: \"right !important\",\n      width: \"86% !important\",\n      \"&:before\": {\n        borderLeftWidth: \"0 !important\",\n        borderRightWidth: \"15px !important\",\n        left: \"-15px !important\",\n        right: \"auto !important\"\n      },\n      \"&:after\": {\n        borderLeftWidth: \"0 !important\",\n        borderRightWidth: \"14px !important\",\n        left: \"-14px !important\",\n        right: \"auto !important\"\n      }\n    },\n    width: \"45%\",\n    float: \"left\",\n    padding: \"20px\",\n    marginBottom: \"20px\",\n    position: \"relative\",\n    boxShadow: \"0 1px 4px 0 rgba(0, 0, 0, 0.14)\",\n    borderRadius: \"6px\",\n    color: \"rgba(0, 0, 0, 0.87)\",\n    background: \"#fff\",\n    \"&:before\": {\n      position: \"absolute\",\n      top: \"26px\",\n      right: \"-15px\",\n      display: \"inline-block\",\n      borderTop: \"15px solid transparent\",\n      borderLeft: \"15px solid #e4e4e4\",\n      borderRight: \"0 solid #e4e4e4\",\n      borderBottom: \"15px solid transparent\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      position: \"absolute\",\n      top: \"27px\",\n      right: \"-14px\",\n      display: \"inline-block\",\n      borderTop: \"14px solid transparent\",\n      borderLeft: \"14px solid #FFFFFF\",\n      borderRight: \"0 solid #FFFFFF\",\n      borderBottom: \"14px solid transparent\",\n      content: '\" \"'\n    }\n  },\n  timelineSimplePanel: {\n    width: \"86%\"\n  },\n  timelinePanelInverted: {\n    [theme.breakpoints.up(\"sm\")]: {\n      float: \"right\",\n      backgroundColor: \"#FFFFFF\",\n      \"&:before\": {\n        borderLeftWidth: \"0\",\n        borderRightWidth: \"15px\",\n        left: \"-15px\",\n        right: \"auto\"\n      },\n      \"&:after\": {\n        borderLeftWidth: \"0\",\n        borderRightWidth: \"14px\",\n        left: \"-14px\",\n        right: \"auto\"\n      }\n    }\n  },\n  timelineHeading: {\n    marginBottom: \"15px\"\n  },\n  timelineBody: {\n    fontSize: \"14px\",\n    lineHeight: \"21px\"\n  },\n  timelineFooter: {\n    zIndex: \"1000\",\n    position: \"relative\",\n    float: \"left\"\n  },\n  footerTitle: {\n    color: \"#333333\",\n    fontWeight: \"400\",\n    margin: \"10px 0px 0px\"\n  },\n  footerLine: {\n    marginTop: \"10px\",\n    marginBottom: \"5px\"\n  }\n});\n\nexport default timelineStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Badge from \"components/Badge/Badge.jsx\";\n\nimport timelineStyle from \"assets/jss/material-dashboard-pro-react/components/timelineStyle.jsx\";\n\nfunction Timeline({ ...props }) {\n  const { classes, stories, simple } = props;\n  const timelineClass =\n    classes.timeline +\n    \" \" +\n    cx({\n      [classes.timelineSimple]: simple\n    });\n  return (\n    <ul className={timelineClass}>\n      {stories.map((prop, key) => {\n        const panelClasses =\n          classes.timelinePanel +\n          \" \" +\n          cx({\n            [classes.timelinePanelInverted]: prop.inverted,\n            [classes.timelineSimplePanel]: simple\n          });\n        const timelineBadgeClasses =\n          classes.timelineBadge +\n          \" \" +\n          classes[prop.badgeColor] +\n          \" \" +\n          cx({\n            [classes.timelineSimpleBadge]: simple\n          });\n        return (\n          <li className={classes.item} key={key}>\n            {prop.badgeIcon ? (\n              <div className={timelineBadgeClasses}>\n                <prop.badgeIcon className={classes.badgeIcon} />\n              </div>\n            ) : null}\n            <div className={panelClasses}>\n              {prop.title ? (\n                <div className={classes.timelineHeading}>\n                  <Badge color={prop.titleColor}>{prop.title}</Badge>\n                </div>\n              ) : null}\n              <div className={classes.timelineBody}>{prop.body}</div>\n              {prop.footerTitle ? (\n                <h6 className={classes.footerTitle}>{prop.footerTitle}</h6>\n              ) : null}\n              {prop.footer ? <hr className={classes.footerLine} /> : null}\n              {prop.footer ? (\n                <div className={classes.timelineFooter}>{prop.footer}</div>\n              ) : null}\n            </div>\n          </li>\n        );\n      })}\n    </ul>\n  );\n}\n\nTimeline.propTypes = {\n  classes: PropTypes.object.isRequired,\n  stories: PropTypes.arrayOf(PropTypes.object).isRequired,\n  simple: PropTypes.bool\n};\n\nexport default withStyles(timelineStyle)(Timeline);\n","import React from \"react\";\n\n// material-ui icons\nimport Weekend from \"@material-ui/icons/Weekend\";\nimport Home from \"@material-ui/icons/Home\";\nimport BugReport from \"@material-ui/icons/BugReport\";\nimport Code from \"@material-ui/icons/Code\";\nimport Cloud from \"@material-ui/icons/Cloud\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\";\nimport TasksCard from \"components/Cards/TasksCard.jsx\";\nimport PricingCard from \"components/Cards/PricingCard.jsx\";\nimport TestimonialCard from \"components/Cards/TestimonialCard.jsx\";\nimport Table from \"components/Table/Table.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport Timeline from \"components/Timeline/Timeline.jsx\";\n\nimport { widgetStories, bugs, website, server } from \"variables/general.jsx\";\n\nimport image from \"assets/img/faces/card-profile1-square.jpg\";\n\nclass Widgets extends React.Component {\n  render() {\n    return (\n      <div>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <HeaderCard\n              headerColor=\"orange\"\n              cardTitle=\"Employees Stats\"\n              cardSubtitle=\"New employees on 15th September, 2016\"\n              content={\n                <Table\n                  hover\n                  tableHeaderColor=\"warning\"\n                  tableHead={[\"ID\", \"Name\", \"Salary\", \"Country\"]}\n                  tableData={[\n                    [\"1\", \"Dakota Rice\", \"$36,738\", \"Niger\"],\n                    [\"2\", \"Minerva Hooper\", \"$23,789\", \"Curaçao\"],\n                    [\"3\", \"Sage Rodriguez\", \"$56,142\", \"Netherlands\"],\n                    [\"4\", \"Philip Chaney\", \"$38,735\", \"Korea, South\"]\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <TasksCard\n              headerColor=\"rose\"\n              title=\"Tasks:\"\n              tabs={[\n                {\n                  tabName: \"Bugs\",\n                  tabIcon: BugReport,\n                  tabTasks: bugs,\n                  tabTasksIndexes: [0, 1, 2, 3],\n                  tabTasksChekedIndexes: [0, 3]\n                },\n                {\n                  tabName: \"Website\",\n                  tabIcon: Code,\n                  tabTasks: website,\n                  tabTasksIndexes: [0, 1],\n                  tabTasksChekedIndexes: [0]\n                },\n                {\n                  tabName: \"Server\",\n                  tabIcon: Cloud,\n                  tabTasks: server,\n                  tabTasksIndexes: [0, 1, 2],\n                  tabTasksChekedIndexes: [1]\n                }\n              ]}\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <GridContainer>\n              <ItemGrid xs={12} sm={12} lg={6}>\n                <PricingCard\n                  title=\"SMALL COMPANY\"\n                  price=\"$29\"\n                  description=\"This is good if your company size is between 2 and 10 Persons.\"\n                  icon={Home}\n                  iconColor=\"rose\"\n                  footer={\n                    <Button round color=\"rose\">\n                      Choose plan\n                    </Button>\n                  }\n                />\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} lg={6}>\n                <PricingCard\n                  plain\n                  title=\"FREELANCER\"\n                  price=\"FREE\"\n                  whitePrice={false}\n                  description=\"This is good if your company size is between 2 and 10 Persons.\"\n                  icon={Weekend}\n                  iconColor=\"gray\"\n                  footer={\n                    <Button round color=\"white\">\n                      Choose plan\n                    </Button>\n                  }\n                />\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} md={11}>\n                <TestimonialCard\n                  cardDescription=\"Your products, all the kits that I have downloaded from your site and worked with are sooo cool! I love the color mixtures, cards... everything. Keep up the great work!\"\n                  cardTitle=\"Alec Thompson\"\n                  cardSubtitle=\"@ALECTHOMPSON\"\n                  imageAlt=\"...\"\n                  image={image}\n                />\n              </ItemGrid>\n            </GridContainer>\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <Timeline simple stories={widgetStories} />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default Widgets;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\n// mterial-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nconst style = {\n  clearfix: {\n    \"&:after,&:before\": {\n      display: \"table\",\n      content: '\" \"'\n    },\n    \"&:after\": {\n      clear: \"both\"\n    }\n  }\n};\n\nfunction Clearfix({ ...props }) {\n  const { classes } = props;\n  return <div className={classes.clearfix} />;\n}\n\nClearfix.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(style)(Clearfix);\n","import React from \"react\";\n\n// material-ui components\nimport InputLabel from \"material-ui/Input/InputLabel\";\n\n// @material-ui/icons\nimport PermIdentity from \"@material-ui/icons/PermIdentity\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport ProfileCard from \"components/Cards/ProfileCard.jsx\";\nimport IconCard from \"components/Cards/IconCard.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport Clearfix from \"components/Clearfix/Clearfix.jsx\";\n\nimport avatar from \"assets/img/faces/marc.jpg\";\n\nfunction UserProfile({ ...props }) {\n  return (\n    <div>\n      <GridContainer>\n        <ItemGrid xs={12} sm={12} md={8}>\n          <IconCard\n            icon={PermIdentity}\n            iconColor=\"rose\"\n            title=\"Edit Profile - \"\n            category=\"Complete your profile\"\n            content={\n              <div>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={5}>\n                    <CustomInput\n                      labelText=\"Company (disabled)\"\n                      id=\"company-disabled\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        disabled: true\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={3}>\n                    <CustomInput\n                      labelText=\"Username\"\n                      id=\"username\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={4}>\n                    <CustomInput\n                      labelText=\"Email address\"\n                      id=\"email-address\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={6}>\n                    <CustomInput\n                      labelText=\"First Name\"\n                      id=\"first-name\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={6}>\n                    <CustomInput\n                      labelText=\"Last Name\"\n                      id=\"last-name\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={4}>\n                    <CustomInput\n                      labelText=\"City\"\n                      id=\"city\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={4}>\n                    <CustomInput\n                      labelText=\"Country\"\n                      id=\"country\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                  <ItemGrid xs={12} sm={12} md={4}>\n                    <CustomInput\n                      labelText=\"Postal Code\"\n                      id=\"postal-code\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <GridContainer>\n                  <ItemGrid xs={12} sm={12} md={12}>\n                    <InputLabel style={{ color: \"#AAAAAA\" }}>\n                      About me\n                    </InputLabel>\n                    <CustomInput\n                      labelText=\"Lamborghini Mercy, Your chick she so thirsty, I'm in that two seat Lambo.\"\n                      id=\"about-me\"\n                      formControlProps={{\n                        fullWidth: true\n                      }}\n                      inputProps={{\n                        multiline: true,\n                        rows: 5\n                      }}\n                    />\n                  </ItemGrid>\n                </GridContainer>\n                <Button color=\"rose\" right>\n                  Update Profile\n                </Button>\n                <Clearfix />\n              </div>\n            }\n          />\n        </ItemGrid>\n        <ItemGrid xs={12} sm={12} md={4}>\n          <ProfileCard\n            avatar={avatar}\n            subtitle=\"CEO / CO-FOUNDER\"\n            title=\"Alec Thompson\"\n            description=\"Don't be scared of the truth because we need to restart the human foundation in truth And I love you like Kanye loves Kanye I love Rick Owens’ bed design but the back is...\"\n            content={\n              <Button color=\"rose\" round>\n                Follow\n              </Button>\n            }\n          />\n        </ItemGrid>\n      </GridContainer>\n    </div>\n  );\n}\n\nexport default UserProfile;\n","import React from \"react\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport RegularCard from \"components/Cards/RegularCard.jsx\";\nimport Heading from \"components/Heading/Heading.jsx\";\nimport Timeline from \"components/Timeline/Timeline.jsx\";\n\nimport { stories } from \"variables/general.jsx\";\n\nclass TimelinePage extends React.Component {\n  render() {\n    return (\n      <div>\n        <Heading title=\"Timeline\" textAlign=\"center\" />\n        <GridContainer>\n          <ItemGrid xs={12}>\n            <RegularCard plainCard content={<Timeline stories={stories} />} />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default TimelinePage;\n","import React from \"react\";\n\n// @material-ui/icons\nimport Weekend from \"@material-ui/icons/Weekend\";\nimport Home from \"@material-ui/icons/Home\";\nimport BugReport from \"@material-ui/icons/BugReport\";\nimport Code from \"@material-ui/icons/Code\";\nimport Cloud from \"@material-ui/icons/Cloud\";\n\n// core components\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\";\nimport TasksCard from \"components/Cards/TasksCard.jsx\";\nimport PricingCard from \"components/Cards/PricingCard.jsx\";\nimport TestimonialCard from \"components/Cards/TestimonialCard.jsx\";\nimport Table from \"components/Table/Table.jsx\";\nimport Timeline from \"components/Timeline/Timeline.jsx\";\nimport Button from \"components/CustomButtons/Button.jsx\";\n\nimport {\n  rtlStories,\n  rtlBugs,\n  rtlWebsite,\n  rtlServer\n} from \"variables/general.jsx\";\n\nimport image from \"assets/img/faces/card-profile1-square.jpg\";\n\nclass RTLSupport extends React.Component {\n  render() {\n    return (\n      <div>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={12} lg={6}>\n            <HeaderCard\n              headerColor=\"orange\"\n              cardTitle=\"لتكاليف يبق\"\n              cardSubtitle=\"بالإنزال وفي. خيار ومضى العمليات تم ذلك, تم معقل مرمى\"\n              content={\n                <Table\n                  hover\n                  tableHeaderColor=\"warning\"\n                  tableHead={[\n                    \"وتم\",\n                    \"لأمريكية هذا\",\n                    \"شاسعالأمريكية\",\n                    \"الأمريكية \"\n                  ]}\n                  tableData={[\n                    [\"وا حد\", \"السبب وفرنسا الصينية \", \"$36,738\", \"تكاليف\"],\n                    [\"إثنان\", \"بمباركة بها \", \"$23,789\", \"الأمريكية من\"],\n                    [\"ثلاثة\", \" شاسعالأمريكية \", \"$56,142\", \"السفن وعُرفت\"],\n                    [\"أربعة\", \" الاندونيسية\", \"$38,735\", \" فصل.\"]\n                  ]}\n                />\n              }\n            />\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={12} lg={6}>\n            <TasksCard\n              rtlActive\n              headerColor=\"rose\"\n              title=\"منتصف:\"\n              tabs={[\n                {\n                  tabName: \"ضرب\",\n                  tabIcon: BugReport,\n                  tabTasks: rtlBugs,\n                  tabTasksIndexes: [0, 1, 2, 3],\n                  tabTasksChekedIndexes: [0, 3]\n                },\n                {\n                  tabName: \"السفن\",\n                  tabIcon: Code,\n                  tabTasks: rtlWebsite,\n                  tabTasksIndexes: [0, 1],\n                  tabTasksChekedIndexes: [0]\n                },\n                {\n                  tabName: \"فصل.\",\n                  tabIcon: Cloud,\n                  tabTasks: rtlServer,\n                  tabTasksIndexes: [0, 1, 2],\n                  tabTasksChekedIndexes: [1]\n                }\n              ]}\n            />\n          </ItemGrid>\n        </GridContainer>\n        <GridContainer>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <GridContainer>\n              <ItemGrid xs={12} sm={12} lg={6}>\n                <PricingCard\n                  title=\"جيوب سليمان، الإنزال\"\n                  price=\"$29\"\n                  description=\"الأجل المتساقطة، من. عرض بسبب وأكثرها الاندونيسية بـ.\"\n                  icon={Home}\n                  iconColor=\"rose\"\n                  footer={\n                    <Button round color=\"rose\">\n                      حاملات فعل\n                    </Button>\n                  }\n                />\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} lg={6}>\n                <PricingCard\n                  plain\n                  title=\"المتحدة لتقليعة\"\n                  price=\"قائمة\"\n                  whitePrice={false}\n                  description=\"الأجل المتساقطة، من. عرض بسبب وأكثرها الاندونيسية بـ.\"\n                  icon={Weekend}\n                  iconColor=\"gray\"\n                  footer={\n                    <Button round color=\"white\">\n                      حاملات فعل\n                    </Button>\n                  }\n                />\n              </ItemGrid>\n              <ItemGrid xs={12} sm={12} md={11}>\n                <TestimonialCard\n                  cardDescription=\"بعد و وسوء الأحمر, دون عقبت الهادي أم, قد حول قادة حكومة يتعلّق. أخذ حصدت اوروبا أن, كلا مهمّات اسبوعين التخطيط عل. وإيطالي الأوروبي و نفس. صفحة احداث أضف ان, هو مرجع نهاية لهيمنة كما. تم مايو لفشل المدن دول, جعل أن عسكرياً التّحول استرجاع.\"\n                  cardTitle=\"أليك طومسون\"\n                  cardSubtitle=\"أليك طومسون@\"\n                  imageAlt=\"...\"\n                  image={image}\n                />\n              </ItemGrid>\n            </GridContainer>\n          </ItemGrid>\n          <ItemGrid xs={12} sm={12} md={6}>\n            <Timeline simple stories={rtlStories} />\n          </ItemGrid>\n        </GridContainer>\n      </div>\n    );\n  }\n}\n\nexport default RTLSupport;\n","import Dashboard from \"views/Dashboard/Dashboard.jsx\";\nimport Buttons from \"views/Components/Buttons.jsx\";\nimport GridSystem from \"views/Components/GridSystem.jsx\";\nimport Panels from \"views/Components/Panels.jsx\";\nimport SweetAlert from \"views/Components/SweetAlert.jsx\";\nimport Notifications from \"views/Components/Notifications.jsx\";\nimport Icons from \"views/Components/Icons.jsx\";\nimport Typography from \"views/Components/Typography.jsx\";\nimport RegularForms from \"views/Forms/RegularForms.jsx\";\nimport ExtendedForms from \"views/Forms/ExtendedForms.jsx\";\nimport ValidationForms from \"views/Forms/ValidationForms.jsx\";\nimport Wizard from \"views/Forms/Wizard.jsx\";\nimport RegularTables from \"views/Tables/RegularTables.jsx\";\nimport ExtendedTables from \"views/Tables/ExtendedTables.jsx\";\nimport TreatmentsMain from \"../ecosystems/TreatmentsMain.jsx\";\nimport GoogleMaps from \"views/Maps/GoogleMaps.jsx\";\nimport FullScreenMap from \"views/Maps/FullScreenMap.jsx\";\nimport VectorMap from \"views/Maps/VectorMap.jsx\";\nimport Charts from \"views/Charts/Charts.jsx\";\nimport Calendar from \"views/Calendar/Calendar.jsx\";\nimport Widgets from \"views/Widgets/Widgets.jsx\";\nimport UserProfile from \"views/Pages/UserProfile.jsx\";\nimport TimelinePage from \"views/Pages/Timeline.jsx\";\nimport RTLSupport from \"views/Pages/RTLSupport.jsx\";\nimport PricingPage from \"views/Pages/PricingPage.jsx\";\nimport LoginPage from \"views/Pages/LoginPage.jsx\";\nimport RegisterPage from \"views/Pages/RegisterPage.jsx\";\nimport LockScreenPage from \"views/Pages/LockScreenPage.jsx\";\n\n// @material-ui/icons\nimport DashboardIcon from \"@material-ui/icons/Dashboard\";\nimport Image from \"@material-ui/icons/Image\";\nimport Apps from \"@material-ui/icons/Apps\";\nimport ContentPaste from \"@material-ui/icons/ContentPaste\";\nimport GridOn from \"@material-ui/icons/GridOn\";\nimport Place from \"@material-ui/icons/Place\";\nimport WidgetsIcon from \"@material-ui/icons/Widgets\";\nimport Timeline from \"@material-ui/icons/Timeline\";\nimport DateRange from \"@material-ui/icons/DateRange\";\nimport PersonAdd from \"@material-ui/icons/PersonAdd\";\nimport Fingerprint from \"@material-ui/icons/Fingerprint\";\nimport MonetizationOn from \"@material-ui/icons/MonetizationOn\";\nimport LockOpen from \"@material-ui/icons/LockOpen\";\n\nconst rtlRoutes = [\n  {\n    path: \"/rtl/rtl-support-page\",\n    name: \"دعم رتل\",\n    mini: \"ص\",\n    component: RTLSupport\n  },\n  {\n    redirect: true,\n    path: \"/rtl\",\n    pathTo: \"/rtl/rtl-support-page\",\n    name: \"RTL Support\"\n  }\n];\n\nvar sidebarLinks = [\n  {\n    path: \"/dashboard\",\n    name: \"لوحة القيادة ة\",\n    icon: DashboardIcon,\n    component: Dashboard\n  },\n  {\n    collapse: true,\n    path: \"-page\",\n    name: \"صفحات\",\n    state: \"openPages\",\n    icon: Image,\n    views: [\n      {\n        path: \"/timeline-page\",\n        name: \"الجدول الزمني\",\n        mini: \"ر\",\n        component: TimelinePage\n      },\n      {\n        path: \"/user-page\",\n        name: \"ملف تعريفي للمستخدم\",\n        mini: \"شع\",\n        component: UserProfile\n      },\n      {\n        path: \"/rtl/rtl-support-page\",\n        name: \"دعم رتل\",\n        mini: \"ص\",\n        component: RTLSupport\n      },\n      {\n        path: \"/pages/register-page\",\n        name: \"سجل الصفحة\",\n        short: \"سجل الصفحة\",\n        mini: \"صع\",\n        icon: PersonAdd,\n        component: RegisterPage\n      },\n      {\n        path: \"/pages/login-page\",\n        name: \"صفحة تسجيل الدخول\",\n        short: \"صفحة تسجيل الدخول\",\n        mini: \"هعذا\",\n        icon: Fingerprint,\n        component: LoginPage\n      },\n      {\n        path: \"/pages/pricing-page\",\n        name: \"التسعير\",\n        short: \"التسعير\",\n        mini: \"ع\",\n        icon: MonetizationOn,\n        component: PricingPage\n      },\n      {\n        path: \"/pages/lock-screen-page\",\n        name: \"قفل صفحة الشاشة\",\n        short: \"قفل صفحة الشاشة\",\n        mini: \"هذاع\",\n        icon: LockOpen,\n        component: LockScreenPage\n      },\n      {\n        redirect: true,\n        path: \"/pages\",\n        pathTo: \"/pages/register-page\",\n        name: \"Register Page\"\n      }\n    ]\n  },\n  {\n    collapse: true,\n    path: \"/components\",\n    name: \"المكونات\",\n    state: \"openComponents\",\n    icon: Apps,\n    views: [\n      {\n        path: \"/components/buttons\",\n        name: \"وصفتت\",\n        mini: \"بت\",\n        component: Buttons\n      },\n      {\n        path: \"/components/grid-system\",\n        name: \"نظام الشبكةو\",\n        mini: \"زو\",\n        component: GridSystem\n      },\n      {\n        path: \"/components/panels\",\n        name: \"لوحات\",\n        mini: \"ع\",\n        component: Panels\n      },\n      {\n        path: \"/components/sweet-alert\",\n        name: \"التنبيه الحلو\",\n        mini: \"ومن\",\n        component: SweetAlert\n      },\n      {\n        path: \"/components/notifications\",\n        name: \"إخطارات\",\n        mini: \"ن\",\n        component: Notifications\n      },\n      {\n        path: \"/components/icons\",\n        name: \"الرموز\",\n        mini: \"و\",\n        component: Icons\n      },\n      {\n        path: \"/components/typography\",\n        name: \"طباعة\",\n        mini: \"ر\",\n        component: Typography\n      }\n    ]\n  },\n  {\n    collapse: true,\n    path: \"/forms\",\n    name: \"إستمارات\",\n    state: \"openForms\",\n    icon: ContentPaste,\n    views: [\n      {\n        path: \"/forms/regular-forms\",\n        name: \"أشكال منتظمة\",\n        mini: \"صو\",\n        component: RegularForms\n      },\n      {\n        path: \"/forms/extended-forms\",\n        name: \"أشكال موسعة\",\n        mini: \"هوو\",\n        component: ExtendedForms\n      },\n      {\n        path: \"/forms/validation-forms\",\n        name: \"نماذج التحقق\",\n        mini: \"تو\",\n        component: ValidationForms\n      },\n      { path: \"/forms/wizard\", name: \"ساحر\", mini: \"ث\", component: Wizard }\n    ]\n  },\n  {\n    collapse: true,\n    path: \"/tables\",\n    name: \"الجداول\",\n    state: \"openTables\",\n    icon: GridOn,\n    views: [\n      {\n        path: \"/tables/regular-tables\",\n        name: \"الجداول العادية\",\n        mini: \"صر\",\n        component: RegularTables\n      },\n      {\n        path: \"/tables/extended-tables\",\n        name: \"الجداول الموسعة\",\n        mini: \"هور\",\n        component: ExtendedTables\n      },\n      {\n        path: \"/tables/react-tables\",\n        name: \"رد فعل الجداول\",\n        mini: \"غ\",\n        component: TreatmentsMain\n      }\n    ]\n  },\n  {\n    collapse: true,\n    path: \"/maps\",\n    name: \"خرائط\",\n    state: \"openMaps\",\n    icon: Place,\n    views: [\n      {\n        path: \"/maps/google-maps\",\n        name: \"خرائط جوجل\",\n        mini: \"زم\",\n        component: GoogleMaps\n      },\n      {\n        path: \"/maps/full-screen-maps\",\n        name: \"خريطة كاملة الشاشة\",\n        mini: \"ووم\",\n        component: FullScreenMap\n      },\n      {\n        path: \"/maps/vector-maps\",\n        name: \"سهم التوجيه، الخريطة\",\n        mini: \"تم\",\n        component: VectorMap\n      }\n    ]\n  },\n  { path: \"/widgets\", name: \"الحاجيات\", icon: WidgetsIcon, component: Widgets },\n  {\n    path: \"/charts\",\n    name: \"الرسوم البيانية\",\n    icon: Timeline,\n    component: Charts\n  },\n  { path: \"/calendar\", name: \"التقويم\", icon: DateRange, component: Calendar }\n];\n\nexport { sidebarLinks };\n\nexport default rtlRoutes;\n","// ##############################\n// // // App styles\n// #############################\n\nimport {\n  drawerWidth,\n  drawerMiniWidth,\n  transition,\n  containerFluid\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst appStyle = theme => ({\n  wrapper: {\n    direction: \"rtl\",\n    position: \"relative\",\n    top: \"0\",\n    height: \"100vh\",\n    \"&:after\": {\n      display: \"table\",\n      clear: \"both\",\n      content: '\" \"'\n    }\n  },\n  mainPanel: {\n    transitionProperty: \"top, bottom, width\",\n    transitionDuration: \".2s, .2s, .35s\",\n    transitionTimingFunction: \"linear, linear, ease\",\n    [theme.breakpoints.up(\"md\")]: {\n      width: `calc(100% - ${drawerWidth}px)`\n    },\n    overflow: \"auto\",\n    position: \"relative\",\n    float: \"left\",\n    ...transition,\n    maxHeight: \"100%\",\n    width: \"100%\",\n    overflowScrolling: \"touch\"\n  },\n  content: {\n    marginTop: \"70px\",\n    padding: \"30px 15px\",\n    minHeight: \"calc(100% - 123px)\"\n  },\n  container: { ...containerFluid },\n  mainPanelSidebarMini: {\n    [theme.breakpoints.up(\"md\")]: {\n      width: `calc(100% - ${drawerMiniWidth}px)`\n    }\n  }\n});\n\nexport default appStyle;\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\n// creates a beautiful scrollbar\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Header from \"components/Header/Header.jsx\";\nimport Footer from \"components/Footer/Footer.jsx\";\nimport Sidebar from \"components/Sidebar/Sidebar.jsx\";\n\nimport rtlRoutes from \"routes/rtl.jsx\";\nimport { sidebarLinks } from \"routes/rtl.jsx\";\n\nimport rtlStyle from \"assets/jss/material-dashboard-pro-react/layouts/rtlStyle.jsx\";\n\nimport image from \"assets/img/sidebar-2.jpg\";\nimport logo from \"assets/img/logo-white.svg\";\n\nconst switchRoutes = (\n  <Switch>\n    {rtlRoutes.map((prop, key) => {\n      if (prop.redirect)\n        return <Redirect from={prop.path} to={prop.pathTo} key={key} />;\n      if (prop.collapse)\n        return prop.views.map((prop, key) => {\n          return (\n            <Route path={prop.path} component={prop.component} key={key} />\n          );\n        });\n      return <Route path={prop.path} component={prop.component} key={key} />;\n    })}\n  </Switch>\n);\n\nclass RTL extends React.Component {\n  state = {\n    mobileOpen: false,\n    miniActive: false\n  };\n  handleDrawerToggle = () => {\n    this.setState({ mobileOpen: !this.state.mobileOpen });\n  };\n  componentDidMount() {\n    if (navigator.platform.indexOf(\"Win\") > -1) {\n      // eslint-disable-next-line\n      const ps = new PerfectScrollbar(this.refs.mainPanel);\n    }\n  }\n  componentDidUpdate(e) {\n    if (e.history.location.pathname !== e.location.pathname) {\n      this.refs.mainPanel.scrollTop = 0;\n    }\n  }\n  sidebarMinimize() {\n    this.setState({ miniActive: !this.state.miniActive });\n  }\n  render() {\n    const { classes, ...rest } = this.props;\n    const mainPanel =\n      classes.mainPanel +\n      \" \" +\n      cx({\n        [classes.mainPanelSidebarMini]: this.state.miniActive\n      });\n    return (\n      <div className={classes.wrapper}>\n        <Sidebar\n          routes={sidebarLinks}\n          logoText={\"توقيت الإبداعية\"}\n          logo={logo}\n          image={image}\n          handleDrawerToggle={this.handleDrawerToggle}\n          open={this.state.mobileOpen}\n          color=\"white\"\n          bgColor=\"blue\"\n          miniActive={this.state.miniActive}\n          rtlActive\n          {...rest}\n        />\n        <div className={mainPanel} ref=\"mainPanel\">\n          <Header\n            rtlActive\n            sidebarMinimize={this.sidebarMinimize.bind(this)}\n            miniActive={this.state.miniActive}\n            routes={rtlRoutes}\n            handleDrawerToggle={this.handleDrawerToggle}\n            {...rest}\n          />\n          <div className={classes.content}>\n            <div className={classes.container}>{switchRoutes}</div>\n          </div>\n          <Footer fluid rtlActive />\n        </div>\n      </div>\n    );\n  }\n}\n\nRTL.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(rtlStyle)(RTL);\n","import React, { Component } from 'react';\r\nimport Log from '../logging/Log.jsx';\r\n\r\nimport { connect } from 'react-redux';\r\nimport { bindActionCreators } from 'redux';\r\nimport Snackbar from \"components/Snackbar/Snackbar.jsx\";\r\n\r\nimport { pushNotification, notificationHidden } from '../actions/index';\r\n\r\nexport default function (ComposedComponent) {\r\n  class Notifiable extends Component {\r\n\r\n    constructor(props) {\r\n      super(props);\r\n      this.renderNotification = this.renderNotification.bind(this);\r\n    }\r\n\r\n    componentDidUpdate(prevProps, prevState, snapshot) {\r\n      if (this.props.show && !prevProps.show) {\r\n        setTimeout(\r\n          function() {\r\n            this.props.notificationHidden();\r\n          }.bind(this),\r\n          5000\r\n        );\r\n      }\r\n    }\r\n\r\n    renderNotification() {\r\n      Log.info(\"Rendering notification with props:\", this.props)\r\n      return (\r\n        <Snackbar\r\n          message={this.props.message}\r\n          open={this.props.show}\r\n          closeNotification={() => this.props.notificationHidden()}\r\n        />\r\n      )\r\n    }\r\n\r\n    render() {\r\n      return (\r\n        <div>\r\n          <ComposedComponent {...this.props} />\r\n          {this.renderNotification()}\r\n        </div>\r\n      );\r\n    }\r\n  }\r\n\r\n  function mapStateToProps( { notification } ) {\r\n    Log.info(\"Mapping\", notification);\r\n    return { show: notification.show, message: notification.message };\r\n  }\r\n\r\n  function mapDispatchToProps(dispatch) {\r\n    return bindActionCreators({pushNotification, notificationHidden}, dispatch);\r\n  }\r\n\r\n  return connect(mapStateToProps, mapDispatchToProps)(Notifiable);\r\n}","import React, { Component } from \"react\"\n\nimport Chip from \"material-ui/Chip\"\nimport Avatar from \"material-ui/Avatar\"\n\nimport { withStyles } from \"material-ui/styles\"\n\nimport moment from \"moment\"\n\nimport Warning from \"@material-ui/icons/Warning\"\nimport Error from \"@material-ui/icons/Error\"\nimport FileDownload from \"@material-ui/icons/FileDownload\"\nimport TimeLapse from \"@material-ui/icons/Timelapse\"\n\nconst styles = theme => ({\n  root: {},\n  chip: {\n    height: 16,\n    backgroundColor: \"white\",\n    fontSize: 10,\n    borderRadius: 8\n  },\n  avatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: \"white\"\n  },\n  iconAvatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: \"red\"\n  },\n  iconChip: {\n    background: \"transparent\",\n    width: 22,\n    fontSize: 10,\n    borderRadius: 8\n  },\n  error: {\n    color: \"white\"\n  },\n  file: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: \"white\",\n    marginTop: 2\n  },\n  eeg: {},\n  card: {}\n})\n\nclass CardCalendarSession extends Component {\n  constructor(props) {\n    super(props)\n  }\n\n  render() {\n    \n    const timestring = this.props.event.allDay\n      ? \"All day\"\n      : moment(this.props.event.start).format(\"hA\") +\n        \" - \" +\n        moment(this.props.event.end).format(\"hA\")\n\n    const { classes } = this.props\n\n    const chipDuration = this.props.event.duration ? (\n      <Chip\n        avatar={\n          <Avatar className={classes.avatar}>\n            <TimeLapse />\n          </Avatar>\n        }\n        label={\n          this.props.event.executed +\n          \"/\" +\n          this.props.event.duration +\n          \"minutes\"\n        }\n        className={classes.chip}\n      />\n    ) : (\n      \"\"\n    )\n\n    const chipError = this.props.event.problem ? (\n      <Chip\n        avatar={\n          <Avatar className={classes.iconAvatar}>\n            <Error className={classes.error} />\n          </Avatar>\n        }\n        className={classes.iconChip}\n      />\n    ) : (\n      \"\"\n    )\n    \n    const download = this.props.event.eeg.length > 0 &&\n       (\n        <Chip\n          avatar={\n            <Avatar className={classes.avatar}>\n              <FileDownload className={classes.file} />\n            </Avatar>\n          }\n          className={classes.iconChip}\n        />\n      )\n\n\n    return (\n      <div className={classes.card}>\n        {this.props.event.title}\n        <br />\n        <strong>{timestring}</strong>\n        <br />\n        <br />\n        {download}\n        {chipError} {chipDuration}\n      </div>\n    )\n  }\n}\n\nexport default withStyles(styles)(CardCalendarSession)\n","import React, { Component } from 'react';\n\nimport Chip from 'material-ui/Chip';\nimport Avatar from 'material-ui/Avatar';\n\nimport { withStyles } from 'material-ui/styles';\n\nimport moment from 'moment';\n\nimport Warning from '@material-ui/icons/Warning';\nimport Error from '@material-ui/icons/Error';\nimport TimeLapse from '@material-ui/icons/Timelapse';\n\nconst styles = theme => ({\n  root: {},\n  chip: {\n    height: 16,\n    backgroundColor: 'white',\n    fontSize: 10,\n    borderRadius: 8\n  },\n  avatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: 'white'\n  },\n  iconAvatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: 'red'\n  },\n  iconChip: {\n    height: 0,\n    width: 0,\n    fontSize: 10,\n    borderRadius: 8\n  },\n  error: {\n    color: 'white'\n  },\n  card: {\n    height: '30px'\n  },\n  font: {\n    fontSize: '1.1em',\n    fontFamily: `\"Roboto\", \"Helvetica\", \"Arial\", sans-serif`,\n    fontWeight: 300,\n    lineHeight: '1.5em'\n  }\n});\n\nclass CalendarSessions extends Component {\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    const timestring = this.props.event.allDay\n      ? 'All day'\n      : moment(this.props.event.start).format('hA') +\n        ' - ' +\n        moment(this.props.event.end).format('hA');\n\n    const { classes } = this.props;\n\n    return <div className={classes.card}>{timestring}</div>;\n  }\n}\n\nexport default withStyles(styles)(CalendarSessions);\n","import React, { Component } from \"react\"\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from \"redux\"\nimport compose from \"recompose/compose\"\nimport { getEegLink, removeEegLink, getCsvLink, removeCsvLink } from \"../actions/index\"\n\nimport Chip from \"material-ui/Chip\"\nimport Avatar from \"material-ui/Avatar\"\n\nimport { withStyles } from \"material-ui/styles\"\n\nimport moment from \"moment\"\n\nimport Warning from \"@material-ui/icons/Warning\"\nimport Error from \"@material-ui/icons/Error\"\nimport FileDownload from \"@material-ui/icons/FileDownload\"\nimport TimeLapse from \"@material-ui/icons/Timelapse\"\n\nconst styles = theme => ({\n  root: {},\n  chip: {\n    height: 16,\n    backgroundColor: \"white\",\n    fontSize: 10,\n    borderRadius: 8\n  },\n  avatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: \"white\"\n  },\n  iconAvatar: {\n    height: 16,\n    width: 16,\n    borderRadius: 8,\n    backgroundColor: \"red\"\n  },\n  iconChip: {\n    height: 0,\n    width: \"auto\",\n    fontSize: 10,\n    borderRadius: 8\n  },\n  error: {\n    color: \"white\"\n  },\n  card: {\n    // height: \"60px\",\n    // marginBottom: \"30px\"\n  }\n})\n\nconst cstyles = {\n  iconAvatar: {\n    background: \"darkorange\",\n    color: \"white\"\n  },\n  iconAvatarSessionRecord: {\n    background: \"#2D9434\",\n    color: \"white\"\n  },\n  iconChip: {\n    marginRight: \".5%\",\n    cursor: \"pointer\",\n    background: \"orange\",\n    color: \"white\",\n    fontWeight: \"400\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\"\n  },\n  iconChipSessionRecord: {\n    marginRight: \".5%\",\n    cursor: \"pointer\",\n    background: \"#4caf50\",\n    color: \"white\",\n    fontWeight: \"400\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\"\n  }\n}\n\nclass CardAgendaCalendarSession extends Component { \n  \n  render() {\n    const timestring = this.props.event.allDay\n      ? \"All day\"\n      : moment(this.props.event.start).format(\"hA\") +\n        \" - \" +\n        moment(this.props.event.end).format(\"hA\")\n\n    const { classes } = this.props\n\n    const chipDuration = this.props.event.duration ? (\n      <Chip\n        avatar={\n          <Avatar className={classes.avatar}>\n            <TimeLapse />\n          </Avatar>\n        }\n        label={\n          this.props.event.executed +\n          \"/\" +\n          this.props.event.duration +\n          \"minutes\"\n        }\n        className={classes.chip}\n      />\n    ) : (\n      \"\"\n    )\n\n    const chipError = this.props.event.problem ? (\n      <Chip\n        avatar={\n          <Avatar className={classes.iconAvatar}>\n            <Error className={classes.error} />\n          </Avatar>\n        }\n        className={classes.iconChip}\n      />\n    ) : (\n      \"\"\n    )\n\n    const download =\n      this.props.event.eeg.length > 0 &&\n      this.props.event.eeg.map((item, index) => {\n        return (\n          item.step && (\n            <Chip              \n              onClick={() => handleClick(item.id, item.step)}\n              avatar={\n                <Avatar style={cstyles.iconAvatar}>\n                  <FileDownload />\n                </Avatar>\n              }\n              label={item.step}\n              style={cstyles.iconChip}\n              key={index}\n            />\n          )\n        )\n      })\n\n      const handleClick = async (id, step) => {\n        try {      \n            await this.props.getEegLink(id)\n            const link = this.props.eeg.link\n                \n            const a = document.createElement(\"a\")\n            a.setAttribute(\"href\", link)\n            a.setAttribute(\"download\", step)\n            document.body.appendChild(a)\n            a.click()\n            document.body.removeChild(a) \n    \n            this.props.removeEegLink()     \n    \n        } catch(error) {\n          console.log(error)\n        }    \n      }\n\n      let sessionEvents\n      if (this.props.event.incidents === \"Missed\") {\n        sessionEvents = false\n      } else {\n        sessionEvents = true\n      }\n\n      const downloadCsv =           \n        <Chip              \n          onClick={() => handleClickCsv(this.props.event.id)}\n          avatar={\n            <Avatar style={cstyles.iconAvatarSessionRecord}>\n              <FileDownload />\n            </Avatar>\n          }\n          label=\"Session Record File (.csv)\"\n          style={cstyles.iconChipSessionRecord}              \n        />\n          \n          \n\n      const handleClickCsv = async (id) => {\n        try {          \n          await this.props.getCsvLink(id)                \n          const a = document.createElement(\"a\")\n          const file = new Blob([this.props.csv.content], {type: 'text/plain'});\n          a.href = URL.createObjectURL(file);\n          a.download = this.props.csv.filename;          \n          document.body.appendChild(a)\n          a.click()\n          document.body.removeChild(a)    \n          this.props.removeCsvLink()     \n    \n        } catch(error) {\n          console.log(error)\n        }    \n      }\n\n    return (\n      <div className={classes.card}>\n        {this.props.event.title}\n        <br />\n        <strong>{timestring}</strong>\n        <br />\n        {chipError} {chipDuration}\n        <br />\n        {sessionEvents && (\n          <div style={{ display: \"flex\" }}>            \n            {downloadCsv} \n              {this.props.event.eeg.length > 0 && (\n                <div style={{ display: \"flex\" }}>                  \n                  {download}                  \n                </div>\n              )}                \n          </div>\n        )}\n      </div>\n    )\n  }\n}\n\nfunction mapStateToProps(state) {  \n  return { \n    eeg: state.eeg,\n    csv: state.csv,    \n  }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators(\n    { getEegLink, removeEegLink, getCsvLink, removeCsvLink },\n    dispatch\n  )\n}\n\nexport default compose(\n  withStyles(styles),\n  connect(mapStateToProps, mapDispatchToProps)\n)(CardAgendaCalendarSession)\n\n\n","import React from 'react'\nimport Toolbar from 'react-big-calendar/lib/Toolbar'\n\nimport moment from 'moment'\nconst today = moment().format('YYYY-MM-DD')\nexport default class CalendarHeader extends Toolbar {\n  componentDidMount() {\n    const view = this.props.view\n    console.log(view)\n  }\n\n  render() {\n    return (\n      <div className='rbc-toolbar'>\n        <div className='rbc-btn-group'>\n          <button type='button' onClick={() => this.navigate('PREV')}>\n            Back\n          </button>\n          <button type='button' onClick={() => this.navigate('TODAY')}>\n            Today\n          </button>\n          <button type='button' onClick={() => this.navigate('NEXT')}>\n            Next\n          </button>\n        </div>\n        <div className='rbc-toolbar-label'>{this.props.label}</div>\n        <div className='rbc-btn-group'>\n          <button type='button' onClick={this.view.bind(null, 'month')}>\n            Calendar\n          </button>\n          <button type='button' onClick={this.view.bind(null, 'agenda')}>\n            History\n          </button>\n        </div>\n      </div>\n    )\n  }\n}\n","import React from \"react\";\n\nimport notificationsStyle from \"assets/jss/material-dashboard-pro-react/views/notificationsStyle.jsx\";\n\nimport Dialog from \"material-ui/Dialog\";\nimport DialogTitle from \"material-ui/Dialog/DialogTitle\";\nimport DialogContent from \"material-ui/Dialog/DialogContent\";\nimport DialogActions from \"material-ui/Dialog/DialogActions\";\nimport IconButton from \"material-ui/IconButton\";\nimport Close from \"@material-ui/icons/Close\";\n// import Button from \"material-ui/Button/Button\"\nimport Button from \"../components/CustomButtons/Button.jsx\"\nimport Slide from \"material-ui/transitions/Slide\";\n\nimport { withStyles } from 'material-ui';\n\n\nfunction Transition(props) {\n  return <Slide direction=\"down\" {...props} />;\n}\n\n\nclass ModalConfirmation extends React.Component {\n\n  CloseX(props) {\n    const { classes, content, cancelText, dangerText, confirmationText, onConfirm, onCancel, onDanger, xClose } = props;\n    if(xClose && onCancel) {\n      return (\n        <IconButton\n          className={classes.modalCloseButton}\n          key=\"close\"\n          aria-label=\"Close\"\n          color=\"inherit\"\n          onClick={onCancel}\n        >                            \n          <Close className={classes.modalClose} />\n        </IconButton>\n      )\n    } else {\n      return \"\";\n    }\n  }\n\n  CancelButton(props) {\n    const { classes, content, cancelText, dangerText, confirmationText, onConfirm, onCancel, onDanger, xClose } = props;\n    if(onCancel && !xClose) {\n      return (\n        <Button\n          onClick={onCancel}\n          color=\"simple\"\n          customClass={classes.modalSmallFooterFirstButton}\n        >\n          {cancelText}\n      </Button>\n      )\n    } else {\n      return \"\";\n    }\n  }\n\n  ConfirmButton(props) {\n    const { classes, content, cancelText, dangerText, confirmationText, onConfirm, onCancel, onDanger, xClose } = props;\n    if(onConfirm) {\n      return (\n        <Button\n          onClick={onConfirm}\n          color=\"primary\"\n          customClass={\n            classes.modalSmallFooterFirstButton +\n            \" \" +\n            classes.modalSmallFooterSecondButton\n          }\n        >\n          {confirmationText}\n        </Button>\n      )\n    } else {\n      return \"\";\n    }\n  }\n\n  DangerButton(props) {\n    const { classes, content, cancelText, dangerText, confirmationText, onConfirm, onCancel, onDanger, xClose } = props;\n    if(onDanger) {\n      return (\n        <Button\n          onClick={onDanger}\n          color=\"danger\"\n          customClass={classes.modalSmallFooterFirstButton}\n        >\n          {dangerText}\n        </Button>\n      )\n    } else {\n      return \"\";\n    }\n  }\n\n  render() {\n    const { classes, content, cancelText, dangerText, confirmationText, onConfirm, onCancel, onDanger } = this.props;\n\n    return (\n      <Dialog\n        classes={{\n          root: classes.center,\n          paper: classes.modal + \" \" + classes.modalMedium\n        }}\n        transition={Transition}\n        keepMounted\n        open={true}\n        aria-labelledby=\"small-modal-slide-title\"\n        aria-describedby=\"small-modal-slide-description\"\n        >\n        <DialogTitle\n          id=\"small-modal-slide-title\"\n          disableTypography\n          className={classes.modalHeader}\n        >\n          <this.CloseX {...this.props}/>\n        </DialogTitle>\n        <DialogContent\n          id=\"small-modal-slide-description\"\n          className={\n            classes.modalBody + \" \" + classes.modalSmallBody\n          }\n        >\n          <h5>{content}</h5>\n        </DialogContent>\n        <DialogActions\n          className={\n            classes.modalFooter +\n            \" \" +\n            classes.modalFooterCenter\n          }\n        >\n          <this.DangerButton {...this.props}/>\n          <this.ConfirmButton {...this.props}/>\n          <this.CancelButton {...this.props}/>\n        </DialogActions>\n      </Dialog>\n    )\n  }\n\n}\n\n\nexport default withStyles(notificationsStyle)(ModalConfirmation);","import React from \"react\"\n\nimport Log from \"../logging/Log.jsx\"\n\nimport withStyles from \"material-ui/styles/withStyles\"\nimport Divider from \"material-ui/Divider\"\nimport TextField from \"material-ui/TextField\"\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\"\nimport GridContainer from \"components/Grid/GridContainer.jsx\"\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\"\nimport { Checkbox } from \"material-ui\"\n\nimport Check from \"@material-ui/icons/Check\"\nimport tasksStyle from \"assets/jss/material-dashboard-pro-react/components/tasksStyle.jsx\"\n\nimport moment from \"moment\"\n\nconst style = theme => ({\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  divider: {\n    margin: `${theme.spacing.unit * 2}px 0`\n  },\n  ...customSelectStyle,\n  ...tasksStyle\n})\n\nclass LayoutScheduleTreatmentSessions extends React.Component {\n  constructor(props) {\n    super(props)\n\n    this.state = {\n      date: this.props.dates\n        ? moment(this.props.dates[0]).format(\"YYYY-MM-DD\")\n        : moment().format(\"YYYY-MM-DD\"),\n      dateFixed: this.props.dates ? true : false,\n      allDay: true,\n      periodStart: \"10:00\",\n      periodEnd: \"18:00\"\n    }\n\n    this.handleToggle = this.handleToggle.bind(this)\n    this.handleChange = this.handleChange.bind(this)\n  }\n\n  isValidated() {\n    return true\n  }\n\n  getFormOutput() {\n    const periodStart = this.state.allDay ? null : this.state.periodStart\n    const periodEnd = this.state.allDay ? null : this.state.periodEnd\n    return { date: this.state.date, periodStart, periodEnd }\n  }\n\n  handleToggle = () => event => {\n    this.setState({ allDay: event.target.checked })\n  }\n\n  handleChange(event) {\n    Log.info(\"2\", event.target.name, event.target.value)\n    var newValue = event.target.value\n\n    if (\n      event.target.name === \"periodStart\" ||\n      event.target.name === \"periodEnd\"\n    ) {\n      if (newValue && newValue.length === 5) {\n        newValue = newValue.substring(0, 3) + \"00\"\n      }\n    }\n    if (event.target.name === \"periodStart\" && newValue.length != 5)\n      newValue = \"10:00\"\n    if (event.target.name === \"periodEnd\" && newValue.length != 5)\n      newValue = \"18:00\"\n\n    this.setState({ [event.target.name]: newValue })\n  }\n\n  render() {\n    const { classes } = this.props\n    return (\n      <form className={classes.container} noValidate>\n        <GridContainer spacing={40}>\n          {/* <ItemGrid xs={12} sm={12}>\n            <h4 className={classes.infoText}>Schedule Details</h4>\n          </ItemGrid> */}\n\n          <ItemGrid xs={12} sm={3}>\n            Schedule:\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={9}>\n            <TextField\n              id=\"date\"\n              name=\"date\"\n              label=\"Session date\"\n              type=\"date\"\n              className={classes.textField}\n              InputLabelProps={{\n                shrink: true\n              }}\n              disabled={this.state.dateFixed}\n              value={this.state.date}\n              onChange={this.handleChange}\n            />\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={12}>\n            <Divider className={classes.divider} />\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={3}>\n            Allowed daytime period:\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={3}>\n            <TextField\n              id=\"period_start\"\n              name=\"periodStart\"\n              label=\"Period start\"\n              type=\"time\"\n              className={classes.textField}\n              InputLabelProps={{\n                shrink: true\n              }}\n              inputProps={{\n                step: 3600 // 1H\n              }}\n              disabled={this.state.allDay}\n              value={this.state.periodStart}\n              onChange={this.handleChange}\n            />\n            <br />\n            Allow all day\n            <Checkbox\n              checked={this.state.allDay}\n              onClick={this.handleToggle(\"allDay\")}\n              checkedIcon={<Check className={classes.checkedIcon} />}\n              icon={<Check className={classes.uncheckedIcon} />}\n              classes={{\n                checked: classes.checked\n              }}\n              value=\"allDay\"\n            />\n          </ItemGrid>\n\n          <ItemGrid xs={12} sm={3}>\n            <TextField\n              id=\"period_end\"\n              name=\"periodEnd\"\n              label=\"Period end\"\n              type=\"time\"\n              className={classes.textField}\n              InputLabelProps={{\n                shrink: true\n              }}\n              inputProps={{\n                step: 3600 // 1H\n              }}\n              disabled={this.state.allDay}\n              value={this.state.periodEnd}\n              onChange={this.handleChange}\n            />\n          </ItemGrid>\n        </GridContainer>\n      </form>\n    )\n  }\n}\n\nexport default withStyles(style)(LayoutScheduleTreatmentSessions)\n","import React, { Component } from 'react'\nimport Dropzone from 'react-dropzone'\n\nimport Log from '../logging/Log.jsx'\n\nimport FileUpload from '@material-ui/icons/FileUpload'\n\nimport withStyles from 'material-ui/styles/withStyles'\nimport { ThemeProvider } from 'styled-components'\n\nconst dropZoneBase = {\n  width: '100%',\n  height: '225px',\n  paddingTop: '10%',\n  paddingBottom: '10%',\n  paddingLeft: '10%',\n  paddingRight: '10%',\n  borderRadius: '4px',\n  boxSizing: 'border-box',\n  margin: '20px 0 20px',\n  border: '1px solid'\n}\n\nconst styles = {\n  dropZone: {\n    ...dropZoneBase,\n    borderColor: '#D2D2D2'\n  },\n  inTheZone: {\n    textAlign: 'center',\n    verticalAlign: 'middle'\n  },\n  icon: {\n    width: '80px',\n    height: '72px'\n  }\n}\n\nclass AreaFileUpload extends Component {\n  constructor(props) {\n    super(props)\n\n    this.state = {\n      name: null,\n      ...props.initialState // As suggested in https://storybook.js.org/basics/faq/#can-i-modify-react-component-state-in-stories\n    }\n    this.onDrop = this.onDrop.bind(this)\n  }\n\n  prettify(str) {\n    return str\n      .split(new RegExp('-|_'))\n      .map(function capitalize(part) {\n        return part.charAt(0).toUpperCase() + part.slice(1)\n      })\n      .join(' ')\n      .split('.')[0]\n  }\n\n  onDrop(accepted, rejected) {\n    Log.info('Accepted', accepted)\n    Log.info('Rejected', rejected)\n\n    // If accepted, send device protocol to the server\n    // If verified there and values returned, show a field to name the procotol\n\n    if (accepted && accepted.length > 0) {\n      const fileContent = this.handleUploadedFileContent(accepted[0])\n    } else {\n      this.props.onError()\n    }\n  }\n\n  handleUploadedFileContent = async inputFile => {\n    try {\n      const fileContents = await createPromise(inputFile)\n      this.props.onUploadedFile(fileContents)\n    } catch (e) {\n      console.warn(e)\n    }\n\n    function createPromise(inputFile) {\n      const temporaryFileReader = new FileReader()\n\n      return new Promise((resolve, reject) => {\n        Log.info(0)\n        temporaryFileReader.onerror = () => {\n          Log.info(1)\n          temporaryFileReader.abort()\n          reject(new DOMException('Problem parsing input file.'))\n        }\n\n        temporaryFileReader.onload = () => {\n          Log.info(2)\n          resolve(temporaryFileReader.result)\n        }\n        Log.info('Input file:', inputFile)\n        temporaryFileReader.readAsText(inputFile)\n      })\n    }\n  }\n\n  render() {\n    const { classes } = this.props\n    return (\n      <div className='dropzone'>\n        <Dropzone\n          onDrop={this.onDrop}\n          multiple={false}\n          className={classes.dropZone}\n          style={{ borderColor: this.props.color }}\n          accept='.xml,.txt,.neprot'\n          onDragEnter={this.props.onActive}\n          onDragLeave={this.props.onUnactive}\n        >\n          <div className={classes.inTheZone}>\n            <FileUpload\n              className={this.props.classes.icon}\n              style={{ color: this.props.color }}\n            />\n            {this.props.content}\n          </div>\n        </Dropzone>\n      </div>\n    )\n  }\n}\n\nexport default withStyles(styles)(AreaFileUpload)\n","import React from \"react\";\n\nimport SvgIcon from 'material-ui/SvgIcon';\n\nimport SponstimElectrodeImg from \"../assets/img/electrode_sponstim_simple.svg\";\nimport NGPistimElectrodeImg from \"../assets/img/electrode_ngpistim_simple.svg\";\n\nexport function SponstimIcon(props) {\n    return (\n        <img src={SponstimElectrodeImg} {...props}></img>\n    )\n}\n\nexport function NGPistimIcon(props) {\n    return (\n        <img src={NGPistimElectrodeImg} {...props}></img>\n    )\n}","import React, { Fragment } from \"react\";\n\nimport Log from \"../logging/Log.jsx\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport TimeLapse from \"@material-ui/icons/Timelapse\";\nimport TrendingUp from \"@material-ui/icons/TrendingUp\";\nimport TrendingDown from \"@material-ui/icons/TrendingDown\";\n\nimport Select from \"material-ui/Select\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport InputLabel from \"material-ui/Input/InputLabel\";\nimport FormControl from \"material-ui/Form/FormControl\";\n\n// core components\nimport CustomInput from \"components/CustomInput/CustomInput.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\";\n\nimport { SponstimIcon, NGPistimIcon } from \"../icons/NEIcons.jsx\";\n\nimport moment from \"moment\";\n\nconst style = {\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\",\n  },\n  iconText: {\n    verticalAlign: \"middle\",\n    padding: \"10px\",\n  },\n  text: {\n    verticalAlign: \"middle\",\n    \"& span\": {\n      fontStyle: \"italic\",\n    },\n  },\n  electrodeText: {\n    verticalAlign: \"middle\",\n    paddingLeft: \"10px\",\n  },\n  iconTextSelect: {\n    height: \"20px\",\n    alignItems: \"center\",\n    display: \"flex\",\n    marginBottom: \"0px\",\n  },\n  iconTextParent: {\n    height: \"20px\",\n    alignItems: \"center\",\n    display: \"flex\",\n    marginBottom: \"10px\",\n  },\n  table: {\n    marginBottom: \"10px\",\n  },\n  icons2: {\n    width: \"24px\",\n  },\n  ...customSelectStyle,\n};\n\nconst electrodeIconComponents = {\n  Sponstim: SponstimIcon,\n  \"NG Pistim\": NGPistimIcon,\n};\n\nclass DeviceProtocolRepresentation extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      simpleSelect: \"\",\n      desgin: false,\n      code: false,\n      develop: false,\n      electrodeModel: \"\",\n    };\n\n    this.renderElectrodeElement = this.renderElectrodeElement.bind(this);\n  }\n\n  handleSimple = (event) => {\n    this.setState({ [event.target.name]: event.target.value });\n  };\n\n  isValidated() {\n    return true;\n  }\n\n  getMontage(i) {\n    return this.props.steps[i].personalizedMontage\n      ? this.props.steps[i].personalizedMontage\n      : this.props.steps[i].defaultMontage;\n  }\n\n  renderElectrodeElement(electrodeModel, classes) {\n    if (electrodeModel) {\n      const Icon = electrodeIconComponents[electrodeModel];\n\n      return (\n        <p className={classes.iconTextParent}>\n          <Icon className={classes.icons2} />\n          <span className={classes.electrodeText}>\n            {electrodeModel} electrode\n          </span>\n        </p>\n      );\n    } else {\n      return (\n        <FormControl\n          fullWidth\n          className={classes.selectFormControl}\n          error={this.props.showElectrodeError}\n          required\n        >\n          <InputLabel htmlFor=\"simple-select\" className={classes.selectLabel}>\n            Choose electrode model...\n          </InputLabel>\n          <Select\n            MenuProps={{\n              className: classes.selectMenu,\n            }}\n            classes={{\n              select: classes.select,\n            }}\n            value={this.state.electrodeModel}\n            inputProps={{\n              name: \"lang\",\n              id: \"simple-select\",\n              onChange: (event) => {\n                this.setState({ electrodeModel: event.target.value });\n                this.props.onElectrodeModelChange(event.target.value);\n              },\n            }}\n          >\n            <MenuItem\n              disabled\n              classes={{\n                root: classes.selectMenuItem,\n              }}\n              key={0}\n            >\n              Choose electrode model...\n            </MenuItem>\n            <MenuItem\n              key={1}\n              value={\"NG Pistim\"}\n              classes={{\n                root: classes.selectMenuItem,\n                selected: classes.selectMenuItemSelected,\n              }}\n            >\n              <p className={classes.iconTextSelect}>\n                <NGPistimIcon className={classes.icons2} />\n                <span className={classes.electrodeText}>\n                  NG Pistim electrode\n                </span>\n              </p>\n            </MenuItem>\n            <MenuItem\n              key={2}\n              value={\"Sponstim\"}\n              classes={{\n                root: classes.selectMenuItem,\n                selected: classes.selectMenuItemSelected,\n              }}\n            >\n              <p className={classes.iconTextSelect}>\n                <SponstimIcon className={classes.icons2} />\n                <span className={classes.electrodeText}>\n                  Sponstim electrode\n                </span>\n              </p>\n            </MenuItem>\n          </Select>\n        </FormControl>\n      );\n    }\n  }\n\n  render() {\n    const { classes } = this.props;\n\n    Log.info(\"Generating representation of the device protocol:\", this.props);\n\n    let multiStep;\n    this.props.steps.length > 1 ? (multiStep = true) : (multiStep = false);\n\n    return (\n      <GridContainer\n        style={{\n          maxHeight: \"65vh\",\n          overflowY: \"scroll\",\n          overflowX: \"hidden\",\n        }}\n      >\n        <ItemGrid xs={12} sm={12}>\n          <h4>Starstim Protocol</h4>\n        </ItemGrid>\n        {multiStep && (\n          <Fragment>\n            <ItemGrid xs={12} sm={6}>\n              {this.props.steps[0].realStimulation === undefined ||\n              this.props.steps[0].realStimulation === null ? (\n                <span> </span>\n              ) : (\n                <h5>{this.props.name}</h5>\n              )}\n            </ItemGrid>\n\n            <ItemGrid xs={12} sm={6}>\n              {this.renderElectrodeElement(this.props.stimElectrode, classes)}\n            </ItemGrid>\n          </Fragment>\n        )}\n\n        {this.props.steps.map((step, i) => (\n          <GridContainer\n            key={i}\n            style={{\n              paddingTop: \"2%\",\n              paddingBottom: \"2%\",\n            }}\n          >\n            <ItemGrid xs={1} sm={1} />\n\n            <ItemGrid xs={11} sm={11}>\n              <GridContainer>\n                <ItemGrid xs={12} sm={8}>\n                  <p className={classes.iconTextParent}>\n                    <span className={classes.text}>\n                      {multiStep\n                        ? step.name\n                        : step.realStimulation === undefined ||\n                          step.realStimulation === null\n                        ? \"\"\n                        : this.props.name}\n                    </span>\n                  </p>\n                </ItemGrid>\n\n                <ItemGrid xs={12} sm={4}>\n                  {!step.isOnlyEeg && (\n                    <p className={classes.iconTextParent}>\n                      <span className={classes.text}>\n                        {step.realStimulation ? (\n                          \"Real stimulation\"\n                        ) : step.realStimulation === undefined ||\n                          step.realStimulation === null ? (\n                          <span>Blinded</span>\n                        ) : (\n                          \"Sham stimulation\"\n                        )}\n                      </span>\n                    </p>\n                  )}\n                </ItemGrid>\n\n                <ItemGrid xs={12} sm={4}>\n                  <p className={classes.iconTextParent}>\n                    <TimeLapse />\n                    <span className={classes.iconText}>\n                      {step.duration < 60\n                        ? step.duration + \"sec\"\n                        : Math.ceil(step.duration / 60) + \"min\"}\n                    </span>\n                  </p>\n                </ItemGrid>\n\n                {!step.isOnlyEeg && (\n                  <ItemGrid xs={12} sm={4}>\n                    <p className={classes.iconTextParent}>\n                      <TrendingUp />\n                      <span className={classes.iconText}>\n                        {moment.unix(step.rampUpDuration).format(\"m:ss\")}\n                      </span>\n                    </p>\n                  </ItemGrid>\n                )}\n\n                {!step.isOnlyEeg && (\n                  <ItemGrid xs={12} sm={4}>\n                    <p className={classes.iconTextParent}>\n                      <TrendingDown />\n                      <span className={classes.iconText}>\n                        {moment.unix(step.rampDownDuration).format(\"m:ss\")}\n                      </span>\n                    </p>\n                  </ItemGrid>\n                )}\n\n                <ItemGrid xs={12} sm={12}>\n                  <GridContainer className={classes.table}>\n                    <ItemGrid xs={12} sm={4}>\n                      Location\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4}>\n                      Function\n                    </ItemGrid>\n                    <ItemGrid xs={12} sm={4}>\n                      Cable\n                    </ItemGrid>\n                    {this.getMontage(i).map((montage) => {\n                      if (!montage.location.match(\"Chd*\"))\n                        return [\n                          <ItemGrid key={0} xs={12} sm={4}>\n                            {montage.location}\n                          </ItemGrid>,\n                          <ItemGrid\n                            key={1}\n                            xs={12}\n                            sm={4}\n                            className={classes.text}\n                          >\n                            {step.realStimulation === undefined ||\n                            step.realStimulation === null ? (\n                              <span>blinded</span>\n                            ) : (\n                              montage.function\n                            )}\n                          </ItemGrid>,\n                          <ItemGrid key={2} xs={12} sm={4}>\n                            {montage.cable}\n                          </ItemGrid>,\n                        ];\n                    })}\n                  </GridContainer>\n                </ItemGrid>\n              </GridContainer>\n            </ItemGrid>\n          </GridContainer>\n        ))}\n        {!multiStep && (\n          <ItemGrid xs={12} sm={6}>\n            {this.renderElectrodeElement(this.props.stimElectrode, classes)}\n          </ItemGrid>\n        )}\n      </GridContainer>\n    );\n  }\n}\n\nexport default withStyles(style)(DeviceProtocolRepresentation);\n","import React from \"react\"\n\nimport Log from \"../logging/Log.jsx\"\n\nimport AreaFileUpload from \"../molecules/AreaFileUpload\"\n\nimport withStyles from \"material-ui/styles/withStyles\"\nimport Select from \"material-ui/Select\"\nimport MenuItem from \"material-ui/Menu/MenuItem\"\nimport InputLabel from \"material-ui/Input/InputLabel\"\nimport FormControl from \"material-ui/Form/FormControl\"\n\nimport customSelectStyle from \"assets/jss/material-dashboard-pro-react/customSelectStyle.jsx\"\nimport GridContainer from \"components/Grid/GridContainer.jsx\"\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\"\nimport DeviceProtocolRepresentation from \"../molecules/DeviceProtocolRepresentation\"\n\nimport {\n  primaryColor,\n  successColor,\n  warningColor\n} from \"assets/jss/material-dashboard-pro-react.jsx\"\n\nexport const style = theme => ({\n  infoText: {\n    fontWeight: \"300\",\n    margin: \"10px 0 30px\",\n    textAlign: \"center\"\n  },\n  divider: {\n    margin: `${theme.spacing.unit * 2}px 0`\n  },\n  ...customSelectStyle\n})\n\nconst areaUploadStates = {\n  DEFAULT: \"default\",\n  ACTIVE: \"active\",\n  UPLOADING: \"uploading\",\n  SUCCESS: \"success\",\n  ERROR: \"error\"\n}\n\nexport class LayoutSelectSessionProtocol extends React.Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      selectedSessionProtocol: \"\",\n      filteredSessionProtocols: [],\n      doBatchSchedule: false,\n      schemaId: null,\n      deviceProtocolToShow: null,\n      awaitingDeviceProtocolCheck: false,\n      deviceProtocolPatchToApply: null,\n      areaUploadState: areaUploadStates.DEFAULT,\n      // lastUploadSuccessful: null,\n      lastUploadErrorMessage: \"\",\n      uploadedProtocolName: null,\n      uploadedProtocolOriginalName: null,\n      electrodeModel: null,\n      electrodeError: false,\n      loading: true\n    }\n\n    this.presentProtocolDetails = this.presentProtocolDetails.bind(this)\n    this.setDeviceProtocolToShow = this.setDeviceProtocolToShow.bind(this)\n    this.handleNewDeviceProtocol = this.handleNewDeviceProtocol.bind(this)\n    this.onDeviceProtocolPosted = this.onDeviceProtocolPosted.bind(this)\n    this.onSessionProtocolPosted = this.onSessionProtocolPosted.bind(this)\n    this.handleErroneousUpload = this.handleErroneousUpload.bind(this)\n    this.renderAreaFileUpload = this.renderAreaFileUpload.bind(this)\n    this.handleAreaUploadActive = this.handleAreaUploadActive.bind(this)\n    this.handleAreaUploadUnactive = this.handleAreaUploadUnactive.bind(this)\n    this.electrodeModelChosen = this.electrodeModelChosen.bind(this)\n    this.filterProtocolsByName = this.filterProtocolsByName.bind(this)\n  }\n\n  isValidated() {\n    const protocolValid = this.state.selectedSessionProtocol !== \"\"\n    const electrodesValid =\n      this.state.deviceProtocolHasElectrodeModel ||\n      this.state.deviceProtocolPatchToApply !== null\n\n    if (!electrodesValid) this.setState({ electrodeError: true })\n\n    // TODO: Here feedback in case of wrong values\n\n    return protocolValid && electrodesValid\n  }\n  getFormOutput() {\n    return {\n      sessionProtocolId: this.state.selectedSessionProtocol,\n      doBatchSchedule:  this.state.doBatchSchedule,\n      schemaId: this.state.schemaId,\n      deviceProtocolPatch: {\n        deviceProtocolId: this.state.deviceProtocolToShow,\n        patch: this.state.deviceProtocolPatchToApply\n      }\n    }\n  }\n\n  async componentDidMount() {\n    try {\n      await this.props.getSessionProtocols()\n      const filteredSessionProtocols = this.filterProtocolsByName()      \n      this.setState({\n        filteredSessionProtocols,        \n        loading: false\n      })\n    } catch (error) {\n      console.log(error)\n    }     \n  }\n\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    Log.info(\n      \"Previous props:\",\n      prevProps,\n      \"New props:\",\n      this.props,\n      \"New state:\",\n      this.state\n    )\n\n    if (\n      this.state.deviceProtocolToShowLoaded === false &&\n      prevProps.deviceProtocols.isRequesting === true &&\n      this.props.deviceProtocols.isRequesting === false &&\n      this.props.deviceProtocols.posted !== null\n    ) {\n      if (this.props.deviceProtocols.error !== null) {\n        this.onDeviceProtocolPostingFailed()\n      } else {\n        this.onDeviceProtocolPosted()\n      }\n    }\n\n    if (\n      prevProps.sessionProtocols.isRequesting === true &&\n      this.props.sessionProtocols.isRequesting === false &&\n      this.props.sessionProtocols.posted !== null\n    ) {\n      this.onSessionProtocolPosted()\n    }\n\n    if (\n      prevProps.deviceProtocols.isRequesting === true &&\n      this.props.deviceProtocols.isRequesting === false &&\n      this.state.deviceProtocolToShow !== null &&\n      Object.keys(this.props.deviceProtocols.byId).includes(\n        this.state.deviceProtocolToShow.toString()\n      )\n    ) {\n      const stimElectrode = this.props.deviceProtocols.byId[\n        this.state.deviceProtocolToShow\n      ].definition.stimElectrode\n      this.setState({\n        deviceProtocolToShowLoaded: true,\n        deviceProtocolHasElectrodeModel: stimElectrode !== null\n      })\n    }\n  }\n\n  filterProtocolsByName() {\n    const patientName = this.props.patient.code.toLowerCase()\n    // const patientName = 'test'  // Change the name to test the filter feature    \n    const sessionProtocolEntries = Object.keys(this.props.sessionProtocols.byId)    \n    Log.info(\"Session protocols:\", this.props.sessionProtocols.byId)\n    Log.info(\"Session protocol IDs:\", sessionProtocolEntries)    \n\n    let matchingSessionProtocols = []\n\n    for (var i = 0; i < sessionProtocolEntries.length; i++) {      \n      const protocol = this.props.sessionProtocols.byId[sessionProtocolEntries[i]]      \n      if (protocol.name.toLowerCase().includes(patientName)) {    \n        Log.info(\"Adding protocol:\", protocol)    \n        matchingSessionProtocols.push(protocol)\n      }      \n    }\n\n    if (matchingSessionProtocols.length === 0) {\n      for (var i = 0; i < sessionProtocolEntries.length; i++) {         \n        const protocol = this.props.sessionProtocols.byId[sessionProtocolEntries[i]]     \n        Log.info(\"Adding protocol:\", protocol) \n        matchingSessionProtocols.push(protocol)   \n      }\n    }\n    \n    Log.info(\"Matching session protocols:\", matchingSessionProtocols)     \n    \n    return matchingSessionProtocols\n  }\n\n  onDeviceProtocolPostingFailed() {\n    this.setState({\n      areaUploadState: areaUploadStates.ERROR,\n      lastUploadErrorMessage: this.props.deviceProtocols.error.data.message\n    })\n    Log.info(\n      this.onDeviceProtocolPostingFailed.name,\n      this.props.deviceProtocols.error\n    )\n  }\n\n  onDeviceProtocolPosted() {\n    const postedDeviceProtocolId = this.props.deviceProtocols.posted\n    let name = this.props.deviceProtocols.byId[postedDeviceProtocolId]\n      .definition.name\n    const uniqueName = this.makeSessionProtocolNameUnique(name)\n    this.setState({\n      uploadedProtocolName: uniqueName,\n      uploadedProtocolOriginalName: name\n    })\n    this.props.postSessionProtocol(postedDeviceProtocolId, uniqueName)\n    Log.info(this.onDeviceProtocolPosted.name, \"succeeded.\")\n  }\n\n  padNumber(number, size) {\n    var s = String(number)\n    while (s.length < (size || 2)) {\n      s = \"0\" + s\n    }\n    return s\n  }\n\n  makeSessionProtocolNameUnique(name) {\n    let sessionProtocolEntries = Object.keys(this.props.sessionProtocols.byId)\n    Log.info(\"Session protocols:\", this.props.sessionProtocols.byId)\n    Log.info(\"Session protocol IDs:\", sessionProtocolEntries)\n    let sessionProtocolNames = []\n    for (var i = 0; i < sessionProtocolEntries.length; i++) {\n      const entry = sessionProtocolEntries[i]\n      Log.info(\"Adding protocol:\", entry)\n      const protocolName = this.props.sessionProtocols.byId[entry].name\n      Log.info(\"Adding protocol name:\", protocolName)\n      sessionProtocolNames.push(protocolName)\n    }\n    const regex = new RegExp(\"^\" + name + \"(_\\\\d{3})?$\")\n    let matchingSessionProtocolNames = sessionProtocolNames.filter(n =>\n      n.match(regex)\n    )\n    matchingSessionProtocolNames = matchingSessionProtocolNames.filter(\n      (v, i, a) => a.indexOf(v) === i\n    )\n    if (matchingSessionProtocolNames.length === 0) return name\n    else if (\n      matchingSessionProtocolNames.length === 1 &&\n      matchingSessionProtocolNames[0] === name\n    )\n      return name + \"_001\"\n    else {\n      matchingSessionProtocolNames.sort()\n      Log.info(\"Sorted names:\", matchingSessionProtocolNames)\n      let lastMatchingProtocolName =\n        matchingSessionProtocolNames[matchingSessionProtocolNames.length - 1]\n      Log.info(\"Last match:\", lastMatchingProtocolName)\n      const lastMatchingProtocolNameOrderNo = parseInt(\n        lastMatchingProtocolName.substr(lastMatchingProtocolName.length - 3)\n      )\n      return name + \"_\" + this.padNumber(lastMatchingProtocolNameOrderNo + 1, 3)\n    }\n  }\n\n  onSessionProtocolPosted() {\n    Log.info(this.onSessionProtocolPosted.name, \"started.\")\n    if (this.props.sessionProtocols.posted === false) {\n      this.setState({\n        areaUploadState: areaUploadStates.ERROR,\n        lastUploadErrorMessage: this.props.sessionProtocols.error.data.message\n      })\n      Log.info(this.onSessionProtocolPosted.name, \"failed.\")\n    } else {\n      const selectedSessionProtocol = this.props.sessionProtocols.posted.toString()\n      this.setState({\n        selectedSessionProtocol,\n        areaUploadState: areaUploadStates.SUCCESS,\n        lastUploadErrorMessage: \"\"\n      })\n      this.setDeviceProtocolToShow(\n        this.props.sessionProtocols.byId[selectedSessionProtocol]\n      )\n      Log.info(this.onSessionProtocolPosted.name, \"succeeded.\")\n    }\n  }\n\n  presentProtocolDetails() {\n    Log.info(\"presentProtocolDetails when state is:\", this.state)\n    let protocol\n    if (\n      this.state.deviceProtocolToShow &&\n      (protocol = this.props.deviceProtocols.byId[\n        this.state.deviceProtocolToShow\n      ])\n    ) {\n      Log.info(\"Will present protocol details\")\n\n      let isMultistep\n      protocol.definitionMultistep != undefined &&\n      protocol.definitionMultistep.steps != undefined &&\n      protocol.definitionMultistep.steps.length > 0\n        ? (isMultistep = true)\n        : (isMultistep = false)\n              \n      return (       \n        <DeviceProtocolRepresentation\n          id=\"device-protocol-representation\"\n          {...protocol.definitionMultistep}\n          personalizedMontage={null}\n          isMultistep={isMultistep}\n          showElectrodeError={this.state.electrodeError}\n          onElectrodeModelChange={event => this.electrodeModelChosen(event)}\n        />\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  electrodeModelChosen = event => {\n    const patch = {\n      definition: {\n        stim_electrode: event\n      }\n    }\n    this.setState({ deviceProtocolPatchToApply: patch })\n\n    // this.setState({electrodeModel: event})\n  }\n\n  sessionProtocolSelectionChanged = event => {\n    Log.info(\"Handling list pick:\", event.target.name, event.target.value)\n    this.setState({\n      [event.target.name]: event.target.value,\n      electrodeError: false\n    })\n\n    const chosenSessionProtocol = this.props.sessionProtocols.byId[\n      event.target.value\n    ]\n\n    if (chosenSessionProtocol.schemaId !== null) {\n      this.setState({ doBatchSchedule: true, schemaId: chosenSessionProtocol.schemaId })\n    } else {\n      this.setState({ doBatchSchedule: false, schemaId: null })\n    }\n\n    Log.info(\"Chosen protocol:\", chosenSessionProtocol)\n    this.setDeviceProtocolToShow(chosenSessionProtocol)\n  }\n\n  setDeviceProtocolToShow(chosenSessionProtocol) {    \n    this.props.clearDeviceProtocol()\n    if (chosenSessionProtocol.deviceprotocol) {\n      let deviceprotocol_id = chosenSessionProtocol.deviceprotocol.id\n\n      this.setState({ deviceProtocolToShow: deviceprotocol_id })\n\n      const protocol = this.props.deviceProtocols.byId[deviceprotocol_id]\n      Log.info(\"protocol\", protocol)    \n      this.props.getDeviceProtocol(deviceprotocol_id)  \n      \n       if (!protocol || !protocol.definition) {   \n        this.setState({ deviceProtocolToShowLoaded: false })\n      } else {\n        this.setState({\n          deviceProtocolToShowLoaded: true,\n          deviceProtocolHasElectrodeModel:\n            protocol.definition.stimElectrode !== null\n        })\n      }\n    } else {\n      console.error(\"No device protocol defined for the session protocol\")\n    }\n  }\n\n  handleNewDeviceProtocol(xmlTemplate) {\n    this.setState({\n      areaUploadState: areaUploadStates.UPLOADING,\n      deviceProtocolToShowLoaded: false\n    })\n    this.props.postDeviceProtocol(xmlTemplate)\n  }\n\n  handleAreaUploadActive() {\n    this.setState({ areaUploadState: areaUploadStates.ACTIVE })\n  }\n\n  handleAreaUploadUnactive() {\n    this.setState({ areaUploadState: areaUploadStates.DEFAULT })\n  }\n\n  handleErroneousUpload() {\n    this.setState({\n      areaUploadState: areaUploadStates.ERROR,\n      lastUploadErrorMessage:\n        \"The file type is not correct. Please, make sure to upload a protocol exported from NIC2.\"\n    })\n  }\n\n  renderAreaFileUpload(props) {\n    let color, content\n\n    switch (this.state.areaUploadState) {\n      case areaUploadStates.DEFAULT:\n        color = \"#D2D2D2\"\n        content = (\n          <p>\n            ...or upload from NIC2\n            <br />a Starstim tCS stimulation protocol\n          </p>\n        )\n        break\n      case areaUploadStates.ACTIVE:\n        color = primaryColor\n        content = <p>Drop the protocol file here</p>\n        break\n      case areaUploadStates.UPLOADING:\n        color = primaryColor\n        content = <p>Uploading and verifying the protocol file...</p>\n        break\n      case areaUploadStates.SUCCESS:\n        color = successColor\n        if (\n          this.state.uploadedProtocolName ===\n          this.state.uploadedProtocolOriginalName\n        ) {\n          content = (\n            <p>\n              The protocol {this.state.uploadedProtocolName} uploaded\n              successfully\n            </p>\n          )\n        } else {\n          content = (\n            <p>\n              A protocol with the name {this.state.uploadedProtocolOriginalName}{\" \"}\n              already existed!\n              <br />\n              The uploaded protocol stored under the name{\" \"}\n              {this.state.uploadedProtocolName}.\n            </p>\n          )\n        }\n        break\n      case areaUploadStates.ERROR:\n        color = warningColor\n        content = (\n          <p>\n            The protocol could not be uploaded.\n            <br />\n            Reason: {this.state.lastUploadErrorMessage}\n          </p>\n        )\n        break\n    }\n\n    Log.info(this.renderAreaFileUpload.name, \"rendered color\", color)\n\n    return (\n      <AreaFileUpload\n        content={content}\n        color={color}\n        onUploadedFile={this.handleNewDeviceProtocol}\n        onActive={this.handleAreaUploadActive}\n        onUnactive={this.handleAreaUploadUnactive}\n        onError={this.handleErroneousUpload}\n      />\n    )\n  }\n\n  setMenuItems (filteredSessionProtocols) {\n    const { classes } = this.props\n    const menuItems = filteredSessionProtocols.map(item => {\n      return (\n        <MenuItem\n          key={item.id}\n          value={item.id}\n          classes={{\n            root: classes.selectMenuItem,\n            selected: classes.selectMenuItemSelected\n          }}\n        >\n          {item.name}\n        </MenuItem>\n      )\n    }) \n    return menuItems\n  }\n\n  render() {\n    const { classes, sessionProtocols } = this.props\n    const { selectedSessionProtocol, filteredSessionProtocols, loading } = this.state\n    if (selectedSessionProtocol !== \"\") {\n      Log.info(\n        \"Rendering LayoutSelectSessionProtocol with selected session protocol:\",\n        selectedSessionProtocol,\n        sessionProtocols.byId[selectedSessionProtocol]\n          .name\n      )\n    }\n\n    let menuItems\n    if (!loading) {\n      menuItems = this.setMenuItems(filteredSessionProtocols)      \n    }    \n\n    return (\n      <>\n      {!loading && \n      <GridContainer justify=\"space-around\" spacing={40}>\n        <ItemGrid xs={12} sm={6}>\n          <FormControl fullWidth className={classes.selectFormControl}>\n            <InputLabel htmlFor=\"simple-select\" className={classes.selectLabel}>\n              Choose one of previously created...\n            </InputLabel>\n            <Select\n              id=\"select-protocol\"\n              MenuProps={{\n                className: classes.selectMenu\n              }}\n              classes={{\n                select: classes.select\n              }}\n              value={selectedSessionProtocol}\n              onChange={this.sessionProtocolSelectionChanged}\n              inputProps={{\n                name: \"selectedSessionProtocol\",\n                id: \"simple-select\"\n              }}\n            >\n              <MenuItem\n                disabled\n                classes={{\n                  root: classes.selectMenuItem\n                }}\n                key={0}\n              >\n                Choose one from previously created...\n              </MenuItem>\n              \n              {menuItems}\n              \n            </Select>\n          </FormControl>\n\n          {this.renderAreaFileUpload(this.props)}\n        </ItemGrid>\n\n        <ItemGrid xs={12} sm={6}>\n          {this.presentProtocolDetails()}\n        </ItemGrid>\n      </GridContainer>\n      }\n      </>\n    )\n  }\n}\n\n\nexport default withStyles(style)(LayoutSelectSessionProtocol)\n","import React from \"react\";\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport Log from '../logging/Log.jsx';\n\n// core components\nimport Wizard from \"molecules/Wizard.jsx\";\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\nimport ModalConfirmation from \"../molecules/ModalConfirmation\";\n\nimport LayoutScheduleTreatmentSessions from \"../molecules/LayoutScheduleTreatmentSessions.jsx\";\nimport LayoutSelectSessionProtocol from \"../molecules/LayoutSelectSessionProtocol.jsx\";\n\nimport {DataSubmissionStates} from '../reducers/utils.js'\n\nimport { getSessionProtocols, postSessionProtocol, getDeviceProtocol, postDeviceProtocol, \n  postTreatmentSession, pushNotification, patchDeviceProtocol, clearDeviceProtocol, getProtocolSchema, clearSchemaInfo } from '../actions/index';\n\nclass TreatmentSchedulerSimple extends React.Component {\n\n  constructor(props) {\n    Log.info(\"Creating TreatmentSchedulerSimple with props:\", props);\n    super(props);\n    this.state = {\n      awaitingPatch: false,\n      wizardResult: null,\n      modal: false,\n      batchSchedulingModal: false,\n      batchConfirmation: false,\n      disableFinishButton: false\n    };\n    this.finishWizard = this.finishWizard.bind(this);\n    this.closeWizard = this.closeWizard.bind(this);\n    this.hideAlert = this.hideAlert.bind(this);\n    this.ModalUnfullData = this.ModalUnfullData.bind(this);\n    this.ModalBatchScheduling = this.ModalBatchScheduling.bind(this);\n    this.confirmBatch = this.confirmBatch.bind(this);\n  }\n  \n  componentDidUpdate(prevProps, prevState, snapshot) {\n    Log.info(\"Treatment session submission state:\", this.props.treatmentSessionSubmissionState)\n\n    const result = this.state.wizardResult;\n\n    if (!prevProps.patients.fullData && this.props.patients.fullData && this.state.modal) {\n      this.hideAlert();\n      this.props.postTreatmentSession(this.props.patient.treatments[0].id, result.sessionProtocolId, result.date, result.periodStart, result.periodEnd, result.doBatchSchedule);\n      this.setState({ disableFinishButton: true });\n    }\n\n    if (!prevState.batchConfirmation && this.state.batchConfirmation && this.state.batchSchedulingModal) {\n      if (this.props.patients.fullData) {\n        this.hideAlert();\n        this.props.postTreatmentSession(this.props.patient.treatments[0].id, result.sessionProtocolId, result.date, result.periodStart, result.periodEnd, result.doBatchSchedule);\n        this.setState({ disableFinishButton: true });\n      } else {\n        this.setState({ modal: true, batchSchedulingModal: false });\n      }\n    }\n\n    if (prevProps.treatmentSessionSubmissionState === DataSubmissionStates.POSTING) {\n      if (this.props.treatmentSessionSubmissionState === DataSubmissionStates.POSTED) {\n        this.closeWizard();\n      }\n      else if (this.props.treatmentSessionSubmissionState === DataSubmissionStates.FAILED) {\n        this.props.pushNotification(this.props.errorMessage);\n      }\n    }\n\n    if(this.state.awaitingPatch === true) {\n      if (prevProps.deviceProtocolSubmissionState === DataSubmissionStates.POSTING) {\n        if (this.props.deviceProtocolSubmissionState === DataSubmissionStates.POSTED) {\n          this.props.postTreatmentSession(this.props.patient.treatments[0].id, result.sessionProtocolId, result.date, result.periodStart, result.periodEnd, result.doBatchSchedule);\n          this.setState({awaitingPatch: false, disableFinishButton: true});\n        }\n        else if (this.props.deviceProtocolSubmissionState === DataSubmissionStates.FAILED) {\n          this.props.pushNotification(this.props.errorMessage);\n        }\n      }\n    }\n  }\n\n  hideAlert() {\n    this.setState({\n      modal: false,\n      batchSchedulingModal: false,\n    })\n  }\n\n  ModalUnfullData() {\n    if (this.state.modal) {      \n      return (\n        <ModalConfirmation\n          content={\n            <div>\n              <p>Scheduling your treatment.</p>\n              <p>Please, hold on for a few seconds...</p>\n            </div>\n          }\n        />\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  ModalBatchScheduling() {    \n    if (this.state.batchSchedulingModal) {\n      return (\n        <ModalConfirmation\n          content={\n            <div>\n              <p>Schedule a treatment of {this.props.schema.dates.length} sessions?</p> \n              <p>It will last from {this.props.schema.dates[0]} to {this.props.schema.dates[this.props.schema.dates.length-1]}.</p>\n            </div>\n          }\n          confirmationText=\"Confirm\"\n          cancelText=\"Cancel\"\n          onConfirm={() => this.confirmBatch()}\n          onCancel={() => this.hideAlert()}\n        />\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  confirmBatch() {\n    this.setState({batchConfirmation: true})\n  }\n\n  async finishWizard(result) {\n    Log.info(\"Finishing wizard with result:\", result);\n    if (result.doBatchSchedule && !this.state.batchConfirmation) {\n      this.props.clearSchemaInfo();\n      await this.props.getProtocolSchema(result.schemaId, result.date);\n      this.setState({ batchSchedulingModal: true, wizardResult: result });\n    } else if (!this.props.patients.fullData) {\n      this.setState({ modal: true, wizardResult: result });\n    } else if (result.deviceProtocolPatch.patch) {\n      this.props.patchDeviceProtocol(result.deviceProtocolPatch.deviceProtocolId, result.deviceProtocolPatch.patch)\n      this.setState({ awaitingPatch: true, wizardResult: result });\n    }    \n    else {\n      this.props.postTreatmentSession(this.props.patient.treatments[0].id, result.sessionProtocolId, result.date, result.periodStart, result.periodEnd, result.doBatchSchedule);\n      this.setState({ disableFinishButton: true });\n    }\n  }\n\n  closeWizard() {\n    this.props.onClose();\n  }\n\n  render() {\n    return (\n        <GridContainer justify=\"center\">\n          <ItemGrid xs={12} sm={8}>            \n            <this.ModalUnfullData/>\n            <this.ModalBatchScheduling/>\n            <Wizard\n              validate={true}\n              steps={[\n                { stepName: \"Schedule\", stepComponent: LayoutScheduleTreatmentSessions, stepId: \"schedule\" },\n                { stepName: \"Protocol\", stepComponent: LayoutSelectSessionProtocol, stepId: \"protocol\" }\n              ]}\n              title=\"Treatment Scheduler\"\n              subtitle={\"For \" + this.props.patient.code}\n              finishButtonClick={(result) => this.finishWizard(result)}\n              cancelButtonClick={() => this.closeWizard()}\n              finishButtonDisabled={this.state.disableFinishButton}\n              color=\"primary\"\n              stepsProps={{\n                patient: this.props.patient,\n                dates: this.props.dates,\n                getSessionProtocols: this.props.getSessionProtocols,\n                postSessionProtocol: this.props.postSessionProtocol,\n                getDeviceProtocol: this.props.getDeviceProtocol,\n                postDeviceProtocol: this.props.postDeviceProtocol,\n                sessionProtocols: this.props.sessionProtocols,\n                deviceProtocols: this.props.deviceProtocols,\n                patchDeviceProtocol: this.props.patchDeviceProtocol,\n                clearDeviceProtocol: this.props.clearDeviceProtocol\n              }}\n              finishButtonText=\"Schedule\"\n              finishOneButtonText=\"Schedule Single\"\n              batchButtonText=\"Schedule All Sessions\"\n            />\n          </ItemGrid>\n        </GridContainer>\n    );\n  }\n}\n\nfunction mapStateToProps( {sessionProtocols, deviceProtocols, schema, sessions, patients} ) {\n  let treatmentSessionSubmissionState\n  let deviceProtocolSubmissionState\n  let errorMessage = null\n  if ( !sessions.isRequesting && !sessions.posted && sessions.error === null ) treatmentSessionSubmissionState = DataSubmissionStates.IDLE;\n  else if ( sessions.isRequesting && !sessions.posted ) treatmentSessionSubmissionState = DataSubmissionStates.POSTING;\n  else if ( !sessions.isRequesting && sessions.posted ) treatmentSessionSubmissionState = DataSubmissionStates.POSTED;\n  else if ( !sessions.isRequesting && sessions.error !== null ) {\n    treatmentSessionSubmissionState = DataSubmissionStates.FAILED;\n    errorMessage = sessions.error.data.message;\n  }\n  if ( !deviceProtocols.isRequesting && !deviceProtocols.posted && deviceProtocols.error === null ) deviceProtocolSubmissionState = DataSubmissionStates.IDLE;\n  else if ( deviceProtocols.isRequesting && !deviceProtocols.posted ) deviceProtocolSubmissionState = DataSubmissionStates.POSTING;\n  else if ( !deviceProtocols.isRequesting && deviceProtocols.posted ) deviceProtocolSubmissionState = DataSubmissionStates.POSTED;\n  else if ( !deviceProtocols.isRequesting && deviceProtocols.error !== null ) {\n    deviceProtocolSubmissionState = DataSubmissionStates.FAILED;\n    errorMessage = deviceProtocols.error.data.message;\n  }\n  return { sessionProtocols, deviceProtocols, schema, patients, treatmentSessionSubmissionState, deviceProtocolSubmissionState, errorMessage };\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators({getSessionProtocols, postSessionProtocol, getDeviceProtocol, postDeviceProtocol, \n    postTreatmentSession, pushNotification, patchDeviceProtocol, clearDeviceProtocol,getProtocolSchema, clearSchemaInfo}, dispatch);\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TreatmentSchedulerSimple);\n\n","import {  createSelector } from 'reselect'\n\nconst _getSessionsByPatient = (state, patient) => {\n  if(!patient || !patient.treatments) return [];\n  return patient.treatments\n    .map(treatment => treatment.sessions.map(session => { return {id: session.id, treatmentId: treatment.id}; }))\n    .reduce((flat,array) => flat.concat(array), [])\n    .map(object => { let session = state.sessions.byId[object.id]; return session ? {treatmentId: object.treatmentId, ...session} : undefined; })\n    .filter(session => session !== undefined).filter(session => session.deleted !== true);\n}\n\nexport const sessionsByPatientSelector = createSelector(\n  [_getSessionsByPatient],\n  (sessions) => (sessions === null ? [] : sessions)\n)","import React, { Component } from \"react\"\nimport { connect } from 'react-redux'\nimport { bindActionCreators } from \"redux\"\nimport compose from \"recompose/compose\"\nimport { getEegLink, removeEegLink, getCsvLink, removeCsvLink } from \"../actions/index\"\n\nimport Chip from \"material-ui/Chip\"\nimport Avatar from \"material-ui/Avatar\"\n\nimport { withStyles } from \"material-ui/styles\"\nimport FileDownload from \"@material-ui/icons/FileDownload\"\n\nimport moment from \"moment\"\n\nconst styles = {\n  iconAvatar: {\n    background: \"darkorange\",\n    color: \"white\"\n  },\n  iconAvatarSessionRecord: {\n    background: \"#2D9434\",\n    color: \"white\"\n  },\n  iconChip: {\n    margin: \"1%\",\n    cursor: \"pointer\",\n    background: \"orange\",\n    color: \"white\",\n    fontWeight: \"400\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\"\n  },\n  iconChipSessionRecord: {\n    margin: \"1%\",\n    cursor: \"pointer\",\n    background: \"#4caf50\",\n    color: \"white\",\n    fontWeight: \"400\",\n    boxShadow:\n      \"0 2px 2px 0 rgba(156, 39, 176, 0.14), 0 3px 1px -2px rgba(156, 39, 176, 0.2), 0 1px 5px 0 rgba(156, 39, 176, 0.12)\"\n  }\n}\n\nconst problemsDictionary = {\n  missed: \"Missed\",\n  aborted_impedance: \"Auto-aborted on high impedances\",\n  aborted_disconnect: \"Auto-aborted on Necbox disconnection\",\n  aborted_patient: \"Aborted by patient\",\n  pain: \"Pain\",\n  electrode_sensation: \"Sensation under electrode\",\n  cognitive_mood_chang: \"Cognitive or mood changes\",\n  other: \"Acute event other than listed\"\n}\n\n  \nclass LayoutSessionOverview extends Component {     \n   \n  render() {\n    \n    const { patientCode, sessionDate, sessionprotocol, problems, timeCompliance, eegRecordings } = this.props.props\n    const executed = moment.unix(timeCompliance[0]).format(\"mm [min] ss [s]\")\n    const total = moment\n      .unix(timeCompliance[0] + timeCompliance[1] + timeCompliance[2])\n      .format(\"mm [min] ss [s]\")\n  \n    let acuteEvents\n    if (problems.acuteEvents && problems.acuteEvents.length > 0)\n      acuteEvents = problems.acuteEvents\n        .map(p => problemsDictionary[p])\n        .join(\", \")\n    else acuteEvents = \"-\"\n  \n    let incidents\n    if (problems.types && problems.types.length > 0)\n      incidents = problems.types.map(p => problemsDictionary[p]).join(\", \")\n    else incidents = \"-\" \n\n    let sessionEvents\n    if (incidents === \"Missed\") {\n      sessionEvents = false\n    } else {\n      sessionEvents = true\n    }\n\n    const download = \n    eegRecordings.length > 0 &&\n    eegRecordings.map((item, index) => {         \n      return item.step && (\n        <Chip          \n          onClick={() => handleClick(item.id, item.step)}          \n          avatar={\n            <Avatar style={styles.iconAvatar}>\n              <FileDownload />\n            </Avatar>\n          }\n          label={item.step}\n          style={styles.iconChip}\n          key={index}\n        />\n      )\n    })   \n    \n    const handleClick = async (id, step) => {\n      try {      \n          await this.props.getEegLink(id)\n          const link = this.props.eeg.link        \n          const a = document.createElement(\"a\")\n          a.setAttribute(\"href\", link)\n          a.setAttribute(\"download\", step)\n          document.body.appendChild(a)\n          a.click()\n          document.body.removeChild(a) \n  \n          this.props.removeEegLink()     \n  \n      } catch(error) {\n        console.log(error)\n      }    \n    }\n\n    \n\n    const downloadCsv =           \n        <Chip              \n          onClick={() => handleClickCsv(this.props.props.id)}\n          avatar={\n            <Avatar style={styles.iconAvatarSessionRecord}>\n              <FileDownload />\n            </Avatar>\n          }\n          label=\"Session Record File (.csv)\"\n          style={styles.iconChipSessionRecord}              \n    />\n\n    const handleClickCsv = async (id) => {\n      try {        \n        await this.props.getCsvLink(id);\n        const a = document.createElement(\"a\");\n        const file = new Blob([this.props.csv.content], {type: 'text/plain'});\n        a.href = URL.createObjectURL(file);\n        a.download = this.props.csv.filename;          \n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);  \n        this.props.removeCsvLink();  \n  \n      } catch(error) {\n        console.log(error)\n      }    \n    }\n\n    \n\n    return (      \n      \n      <div>\n        <h4>\n          {patientCode}'s session on {sessionDate}\n        </h4>\n        <h6>Execution</h6>\n        <p>Session protocol: {sessionprotocol.name}</p>\n        <p>\n          Executed: {executed} / {total}\n        </p>\n        <h6>Problems</h6>\n        <p>Incidents: {incidents}</p>\n        <p>Reported acute events: {acuteEvents}</p>\n        {sessionEvents && (\n          <>\n           <h6>Download session record:</h6>\n           {downloadCsv}\n          </>\n        )}  \n        {eegRecordings.length > 0 && (\n          <>\n            <h6>Downloadable EEG files:</h6>\n            {download}\n          </>\n        )}        \n        \n      </div>\n    \n    )\n\n  }\n} \n\n\nfunction mapStateToProps(state) {  \n  return { \n    eeg: state.eeg,\n    csv: state.csv, \n  }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators(\n    { getEegLink, removeEegLink, getCsvLink, removeCsvLink },\n    dispatch\n  )\n}\n\nexport default compose(\n  withStyles(styles),\n  connect(mapStateToProps, mapDispatchToProps)\n)(LayoutSessionOverview)\n\n","import React, { Component } from \"react\"\n\nimport { connect } from \"react-redux\"\nimport { bindActionCreators } from \"redux\"\n\nimport BigCalendar from \"react-big-calendar\"\n\nimport moment from \"moment\"\n\nimport compose from \"recompose/compose\"\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\"\n\n// @material-ui/icons\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\"\nimport PermContactCalendar from \"@material-ui/icons/PermContactCalendar\"\n\n// core components\nimport CardCalendarSession from \"../molecules/CardCalendarSession.jsx\"\nimport CardAgendaCalendarTimeSession from \"../molecules/CardAgendaCalendarTimeSession\"\nimport CardAgendaCalendarSession from \"../molecules/CardAgendaCalendarSession.jsx\"\n\nimport CalendarHeader from \"../molecules/CalendarHeader.jsx\"\n\nimport buttonStyle from \"assets/jss/material-dashboard-pro-react/components/buttonStyle.jsx\"\n\nimport { getTreatmentSessions, deleteTreatmentSession } from \"../actions/index\"\n\nimport { Modal } from \"material-ui\"\nimport TreatmentSchedulerSimple from \"../organisms/TreatmentSchedulerSimple.jsx\"\n\nimport { patientByCodeSelector } from \"../selectors/patientSelectors\"\nimport { sessionsByPatientSelector } from \"../selectors/sessionSelectors\"\nimport ModalConfirmation from \"../molecules/ModalConfirmation\"\nimport LayoutSessionOverview from \"../molecules/LayoutSessionOverview.jsx\"\n\nBigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment))\n\nconst today = moment().format(\"YYYY-MM-DD\")\n\nconst CURRENT_DATE = moment().toDate()\n\n// example implementation of a wrapper\nconst ColoredDateCellWrapper = ({ children, value }) => {\n  const newElement = React.cloneElement(children, {\n    style: {\n      height: \"300px\",\n      borderType: \"solid\",\n      borderColor: value === CURRENT_DATE ? \"orange\" : \"black\",\n      backgroundColor: value !== CURRENT_DATE ? \"#EEEEEE\" : \"#FFFFFF\",\n      ...children.props.style\n    }\n  })\n  return newElement\n}\n\nexport class CalendarSessions extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      events: [],\n      alert: null,\n      addSessionOpen: false,\n      viewFutureSessionOpen: false,\n      viewPastSessionOpen: false\n    }\n    this.hideAlert = this.hideAlert.bind(this)\n    this.ModalViewFutureSession = this.ModalViewFutureSession.bind(this)\n    this.ModalViewPastSession = this.ModalViewPastSession.bind(this)\n    this.hideModalViewFutureSession = this.hideModalViewFutureSession.bind(this)\n    this.hideModalViewPastSession = this.hideModalViewPastSession.bind(this)\n  }\n\n  componentDidMount() {\n    const treatments = this.props.patient.treatments\n    if (Array.isArray(treatments) && treatments.length > 0) {\n      this.props.getTreatmentSessions(this.props.patient.treatments[0].id)\n    }\n  }\n\n  selectedEvent(event) {\n    if (event.color === \"default\")\n      this.setState({ viewFutureSessionOpen: event })\n    else this.setState({ viewPastSessionOpen: event.id })\n  }\n\n  addNewEventAlert(slotInfo) {\n    let lastDatesSelected = slotInfo.slots\n\n    console.log(lastDatesSelected)\n\n    if (moment(lastDatesSelected[0]).format(\"YYYY-MM-DD\") >= today) {\n      console.log(\"Setting addSessionOpen to true\", slotInfo)\n      this.setState({ addSessionOpen: true, lastDatesSelected })\n    }\n  }\n\n  addNewEvent(e, slotInfo) {\n    var newEvents = this.state.events\n    newEvents.push({\n      title: e,\n      start: slotInfo.start,\n      end: slotInfo.end\n    })\n    this.setState({\n      alert: null,\n      events: newEvents\n    })\n  }\n\n  hideAlert() {\n    this.setState({\n      addSessionOpen: false,\n      alert: null\n    })\n  }\n\n  hideModalViewFutureSession() {\n    this.setState({ viewFutureSessionOpen: false })\n  }\n\n  hideModalViewPastSession() {\n    this.setState({ viewPastSessionOpen: false })\n  }\n\n  ModalViewFutureSession() {\n    let session = this.state.viewFutureSessionOpen\n    if (session) {\n      let dayDuration = session.allDay\n        ? \"\"\n        : \"between \" +\n          moment(session.start).format(\"hA\") +\n          \" and \" +\n          moment(session.end).format(\"hA\")\n      return (\n        <ModalConfirmation\n          content={\n            <div>\n              <p>Session protocol: {session.title}</p>\n              <p>\n                Scheduled for {moment(session.start).format(\"MMMM Do YYYY\")}{\" \"}\n                {dayDuration}\n              </p>\n            </div>\n          }\n          dangerText=\"Remove this session\"\n          onDanger={this.onSessionRemove.bind(this, session)}\n          xClose={true}\n          onCancel={this.hideModalViewFutureSession}\n        />\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  ModalViewPastSession() {\n    let sessionId = this.state.viewPastSessionOpen\n\n    if (sessionId) {\n      const sessions = this.props.sessions.filter(\n        session => session.id === sessionId\n      )\n\n      if (sessions.length === 1) {\n        const session = sessions[0]\n        const patientCode = this.props.patient.code\n\n        return (\n          <ModalConfirmation\n            content={\n              <LayoutSessionOverview props={{ ...session, patientCode }} />\n            }\n            xClose={true}\n            onCancel={this.hideModalViewPastSession}\n          />\n        )\n      }\n    } else {\n      return \"\"\n    }\n  }\n\n  onSessionRemove(event) {\n    console.log(\"Will remove the session\", event)\n    this.props.deleteTreatmentSession(event.treatmentId, event.id)\n    this.hideModalViewFutureSession()\n  }\n\n  treatmentSessionToEvent = treatmentSession => {\n    console.log(\"Converting treatment session\", treatmentSession, \"to event\")\n\n    let title = treatmentSession.sessionprotocol.name\n\n    let id = treatmentSession.id\n    let treatmentId = treatmentSession.treatmentId\n\n    let eeg = treatmentSession.eegRecordings\n\n    let start, end, allDay\n    if (treatmentSession.sessionPeriodStart) {\n      allDay = false\n      start = moment(\n        treatmentSession.sessionDate + \" \" + treatmentSession.sessionPeriodStart\n      ).toDate()\n      end = moment(\n        treatmentSession.sessionDate + \" \" + treatmentSession.sessionPeriodEnd\n      ).toDate()\n    } else {\n      allDay = true\n      start = moment(treatmentSession.sessionDate).startOf(\"day\")\n      end = moment(treatmentSession.sessionDate).endOf(\"day\")\n    }\n\n    console.log(\"Start - end:\", start, end)\n\n    let executed = Math.floor(treatmentSession.timeCompliance[0] / 60)\n    let duration = Math.floor(\n      (treatmentSession.timeCompliance[0] +\n        treatmentSession.timeCompliance[1] +\n        treatmentSession.timeCompliance[2]) /\n        60\n    )\n\n    let problem =\n      treatmentSession.problems &&\n      ((treatmentSession.problems.acute_events &&\n        treatmentSession.problems.acute_events.length > 0) ||\n        (treatmentSession.problems.types &&\n          treatmentSession.problems.types.length > 0))\n        ? true\n        : false\n\n    const problemsDictionary = {\n      missed: \"Missed\",\n      aborted_impedance: \"Auto-aborted on high impedances\",\n      aborted_disconnect: \"Auto-aborted on Necbox disconnection\",\n      aborted_patient: \"Aborted by patient\",\n      pain: \"Pain\",\n      electrode_sensation: \"Sensation under electrode\",\n      cognitive_mood_chang: \"Cognitive or mood changes\",\n      other: \"Acute event other than listed\"\n    }\n\n    let acuteEvents\n    if (\n      treatmentSession.problems.acuteEvents &&\n      treatmentSession.problems.acuteEvents.length > 0\n    )\n      acuteEvents = treatmentSession.problems.acuteEvents\n        .map(p => problemsDictionary[p])\n        .join(\", \")\n    else acuteEvents = false\n\n    let incidents\n    if (\n      treatmentSession.problems.types &&\n      treatmentSession.problems.types.length > 0\n    )\n      incidents = treatmentSession.problems.types\n        .map(p => problemsDictionary[p])\n        .join(\", \")\n    else incidents = false\n\n    let color\n    // TODO: More meaningful data could be received on that from API (unstarted, started, finished_partially, finished)\n    if (treatmentSession.sessionDate > today) color = \"default\"\n    else if (treatmentSession.sessionDate === today && executed === 0)\n      color = \"default\"\n    else {\n      if (executed >= duration - 1) color = \"green\"\n      else if (executed >= 1) color = \"orange\"\n      else color = \"red\"\n    }\n\n    return {\n      id,\n      treatmentId,\n      title,\n      allDay,\n      start,\n      end,\n      color,\n      executed,\n      duration,\n      problem,\n      acuteEvents,\n      incidents,\n      eeg\n    }\n  }\n\n  eventColors(event, start, end, isSelected) {\n    var backgroundColor = \"event-\"\n    event.color\n      ? (backgroundColor = backgroundColor + event.color)\n      : (backgroundColor = backgroundColor + \"default\")\n\n    return {\n      className: backgroundColor\n    }\n  }\n\n  components() {\n    return {\n      month: {\n        event: CardCalendarSession\n      },\n      agenda: {\n        event: CardAgendaCalendarSession,\n        time: CardAgendaCalendarTimeSession\n      },\n      toolbar: CalendarHeader\n    }\n  }\n\n  render() {\n    console.log(\"PATIENT:\", this.props.patient)\n    console.log(\"Sessions:\", this.props.sessions)\n\n    const cardSubtitle =\n      \"Browse and schedule sessions\" +\n      (this.props.patient ? \" for \" + this.props.patient.code : \"\")\n\n    const events = this.props.sessions.map(session =>\n      this.treatmentSessionToEvent(session)\n    )\n\n    let msg = {\n      showMore: total => `+${total} more`\n    }\n\n    return (\n      <div>\n        <Modal\n          onClose={() => this.hideAlert()}\n          open={this.state.addSessionOpen}\n          style={{ overflow: \"auto\" }}\n        >\n          <TreatmentSchedulerSimple\n            onClose={() => this.hideAlert()}\n            patient={this.props.patient}\n            dates={this.state.lastDatesSelected}\n          />\n        </Modal>\n\n        <this.ModalViewFutureSession />\n\n        <this.ModalViewPastSession />\n\n        <HeaderCard\n          headerColor=\"orange\"\n          cardTitle={\"Treatment Schedule\"}\n          cardSubtitle={\n            \"Browse and program treatment for \" + this.props.patient.code\n          }\n          icon={PermContactCalendar}\n          content={\n            <BigCalendar\n              popup\n              selectable={true}\n              events={events}\n              defaultView=\"month\"\n              length={365}\n              scrollToTime={new Date()}\n              defaultDate={new Date()}\n              onSelectEvent={event => this.selectedEvent(event)}\n              onSelectSlot={slotInfo => this.addNewEventAlert(slotInfo)}\n              eventPropGetter={this.eventColors}\n              views={[\"month\", \"agenda\"]}\n              toolbar={true}\n              messages={msg}\n              showMultiDayTimes={false}\n              startAccessor=\"start\"\n              endAccessor=\"end\"\n              components={this.components()}\n            />\n          }\n        />\n      </div>\n    )\n  }\n}\n\nfunction mapStateToProps(state, props) {\n  const patient = patientByCodeSelector(state, props.patientCode)\n  const sessions = sessionsByPatientSelector(state, patient)\n  return { patient, sessions }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators(\n    { getTreatmentSessions, deleteTreatmentSession },\n    dispatch\n  )\n}\n\nexport default compose(\n  withStyles(buttonStyle),\n  connect(mapStateToProps, mapDispatchToProps)\n)(CalendarSessions)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport withStyles from \"material-ui/styles/withStyles\";\n\nimport AccountCircle from \"@material-ui/icons/AccountCircle\";\nimport Edit from \"@material-ui/icons/Edit\";\nimport PatientEditor from \"../organisms/PatientEditor\";\nimport { Modal } from \"material-ui\";\n\nconst avatarStyle = {\n    parent: {\n        marginBottom: \"30px\",\n        height: \"40px\",\n        alignItems: \"center\",\n        display: \"flex\"\n    },\n    blable: {\n        padding: \"20px\",\n        verticalAlign: \"middle\"\n    },\n    icon: {\n        width: \"40px\",\n        height: \"40px\"\n    },\n    edit: {\n        width: \"35px\",\n        height: \"35px\",\n        paddingLeft: \"10px\",\n        cursor: \"pointer\"\n    }\n};\n\nclass PatientAvatar extends React.Component {\n\n    constructor(props) {\n        super(props);\n        this.state = {\n          editOpen: false\n        };\n    }\n\n    renderAddPatientModal(code) {\n        return (\n        <Modal\n            onClose={() => this.setState({editOpen: false})}\n            open={this.state.editOpen}\n        >\n            <PatientEditor code={code}\n            onClose={() => this.setState({editOpen: false})}\n            />\n        </Modal>\n        )\n    }\n\n    render() {\n        let { classes, code } = this.props;\n\n        return (\n            <div>\n                {this.renderAddPatientModal(code)}\n                <h3 className={classes.parent}>\n                    <AccountCircle className={classes.icon}/>\n                    <span className={classes.blable}>{code}</span>\n                    <Edit className={classes.edit}\n                        onClick={() => this.setState({editOpen: true})}\n                    />\n                </h3>\n            </div>\n\n        )\n    }\n\n}\n\nPatientAvatar.propTypes = {\n    code: PropTypes.string.isRequired\n}\n\nexport default withStyles(avatarStyle)(PatientAvatar);","import {  createSelector } from 'reselect'\n\nimport Log from '../logging/Log.jsx';\n\nconst getDevices = (state) => Object.keys(state.devices.byId).map(key => state.devices.byId[key])\nconst getPatientDevice = (patient, state) => { \n  if (patient && Array.isArray(patient.devices) && patient.devices.length > 0) {\n    Log.info(\"getPatientDevice HERE\")\n    let deviceId = patient.devices[0].id;\n    return state.devices.byId[deviceId];\n  } \n  else {\n    Log.info(\"getPatientDevice THERE\")\n    return null;\n  }\n}\n\nconst getDeviceTypeFromModelSymbol = (model) => {\n  switch(model) {\n    case 'STARSTIM_8_BT':\n      return 'Starstim 8 BT'\n    case 'STARSTIM_8_WIFI':\n      return 'Starstim 8 WiFi'\n    default:\n      return model\n  }\n}\n\nexport const unassignedDevicesSelector = createSelector(\n  [getDevices],\n  (devices) => {\n    return devices.filter(d => !d.patient).map(d => ({id: d.id, mac: d.mac, type: getDeviceTypeFromModelSymbol(d.model)}))\n  }\n)\n\nexport const assignedDevicesSelector = createSelector(\n  [getDevices],\n  (devices) => {\n    return devices.filter(d => d.patient).map(d => ({id: d.id, mac: d.mac, type: getDeviceTypeFromModelSymbol(d.model), code: d.patient.code}))\n  }\n)\n\nexport const patientDeviceSelector = createSelector(\n  [getPatientDevice],\n  (device) => { if(device) return {id: device.id, mac: device.mac, type: getDeviceTypeFromModelSymbol(device.model)}; else return null; }\n)","import React from \"react\";\nimport classNames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Manager, Target, Popper } from \"react-popper\";\nimport { Events } from \"react-scroll\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\nimport MenuItem from \"material-ui/Menu/MenuItem\";\nimport MenuList from \"material-ui/Menu/MenuList\";\nimport ClickAwayListener from \"material-ui/utils/ClickAwayListener\";\nimport Paper from \"material-ui/Paper\";\nimport Grow from \"material-ui/transitions/Grow\";\nimport Divider from \"material-ui/Divider\";\n\nimport customDropdownStyle from \"assets/jss/material-dashboard-pro-react/components/customDropdownStyle\";\nimport ButtonStyled from \"./ButtonStyled\";\n\nclass DropdownStyled extends React.Component {\n  constructor(props) {\n    super(props);\n    this.state = {\n      open: false\n    };\n    this.handleClick = this.handleClick.bind(this);\n    this.handleClose = this.handleClose.bind(this);    \n  }\n\n  componentDidMount() {\n    Events.scrollEvent.register(\"begin\", function() {\n      console.log(\"begin\", arguments);\n    });\n\n    Events.scrollEvent.register(\"end\", function() {\n      console.log(\"end\", arguments);\n    });\n  }\n  \n  componentWillUnmount() {\n    Events.scrollEvent.remove(\"begin\");\n    Events.scrollEvent.remove(\"end\");\n  }\n\n  handleClick() {\n    this.setState({ open: true });\n  }\n  handleClose() {\n    this.setState({ open: false });\n  }\n  handleListItemClick() {\n    this.handleClose();\n    this.props.onListItemClick(...arguments);\n  }\n  render() {\n    const { open } = this.state;\n    const {\n      classes,\n      buttonColor,\n      buttonText,\n      buttonIcon,\n      dropdownList,\n      buttonProps,\n      dropup,\n      dropdownHeader,\n      rtlActive\n    } = this.props;\n    const caretClasses =\n      classes.caret +\n      \" \" +\n      classNames({\n        [classes.caretActive]: open,\n        [classes.caretRTL]: rtlActive\n      });\n    const dropdownItem =\n      classes.dropdownItem +\n      \" \" +\n      classNames({\n        [classes.dropdownItemRTL]: rtlActive\n      });\n    return (\n      <Manager style={{ display: \"inline-block\" }}>\n        <Target>\n          <ButtonStyled \n            {...buttonProps}\n            onClick={this.handleClick}\n            aria-label=\"Notifications\"\n            aria-owns={open ? \"menu-list\" : null}\n            aria-haspopup=\"true\"\n          />\n        </Target>\n        <Popper\n          placement={dropup ? \"top-start\" : \"bottom-start\"}\n          eventsEnabled={open}\n          className={\n            classNames({ [classes.popperClose]: !open }) +\n            \" \" +\n            classes.pooperResponsive\n          }\n          style={{ zIndex: 5 }} // As events of React-big-calendar have z-index = 4\n        >\n          <ClickAwayListener onClickAway={this.handleClose}>\n            <Grow\n              in={open}\n              id=\"menu-list\"\n              style={\n                dropup\n                  ? { transformOrigin: \"0 100% 0\" }\n                  : { transformOrigin: \"0 0 0\" }\n              }\n            >\n              <Paper className={classes.dropdown}>\n                <div                \n                  id=\"scroll-container\"\n                  style={{\n                    maxHeight: \"450px\",\n                    overflow: \"scroll\"                  \n                  }}\n                >\n                  <MenuList role=\"menu\" className={classes.menuList}>\n                    {dropdownList.map((prop, index) => {\n                      if (prop.section) {\n                        const returnList = []\n                        if (prop.divider) {\n                          returnList.push(\n                            <Divider key={`divider-${index}`}\n                              className={classes.dropdownDividerItem}\n                            />\n                          )\n                        }\n                        returnList.push(                       \n                          <MenuItem key={`section-${index}`}\n                            className={classes.dropdownHeader}\n                          >\n                            {prop.section}\n                          </MenuItem>\n                        )\n                        return (\n                          <div key={index}>\n                            {returnList}\n                          </div>\n                        );\n                      }\n                      return (                      \n                        <MenuItem\n                          key={`item-${prop.id}`}\n                          onClick={() => this.handleListItemClick(prop.id)}\n                          className={dropdownItem}\n                        >\n                          {prop.code ? [<small key=\"1\" style={{textAlign: \"right\"}}>[{prop.code}]</small>, <br key=\"2\"/>] : \"\"}\n                          <small key=\"3\" >{prop.type}</small><br key=\"4\"/>\n                          {prop.mac}\n                        </MenuItem>                      \n                      );\n                    })}                  \n                  </MenuList>                \n                </div>\n              </Paper>\n            </Grow>\n          </ClickAwayListener>\n        </Popper>\n      </Manager>\n    );\n  }\n}\n\nDropdownStyled.propTypes = {\n  classes: PropTypes.object.isRequired,\n  buttonColor: PropTypes.oneOf([\n    \"primary\",\n    \"info\",\n    \"success\",\n    \"warning\",\n    \"danger\",\n    \"rose\",\n    \"defaultNoBackground\",\n    \"primaryNoBackground\",\n    \"infoNoBackground\",\n    \"successNoBackground\",\n    \"warningNoBackground\",\n    \"dangerNoBackground\",\n    \"roseNoBackground\",\n    \"white\",\n    \"simple\",\n    \"transparent\"\n  ]),\n  buttonText: PropTypes.node,\n  buttonIcon: PropTypes.func,\n  dropdownList: PropTypes.array,\n  buttonProps: PropTypes.object,\n  dropup: PropTypes.bool,\n  dropdownHeader: PropTypes.node,\n  rtlActive: PropTypes.bool,\n  onListItemClick: PropTypes.func\n};\n\nexport default withStyles(customDropdownStyle)(DropdownStyled);\n","import React from \"react\";\nimport { connect } from 'react-redux';\nimport { bindActionCreators } from 'redux';\n\nimport Log from '../logging/Log.jsx';\n\n// core components\n\nimport { patientByCodeSelector } from \"../selectors/patientSelectors\";\nimport { assignDeviceToPatient, unAssignDeviceFromPatient, getDevices, pushNotification } from '../actions/index';\nimport { unassignedDevicesSelector, patientDeviceSelector, assignedDevicesSelector } from \"../selectors/deviceSelectors\";\nimport DropdownStyled from \"../molecules/DropdownStyled\";\nimport ModalConfirmation from \"../molecules/ModalConfirmation\";\n\nimport {DataSubmissionStates, DataDeleteStates} from '../reducers/utils.js'\n\n\nclass PatientDeviceAssignmentMenu extends React.Component {\n\n  constructor(props) {\n    Log.info(\"Creating TreatmentSchedulerSimple with props:\", props);\n    super(props);\n    this.state = {\n      assignConfirmationRequired: false,\n      assignConfirmationDevice: null,\n      unAssignConfirmationRequired: false,\n      unAssignConfirmationDevice: null\n    };\n\n    this.deviceChosenForAssignment = this.deviceChosenForAssignment.bind(this);\n    this.deviceConfirmedForAssignment = this.deviceConfirmedForAssignment.bind(this);\n    this.deviceAssignmentCancelled = this.deviceAssignmentCancelled.bind(this);\n    this.UnAssignedDeviceComponent = this.UnAssignedDeviceComponent.bind(this);\n    this.AssignedDeviceComponent = this.AssignedDeviceComponent.bind(this);\n    this.assignDevice = this.assignDevice.bind(this);\n    this.deviceChosenForUnAssignment = this.deviceChosenForUnAssignment.bind(this);\n    this.deviceConfirmedForUnAssignment = this.deviceConfirmedForUnAssignment.bind(this);\n    this.deviceUnAssignmentCancelled = this.deviceUnAssignmentCancelled.bind(this);\n    this.unAssignDevice = this.unAssignDevice.bind(this);\n  }\n\n  componentDidMount() {\n    if(this.props.deviceAssigned === false) {\n      this.props.getDevices();\n    }\n  }\n\n  componentDidUpdate(prevProps, prevState, snapshot) {\n    if(prevProps.deviceAssigned !== this.props.deviceAssigned) {    \n      this.props.getDevices();\n    }\n\n    if (prevProps.assignmentSubmissionState === DataSubmissionStates.POSTING) {\n      if (this.props.assignmentSubmissionState === DataSubmissionStates.POSTED) {\n        //this.closeWizard();\n      }\n      else if (this.props.assignmentSubmissionState === DataSubmissionStates.FAILED) {\n        this.props.pushNotification(\"Failed to assign! \" + this.props.errorMessage);\n      }\n    }\n\n    if (prevProps.unUssignmentSubmissionState === DataDeleteStates.DELETING) {\n      if (this.props.unAssignmentSubmissionState === DataDeleteStates.DELETED) {\n        //this.closeWizard();\n      }\n      else if (this.props.unAssignmentSubmissionState === DataDeleteStates.FAILED) {\n        this.props.pushNotification(\"Failed to unassign! \" + this.props.errorMessage);\n      }\n    }\n  }\n\n  deviceChosenForAssignment(id) {\n    const {allAssignedDevices, allUnassignedDevices} = this.props;\n\n    let chosenAssignedDevices = allAssignedDevices.filter(device => device.id === id);\n    if (chosenAssignedDevices.length > 0) {\n      Log.info(\"Chosen assigned device:\", id);\n      this.setState({assignConfirmationRequired: true, assignConfirmationDevice: chosenAssignedDevices[0]});\n    }\n    else {\n      let chosenUnassignedDevices = allUnassignedDevices.filter(device => device.id === id);\n      if (chosenUnassignedDevices.length > 0) {\n        this.assignDevice(id);\n      }\n    }\n  }\n\n  deviceConfirmedForAssignment() {\n    const id = this.state.assignConfirmationDevice.id;\n    this.setState({assignConfirmationRequired: false, assignConfirmationDevice: null});\n    this.assignDevice(id);\n  }\n\n  deviceAssignmentCancelled() {\n    this.setState({assignConfirmationRequired: false, assignConfirmationDevice: null})\n  }\n\n  assignDevice(deviceId) {\n    Log.info(\"Will assign the device:\", deviceId, \"to patient\", this.props.patientId)\n    this.props.assignDeviceToPatient(this.props.patientId, deviceId)\n  }\n\n  unAssignDevice() {\n    Log.info(\"Will unassign the device:\", this.props.patientDevice, \"from patient\", this.props.patientId)\n    this.props.unAssignDeviceFromPatient(this.props.patientId, this.props.patientDevice)\n  }\n\n  deviceChosenForUnAssignment() {\n    this.setState({unAssignConfirmationRequired: true, unAssignConfirmationDevice: this.props.patientDevice})\n  }\n\n  deviceConfirmedForUnAssignment() {\n    this.setState({unAssignConfirmationRequired: false, unAssignConfirmationDevice: null});\n    this.unAssignDevice();\n  }\n\n  deviceUnAssignmentCancelled() {\n    this.setState({unAssignConfirmationRequired: false, unAssignConfirmationDevice: null});\n  }\n\n  AssignedDeviceComponent(props) {\n    let dropdownList = []\n    dropdownList.push(props.patientDevice)\n    dropdownList.push({ section: \"Click on the device name to finalize assignment\" })\n\n    return (\n      <DropdownStyled\n        buttonProps={{\n          icon: \"NEDevice\",\n          message: \"Device assigned\",\n          inactive: true,\n          dropdown : true,\n          fullWidth: true\n        }}\n        dropdownList={dropdownList}\n        onListItemClick={() => this.deviceChosenForUnAssignment()}\n      />\n    )\n  }\n\n  UnAssignedDeviceComponent(props) {\n    const {freeDevices, assignedDevices} = props;\n\n    let dropdownList = []\n    dropdownList.push({ section: \"Available devices\" })\n    dropdownList.push(...freeDevices)\n    dropdownList.push({ section: \"Assigned devices\", divider: true })\n    dropdownList.push(...assignedDevices)\n\n    return (\n      <DropdownStyled\n        buttonProps={{\n          icon: \"NEDevice\",\n          message: \"Assign device\",\n          inactive: false,\n          dropdown : true,\n          fullWidth: true\n        }}\n        dropdownList={dropdownList}\n        onListItemClick={(id) => this.deviceChosenForAssignment(id)}\n      />\n    )\n  }\n\n  AssignedPatientChangeConfirmationModal(props) {\n    const {deviceMac, currentPatientCode, newPatientCode, onConfirm, onCancel} = props;\n\n    return (\n      <ModalConfirmation\n        content={\n          <div>\n            <p>The device {deviceMac} is currently assigned to {currentPatientCode}.</p>\n            <p>If you assign this device to {newPatientCode}, the assignment to {currentPatientCode} will be finalized.</p>\n            <p>Are you sure you want continue with the assignment?</p>\n          </div>\n          }\n        cancelText=\"Cancel\"\n        confirmationText=\"Confirm\"\n        onCancel={onCancel}\n        onConfirm={onConfirm}\n      />\n    )\n  }\n\n  UnAssignPatientDeviceConfirmationModal(props) {\n    const {deviceMac, currentPatientCode, onConfirm, onCancel} = props;\n\n    return (\n      <ModalConfirmation\n        content={\n          <div>\n            <p style={{color: \"red\"}}>WARNING! You are about to unassign the device {deviceMac} from {currentPatientCode}.</p>            \n            <p>Are you sure you want continue with the unassignment?</p>\n          </div>\n          }\n        cancelText=\"Cancel\"\n        confirmationText=\"Confirm\"\n        onCancel={onCancel}\n        onConfirm={onConfirm}\n      />\n    )\n  }\n\n  render() {\n    const { deviceAssigned, patientDevice, allAssignedDevices, allUnassignedDevices, patientCode } = this.props;\n    const { assignConfirmationRequired, assignConfirmationDevice, unAssignConfirmationRequired, unAssignConfirmationDevice } = this.state;\n\n    let componentsToRender = [];\n\n    if(deviceAssigned) {\n      componentsToRender.push(\n        <this.AssignedDeviceComponent\n          key={patientDevice.id}\n          patientDevice={patientDevice}\n        />)\n    } else {\n      componentsToRender.push(\n        <this.UnAssignedDeviceComponent\n          key={0}\n          assignedDevices={allAssignedDevices} \n          freeDevices={allUnassignedDevices}\n        /> \n      )\n    }\n\n    if(assignConfirmationRequired) {\n      componentsToRender.push(\n        <this.AssignedPatientChangeConfirmationModal\n          key={assignConfirmationDevice.id}\n          deviceMac={assignConfirmationDevice.mac}\n          currentPatientCode={assignConfirmationDevice.code}\n          newPatientCode={patientCode}\n          onCancel={this.deviceAssignmentCancelled}\n          onConfirm={this.deviceConfirmedForAssignment}\n        />\n      )\n    }\n\n    if(unAssignConfirmationRequired) {\n      componentsToRender.push(\n        <this.UnAssignPatientDeviceConfirmationModal\n          key={1}\n          deviceMac={unAssignConfirmationDevice.mac}\n          currentPatientCode={patientCode}         \n          onCancel={this.deviceUnAssignmentCancelled}\n          onConfirm={this.deviceConfirmedForUnAssignment}\n        />\n      )\n    }\n\n    return (\n      <div>\n        {componentsToRender.map(component => component)}\n      </div>\n    )\n  }\n}\n\nfunction mapStateToProps(state, props) {\n  Log.info(\"PatientDeviceAssignmentMenu - mapStateToProps\", state)\n  let patient = patientByCodeSelector(state, props.patientCode)\n  let patientDevice = patientDeviceSelector(patient, state)\n  let patientId\n  if (patient) { patientId = patient.id }  \n  let allAssignedDevices, allUnassignedDevices\n  let deviceAssigned = true\n  if (patientDevice === null) {\n    allAssignedDevices = assignedDevicesSelector(state)\n    allUnassignedDevices = unassignedDevicesSelector(state)\n    deviceAssigned = false\n  }\n\n  let assignmentSubmissionState\n  let errorMessage = null\n  if ( !state.patients.isFetching && !state.patients.posted && state.patients.error === null ) assignmentSubmissionState = DataSubmissionStates.IDLE;\n  else if ( state.patients.isFetching && !state.patients.posted ) assignmentSubmissionState = DataSubmissionStates.POSTING;\n  else if ( !state.patients.isFetching && state.patients.posted ) assignmentSubmissionState = DataSubmissionStates.POSTED;\n  else if ( !state.patients.isFetching && state.patients.error !== null ) {\n    assignmentSubmissionState = DataSubmissionStates.FAILED;\n    errorMessage = state.patients.error.data.message;\n  }\n\n  Log.info(\"Assignment submission state:\", assignmentSubmissionState)\n\n  Log.info(\"Patient\", patient, \"PatientDevice\", patientDevice, \"assigned\", allAssignedDevices, \"unassigned\", allUnassignedDevices, \"deviceAssigned?\", deviceAssigned)\n  \n  let unAssignmentSubmissionState  \n  if ( !state.patients.isFetching && !state.patients.deleted && state.patients.error === null ) unAssignmentSubmissionState = DataDeleteStates.IDLE;\n  else if ( state.patients.isFetching && !state.patients.deleted ) unAssignmentSubmissionState = DataDeleteStates.DELETING;\n  else if ( !state.patients.isFetching && state.patients.deleted ) unAssignmentSubmissionState = DataDeleteStates.DELETED;\n  else if ( !state.patients.isFetching && state.patients.error !== null ) {\n    unAssignmentSubmissionState = DataDeleteStates.FAILED;\n    errorMessage = state.patients.error.data.message;\n  }\n\n  Log.info(\"Unassignment submission state:\", unAssignmentSubmissionState)\n\n  return { patientId, deviceAssigned, patientDevice, \n    allAssignedDevices, allUnassignedDevices,\n    assignmentSubmissionState, unAssignmentSubmissionState, errorMessage }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators({assignDeviceToPatient, unAssignDeviceFromPatient, getDevices, pushNotification}, dispatch);\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(PatientDeviceAssignmentMenu);","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport Log from '../logging/Log.jsx'\n\nimport CalendarSessions from '../organisms/CalendarSessions'\n\nimport GridContainer from 'components/Grid/GridContainer.jsx'\nimport ItemGrid from 'components/Grid/ItemGrid.jsx'\n\nimport PatientAvatar from '../molecules/PatientAvatar.jsx'\nimport PatientDeviceAssignmentMenu from '../organisms/PatientDeviceAssignmentMenu'\nimport ReactGA from 'react-ga'\n\nexport const initializeReactGA = () => {\n  ReactGA.initialize('UA-100557389-4')\n}\n\nexport const logPageView = () => {\n  ReactGA.set({ page: window.location.pathname })\n  ReactGA.pageview(window.location.pathname)\n}\n\nconst PatientEcosystem = ({ match }) => {\n  Log.info('Patient Main')\n\n  Log.info('Generating patient ecosystem')\n\n  // Google analytics -> Check production/development\n  if (\n    window.location.href ==\n    `https://ne-portal-app.azurewebsites.net/studies/subjects/${\n      match.params.code\n    }`\n  ) {\n    initializeReactGA()\n    logPageView()\n  }\n\n  return (\n    <GridContainer justify='center'>\n      <ItemGrid xs={12} sm={12} md={6}>\n        <PatientAvatar code={match.params.code} />\n      </ItemGrid>\n      <ItemGrid xs={12} sm={12} md={6}>\n        <div style={{ textAlign: 'right' }}>\n          <PatientDeviceAssignmentMenu patientCode={match.params.code} />\n        </div>\n      </ItemGrid>\n      <ItemGrid xs={12} sm={12} md={12}>\n        <CalendarSessions patientCode={match.params.code} />\n      </ItemGrid>\n    </GridContainer>\n  )\n}\n\nPatientEcosystem.propTypes = {\n  match: PropTypes.object.isRequired\n}\n\nexport default PatientEcosystem\n","import React, { Component, Children } from \"react\"\n\nimport Log from \"../logging/Log.jsx\"\n\nimport { connect } from \"react-redux\"\nimport { bindActionCreators } from \"redux\"\n\nimport BigCalendar from \"react-big-calendar\"\n\nimport moment from \"moment\"\n\nimport compose from \"recompose/compose\"\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\"\n\n// @material-ui/icons\nimport HeaderCard from \"components/Cards/HeaderCard.jsx\"\nimport PermContactCalendar from \"@material-ui/icons/PermContactCalendar\"\n\n// core components\nimport CardCalendarSession from \"../molecules/CardCalendarSession.jsx\"\n\nimport buttonStyle from \"assets/jss/material-dashboard-pro-react/components/buttonStyle.jsx\"\n\nimport { getTreatmentSessions, deleteTreatmentSession } from \"../actions/index\"\n\nimport { Modal } from \"material-ui\"\nimport TreatmentSchedulerSimple from \"../organisms/TreatmentSchedulerSimple.jsx\"\n\nimport { patientByCodeSelector } from \"../selectors/patientSelectors\"\nimport { sessionsByPatientSelector } from \"../selectors/sessionSelectors\"\nimport ModalConfirmation from \"../molecules/ModalConfirmation\"\nimport LayoutSessionOverview from \"../molecules/LayoutSessionOverview.jsx\"\n\nBigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment))\n\nconst today = moment().format(\"YYYY-MM-DD\")\n\nconst CURRENT_DATE = moment().toDate()\n\n// example implementation of a wrapper\nconst ColoredDateCellWrapper = ({ children, value }) => {\n  const newElement = React.cloneElement(children, {\n    style: {\n      height: \"300px\",\n      borderType: \"solid\",\n      borderColor: value === CURRENT_DATE ? \"orange\" : \"black\",\n      backgroundColor: value !== CURRENT_DATE ? \"#EEEEEE\" : \"#FFFFFF\",\n      ...children.props.style\n    }\n  })\n  return newElement\n}\n\nexport class HistorySessions extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      events: [],\n      alert: null,\n      addSessionOpen: false,\n      viewFutureSessionOpen: false,\n      viewPastSessionOpen: false\n    }\n    this.hideAlert = this.hideAlert.bind(this)\n    this.ModalViewFutureSession = this.ModalViewFutureSession.bind(this)\n    this.ModalViewPastSession = this.ModalViewPastSession.bind(this)\n    this.hideModalViewFutureSession = this.hideModalViewFutureSession.bind(this)\n    this.hideModalViewPastSession = this.hideModalViewPastSession.bind(this)\n  }\n\n  componentDidMount() {\n    const treatments = this.props.patient.treatments\n    if (Array.isArray(treatments) && treatments.length > 0) {\n      this.props.getTreatmentSessions(this.props.patient.treatments[0].id)\n    }\n  }\n\n  selectedEvent(event) {\n    if (event.color === \"default\")\n      this.setState({ viewFutureSessionOpen: event })\n    else this.setState({ viewPastSessionOpen: event.id })\n  }\n\n  addNewEventAlert(slotInfo) {\n    let lastDatesSelected = slotInfo.slots\n\n    Log.info(lastDatesSelected)\n\n    if (moment(lastDatesSelected[0]).format(\"YYYY-MM-DD\") >= today) {\n      Log.info(\"Setting addSessionOpen to true\", slotInfo)\n      this.setState({ addSessionOpen: true, lastDatesSelected })\n    }\n  }\n\n  addNewEvent(e, slotInfo) {\n    var newEvents = this.state.events\n    newEvents.push({\n      title: e,\n      start: slotInfo.start,\n      end: slotInfo.end\n    })\n    this.setState({\n      alert: null,\n      events: newEvents\n    })\n  }\n\n  hideAlert() {\n    this.setState({\n      addSessionOpen: false,\n      alert: null\n    })\n  }\n\n  hideModalViewFutureSession() {\n    this.setState({ viewFutureSessionOpen: false })\n  }\n\n  hideModalViewPastSession() {\n    this.setState({ viewPastSessionOpen: false })\n  }\n\n  ModalViewFutureSession() {\n    let session = this.state.viewFutureSessionOpen\n    if (session) {\n      let dayDuration = session.allDay\n        ? \"\"\n        : \"between \" +\n          moment(session.start).format(\"hA\") +\n          \" and \" +\n          moment(session.end).format(\"hA\")\n      return (\n        <ModalConfirmation\n          content={\n            <div>\n              <p>Session protocol: {session.title}</p>\n              <p>\n                Scheduled for {moment(session.start).format(\"MMMM Do YYYY\")}{\" \"}\n                {dayDuration}\n              </p>\n            </div>\n          }\n          dangerText=\"Remove this session\"\n          onDanger={this.onSessionRemove.bind(this, session)}\n          xClose={true}\n          onCancel={this.hideModalViewFutureSession}\n        />\n      )\n    } else {\n      return \"\"\n    }\n  }\n\n  ModalViewPastSession() {\n    let sessionId = this.state.viewPastSessionOpen\n    if (sessionId) {\n      const sessions = this.props.sessions.filter(\n        session => session.id === sessionId\n      )\n      if (sessions.length === 1) {\n        const session = sessions[0]\n        const patientCode = this.props.patient.code\n        return (\n          <ModalConfirmation\n            content={\n              <LayoutSessionOverview props={{ ...session, patientCode }} />\n            }\n            xClose={true}\n            onCancel={this.hideModalViewPastSession}\n          />\n        )\n      }\n    } else {\n      return \"\"\n    }\n  }\n\n  onSessionRemove(event) {\n    Log.info(\"Will remove the session\", event)\n    this.props.deleteTreatmentSession(event.treatmentId, event.id)\n    this.hideModalViewFutureSession()\n  }\n\n  treatmentSessionToEvent = treatmentSession => {\n    Log.info(\"Converting treatment session\", treatmentSession, \"to event\")\n\n    let title = treatmentSession.sessionprotocol.name\n\n    let id = treatmentSession.id\n    let treatmentId = treatmentSession.treatmentId\n\n    let start, end, allDay\n    if (treatmentSession.sessionPeriodStart) {\n      allDay = false\n      start = moment(\n        treatmentSession.sessionDate + \" \" + treatmentSession.sessionPeriodStart\n      ).toDate()\n      end = moment(\n        treatmentSession.sessionDate + \" \" + treatmentSession.sessionPeriodEnd\n      ).toDate()\n    } else {\n      allDay = true\n      start = moment(treatmentSession.sessionDate).toDate()\n      end = moment(treatmentSession.sessionDate).toDate()\n    }\n\n    Log.info(\"Start - end:\", start, end)\n\n    let executed = Math.floor(treatmentSession.timeCompliance[0] / 60)\n    let duration = Math.floor(\n      (treatmentSession.timeCompliance[0] +\n        treatmentSession.timeCompliance[1] +\n        treatmentSession.timeCompliance[2]) /\n        60\n    )\n\n    let problem =\n      treatmentSession.problems &&\n      ((treatmentSession.problems.acute_events &&\n        treatmentSession.problems.acute_events.length > 0) ||\n        (treatmentSession.problems.types &&\n          treatmentSession.problems.types.length > 0))\n        ? true\n        : false\n\n    let color\n    // TODO: More meaningful data could be received on that from API (unstarted, started, finished_partially, finished)\n    if (treatmentSession.sessionDate > today) color = \"default\"\n    else if (treatmentSession.sessionDate === today && executed === 0)\n      color = \"default\"\n    else {\n      if (executed >= duration - 1) color = \"green\"\n      else if (executed >= 1) color = \"orange\"\n      else color = \"red\"\n    }\n\n    return {\n      id,\n      treatmentId,\n      title,\n      allDay,\n      start,\n      end,\n      color,\n      executed,\n      duration,\n      problem\n    }\n  }\n\n  eventColors(event, start, end, isSelected) {\n    var backgroundColor = \"event-\"\n    event.color\n      ? (backgroundColor = backgroundColor + event.color)\n      : (backgroundColor = backgroundColor + \"default\")\n    return {\n      className: backgroundColor\n    }\n  }\n\n  components() {\n    return {\n      month: {\n        event: CardCalendarSession\n      }\n    }\n  }\n\n  render() {\n    Log.info(\"PATIENT:\", this.props.patient)\n    Log.info(\"Sessions:\", this.props.sessions)\n\n    const cardSubtitle =\n      \"Browse for past sessions\" +\n      (this.props.patient ? \" for \" + this.props.patient.code : \"\")\n    const events = this.props.sessions.map(session =>\n      this.treatmentSessionToEvent(session)\n    )\n\n    return (\n      <div>\n        <Modal\n          onClose={() => this.hideAlert()}\n          open={this.state.addSessionOpen}\n        >\n          <TreatmentSchedulerSimple\n            onClose={() => this.hideAlert()}\n            patient={this.props.patient}\n            dates={this.state.lastDatesSelected}\n          />\n        </Modal>\n\n        <this.ModalViewFutureSession />\n\n        <this.ModalViewPastSession />\n\n        {// NUMBER OF EVENTS/SESSIONS  Object.keys(events).length\n        Log.info(\"LOGGER Events =>\" + JSON.stringify(events))}\n\n        <HeaderCard\n          headerColor=\"orange\"\n          cardTitle={\"Schedule History\"}\n          cardSubtitle={\n            \"History program treatment for \" + this.props.patient.code\n          }\n          icon={PermContactCalendar}\n          content={\n            <BigCalendar\n              events={events}\n              length={365}\n              defaultView=\"agenda\"\n              defaultDate={new Date(2018, 1, 1, 6)}\n              views={[\"agenda\", \"month\"]}\n              showMultiDayTimes={false}\n              components={{\n                // dateCellWrapper: ColoredDateCellWrapper,\n                month: { event: CardCalendarSession }\n              }}\n            />\n          }\n        />\n      </div>\n    )\n  }\n}\n\nfunction mapStateToProps(state, props) {\n  const patient = patientByCodeSelector(state, props.patientCode)\n  const sessions = sessionsByPatientSelector(state, patient)\n  return { patient, sessions }\n}\n\nfunction mapDispatchToProps(dispatch) {\n  return bindActionCreators(\n    { getTreatmentSessions, deleteTreatmentSession },\n    dispatch\n  )\n}\n\nexport default compose(\n  withStyles(buttonStyle),\n  connect(mapStateToProps, mapDispatchToProps)\n)(HistorySessions)\n","import React from \"react\";\nimport cx from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Switch, Route, Redirect } from \"react-router-dom\";\n// creates a beautiful scrollbar\nimport PerfectScrollbar from \"perfect-scrollbar\";\nimport \"perfect-scrollbar/css/perfect-scrollbar.css\";\n\n// material-ui components\nimport withStyles from \"material-ui/styles/withStyles\";\n\n// core components\nimport Header from \"components/Header/Header.jsx\";\nimport Footer from \"components/Footer/Footer.jsx\";\nimport Sidebar from \"components/Sidebar/Sidebar.jsx\";\n\nimport dashboardRoutes from \"routes/dashboard.jsx\";\n\nimport appStyle from \"assets/jss/material-dashboard-pro-react/layouts/dashboardStyle.jsx\";\n\nimport logo from \"assets/img/NE.png\";\nimport bgImage from \"assets/img/ne-background.png\";\n\nconst switchRoutes = (\n  <Switch>\n    {dashboardRoutes.map((prop, key) => {\n      if (prop.redirect) {\n        return <Redirect from={prop.path} to={prop.pathTo} key={key} />;\n      }\n      if (prop.collapse) {\n        return prop.views.map((prop, key) => {\n          return (\n            <Route path={prop.path} component={prop.component} key={key} />\n          );\n        });\n      }\n      return <Route path={prop.path} component={prop.component} key={key} />;\n    })}\n  </Switch>\n);\n\nvar ps;\n\nclass Dashboard extends React.Component {\n  state = {\n    mobileOpen: false,\n    miniActive: true\n  };\n  handleDrawerToggle = () => {\n    this.setState({ mobileOpen: !this.state.mobileOpen });\n  };\n  getRoute() {\n    return this.props.location.pathname !== \"/maps/full-screen-maps\";\n  }\n  componentDidMount() {\n    if (navigator.platform.indexOf(\"Win\") > -1) {\n      // eslint-disable-next-line\n      ps = new PerfectScrollbar(this.refs.mainPanel, {\n        suppressScrollX: true,\n        suppressScrollY: false\n      });\n    }\n  }\n  componentWillUnmount() {\n    if (navigator.platform.indexOf(\"Win\") > -1) {\n      ps.destroy();\n    }\n  }\n  componentDidUpdate(e) {\n    if (e.history.location.pathname !== e.location.pathname) {\n      this.refs.mainPanel.scrollTop = 0;\n    }\n  }\n  sidebarMinimize() {\n    this.setState({ miniActive: !this.state.miniActive });\n  }\n  render() {\n    const { classes, ...rest } = this.props;\n    const mainPanel =\n      classes.mainPanel +\n      \" \" +\n      cx({\n        [classes.mainPanelSidebarMini]: this.state.miniActive,\n        [classes.mainPanelWithPerfectScrollbar]:\n          navigator.platform.indexOf(\"Win\") > -1\n      });\n    return (\n      <div className={classes.wrapper}>\n        <Sidebar\n          routes={dashboardRoutes}\n          logoText={\"Portal\"}\n          logo={logo}\n          handleDrawerToggle={this.handleDrawerToggle}\n          open={this.state.mobileOpen}\n          color=\"NESidebar\"\n          bgColor=\"NESidebar\"\n          miniActive={this.state.miniActive}\n          {...rest}\n        />\n        <div className={mainPanel} ref=\"mainPanel\">\n          <Header\n            sidebarMinimize={this.sidebarMinimize.bind(this)}\n            miniActive={this.state.miniActive}\n            routes={dashboardRoutes}\n            handleDrawerToggle={this.handleDrawerToggle}\n            {...rest}\n          />\n          {/* On the /maps/full-screen-maps route we want the map to be on full screen - this is not possible if the content and conatiner classes are present because they have some paddings which would make the map smaller */}\n          {this.getRoute() ? (\n            <div className={classes.content}>\n              <div className={classes.container}>{switchRoutes}</div>\n            </div>\n          ) : (\n            <div className={classes.map}>{switchRoutes}</div>\n          )}\n          {this.getRoute() ? <Footer fluid /> : null}            \n          <div\n              className={classes.fullPageBackground}\n              style={{ backgroundImage: \"url(\" + bgImage + \")\" }}\n          />\n        </div>\n      </div>\n    );\n  }\n}\n\nDashboard.propTypes = {\n  classes: PropTypes.object.isRequired\n};\n\nexport default withStyles(appStyle)(Dashboard);\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\nimport Log from '../logging/Log.jsx';\n\nimport HistorySessions from '../organisms/HistorySessions';\n\nimport GridContainer from \"components/Grid/GridContainer.jsx\";\nimport ItemGrid from \"components/Grid/ItemGrid.jsx\";\n\nimport PatientAvatar from '../molecules/PatientAvatar.jsx'\nimport PatientDeviceAssignmentMenu from '../organisms/PatientDeviceAssignmentMenu';\n\n\nconst HistoryMain = ({ match }) => {\n    Log.info(\"History Main\")\n\n    Log.info(\"Generating history ecosystem\")\n  return (\n    <GridContainer justify=\"center\">\n      <ItemGrid xs={12} sm={12} md={6}>\n        <PatientAvatar code={match.params.code}/>\n      </ItemGrid>\n      <ItemGrid xs={12} sm={12} md={6}>\n        <div style={{textAlign: \"right\"}}>\n          <PatientDeviceAssignmentMenu patientCode={match.params.code}/>\n        </div>\n      </ItemGrid>\n      <ItemGrid xs={12} sm={12} md={12}>\n        <HistorySessions patientCode={match.params.code}/>\n      </ItemGrid>\n    </GridContainer>\n  )\n}\n\nHistoryMain.propTypes = {\n  match: PropTypes.object.isRequired\n};\n\nexport default HistoryMain;\n","import requireAuth from '../hocs/require_auth.jsx';\nimport notifiable from '../hocs/notifiable';\n\nimport TreatmentsMain from '../ecosystems/TreatmentsMain.jsx';\nimport PatientMain from '../ecosystems/PatientMain.jsx';\nimport HistoryMain from '../ecosystems/HistoryMain.jsx';\nimport UserProfile from 'views/Pages/UserProfile.jsx';\nimport TimelinePage from 'views/Pages/Timeline.jsx';\nimport RTLSupport from 'views/Pages/RTLSupport.jsx';\n\nimport pagesRoutes from './pages.jsx';\n\n// @material-ui/icons\nimport Home from '@material-ui/icons/Home';\nimport Person from '@material-ui/icons/Person';\n\nvar pages = [\n  {\n    path: '/timeline-page',\n    name: 'Timeline Page',\n    mini: 'TP',\n    component: TimelinePage\n  },\n  {\n    path: '/user-page',\n    name: 'User Profile',\n    mini: 'UP',\n    component: UserProfile\n  },\n  {\n    path: '/rtl/rtl-support-page',\n    name: 'RTL Support',\n    mini: 'RS',\n    component: RTLSupport\n  }\n].concat(pagesRoutes);\n\nvar dashRoutes = [\n  {\n    parameterized: true,\n    path: '/studies/subjects/:code/history',\n    name: 'Home Study Manager > Subject History',\n    icon: Person,\n    component: requireAuth(notifiable(HistoryMain))\n  },\n  {\n    parameterized: true,\n    path: '/studies/subjects/:code',\n    name: 'Home Study Manager > Subject Profile',\n    icon: Person,\n    component: requireAuth(notifiable(PatientMain))\n  },\n  {\n    path: '/studies',\n    name: 'Home Study Manager',\n    icon: Home, // ContentPaste,\n    component: requireAuth(notifiable(TreatmentsMain))\n  },\n  {\n    path: '/fckytcdo7df867dy',\n    hr: true\n  },\n  { redirect: true, path: '/', pathTo: '/studies', name: 'Home Study Manager' }\n];\nexport default dashRoutes;\n","// ##############################\n// // // App styles\n// #############################\n\nimport {\n  drawerWidth,\n  drawerMiniWidth,\n  transition,\n  containerFluid\n} from \"assets/jss/material-dashboard-pro-react.jsx\";\n\nconst appStyle = theme => ({\n  wrapper: {\n    position: \"relative\",\n    top: \"0\",\n    // height: \"100vh\",\n    \"&:after\": {\n      display: \"table\",\n      clear: \"both\",\n      content: '\" \"'\n    }\n  },\n  mainPanel: {\n    transitionProperty: \"top, bottom, width\",\n    transitionDuration: \".2s, .2s, .35s\",\n    transitionTimingFunction: \"linear, linear, ease\",\n    [theme.breakpoints.up(\"md\")]: {\n      width: `calc(100% - ${drawerWidth}px)`\n    },\n    overflow: \"auto\",\n    position: \"relative\",\n    float: \"right\",\n    ...transition,\n    maxHeight: \"100%\",\n    width: \"100%\",\n    overflowScrolling: \"touch\"\n  },\n  content: {\n    marginTop: \"70px\",\n    padding: \"30px 15px\",\n    minHeight: \"calc(100vh - 123px)\"\n  },\n  container: { ...containerFluid },\n  map: {\n    marginTop: \"70px\"\n  },\n  mainPanelSidebarMini: {\n    [theme.breakpoints.up(\"md\")]: {\n      width: `calc(100% - ${drawerMiniWidth}px)`\n    }\n  },\n  mainPanelWithPerfectScrollbar: {\n    overflow: \"hidden !important\"\n  },\n  \n  fullPageBackground: {\n    position: \"absolute\",\n    zIndex: \"-1\",\n    height: \"100%\",\n    width: \"100%\",\n    display: \"block\",\n    top: \"0\",\n    left: \"0\",\n    backgroundSize: \"cover\",\n    backgroundPosition: \"center center\",\n    backgroundAttachment: \"fixed\"\n  }\n});\n\nexport default appStyle;\n","import Pages from \"layouts/Pages.jsx\";\nimport RTL from \"layouts/RTL.jsx\";\nimport Dashboard from \"layouts/Dashboard.jsx\";\n\nvar indexRoutes = [\n  { path: \"/rtl\", name: \"RTL\", component: RTL },\n  { path: \"/pages\", name: \"Pages\", component: Pages },\n  { path: \"/\", name: \"Home\", component: Dashboard }\n];\n\nexport default indexRoutes;\n","import React, { Component } from 'react';\n\nclass ErrorBoundary extends Component {\n    constructor(props) {\n      super(props);\n      this.state = { error: null, errorInfo: null };\n    }\n    \n    componentDidCatch(error, errorInfo) {      \n      this.setState({\n        error: error,\n        errorInfo: errorInfo,\n      })      \n    }\n\n    refreshPage = () => window.location.reload();\n    \n    render() {\n      if (this.state.errorInfo) {        \n        return (\n          <div style={{ padding: '50px' }}>\n            <h2>Something went wrong.</h2>\n            <details style={{ whiteSpace: 'pre-wrap' }}>\n              {this.state.error && this.state.error.toString()}\n              <br />\n              {this.state.errorInfo.componentStack}\n            </details>\n            <br/>\n            <button onClick={this.refreshPage}>\n                Refresh Page\n            </button>\n          </div>\n        );\n      }\n      \n      return this.props.children;\n    }  \n  }\n\n  export default ErrorBoundary;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { createBrowserHistory } from 'history';\nimport { Router, Route, Switch } from 'react-router-dom';\nimport ReactGA from 'react-ga';\nimport { Provider } from 'react-redux';\n\nimport { appStore, appStorePersistor } from './reducers';\nimport { PersistGate } from 'redux-persist/integration/react';\n\nimport indexRoutes from 'routes/index.jsx';\n\nimport ErrorBoundary from 'components/ErrorBoundary/ErrorBoundary.jsx'\n\nimport \"assets/scss/material-dashboard-pro-react.css?v=1.1.1\";\nimport \"assets/styles.css\";\n\nconst hist = createBrowserHistory();\n\nReactGA.initialize('UA-139265061-1');\nReactGA.pageview(window.location.pathname + window.location.search);\n\nReactDOM.render(\n  <Provider store={appStore}>\n    <PersistGate loading={null} persistor={appStorePersistor}>\n      <Router history={hist}>\n        <ErrorBoundary>\n          <Switch>\n            {indexRoutes.map((prop, key) => {\n              return (\n                <Route path={prop.path} component={prop.component} key={key} />\n              );\n            })}\n          </Switch>\n        </ErrorBoundary>\n      </Router>\n    </PersistGate>\n  </Provider>,\n  document.getElementById('root')\n);\n","module.exports = __webpack_public_path__ + \"static/media/ne-background.2ac0bee9.png\";","module.exports = __webpack_public_path__ + \"static/media/card-2.ae10829f.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/card-1.6ee66b2c.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/card-profile1-square.3122abf4.jpg\";","// ##############################\n// // // javascript library for creating charts\n// #############################\nvar Chartist = require(\"chartist\");\n\n// ##############################\n// // // Charts used in Dahsboard view\n// #############################\n\n// ##############################\n// // // variables used to create animation on charts\n// #############################\n\nvar delays = 80,\n  durations = 500;\nvar delays2 = 80,\n  durations2 = 500;\n\n// ##############################\n// // // Daily Sales\n// #############################\n\nconst dailySalesChart = {\n  data: {\n    labels: [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"],\n    series: [[12, 17, 7, 17, 23, 18, 38]]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 0\n    }),\n    low: 0,\n    high: 50, // creative tim: we recommend you to set the high sa the biggest value + something for a better look\n    chartPadding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    }\n  },\n  // for animation\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Email Subscriptions\n// #############################\n\nconst emailsSubscriptionChart = {\n  data: {\n    labels: [\n      \"Jan\",\n      \"Feb\",\n      \"Mar\",\n      \"Apr\",\n      \"Mai\",\n      \"Jun\",\n      \"Jul\",\n      \"Aug\",\n      \"Sep\",\n      \"Oct\",\n      \"Nov\",\n      \"Dec\"\n    ],\n    series: [[542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895]]\n  },\n  options: {\n    axisX: {\n      showGrid: false\n    },\n    low: 0,\n    high: 1000,\n    chartPadding: {\n      top: 0,\n      right: 5,\n      bottom: 0,\n      left: 0\n    }\n  },\n  responsiveOptions: [\n    [\n      \"screen and (max-width: 640px)\",\n      {\n        seriesBarDistance: 5,\n        axisX: {\n          labelInterpolationFnc: function(value) {\n            return value[0];\n          }\n        }\n      }\n    ]\n  ],\n  animation: {\n    draw: function(data) {\n      if (data.type === \"bar\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays2,\n            dur: durations2,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Completed Tasks\n// #############################\n\nconst completedTasksChart = {\n  data: {\n    labels: [\"12am\", \"3pm\", \"6pm\", \"9pm\", \"12pm\", \"3am\", \"6am\", \"9am\"],\n    series: [[230, 750, 450, 300, 280, 240, 200, 190]]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 0\n    }),\n    low: 0,\n    high: 1000, // creative tim: we recommend you to set the high sa the biggest value + something for a better look\n    chartPadding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    }\n  },\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Rounded Line Chart\n// #############################\n\nconst roundedLineChart = {\n  data: {\n    labels: [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"],\n    series: [[12, 17, 7, 17, 23, 18, 38]]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 10\n    }),\n    axisX: {\n      showGrid: false\n    },\n    low: 0,\n    high: 50, // creative tim: we recommend you to set the high sa the biggest value + something for a better look\n    chartPadding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    },\n    showPoint: false\n  },\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Straight Lines Chart\n// #############################\n\nconst straightLinesChart = {\n  data: {\n    labels: [\"'07\", \"'08\", \"'09\", \"'10\", \"'11\", \"'12\", \"'13\", \"'14\", \"'15\"],\n    series: [[10, 16, 8, 13, 20, 15, 20, 34, 30]]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 0\n    }),\n    low: 0,\n    high: 50, // creative tim: we recommend you to set the high sa the biggest value + something for a better look\n    chartPadding: {\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    },\n    classNames: {\n      point: \"ct-point ct-white\",\n      line: \"ct-line ct-white\"\n    }\n  },\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Simple Bar Chart\n// #############################\n\nconst simpleBarChart = {\n  data: {\n    labels: [\n      \"Jan\",\n      \"Feb\",\n      \"Mar\",\n      \"Apr\",\n      \"Mai\",\n      \"Jun\",\n      \"Jul\",\n      \"Aug\",\n      \"Sep\",\n      \"Oct\",\n      \"Nov\",\n      \"Dec\"\n    ],\n    series: [[542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895]]\n  },\n  options: {\n    seriesBarDistance: 10,\n    axisX: {\n      showGrid: false\n    }\n  },\n  responsiveOptions: [\n    [\n      \"screen and (max-width: 640px)\",\n      {\n        seriesBarDistance: 5,\n        axisX: {\n          labelInterpolationFnc: function(value) {\n            return value[0];\n          }\n        }\n      }\n    ]\n  ],\n  animation: {\n    draw: function(data) {\n      if (data.type === \"bar\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays2,\n            dur: durations2,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Coloured Line Chart\n// #############################\n\nconst colouredLineChart = {\n  data: {\n    labels: [\n      \"'06\",\n      \"'07\",\n      \"'08\",\n      \"'09\",\n      \"'10\",\n      \"'11\",\n      \"'12\",\n      \"'13\",\n      \"'14\",\n      \"'15\"\n    ],\n    series: [[287, 480, 290, 554, 690, 690, 500, 752, 650, 900, 944]]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 10\n    }),\n    axisY: {\n      showGrid: true,\n      offset: 40\n    },\n    axisX: {\n      showGrid: false\n    },\n    low: 0,\n    high: 1000,\n    showPoint: true,\n    height: \"300px\"\n  },\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Multiple Bars Chart\n// #############################\n\nconst multipleBarsChart = {\n  data: {\n    labels: [\n      \"Jan\",\n      \"Feb\",\n      \"Mar\",\n      \"Apr\",\n      \"Mai\",\n      \"Jun\",\n      \"Jul\",\n      \"Aug\",\n      \"Sep\",\n      \"Oct\",\n      \"Nov\",\n      \"Dec\"\n    ],\n    series: [\n      [542, 443, 320, 780, 553, 453, 326, 434, 568, 610, 756, 895],\n      [412, 243, 280, 580, 453, 353, 300, 364, 368, 410, 636, 695]\n    ]\n  },\n  options: {\n    seriesBarDistance: 10,\n    axisX: {\n      showGrid: false\n    },\n    height: \"300px\"\n  },\n  responsiveOptions: [\n    [\n      \"screen and (max-width: 640px)\",\n      {\n        seriesBarDistance: 5,\n        axisX: {\n          labelInterpolationFnc: function(value) {\n            return value[0];\n          }\n        }\n      }\n    ]\n  ],\n  animation: {\n    draw: function(data) {\n      if (data.type === \"bar\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays2,\n            dur: durations2,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Coloured Lines Chart\n// #############################\n\nconst colouredLinesChart = {\n  data: {\n    labels: [\n      \"'06\",\n      \"'07\",\n      \"'08\",\n      \"'09\",\n      \"'10\",\n      \"'11\",\n      \"'12\",\n      \"'13\",\n      \"'14\",\n      \"'15\"\n    ],\n    series: [\n      [287, 385, 490, 554, 586, 698, 695, 752, 788, 846, 944],\n      [67, 152, 143, 287, 335, 435, 437, 539, 542, 544, 647],\n      [23, 113, 67, 190, 239, 307, 308, 439, 410, 410, 509]\n    ]\n  },\n  options: {\n    lineSmooth: Chartist.Interpolation.cardinal({\n      tension: 10\n    }),\n    axisY: {\n      showGrid: true,\n      offset: 40\n    },\n    axisX: {\n      showGrid: false\n    },\n    low: 0,\n    high: 1000,\n    showPoint: true,\n    height: \"300px\"\n  },\n  animation: {\n    draw: function(data) {\n      if (data.type === \"line\" || data.type === \"area\") {\n        data.element.animate({\n          d: {\n            begin: 600,\n            dur: 700,\n            from: data.path\n              .clone()\n              .scale(1, 0)\n              .translate(0, data.chartRect.height())\n              .stringify(),\n            to: data.path.clone().stringify(),\n            easing: Chartist.Svg.Easing.easeOutQuint\n          }\n        });\n      } else if (data.type === \"point\") {\n        data.element.animate({\n          opacity: {\n            begin: (data.index + 1) * delays,\n            dur: durations,\n            from: 0,\n            to: 1,\n            easing: \"ease\"\n          }\n        });\n      }\n    }\n  }\n};\n\n// ##############################\n// // // Pie Chart\n// #############################\n\nconst pieChart = {\n  data: {\n    labels: [\"62%\", \"32%\", \"6%\"],\n    series: [62, 32, 6]\n  },\n  options: {\n    height: \"230px\"\n  }\n};\n\nmodule.exports = {\n  // Charts used in Dahsboard view\n  dailySalesChart,\n  emailsSubscriptionChart,\n  completedTasksChart,\n  // Charts used in Charts view\n  roundedLineChart,\n  straightLinesChart,\n  simpleBarChart,\n  colouredLineChart,\n  multipleBarsChart,\n  colouredLinesChart,\n  pieChart\n};\n","module.exports = __webpack_public_path__ + \"static/media/image_placeholder.ebe9884b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/placeholder.1eb7fff2.jpg\";","module.exports = __webpack_public_path__ + \"static/media/avatar.7a6bc100.jpg\";","module.exports = __webpack_public_path__ + \"static/media/card-3.4ae4eeff.jpeg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/product1.081bf019.jpg\";","module.exports = \"data:image/jpeg;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/product3.a0e40011.jpg\";","module.exports = __webpack_public_path__ + \"static/media/NEDevice.fe2244d7.png\";","module.exports = __webpack_public_path__ + \"static/media/marc.aba54d65.jpg\";","module.exports = __webpack_public_path__ + \"static/media/sidebar-2.d30c9e30.jpg\";","module.exports = __webpack_public_path__ + \"static/media/logo-white.eec7c7f6.svg\";","module.exports = __webpack_public_path__ + \"static/media/electrode_sponstim_simple.58422d7d.svg\";","module.exports = __webpack_public_path__ + \"static/media/electrode_ngpistim_simple.ce9165c6.svg\";","module.exports = __webpack_public_path__ + \"static/media/NE.9b464a0a.png\";","module.exports = \"data:image/jpeg;base64,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z7cExmEIZnBDixirIE0KoYqfkoUTCB11Ca2ny6SAQQQ4KOV0XCaXa1tgyNl99NHrYATAB1wy4ZcMuGXDLhkCFMxIBYZAwtLEAYRRBYjQM8T7of8AFcEWGgmIGIgAAMBAC0rEugQkAAAAGAQv4rklY3wf9u6PBg4TRG4qE1tPl1ALjMBzT6cX2NDYJnEOCMk+4AEEsx0Uet8grmnEHkNFneI5h+pFbEMB1duMRJZnqEfJmUypCJPM6XNQmtp8utoyYoiiMZKw/wDNcEJv2/Tde1tHrfoOEkRNRkFALFhsULBd93R4juseih/x+0OI/rHshx7G/JHWII47lFiQYio91UJrafK4BHrmFNNRAwOQTFjPzIyIkVAFmmd7KPX/AAINi7kOEbLhqcbFAHdke1Tn8RB3YPpHgQmph4QgHcgYXdQmtp8rmEiKkn0jCzWIsq0rKPX8CioTW0+V0xEAR/AosApiDkqtKyj1/AoqE1tPldu0NQMntQVULKPX8CioTW0+V9R6/gUVCa2nyvqPWzUBRMubLmy5subLmy5subLmyFx5GsjZHFQAMOY/y4LxP2EQQSCGIQBJYByViDE7tfQ1jJ+t4eCYF7DAfz/MeEYwM6HCMIR2vwRiZFGOGkA+rpo0aNGjRo0aDpP0vwAglgGAGA/5m//aAAwDAQACAAMAAAAQ8888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888881J888888+tNNNNJ88dZx08888/+Z88888+p9999e5G+y838888/p+Z8888+p88884t8DN9st888/rp+6888+p8888u+8H9l8t888/r8p9W88+t+++0u+8Dr88J888/r88Xt88+6+++9s30F8j+1888/r88szZ8+p88888uPy21l8888/r888sdJ+p888888suu888888/r8888st+p888888888888888/r888888+txxxxy8888888888IF888888u7zzzzh888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888//EABsRAAIDAQEBAAAAAAAAAAAAAAABESAwEEBw/9oACAEDAQE/EPmL2XJxeD5BBBGjwd12BcVGK7s+okVmK7uuLBiu6rBUYrvGeTZish5Rdiu/CxXfJJJJ8sEEEEfOf//EACARAAMAAwACAwEBAAAAAAAAAAABERAgMSEwQVFwQGH/2gAIAQIBAT8Q/MUHuSrIiIiIiITCHhHgifBqbmtuhlFFFDdEvkbpGR4To1NTcw1Neh81R9MNzBMPyrsJzDU06HzXofcNUobHxuNhqZ6HwjIyPC6dYbE6Pxji9Aw1RqY63dWG7huiVG9InRq46HzZOHhlEZ/ob+vWJ3DofPRWUX2jdOh8/oOh6g1PWnBu7pwgggggbv5x/8QAKxABAAECAwgDAAIDAQAAAAAAAREAITFBURAwYXGBobHwIJHB0fFAUOGQ/9oACAEBAAE/EP8AzAQiABKuVM0YJ3MBIOv1SEqJSbiShxloEBCRGRN8lR0cWYq5Bm8Slpy+KHWPjdIECBAgQIECBqnVls5odqQHLAIUWVxG3wwMEGHVo8Kthz6HaaeR2SviFX8iqYhs1/MaQF1puvU7hWDHQ06m7V1FwyTaYl1J4sk6aOWGGG9Q1YocW7wbxBzi56fzztkaIpl+mLgW45UjJoC4TkFjoU6eXm9OWX7ii01nAd6YK9rTfTmUB2oYa3nA80P1NKBmLpMZJZ5JUVIhMP1xc7cct9IwBmE4GZ0ZOZxx3nf/AD2H2ZIIgxu7nTTTTTTTSRhsVhwBftSxI1xTXV12LDkO3ebaaufLFEMyA9A8H3FFAqR3xyOBB8lhgkd88zgyULBOgPQTsfU0+WA/d5J2OXLDeSFguIQiYI0OujLaLJx1OvLd9/8APZ73Tdi5Iqr4f3cHCeFHmhCHQOLLq5VpB8N/Lx2SEdNsFklE7PaGEOLTXrULI6E2XgO2HjhrP8PHKkTZZBzFwZ9HOmVyarjaOdhyjR3ciLy3rMC8xP7sORBq6Kwf8Az/AGdm2k7rv/ns97puuA5oAS1a6OLoNh5EFAAkQ84v0MDgbfc6qifhjIAb460FuUgF9w0II+GyNJMHgw0lNR2ck3McDRthhsMsQm5WDycHgtXTBO0wwvMkan5ANUSbqRPEUGQwmSVL0izODH8ZOxGD5NBmjMaZgjJeT4jk5/e67/57Pe6bpIgsDGH8Adakbkpwy97Pwep1V7TRsDEuCYaJxG5Uv6WEhIk6lKQBYaIL52xCytwy9wNGWQU+p3R03Uj32mh7JoS/7jmf8pYEQmSZI5jsmrGJeLX45NQVNdc0GSbnv/ns97pukl7KnMFBi7zHW+H1OqvaaNhNl3fBxcA1qblxiSkwfdd1XIB8bTjsS8JqvIWh+YbrI99p2SAOlc/yezfWUfUKhRsHyMS8Gjgy+q1cgGPx4bjv/ns97pupcC1TG3je+H6nVTHiYSgE/SlsycifUFHhGmIHWMV4q0tOYfGSLIMTVvhjthextUz4G6yR77Ttf4QxaDNwZPTSFoMgIRMnZxNGDpXkzOVBeItIHBH59/8APZ73TdPBWkeYaDP3iOl8PqdVM5wQ4IKHVV2lFoLAQDMS9KA+hHlmicIYOtFiOfBCR+Bz2BeDFXgLS/Md1ke+0/DCaYPCZTRmZ88dj4NZWJk8XZvrQiSMj8u/+excmNVSlrHz888888KP2DByAT02osxDGM/5B6VOWZzgY+4j4PU6q9po2YnihLAvZe0VfaxBurh1P0nwhLNZhO/kFEeIU+p3F13Uj32n44zVD4tJqzMscMNnSJ/6Tx9afLv/AJ7k8RnoQZEpzkL5pA/uyEdQ1RDVgwjtMMjzIaUMEh5WPRxODt9Tqr2mnZiUqEuoX6i3OKk0bI59vo7xUEhk1Ek2Nwozc7A5ZvAauVBt7rKciVqCEL4BBupHvtPxJsCESRNKQtdBeTNxZPTSaFGSzR4NZWFk8Hcvr8e/+exmUtAmv7RX9or+0V/aK/tFf2ijE4kjMKuLwxaFeBlwCDaTtTFfFnnc8p0KJQgidAcGXUzqbjhrJ+PDYwiQeMstoknglHgOAIAMDa89hKpu2iSeCUTYEAFgqWDhrB7lUOEqnIzXF/BTG1c11vPOzpGru5HvtPyc5YqQOVRjfS3f1Hc6xR/iLQowRrh+MDQvJl1+Hf8Az2e903j05B93mHcZcsG87pBLiu590DFAn7DMziSfJ2AZP0WZHFgocYglg4ncyypy8Am6yDwz5Y7uR77T8y6RAzNEckxGpqJYS34JmfkbNLoBn9OFB4EA3Fo4v+be/wDns97pvbjBEQ3CMXbljS0/m7gzCzzGjDO1sR5PLNHtXQnemKuaXqNtFQHZoyS7Y0Ob8CmoRM6uaYc1q3SZ3bjOLtzx3sj32ncWuDZHBj25WNsI8hwH/myRprrmgzGuMfiYgMd9nf8Az2e9032P0QadGlgfl507JTCFy/JaXMuqQhc/3WgIvl2+D9rWGUQ/0G+ke+07llceHfSeLM65VIyA/JqOI7Pd6dnf/PZ73T/RSPfad1wSKINbw5PNp0ODoUYiV7vTs7/57Pe6f6KR77TuzKcNMD8Za4aUUaIgo8uzv/ns97p/opHvtO+7/wCez3un+ike+077v/nstPyJKjmV6L+16L+16L+16L+16L+16L+16L+16L+0xHJhY5pR6lIUYOC1c5iPX/F7qJ6h5pmyIRIRom5EAEq0BsBvAR7748spsgGY6i/TvHVSezuH2v8AGaVUyN6pcnjE0kqpmb1DCeMTv8bLOQ5Ilx4lLgboJ9t3SBAgQIECBAgPsjMCX2O9BX4PAGAH/mb/AP/Z\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}