{"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 © {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 "Naviglio" 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 "Naviglio" 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 "Naviglio" 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&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,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAMAAACahl6sAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAG2YAABzjgAA+swAAIT6AAB5gQAA/RMAADBtAAASKQ0eJk4AAAMAUExURevr7Jydn5manJucnuPj5JiZm9vb3PT09MvLzMLCw5GSlPr6+qeoqdXV1tHR0rW1trW2uKusrbi4urO0tLq6vKiqq7e4uLW2tqGipLm6ury8vr6+vr+/wLu8vM7OztDQ0cjJytjY2dTU1aipqqqrrMXGxqanqKmqq6Wmp9LT062usKSlprS0ta2trra2t6ytrqWmqK2ur66vsK6ur7CwsbOztK+vsK+wsbKys7GxsqOkpqOkpZ6foampq6qqrJ2eoKenqaysraKjpZqbnbi4uaKjpKSlp5eYmqioqqurrKChory8vKGio6amqKCho7Gys7CxsrGysrKzs5+gop+gobS1tbq6u7e3uLCxsbKztLi4uJWWmJaXmba3t7i5ub29vZWXmZSWmLq6upOVl5SVl7m5up6foLq7u7u7vJqcnZOUlpeZm5aYmpKUlry8vZKTlpGTlZCRlJCRk6ytr9bX197e3q+vsb2+v8DAweDh4bOztebm5ujp6e/v756eoP///4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///zfARREAAAeqSURBVHja7N3xVxJZFMBxQAQVilzPSTslBxcDdwdtBQRBDQUFBYNMDTcoNLAMM7QD23JozvvX94cJZBhQZ+bdO2/26F/Q59wv8K48JwP5n/wY7iH3kHvIPYT6D89bLBazfiF8Y+T09PT09MOHzc3Nd+8yeoTwb99+/PjkSbfj8eN83qYPSCOTOTs7O3veEP69UkcegEIdMpPJCI6zz5/f9p9HPp9//97KMsTwLZO5o2Nh4RmrkHrpmxzHwsICzyLEWSq1IXd1TE6aWYNYSqVSqSRzHpOTDsdDliC2ksBQ4HA4zOxA6iURRJ7DccizAbE9fVpyNXhlXTkcjsNDHxMQKyGEWBV35Tg89Pl8rKTVUtHVoc/n89mYgPBK3686Dt8EIcQwMzOjKUTF+1XHMbG0tLT095s3y8vL77WCqHq/Ehy+Lsdybm9aC4irRKGrLkcut7cXiUTQIS1588jfPo/cXiQSibxGhtTpdyU4kCElyq/zXMdx9AwT0qI+j1zbEQwiQmyUX+fXXR0Fg0EXGsQK1dXRUTAYDIbRIJBdBYNhNIgFsqtgOBx2IkFguwqHQyEcSAu2q3AICwLcVSjEh1oYEPCuQgbix4A4obsK+QmPAwHtKhTy+3+gvEacsF2F/H5/wIAIAevK7/cHAhgQgPNuzzwCgcAiFgSoK3/bgQWhuUdJuwosYkGgu1pcnDdgQCju5wPmMY8CAeyqPY/5+To8BKErPAjY50fb8QIHAnIu6Z7HCxwI0Lmk24ECge8KB4LQ1YuNDYS3X4SuNjbGESAIXW2M40DAuxofH0c4ayF0hQNB6AoJAt8VDgShq/GdHQwIYFfteezMIkCgzrsiBwZkhPp+LulqFgXyB/X9XDoPFEgTviscCE99P+/+/PjlwIAQ6vu5dB4vX2JAALvaaTu8OBCoc0m7q5deHAjYuaQzD68fAwJ3Luk4vC4MyAh4V17vAwxIE7orr9fLY0AIdFde7xpBg8B09cuBCAHtyrvmxoLAdrXm/h0DUgfvas3tdvPQEBdCV2632+3eHgWFwL9ftR12+yYg5CfIfi7pyu3ettvtdkAI2B4lnYfdbndBQiD28wGO9XUwiAFmP5e8zu0CxGOFgrgQu1pf93hcUJA84HlX/DoXIDkoCNB+3r8rj8fjgYIA7ef9u4KGoHXl8XheAUKAzyXdXXlezcFBwM8lXV29moODoHY1BwfB7QoSgtoVIARuj+rXFTAEtCvxPJKPoCBm1K6SyZ9gx3jorrodc0kObh/B7CrJzQJCELviZA1EJsQAtp9LuwKFENA9SjwPbhoSYgbbzwVGl0PeQGT/gg5sP+/tipuFhRCkruQORD5kFPa8qzAsJb/Ehj3v/uqKM8NDSANmPxd11cD5fgS8K5Q/3yOE2L7l9vYWALpKPuI4jsP7M3DhB+JcovyBbmoeJ0K/K45oASG0u0py09pAND7v0oM0qe7nSU4zCKG7R2kJofw5yGsFcVLcz1UOROXztah2pSWE6vkqatUO0qS2n3McFyXaQYiP2h6l0qH6qYCU9nMuGmUBon6P4qLRh9pCrJS6UjsQ9Q+cXKKwR3HRaPQfrSGESlfRFaI5pK7284OKg8aDiyl0tcIEpKV4j6LooPIoaYParlZ4NiBE2X5+7fiXMAIh6rpaIcxAeDVdUXHQem78A/n7ecfRYAlCphXsURTnQfG/JJC/RwkO9iCy9yjBEWcNoqyrlTiTEPldxZmEKOgqHt9iDyL782MlHo9vsQeRtZ9fO5iDyNyjOg72IIq62tqaYg0ib4+6drAJkd3VFJMQBV1NTe2yC5HTFZOQO+9R3fPYZQ4iu6spwcEq5PY9StTV7m6WLYjtVFlXu9nsCDMQi9+ruKtsNptOp9N/WTWHmJ/I2s8l88im0+n0/v7+Qc6mHcSiZI8a4Dg4OFhdVXGnRjHks9I9StpVx7G6uvrpU8yJCHmudD+/cR6CIxaLxR5gQJT/3ufOjljMaDQ6ASHN18q+P5fRVcdhNBqNQ9tWAEhL+ffnCuZhNBqNQ0NDQ0N+qpCmyu85lTu+fEkkEnYLDcio6u/PFXbVcSQSiYTJ5FQFeU7le0518xAcJpPJNKMMUqL0/Tk1h2l4eHh4RB6kPkHlHvKA827HsS/bMXx+nvqtdUcItfvt9OcxfH6eSqVSqa8/boU06d2/AnR8LRaLN0Pq9O6339aVckfqa7FYLB7fBKF0DxlhHsXj42PjQEgIqqspCEehUBgA8dG5347S1fFxoVAo2PpCWrrqqlAoFE5OWn0gBr11VTg5Oan0gdC63w45j1Svo2KVQujdQ8bq6qRSqVQkkAlq95DxuqpUKmUJhNb9dsyuKpVyeVQC0WNX5XK52gOx6LKrcrlabYghE5Tut+N2VS5Xq3YxhNo9ZNyuqtXqhQhipXS/HburavVCDKkzvUcN7qp60QPZ1GtXFxc1EYTV/fwaMmgetV4Iu/v5jV3VarW6CML2fj64q1qt9mc3hPX9fPA8ape9ED3sUX3mcXl5KYboY4/q5xgTQdjfz/t31QvRb1djYz0QvXYlhbC/n/ftqgeinz1KMo8eiG72KKlDBNHPHtXbVT+ILrsaG7vqgei0q6ur770QfXZ19V2A/DcAHpmC7NcZ4/wAAAAASUVORK5CYII=\"","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":""}