{"version":3,"sources":["resources/images/icons/shield.svg","resources/images/presets/male.jpg","resources/images/presets/female.jpg","resources/images/presets/other.jpg","resources/images/tff-logo.png","resources/scripts/theme.min.js","resources/scripts/sticky-kit.js","resources/scripts/site.js","store/reducers.js","store/configureStore.js","layout/LoginLayout.js","helpers/authHeader.js","helpers/handleApiResponse.js","helpers/anonymousRequest.js","helpers/authenticatedRequest.js","services/userService.js","context/userContext.js","components/CanUser.js","layout/Nav/NavMenu.js","layout/Nav/SearchNav.js","layout/DashboardLayout.js","services/dashboardService.js","components/CardHeaderless.js","components/TooltipButton.js","components/ExtendedTable.js","services/exportService.js","pages/Dashboard/index.js","components/PageHeader.js","components/Spinner.js","pages/User/Home/index.js","components/SpinnerButton.js","components/PageHeaderActions.js","components/Required.js","components/CardForm.js","helpers/authenticatedUpload.js","services/uploadService.js","components/ExtendedModal.js","components/Avatar.js","components/RequiredField.js","components/RequiredSelect.js","forms/EditUserForm.js","components/CardCollapse.js","components/AdvancedEditor.js","components/CardCustom.js","components/ListItemLocation.js","components/ListItemSmall.js","components/CardDeactivate.js","pages/User/Edit/index.js","components/ListItemClassroomLarge.js","hooks/useInput.js","forms/PasswordForm.js","pages/User/Profile/index.js","services/organizationService.js","pages/Organization/Home/index.js","components/ListItemChildLarge.js","components/ListItemFamilyLarge.js","forms/EditOrganizationForm.js","services/attendanceService.js","forms/ExportAttendanceForm.js","pages/Organization/Edit/index.js","services/locationService.js","pages/Location/Home/index.js","hooks/useSelect.js","components/FormModal.js","forms/AddSiteAdminForm.js","components/CardStyle.js","forms/EditLocationForm.js","components/SingleSiteAdmin.js","pages/Location/Edit/index.js","services/classroomService.js","pages/Classroom/Home/index.js","forms/AddChildForm.js","forms/AddCaregiverForm.js","pages/Classroom/Edit/components/Attendance/index.js","services/childService.js","services/photoService.js","forms/AddPhotoForm.js","pages/Classroom/Edit/components/Photos/index.js","services/menuService.js","forms/AddMenuForm.js","forms/EditMenuForm.js","pages/Classroom/Edit/components/Menus/index.js","services/eventService.js","forms/AddEventForm.js","forms/EditEventForm.js","pages/Classroom/Edit/components/Events/index.js","services/noteService.js","forms/AddNoteForm.js","forms/EditNoteForm.js","pages/Classroom/Edit/components/Notes/index.js","components/SingleNote.js","components/SingleEvent.js","components/SingleMenu.js","forms/EditClassroomForm.js","pages/Classroom/Edit/components/Overview/index.js","components/SingleCaregiver.js","components/SingleChild.js","pages/Classroom/Edit/index.js","pages/Children/Home/index.js","components/RequiredCheck.js","forms/EditChildForm.js","components/SingleNoteChild.js","forms/AddNoteChildForm.js","pages/Children/Edit/index.js","services/familyService.js","pages/Family/Home/index.js","components/ListItemChild.js","components/ListItemGuardian.js","forms/AddChildFamilyForm.js","forms/AddGuardianFamilyForm.js","forms/EditFamilyForm.js","pages/Family/Edit/index.js","hooks/useContent.js","hooks/useCheck.js","services/communicationService.js","pages/Communication/New/index.js","pages/Error/404/index.js","services/authenticationService.js","forms/LoginForm.js","pages/Authentication/LoginPage.js","forms/ResetPasswordForm.js","pages/Authentication/ResetPasswordPage.js","forms/ForgotPasswordForm.js","pages/Authentication/ForgotPasswordPage.js","forms/VerifyPasswordForm.js","pages/Authentication/VerifyPage.js","pages/Authentication/LogoutPage.js","pages/Authentication/PasswordSetPage.js","pages/Error/500/index.js","forms/ClassroomToFamilyForm.js","services/conversationService.js","forms/FamilyToClassroomForm.js","pages/Conversations/Conversations.js","pages/Notification/Index.js","App.js","index.js"],"names":["module","exports","require","stickyfill","Stickyfill","global","jQuery","$","window","is","_typeof","obj","Symbol","iterator","constructor","prototype","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_defineProperty","key","value","defineProperty","configurable","writable","utils","$window","$document","document","$html","$body","$main","isRTL","this","attr","location","nua","navigator","userAgent","breakpoints","xs","sm","md","lg","xl","xxl","offset","element","rect","getBoundingClientRect","scrollLeft","pageXOffset","documentElement","scrollTop","pageYOffset","top","left","isScrolledIntoViewJS","windowHeight","innerHeight","elemTop","elemHeight","offsetHeight","windowScrollTop","scrollY","isScrolledIntoView","el","$el","height","getCurrentScreanBreakpoint","_this","currentScrean","windowWidth","width","each","index","currentBreakpoint","ready","$navbar","length","scroll","alpha","css","breakpoint","split","c","indexOf","resize","removeClass","find","hasClass","addClass","on","e","currentTarget","toggleClass","android","opera","mobile","firefox","safari","ios","ie","edge","chrome","match","mac","addEventListener","forms","getElementsByClassName","Array","call","form","event","checkValidity","preventDefault","stopPropagation","classList","add","stickyKits","options","target","i","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","_objectSpread","data","stick_in_parent","tooltip","container","popover","selector","breakPoint","navDropShadowFlag","CLASS_NAME","SELECTOR","$navbarVerticalCollapse","setDropShadow","$elem","navbarVerticalClass","cls","pop","Event","DATA_KEY","emojioneareas","item","$this","extend","emojioneArea","$editor","getSelection","createRange","range","selectNodeContents","collapse","sel","removeAllRanges","addRange","body","createTextRange","textRange","moveToElementText","select","placeCaretAtEnd","get","checkboxBulkSelects","CLICK","Selector","CHECKBOX_BULK_SELECT_CHECKBOX","ClassName","D_NONE","CHECKBOX_BODY","CHECKBOX_ACTIONS","CHECKBOX_REPLACED_ELEMENT","Attribute","CHECKED","INDETERMINATE","checkboxBulkAction","bulkActions","replacedElement","rowCheckboxes","prop","v","hexToRgb","hexValue","hex","substring","result","exec","replace","m","r","g","b","parseInt","chartData","colors","rgbColor","color","rgbaColor","rgbColors","map","rgbaColors","labels","newChart","chart","config","ctx","getContext","Chart","chartLine","getElementById","dashboardLineChart","type","l","datasets","borderWidth","d","toFixed","borderColor","backgroundColor","legend","display","tooltips","mode","xPadding","yPadding","displayColors","callbacks","label","tooltipItem","yLabel","title","hover","scales","xAxes","scaleLabel","show","labelString","ticks","fontColor","fontStyle","gridLines","lineWidth","yAxes","LineDB","all","successful","failed","update","chartBar","slice","beginAtZero","chartRadar","fill","maintainAspectRatio","spanGaps","elements","line","tension","chartPie","responsive","chartDoughnut","chartPolarArea","chartBubble","x","y","componentChartLine","realTimeUser","realTimeUserChart","stacked","barPercentage","categoryPercentage","userCounterDom","setInterval","userCounter","Math","floor","random","dataset","shift","setTimeout","text","$chatSidebar","$chatContact","$chatEmojiarea","$chatIcons","$btnSend","initialEditorHeight","outerHeight","$chatContent","$scrollArea","setChatAreaHeight","chatContentArea","editorAreaHeight","calculated","chatContentHeaderHeight","setScrollbarPosition","$chatArea","scrollbar","Scrollbar","scrollTo","limit","$tab","setText","editorHeight","removeAttr","querySelector","textLength","trim","_$editor$","offsetWidth","clientWidth","currentEditorHeight","emojiLength","tabContentId","marginRight","dataIndex","editorCurrentHeight","chatArea","focus","$counters","$counter","counter","playCountUpTriggered","countUP","countNum","animate","count","duration","easing","step","prefix","complete","format","toString","num","toSpace","abbreviations","toAlphanumeric","dataTables","customDataTable","elem","DataTable","$wrpper","closest","$dataCountdowns","fallback","$dateCountdown","date","undefined","countdown","elapsed","strftime","$componentNav","loc","href","_loc$split","url","urls","children","max","dom","$targetedElement","click","pathname","hostname","hash","history","pushState","select2","datetimepicker","dateFormat","flatpickr","flexslider","prevText","nextText","inputField","$inputField","parents","$btnType","val","min","percentColors","pct","n","getA","interval","initial","countries","us","cn","jp","de","gb","fr","in","it","br","ca","ru","kr","es","au","mx","id","nl","tr","sa","ch","za","getColors","countriesValues","country","ratio","reduce","a","lower","upper","rangePct","pctLower","pctUpper","getColorForPercentage","setMapSize","containerWidth","parent","containerHeight","vmaps","borderOpacity","onLabelShow","code","innerHTML","enableZoom","hoverColor","hoverOpacity","normalizeFunction","selectedColor","selectedRegions","showTooltip","onResize","vectorMap","lightbox","option","resizeDuration","wrapAround","fadeDuration","imageFadeDuration","$carousel","ALL_TIMELINE","ACTIVE_ITEM","owlZanim","zanimTimeline","play","zanimation","animation","kill","rtl","navText","touchDrag","owlCarousel","onInitialized","onTranslate","onTranslated","$controllers","$thumbs","thumbIndex","trigger","itemIndex","$players","Plyr","captions","active","progresCircle","bar","ProgressBar","Circle","strokeWidth","trailWidth","svgStyle","autoStyleContainer","from","to","state","circle","path","setAttribute","percentage","round","playProgressTriggered","progressCircleAnimation","progress","progressLine","Line","trailColor","style","transform","progressLineAnimation","ratings","starHalf","starOff","starOn","starType","size","raty","$videoModals","after","$videoModal","remodal","$videoModalIframeWrapper","ytId","start","end","html","open","uiDropdown","uiAccordion","dropdown","accordion","exclusive","content","scrollbars","querySelectorAll","init","scrollContent","setPosition","$fancyTabs","TAB_BAR","TAB_BAR_ITEM","TAB_CONTENTS","ACTIVE","TRANSITION_REVERSE","TAB_INDICATOR","updateIncicator","$indicator","$tabs","$tabnavCurrentItem","position","right","outerWidth","$navBar","append","$preIndex","$currentIndex","$tabContent","eq","siblings","tinymce","menubar","theme","toolbar","statusbar","plugins","toast","toastr","defaultOptions","closeButton","newestOnTop","positionClass","message","mergedOptions","remove","success","warning","error","info","typedText","Typed","strings","typeSpeed","loop","backDelay","$youtubeBackground","showControls","autoPlay","mute","containment","YTPlayer","win","fn","opts","doc","elm","enable_bottoming","inner_scrolling","len","manual_spacer","offset_top","parent_selector","recalc_every","sticky_class","spacer","bottoming","padding_bottom","parent_top","parent_height","el_float","detached","bottomed","detach","fixed","last_pos","last_scroll_height","recalc","recalc_and_tick","recalc_counter","tick","border_top","padding_top","restore","insertAfter","bottom","delta","recalced","will_bottom","win_height","off","removeData","appHeight","setProperty","createRootReducer","combineReducers","router","connectRouter","createBrowserHistory","LoginLayoutRoute","component","rest","Component","render","props","authHeader","json","sessionStorage","getItem","token","JSON","parse","Authorization","handleResponse","response","showToast","then","ok","errorMessage","hasError","status","localStorage","removeItem","reload","Promise","reject","anonymousRequest","requestType","endpoint","request","method","headers","fetch","anonymousRESTRequest","authenticatedRequest","authenticatedRequestBasic","URL","process","showArchived","user","stringify","familyId","classroomId","currentPassword","newPassword","email","password","userService","getUsers","findUser","deleteUser","restoreUser","updateUser","addUser","getGuardiansForFamily","getSiteAdmins","getCaregivers","getCaregiversForClassroom","getGuardians","getCurrentUser","changePassword","setPassword","resetPassword","getMessagingUsers","resendActivation","UserContext","React","createContext","setUser","UserContextProvider","useState","isLoading","setIsLoading","setState","loadUser","model","Provider","userRules","Guardian","static","Caregiver","Admin","CanUser","yesValue","yes","noValue","no","rules","role","action","permissions","staticPermissions","includes","dynamicPermissions","dynamic","permissionCondition","check","perform","CheckPermission","NavMenu","userState","useContext","Navbar","expand","light","className","NavbarBrand","src","Logo","alt","Collapse","navbar","Nav","NavItem","activeClassName","icon","SearchNav","Consumer","data-toggle","data-target","aria-controls","aria-expanded","aria-label","aria-haspopup","photo","aria-labelledby","DashboardLayout","Container","fluid","DashboardLayoutRoute","dashboardService","loadDashboard","CardHeaderless","Card","CardBody","TooltipButton","tooltipLabel","onClick","buttonIcon","buttonColour","buttonClass","buttonSize","placement","Button","UncontrolledTooltip","SearchBar","Search","ExtendedTable","rowStyle","rowEvents","tableClickEvent","custom","pageStartIndex","hidePageListOnlyOnePage","prePageText","nextPageText","showTotal","alwaysShowAllBtns","paginationTotalRenderer","sizePerPage","sizePerPageRenderer","currSizePerPage","onSizePerPageChange","ButtonGroup","isSelect","page","sizePerPageList","pagination","paginationFactory","paginationProps","paginationTableProps","columns","keyField","search","bootstrap4","toolkitprops","Row","Col","archiveClicked","userRole","archivePermission","isShowingArchived","isShowing","searchProps","wrapperClasses","striped","bordered","baseProps","dataSize","exportService","exportAsync","DashboardPage","toggle","blob","Blob","anchor","createElement","download","Date","toJSON","webkitURL","createObjectURL","downloadurl","join","finally","useHistory","latestLocations","dashboard","setDashboard","tableColumns","dataField","sort","_e","locationId","useEffect","firstName","messagesSent","photosUploaded","eventsCreated","disabled","defaultSort","PageHeader","newButtonDefault","newButtonText","addPermission","newButtonUrl","subTitle","marginClass","lineHeight","Spinner","UserPage","pageTitle","setPageTitle","users","setUsers","setIsShowingArchived","formatter","cell","row","fullName","headerStyle","canResend","utc","local","lastAccessed","loadUsers","SpinnerButton","showLoader","setShowLoader","timeout","clearTimeout","setWidth","setHeight","ref","useRef","current","fadeOutProps","useSpring","opacity","margin","fadeInProps","div","PageHeaderActions","isNew","isSubmitting","formName","requiredPermission","whiteSpace","goBack","Required","CardForm","canEdit","cardClassName","CardHeader","fontSize","authenticatedUpload","file","FormData","uploadService","uploadPhoto","ExtendedModal","modal","setModal","buttonLabel","buttonSizeClass","buttonId","buttonClassName","confirmButtonText","confirmButtonClass","modalSize","onConfirm","iconOnly","Modal","isOpen","ModalHeader","ModalBody","ModalFooter","genderList","gender1","gender2","gender3","Avatar","changeProfilePhoto","image","setImage","setFile","previewImage","setPreviewImage","FormGroup","Label","for","CustomInput","name","onChange","reader","FileReader","f","files","onloadend","readAsDataURL","images","img","onPick","RequiredField","labelName","inputPlaceholder","formKey","showLabel","colSize","inputMask","rows","isRequired","isDisabled","isDate","useFormikContext","setFieldValue","setFieldTouched","placeholder","field","meta","mask","touched","Input","month","getMonth","day","getDate","year","getFullYear","formatDate","onClose","RequiredSelect","useField","onBlur","s","EditUserForm","setIsSubmitting","canChangeRole","userContext","setPhoto","roleOptions","loadRoleOptions","pronounOptions","initialValues","lastName","emailAddress","pronouns","p","validationSchema","Yup","shape","required","onSubmit","values","username","notes","changePhoto","fileName","validateOnBlur","validateOnChange","Form","handleSubmit","CardCollapse","footer","subtitle","bodyClass","showPlusButton","setIsOpen","AdvancedEditor","modules","header","list","indent","CardCustom","showFooter","addButtonLink","addButtonPermission","showExport","exportForm","showRequired","ListItemLocation","mappedAddress","fullAddress","Media","rel","ListItemSmall","linkTo","imgSrc","toUpperCase","CardDeactivate","handleArchiveClick","isArchived","modalTitle","largeButtonClass","EditUserPage","params","queryString","didMount","setIsNew","editUser","setEditUser","handleDeactivateClick","isEnabled","canView","stringId","locations","classrooms","classroom","locationName","families","ListItemClassroomLarge","numberOfCaregivers","numberOfChildren","numberOfParents","useInput","initialValue","setValue","bind","PasswordForm","userId","isSubmitted","setIsSubmitted","bindCurrentPassword","bindNewPassword","confirmPassword","bindConfirmPassword","invalid","FormFeedback","ProfilePage","o","organizationId","organizationService","create","archive","OrganizationPage","organizations","setOrganizations","loadOrganizations","ListItemChildLarge","child","childId","familyName","ListItemFamilyLarge","family","childCount","EditOrganizationForm","organization","setSubmitting","newOrganization","unixDate","attendanceService","checkInAsync","checkOutAsync","getForClassroomAsync","getCheckedInForClassroomAsync","getForChildAsync","getForClassroomByDateAsync","ExportAttendanceForm","startDate","endDate","timezone","Intl","DateTimeFormat","resolvedOptions","timeZone","EditOrganizationPage","canArchive","canExport","setOrganization","loadOrganization","noGutters","userIds","locationService","updateLocationSiteAdminRelationships","importChildData","importStaffData","activateLocation","LocationPage","setLocations","loadLocations","useSelect","FormModal","AddSiteAdminForm","availableSiteAdmins","addCreatedSiteAdmin","addSiteAdmin","updateSiteAdmins","isHomeCentre","canCreate","siteAdmins","bindSiteAdmins","onFormSubmit","resetForm","ids","htmlFor","isMulti","closeMenuOnSelect","imageList","CardStyle","currentPath","handleUpload","backgroundImage","backgroundPosition","backgroundRepeat","backgroundSize","EditLocationForm","setWasCreated","setIsLhcc","setInitialValues","organizationOptions","postalCodeRegex","telephoneRegex","provinceOptions","typeOptions","premiseType","address","city","postalCode","matches","province","supervisorName","phoneNumber","phoneNumberExtension","initialPremise","initialOrganization","initialProvince","initialOrgs","initialProvs","enableReinitialize","SingleSiteAdmin","siteAdmin","removeSiteAdmin","canRemove","removeClicked","EditLocationPage","setLocation","setSiteAdmins","locationSiteAdmins","setLocationSiteAdmins","setAvailableSiteAdmins","canEditSiteAdmins","canViewClassrooms","canCreateClassrooms","canCreateSiteAdmins","isLhcc","wasCreated","lsa","loadLocation","loadSiteAdmins","siteAdminIds","createdSiteAdmin","temp","asa","siteAdminId","splice","findIndex","familyFile","setFamilyFile","staffFile","setStaffFile","familyFileUploading","setFamilyFileUploading","staffFileUploading","setStaffFileUploading","isLocationActivating","setIsLocationActivating","handleFamilyImport","handleStaffImport","fileChanged","staffFileChanged","handleActivateClicked","createAnotherVisible","createAnotherSlug","w","accept","childIds","classroomService","findByLocation","findForChild","updateCaregiverClassroomRelationships","updateClassroomChildrenRelationships","ClassroomPage","setClassrooms","loadClassrooms","AddChildForm","classroomChildren","addChild","selectedChildren","setChildren","bindChildren","AddCaregiverForm","addCreatedCaregiver","caregivers","selectedCaregivers","bindCaregivers","setCaregivers","ClassroomAttendance","currentClassroomId","attendance","setAttendance","setDate","loadAttendance","loadAttendanceDate","getTime","clearDate","InputGroup","flex","InputGroupAddon","addonType","InputGroupText","maxDate","cursor","onKeyDown","tabIndex","attendanceId","checkedInAt","checkedOutAt","console","log","classroomIds","childService","availableChildren","findForClassroom","findForFamily","findGuardiansForChild","addNote","updateChildClassroomRelationships","photoService","createPhoto","deletePhoto","photosForChild","photosForClassroom","getPhoto","updatePhoto","AddPhotoForm","addPhoto","fileHasError","setFileHasError","contentHasError","setContentHasError","setContent","childHasError","setChildHasError","setChild","childOptions","hasPhotoPermission","description","addFooter","ClassroomPhotos","photos","uploadedPhotos","setUploadedPhotos","currentImage","setCurrentImage","viewerIsOpen","setViewerIsOpen","openLightbox","useCallback","currentIndex","views","caption","menu","menuId","menuService","classroomMenus","findMenu","deleteMenu","updateMenu","addMenu","AddMenuForm","pastMenus","defaultDate","setHours","cloneOption","setCloneOption","dateHasError","setDateHasError","morningSnackHasError","setMorningSnackHasError","lunchHasError","setLunchHasError","afternoonSnackHasError","setAfternoonSnackHasError","morningSnack","setMorningSnack","lunch","setLunch","afternoonSnack","setAfternoonSnack","pastMenuOptions","moment","menuToClone","minDate","EditMenuForm","removeMenu","isEditing","setIsEditing","toDate","onDelete","createdBy","dangerouslySetInnerHTML","__html","ClassroomMenus","menus","classroomCurrentMenus","classroomPastMenus","eventId","eventService","classroomEvents","findEvent","deleteEvent","updateEvent","addEvent","AddEventForm","titleHasError","setTitleHasError","descriptionHasError","setDescriptionHasError","startDateHasError","setStartDateHasError","endDateHasError","setEndDateHasError","setTitle","bindTitle","setStartDate","setEndDate","setDescription","data-enable-time","EditEventForm","removeEvent","ClassroomEvents","events","note","noteId","noteService","allNotes","classroomNotes","findNote","deleteNote","updateNote","AddNoteForm","EditNoteForm","removeNote","deleteConfirmation","setDeleteConfirmation","createdOn","ClassroomNotes","SingleNote","SingleEvent","SingleMenu","EditClassroomForm","selectedLocationId","locationOptions","ClassroomOverview","canViewNotes","canViewEvents","canViewMenus","canViewPhotos","currentClassroom","setClassroom","setEvents","setNotes","setMenus","setPhotos","setTab","SingleCaregiver","caregiver","removeCaregiver","handleClick","SingleChild","removeChild","EditClassroomPage","setClassroomChildren","classroomCaregivers","setClassroomCaregivers","setAvailableChildren","availableCaregivers","setAvailableCaregivers","activeTab","setActiveTab","setSelectedLocationId","canViewOverview","canEditOverview","canEditNotes","canEditEvents","canEditMenus","canEditPhotos","canCreateCaregivers","canEditCaregivers","canEditChildren","cc","loadClassroom","loadChildren","loadCaregivers","addCaregiver","caregiverIds","createdCaregiver","caregiverId","toggleTab","tab","isAdd","unshift","updateArray","items","idKey","dateKey","insertIndex","tabs","pills","NavLink","TabContent","TabPane","tabId","ChildrenPage","RequiredCheck","checked","EditChildForm","identifier","hasAllergies","SingleNoteChild","AddNoteChildForm","EditChildPage","loadChild","deleteImage","photoId","noteHeader","childNotes","maxHeight","guardians","prev","curr","familyIds","guardianIds","familyService","getFamilies","findFamily","findFamiliesForChild","updateFamily","updateChildFamilyRelationships","updateFamilyChildrenRelationships","updateFamilyGuardianRelationships","deleteFamily","restoreFamily","addFamily","FamilyPage","setFamilies","loadFamilies","ListItemChild","ListItemGuardian","guardian","removeGuardian","AddChildFamilyForm","addCreatedChild","familyChildren","maxWidth","AddGuardianFamilyForm","addGuardians","addCreatedGuardian","selectedGuardians","setGuardians","bindGuardians","EditFamilyForm","adminNotes","EditFamilyPage","setFamily","setAdminNotes","setFamilyChildren","familyGuardians","setFamilyGuardians","availableGuardians","setAvailableGuardians","availableClassrooms","setAvailableClassrooms","canEditGuardians","canCreateGuardians","canCreateChildren","fc","fg","loadFamily","loadGuardians","createdChild","createdGuardian","guardianId","useContent","useCheck","setChecked","communication","communicationService","sendCommunication","getCommunications","readCommunication","NewCommunicationPage","availableLocations","setAvailableLocations","subject","bindSubject","subjectHasError","setSubjectHasError","bindContent","isCritical","bindIsCritical","selectedLocations","bindSelectedLocations","setSelectedLocations","selectedClassrooms","bindSelectedClassrooms","setSelectedClassrooms","selectedRoles","bindSelectedRoles","setSelectedRoles","locationIds","roles","fetchData","classroomOptions","CardFooter","NotFoundPage","setItem","authenticationService","authenticate","refreshToken","revokeToken","forgotPassword","LoginForm","setError","onAuthorized","catch","isValidating","LoginPage","Alert","ResetPasswordForm","oneOf","ResetPasswordPage","t","ForgotPasswordForm","setSuccess","ForgotPasswordPage","VerifyPasswordForm","VerifyPage","order","LogoutPage","Shield","PasswordSetPage","ErrorPage","ClassroomToFamilyForm","setSelectedClassroomId","setSelectedChildId","setSelectedFamilyId","classroomError","familiesError","childError","usersToSendTo","setUsersToSendTo","selectedClassroom","bindSelectedClassroom","setSelectedClassroom","selectedChild","bindSelectedChild","setSelectedChild","selectedFamily","bindSelectedFamily","setSelectedFamily","mappedClassrooms","mappedChildren","mappedFamilies","ClassroomId","FamilyId","ChildId","searchTerm","ConversationId","Message","conversationService","getAll","getConversation","sendMessage","getConversationHistory","FamilyToClassroomForm","conversationLength","ConversationsPage","canSendToClassroom","conversations","setConversations","selectedConversation","setSelectedConversation","conversationMessages","setConversationMessages","newMessage","bindNewMessage","setNewMessage","intervalTimer","setIntervalTimer","selectedConversationId","setSelectedConversationId","newMessagesLoaded","setNewMessagesLoaded","selectedClassroomId","selectedFamilyId","selectedChildId","classroomHasError","setClassroomHasError","familiesHasError","setFamiliesHasError","AlwaysScrollToBottom","elementRef","scrollIntoView","conversationId","forceUpdate","getConversations","searchTermUpdated","clearInterval","ReactGA","pageview","conversationClicked","confirmClicked","handleSendMessage","overflowY","aria-orientation","onKeyUp","lastMessageReceived","fromNow","sentOn","participants","scrollbarWidth","conversationMessageId","sentByCurrentUser","fromUserFullName","NotificationsPage","communications","setCommunications","communicationRead","messageId","read","comm","onMouseOver","onFocus","fromUser","library","faHome","faBuilding","faImage","faBell","faUserPlus","faTimesCircle","faBan","faCheck","faGraduationCap","faFileUpload","faSearch","faQuestionCircle","faCalendarAlt","faChevronUp","faChild","faUsers","faEdit","faSitemap","faUserCheck","faCamera","faAllergies","faFileExport","faUser","faEnvelope","faSave","faTrash","faArchive","faMinus","faCheckCircle","faCommentDots","faPlus","faAsterisk","faChevronRight","faChevronLeft","faRedoAlt","initialize","initialReduxState","initialState","store","createStore","compose","applyMiddleware","routerMiddleware","rootElement","ReactDOM","autoClose","hideProgressBar","closeOnClick","pauseOnVisibilityChange","draggable","pauseOnHover","exact","LoginLayout"],"mappings":"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,OAAY,CAChBC,SAAU,CACRC,OAAQ,CACN,mBACA,2BACA,wBACA,yBACA,wBACA,yBAEA,iBACA,gBAEA,iBACA,gBACA,sBAEA,cACA,qBAEA,iBACA,mBACA,2BAEA,wBAGJC,UAAW,CACTD,OAAQ,CACN,mBACA,2BACA,wBACA,wBACA,yBACA,yBACA,wBACA,wBACA,yBACA,yBAEA,iBAEA,iBACA,sBAEA,cACA,qBAEA,sBAEA,iBACA,mBACA,0BAGJ,aAAc,CACZA,OAAQ,CACN,kBACA,iBACA,4BACA,yBAEA,+BACA,6BACA,mBACA,oBACA,kBACA,qBACA,0BACA,2BACA,2BACA,wBACA,wBACA,yBACA,yBACA,wBACA,wBACA,yBACA,yBACA,6BACA,2BAEA,iBACA,kBACA,wBACA,gBAEA,iBACA,kBACA,mBACA,wBACA,gBACA,0BACA,yBACA,sBAEA,cACA,qBACA,eACA,0BACA,yBACA,wBACA,qBACA,aACA,yBAEA,sBAEA,iBACA,mBACA,0BAGJE,MAAO,CACLF,OAAQ,CACN,kBACA,qBAEA,sBACA,uBACA,qBACA,wBACA,6BAEA,kBACA,mBACA,oBACA,iBACA,4BACA,yBACA,4BACA,yBAEA,sBAEA,+BACA,6BACA,mBACA,oBACA,kBACA,qBACA,0BACA,2BACA,2BACA,wBACA,wBACA,yBACA,yBACA,wBACA,wBACA,yBACA,yBACA,6BACA,2BAEA,iBACA,kBACA,mBACA,wBACA,gBAEA,iBACA,kBACA,mBACA,wBACA,gBACA,0BACA,yBACA,sBACA,2BAEA,cACA,qBACA,eACA,0BACA,qBACA,yBACA,yBACA,wBACA,gBACA,qBACA,aACA,yBAEA,sBACA,sBAEA,iBACA,mBACA,4BAKC,SAASG,GAAQ9E,GACtB,IA0BM+E,EAAgC,oBAAd/E,EAAMgF,IAAqBhF,EAAMgF,MAAQ,KAC3DC,EAA8B,oBAAbjF,EAAMkF,GAAoBlF,EAAMkF,KAAO,KAE9D,OA7Bc,SAACC,EAAOC,EAAMC,EAAQ5kB,GAClC,IAAM6kB,EAAcH,EAAMC,GAE1B,IAAKE,EACH,OAAO,EAGT,IA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","file":"static/js/main.d2470a69.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/shield.f4b4f35e.svg\";","module.exports = __webpack_public_path__ + \"static/media/male.714f16f6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/female.d8ec0aa7.jpg\";","module.exports = __webpack_public_path__ + \"static/media/other.be2c9e30.jpg\";","module.exports = __webpack_public_path__ + \"static/media/tff-logo.854c8e63.png\";","/* eslint-disable */\r\n\r\nimport $ from 'jquery';\r\nimport { toast, tooltip } from 'bootstrap';\r\n\r\n// GOOGLE MAPS API KEY\r\n// AIzaSyDlGo7eySZTY2gzM-wipxy_6EiWTDa1cr0\r\n\r\nrequire('./sticky-kit.js');\r\n\r\nvar Stickyfill = require('stickyfill');\r\nvar stickyfill = Stickyfill();\r\n\r\nglobal.jQuery = $;\r\nwindow.jQuery = $;\r\nwindow.$ = $;\r\nwindow.is = require('is_js');\r\n\r\n\"use strict\";\r\n\r\nvar _this2 = this;\r\n\r\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\r\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\r\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\r\n\r\n/*-----------------------------------------------\r\n| Utilities\r\n-----------------------------------------------*/\r\nvar utils = function ($) {\r\n var Utils = {\r\n $window: $(window),\r\n $document: $(document),\r\n $html: $('html'),\r\n $body: $('body'),\r\n $main: $('main'),\r\n isRTL: function isRTL() {\r\n return this.$html.attr('dir') === 'rtl';\r\n },\r\n location: window.location,\r\n nua: navigator.userAgent,\r\n breakpoints: {\r\n xs: 0,\r\n sm: 576,\r\n md: 768,\r\n lg: 992,\r\n xl: 1200,\r\n xxl: 1400\r\n },\r\n offset: function offset(element) {\r\n var rect = element.getBoundingClientRect();\r\n var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft;\r\n var scrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n return {\r\n top: rect.top + scrollTop,\r\n left: rect.left + scrollLeft\r\n };\r\n },\r\n isScrolledIntoViewJS: function isScrolledIntoViewJS(element) {\r\n var windowHeight = window.innerHeight;\r\n var elemTop = this.offset(element).top;\r\n var elemHeight = element.offsetHeight;\r\n var windowScrollTop = window.scrollY;\r\n return elemTop <= windowScrollTop + windowHeight && windowScrollTop <= elemTop + elemHeight;\r\n },\r\n isScrolledIntoView: function isScrolledIntoView(el) {\r\n var $el = $(el);\r\n var windowHeight = this.$window.height();\r\n var elemTop = $el.offset().top;\r\n var elemHeight = $el.height();\r\n var windowScrollTop = this.$window.scrollTop();\r\n return elemTop <= windowScrollTop + windowHeight && windowScrollTop <= elemTop + elemHeight;\r\n },\r\n getCurrentScreanBreakpoint: function getCurrentScreanBreakpoint() {\r\n var _this = this;\r\n\r\n var currentScrean = '';\r\n var windowWidth = this.$window.width();\r\n $.each(this.breakpoints, function (index, value) {\r\n if (windowWidth >= value) {\r\n currentScrean = index;\r\n } else if (windowWidth >= _this.breakpoints.xl) {\r\n currentScrean = 'xl';\r\n }\r\n });\r\n return {\r\n currentScrean: currentScrean,\r\n currentBreakpoint: this.breakpoints[currentScrean]\r\n };\r\n }\r\n };\r\n return Utils;\r\n}(jQuery);\r\n/*-----------------------------------------------\r\n| Top navigation opacity on scroll\r\n-----------------------------------------------*/\r\n\r\n\r\nutils.$document.ready(function () {\r\n var $navbar = $('.navbar-theme');\r\n\r\n if ($navbar.length) {\r\n var windowHeight = utils.$window.height();\r\n utils.$window.scroll(function () {\r\n var scrollTop = utils.$window.scrollTop();\r\n var alpha = scrollTop / windowHeight * 2;\r\n alpha >= 1 && (alpha = 1);\r\n $navbar.css({\r\n 'background-color': \"rgba(11, 23, 39, \" + alpha + \")\"\r\n });\r\n }); // Fix navbar background color [after and before expand]\r\n\r\n var classList = $navbar.attr('class').split(' ');\r\n var breakpoint = classList.filter(function (c) {\r\n return c.indexOf('navbar-expand-') >= 0;\r\n })[0].split('navbar-expand-')[1];\r\n utils.$window.resize(function () {\r\n if (utils.$window.width() > utils.breakpoints[breakpoint]) {\r\n return $navbar.removeClass('bg-dark');\r\n }\r\n\r\n if (!$navbar.find('.navbar-toggler').hasClass('collapsed')) {\r\n return $navbar.addClass('bg-dark');\r\n }\r\n\r\n return null;\r\n }); // Top navigation background toggle on mobile\r\n\r\n $navbar.on('show.bs.collapse hide.bs.collapse', function (e) {\r\n $(e.currentTarget).toggleClass('bg-dark');\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Select menu [bootstrap 4]\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n // https://getbootstrap.com/docs/4.0/getting-started/browsers-devices/#select-menu\r\n // https://github.com/twbs/bootstrap/issues/26183\r\n window.is.android() && $('select.form-control').removeClass('form-control').css('width', '100%');\r\n});\r\n/*-----------------------------------------------\r\n| Detector\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n if (window.is.opera()) utils.$html.addClass('opera');\r\n if (window.is.mobile()) utils.$html.addClass('mobile');\r\n if (window.is.firefox()) utils.$html.addClass('firefox');\r\n if (window.is.safari()) utils.$html.addClass('safari');\r\n if (window.is.ios()) utils.$html.addClass('ios');\r\n if (window.is.ie()) utils.$html.addClass('ie');\r\n if (window.is.edge()) utils.$html.addClass('edge');\r\n if (window.is.chrome()) utils.$html.addClass('chrome');\r\n if (utils.nua.match(/puppeteer/i)) utils.$html.addClass('puppeteer');\r\n if (window.is.mac()) utils.$html.addClass('osx');\r\n});\r\n/*-----------------------------------------------\r\n| Bootstrap validation\r\n-----------------------------------------------*/\r\n\r\n(function () {\r\n window.addEventListener('load', function () {\r\n // Fetch all the forms we want to apply theme Bootstrap validation styles to\r\n var forms = document.getElementsByClassName('needs-validation'); // Loop over them and prevent submission\r\n\r\n Array.prototype.filter.call(forms, function (form) {\r\n form.addEventListener('submit', function (event) {\r\n if (form.checkValidity() === false) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n\r\n form.classList.add('was-validated');\r\n }, false);\r\n });\r\n }, false);\r\n})();\r\n/*\r\n global Stickyfill\r\n*/\r\n\r\n/*-----------------------------------------------\r\n| Sticky fill\r\n-----------------------------------------------*/\r\n\r\n\r\nutils.$document.ready(function () {\r\n stickyfill.add($('.sticky-top'));\r\n stickyfill.add($('.sticky-bottom'));\r\n});\r\n/*-----------------------------------------------\r\n| Sticky Kit\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var stickyKits = $('.sticky-kit');\r\n\r\n if (stickyKits.length) {\r\n stickyKits.each(function (index, value) {\r\n var options = _objectSpread({}, $(value).data('options'));\r\n $(value).stick_in_parent(options);\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Tootltip [bootstrap 4]\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n // https://getbootstrap.com/docs/4.0/components/tooltips/#example-enable-tooltips-everywhere\r\n $('[data-toggle=\"tooltip\"]').tooltip({\r\n container: '.content'\r\n });\r\n $('[data-toggle=\"popover\"]').popover({\r\n container: '.content'\r\n });\r\n $('body').tooltip({\r\n selector: '[data-toggle=tooltip]'\r\n });\r\n});\r\nutils.$document.ready(function () {\r\n var breakpoints = utils.breakpoints;\r\n var navDropShadowFlag = true;\r\n var CLASS_NAME = {\r\n navbarGlassShadow: 'navbar-glass-shadow',\r\n collapsed: 'collapsed'\r\n };\r\n var SELECTOR = {\r\n navbar: '.navbar:not(.navbar-vertical)',\r\n navbarVertical: '.navbar-vertical',\r\n navbarToggler: '.navbar-toggler',\r\n navbarVerticalCollapse: '#navbarVerticalCollapse'\r\n };\r\n var $navbar = $(SELECTOR.navbar);\r\n var $navbarVerticalCollapse = $(SELECTOR.navbarVerticalCollapse);\r\n\r\n var setDropShadow = function setDropShadow($elem) {\r\n if ($elem.scrollTop() > 0 && navDropShadowFlag) {\r\n $navbar.addClass(CLASS_NAME.navbarGlassShadow);\r\n } else {\r\n $navbar.removeClass(CLASS_NAME.navbarGlassShadow);\r\n }\r\n };\r\n\r\n var breakPoint;\r\n var navbarVerticalClass = $(SELECTOR.navbarVertical).attr('class');\r\n\r\n if (navbarVerticalClass) {\r\n breakPoint = breakpoints[navbarVerticalClass.split(' ').filter(function (cls) {\r\n return cls.indexOf('navbar-expand-') === 0;\r\n }).pop().split('-').pop()];\r\n }\r\n\r\n utils.$window.on('load scroll', function () {\r\n return setDropShadow(utils.$window);\r\n });\r\n $navbarVerticalCollapse.on('scroll', function () {\r\n navDropShadowFlag = true;\r\n setDropShadow($navbarVerticalCollapse);\r\n });\r\n $navbarVerticalCollapse.on('show.bs.collapse', function () {\r\n if (utils.$window.width() < breakPoint) {\r\n navDropShadowFlag = false;\r\n setDropShadow(utils.$window);\r\n }\r\n });\r\n $navbarVerticalCollapse.on('hide.bs.collapse', function () {\r\n if ($navbarVerticalCollapse.hasClass('show')) {\r\n navDropShadowFlag = false;\r\n } else {\r\n navDropShadowFlag = true;\r\n }\r\n\r\n setDropShadow(utils.$window);\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Emoji Picker\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var Event = {\r\n FOCUS: 'focus'\r\n };\r\n var Selector = {\r\n EMOJIAREA: '.emojiarea'\r\n };\r\n var DATA_KEY = {\r\n OPTIONS: 'options'\r\n };\r\n var emojioneareas = $(Selector.EMOJIAREA); // Place the Blinking Text Cursor at the end of the editor text\r\n\r\n var placeCaretAtEnd = function placeCaretAtEnd(el) {\r\n if (!!window.getSelection && !!document.createRange) {\r\n var range = document.createRange();\r\n range.selectNodeContents(el);\r\n range.collapse(false);\r\n var sel = window.getSelection();\r\n sel.removeAllRanges();\r\n sel.addRange(range);\r\n } else if (document.body.createTextRange) {\r\n var textRange = document.body.createTextRange();\r\n textRange.moveToElementText(el);\r\n textRange.collapse(false);\r\n textRange.select();\r\n }\r\n }; // EmojioneArea plugin call\r\n\r\n\r\n if (emojioneareas.length) {\r\n emojioneareas.each(function (item, value) {\r\n var $this = $(value);\r\n var options = $.extend({}, $this.data(DATA_KEY.OPTIONS));\r\n $this.emojioneArea(options); // // Call the caret position function on focus\r\n\r\n emojioneareas[item].emojioneArea.on(Event.FOCUS, function ($editor) {\r\n placeCaretAtEnd($editor.get(0));\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Bulk Actions\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var checkboxBulkSelects = $('.checkbox-bulk-select');\r\n\r\n if (checkboxBulkSelects.length) {\r\n var Event = {\r\n CLICK: 'click'\r\n };\r\n var Selector = {\r\n CHECKBOX_BULK_SELECT_CHECKBOX: '.checkbox-bulk-select-target'\r\n };\r\n var ClassName = {\r\n D_NONE: 'd-none'\r\n };\r\n var DATA_KEY = {\r\n CHECKBOX_BODY: 'checkbox-body',\r\n CHECKBOX_ACTIONS: 'checkbox-actions',\r\n CHECKBOX_REPLACED_ELEMENT: 'checkbox-replaced-element'\r\n };\r\n var Attribute = {\r\n CHECKED: 'checked',\r\n INDETERMINATE: 'indeterminate'\r\n };\r\n checkboxBulkSelects.each(function (index, value) {\r\n var checkboxBulkAction = $(value);\r\n var bulkActions = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_ACTIONS));\r\n var replacedElement = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_REPLACED_ELEMENT));\r\n var rowCheckboxes = $(checkboxBulkAction.data(DATA_KEY.CHECKBOX_BODY)).find(Selector.CHECKBOX_BULK_SELECT_CHECKBOX);\r\n checkboxBulkAction.on(Event.CLICK, function () {\r\n if (checkboxBulkAction.attr(Attribute.INDETERMINATE) === Attribute.INDETERMINATE) {\r\n bulkActions.addClass(ClassName.D_NONE);\r\n replacedElement.removeClass(ClassName.D_NONE);\r\n checkboxBulkAction.prop(Attribute.INDETERMINATE, false).attr(Attribute.INDETERMINATE, false);\r\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n rowCheckboxes.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n } else {\r\n bulkActions.toggleClass(ClassName.D_NONE);\r\n replacedElement.toggleClass(ClassName.D_NONE);\r\n\r\n if (checkboxBulkAction.attr(Attribute.CHECKED)) {\r\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n } else {\r\n checkboxBulkAction.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\r\n }\r\n\r\n rowCheckboxes.each(function (i, v) {\r\n var $this = $(v);\r\n\r\n if ($this.attr(Attribute.CHECKED)) {\r\n $this.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n } else {\r\n $this.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\r\n }\r\n });\r\n }\r\n });\r\n rowCheckboxes.on(Event.CLICK, function (e) {\r\n var $this = $(e.target);\r\n\r\n if ($this.attr(Attribute.CHECKED)) {\r\n $this.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n } else {\r\n $this.prop(Attribute.CHECKED, true).attr(Attribute.CHECKED, true);\r\n }\r\n\r\n rowCheckboxes.each(function (i, v) {\r\n var $elem = $(v);\r\n\r\n if ($elem.attr(Attribute.CHECKED)) {\r\n checkboxBulkAction.prop(Attribute.INDETERMINATE, true).attr(Attribute.INDETERMINATE, Attribute.INDETERMINATE);\r\n bulkActions.removeClass(ClassName.D_NONE);\r\n replacedElement.addClass(ClassName.D_NONE);\r\n return false;\r\n }\r\n\r\n if (i === checkboxBulkAction.length) {\r\n checkboxBulkAction.prop(Attribute.INDETERMINATE, false).attr(Attribute.INDETERMINATE, false);\r\n checkboxBulkAction.prop(Attribute.CHECKED, false).attr(Attribute.CHECKED, false);\r\n bulkActions.addClass(ClassName.D_NONE);\r\n replacedElement.removeClass(ClassName.D_NONE);\r\n }\r\n\r\n return true;\r\n });\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Chart\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n /*-----------------------------------------------\r\n | Helper functions and Data\r\n -----------------------------------------------*/\r\n var hexToRgb = function hexToRgb(hexValue) {\r\n var hex;\r\n hexValue.indexOf('#') === 0 ? hex = hexValue.substring(1) : hex = hexValue; // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n\r\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\r\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex.replace(shorthandRegex, function (m, r, g, b) {\r\n return r + r + g + g + b + b;\r\n }));\r\n return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;\r\n };\r\n\r\n var chartData = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7];\r\n var colors = ['#2c7be5', '#00d97e', '#e63757', '#39afd1', '#fd7e14', '#02a8b5', '#727cf5', '#6b5eae', '#ff679b', '#f6c343'];\r\n\r\n var rgbColor = function rgbColor(color) {\r\n if (color === void 0) {\r\n color = colors[0];\r\n }\r\n\r\n return \"rgb(\" + hexToRgb(color) + \")\";\r\n };\r\n\r\n var rgbaColor = function rgbaColor(color, alpha) {\r\n if (color === void 0) {\r\n color = colors[0];\r\n }\r\n\r\n if (alpha === void 0) {\r\n alpha = 0.5;\r\n }\r\n\r\n return \"rgba(\" + hexToRgb(color) + \",\" + alpha + \")\";\r\n };\r\n\r\n var rgbColors = colors.map(function (color) {\r\n return rgbColor(color);\r\n });\r\n var rgbaColors = colors.map(function (color) {\r\n return rgbaColor(color);\r\n });\r\n var labels = ['9:00 AM', '10:00 AM', '11:00 AM', '12:00 PM', '1:00 PM', '2:00 PM', '3:00 PM', '4:00 PM', '5:00 PM', '6:00 PM', '7:00 PM', '8:00 PM'];\r\n /*-----------------------------------------------\r\n | Chart Initialization\r\n -----------------------------------------------*/\r\n\r\n var newChart = function newChart(chart, config) {\r\n var ctx = chart.getContext('2d');\r\n return new window.Chart(ctx, config);\r\n };\r\n /*-----------------------------------------------\r\n | Line Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartLine = document.getElementById('chart-line');\r\n\r\n if (chartLine) {\r\n var dashboardLineChart = newChart(chartLine, {\r\n type: 'line',\r\n data: {\r\n labels: labels.map(function (l) {\r\n return l.substring(0, l.length - 3);\r\n }),\r\n datasets: [{\r\n borderWidth: 2,\r\n data: chartData.map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n }),\r\n borderColor: rgbaColor('#fff', 0.8),\r\n backgroundColor: rgbaColor('#fff', 0.15)\r\n }]\r\n },\r\n options: {\r\n legend: {\r\n display: false\r\n },\r\n tooltips: {\r\n mode: 'x-axis',\r\n xPadding: 20,\r\n yPadding: 10,\r\n displayColors: false,\r\n callbacks: {\r\n label: function label(tooltipItem) {\r\n return labels[tooltipItem.index] + \" - \" + tooltipItem.yLabel + \" USD\";\r\n },\r\n title: function title() {\r\n return null;\r\n }\r\n }\r\n },\r\n hover: {\r\n mode: 'label'\r\n },\r\n scales: {\r\n xAxes: [{\r\n scaleLabel: {\r\n show: true,\r\n labelString: 'Month'\r\n },\r\n ticks: {\r\n fontColor: rgbaColor('#fff', 0.7),\r\n fontStyle: 600\r\n },\r\n gridLines: {\r\n color: rgbaColor('#fff', 0.1),\r\n lineWidth: 1\r\n }\r\n }],\r\n yAxes: [{\r\n display: false\r\n }]\r\n }\r\n }\r\n });\r\n $('#dashboard-chart-select').on('change', function (e) {\r\n var LineDB = {\r\n all: [4, 1, 6, 2, 7, 12, 4, 6, 5, 4, 5, 10].map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n }),\r\n successful: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8].map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n }),\r\n failed: [1, 0, 2, 1, 2, 1, 1, 0, 0, 1, 0, 2].map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n })\r\n };\r\n dashboardLineChart.data.datasets[0].data = LineDB[e.target.value];\r\n dashboardLineChart.update();\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Bar Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartBar = document.getElementById('chart-bar');\r\n\r\n if (chartBar) {\r\n newChart(chartBar, {\r\n type: 'bar',\r\n data: {\r\n labels: labels.slice(0, 2),\r\n datasets: [{\r\n label: 'First dataset',\r\n backgroundColor: [rgbaColor(colors[9]), rgbaColor(colors[5])],\r\n borderColor: [rgbColor(colors[9]), rgbColor(colors[5])],\r\n borderWidth: 2,\r\n data: [6, 10]\r\n }, {\r\n label: 'Second dataset',\r\n backgroundColor: [rgbaColor(colors[7]), rgbaColor(colors[4])],\r\n borderColor: [rgbColor(colors[7]), rgbColor(colors[4])],\r\n borderWidth: 2,\r\n data: [3, 7]\r\n }]\r\n },\r\n options: {\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n beginAtZero: true\r\n }\r\n }]\r\n }\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Radar Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartRadar = document.getElementById('chart-radar');\r\n\r\n if (chartRadar) {\r\n newChart(chartRadar, {\r\n type: 'radar',\r\n data: {\r\n labels: labels,\r\n datasets: [{\r\n label: 'First dataset',\r\n backgroundColor: rgbaColor(colors[6]),\r\n borderColor: rgbColor(colors[6]),\r\n borderWidth: 2,\r\n data: chartData.slice(0, 12),\r\n fill: 1\r\n }, {\r\n label: 'Second dataset',\r\n backgroundColor: rgbaColor(colors[2]),\r\n borderColor: rgbColor(colors[2]),\r\n borderWidth: 2,\r\n data: chartData.slice(12, 24),\r\n fill: 1\r\n }]\r\n },\r\n options: {\r\n maintainAspectRatio: true,\r\n spanGaps: false,\r\n elements: {\r\n line: {\r\n tension: 0.000001\r\n }\r\n }\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Pie Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartPie = document.getElementById('chart-pie');\r\n\r\n if (chartPie) {\r\n newChart(chartPie, {\r\n type: 'pie',\r\n data: {\r\n labels: labels.slice(0, 3),\r\n datasets: [{\r\n backgroundColor: rgbaColors,\r\n borderColor: rgbColors,\r\n data: chartData.slice(0, 3)\r\n }]\r\n },\r\n options: {\r\n responsive: true\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Doughnut Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartDoughnut = document.getElementById('chart-doughnut');\r\n\r\n if (chartDoughnut) {\r\n newChart(chartDoughnut, {\r\n type: 'doughnut',\r\n data: {\r\n labels: labels.slice(0, 3),\r\n datasets: [{\r\n backgroundColor: rgbColors,\r\n borderColor: rgbColors,\r\n data: chartData.slice(0, 3)\r\n }]\r\n },\r\n options: {\r\n responsive: true\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Polar Area Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var chartPolarArea = document.getElementById('chart-polar-area');\r\n\r\n if (chartPolarArea) {\r\n newChart(chartPolarArea, {\r\n type: 'polarArea',\r\n data: {\r\n labels: labels.slice(0, 3),\r\n datasets: [{\r\n backgroundColor: rgbaColors,\r\n borderColor: rgbaColors,\r\n data: chartData.slice(0, 3)\r\n }]\r\n },\r\n options: {\r\n responsive: true\r\n }\r\n });\r\n }\r\n /* eslint-disable */\r\n\r\n /*-----------------------------------------------\r\n | Polar Bubble\r\n -----------------------------------------------*/\r\n\r\n\r\n var colorize = function colorize(opaque, context) {\r\n var value = context.dataset.data[context.dataIndex];\r\n var x = value.x / 100;\r\n var y = value.y / 100;\r\n var r = x < 0 && y < 0 ? 250 : x < 0 ? 150 : y < 0 ? 50 : 0;\r\n var g = x < 0 && y < 0 ? 0 : x < 0 ? 50 : y < 0 ? 150 : 250;\r\n var b = x < 0 && y < 0 ? 0 : x > 0 && y > 0 ? 250 : 150;\r\n var a = opaque ? 1 : 0.5 * value.v / 1000;\r\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + a + \")\";\r\n };\r\n\r\n var rand = function rand(min, max) {\r\n var seed = _this2._seed;\r\n min = min === undefined ? 0 : min;\r\n max = max === undefined ? 1 : max;\r\n _this2._seed = (seed * 9301 + 49297) % 233280;\r\n return min + _this2._seed / 233280 * (max - min);\r\n };\r\n\r\n var generateData = function generateData() {\r\n var data = [];\r\n var DATA_COUNT = 16;\r\n var MIN_XY = -150;\r\n var MAX_XY = 100;\r\n\r\n for (var i = 0; i < DATA_COUNT; i += 1) {\r\n data.push({\r\n x: rand(MIN_XY, MAX_XY),\r\n y: rand(MIN_XY, MAX_XY),\r\n v: rand(0, 1000)\r\n });\r\n }\r\n\r\n return data;\r\n };\r\n\r\n var chartBubble = document.getElementById('chart-bubble');\r\n\r\n if (chartBubble) {\r\n newChart(chartBubble, {\r\n type: 'bubble',\r\n data: {\r\n datasets: [{\r\n label: ['Deer Population'],\r\n data: [{\r\n x: -10,\r\n y: -20,\r\n r: 20\r\n }, {\r\n x: 100,\r\n y: 0,\r\n r: 10\r\n }, {\r\n x: 60,\r\n y: 30,\r\n r: 20\r\n }, {\r\n x: 40,\r\n y: 60,\r\n r: 25\r\n }, {\r\n x: 80,\r\n y: 80,\r\n r: 30\r\n }, {\r\n x: 20,\r\n y: 30,\r\n r: 25\r\n }, {\r\n x: 0,\r\n y: 100,\r\n r: 5\r\n }],\r\n backgroundColor: '#2C7BE5'\r\n }]\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Component Line Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var componentChartLine = document.getElementById('component-chart-line');\r\n\r\n if (componentChartLine) {\r\n newChart(componentChartLine, {\r\n type: 'line',\r\n data: {\r\n labels: labels,\r\n datasets: [{\r\n borderWidth: 2,\r\n data: chartData.slice(2, 14).map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n }),\r\n borderColor: rgbaColor('#2C7BE5', 0.4),\r\n backgroundColor: rgbaColor('#2C7BE5', 0.5)\r\n }, {\r\n borderWidth: 2,\r\n borderColor: '#fff',\r\n data: chartData.slice(3, 15).map(function (d) {\r\n return (d * 3.14).toFixed(2);\r\n }),\r\n backgroundColor: rgbaColor('#2C7BE5', 0.5)\r\n }]\r\n },\r\n options: {\r\n legend: {\r\n display: false\r\n },\r\n tooltips: {\r\n mode: 'x-axis',\r\n xPadding: 20,\r\n yPadding: 10,\r\n displayColors: false,\r\n callbacks: {\r\n label: function label(tooltipItem) {\r\n return labels[tooltipItem.index] + \" - \" + tooltipItem.yLabel + \" USD\";\r\n },\r\n title: function title() {\r\n return null;\r\n }\r\n }\r\n },\r\n hover: {\r\n mode: 'label'\r\n },\r\n scales: {\r\n xAxes: [{\r\n scaleLabel: {\r\n show: true,\r\n labelString: 'Month'\r\n },\r\n ticks: {\r\n fontColor: rgbaColor('#000', 0.7),\r\n fontStyle: 600\r\n },\r\n gridLines: {\r\n color: rgbaColor('#000', 0.1),\r\n lineWidth: 1\r\n }\r\n }],\r\n yAxes: [{\r\n display: false\r\n }]\r\n }\r\n }\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Real time user\r\n -----------------------------------------------*/\r\n\r\n /*-----------------------------------------------\r\n | Bar Chart\r\n -----------------------------------------------*/\r\n\r\n\r\n var realTimeUser = document.getElementById('real-time-user');\r\n\r\n if (realTimeUser) {\r\n var realTimeUserChart = newChart(realTimeUser, {\r\n type: 'bar',\r\n data: {\r\n labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25],\r\n datasets: [{\r\n label: 'Users',\r\n backgroundColor: rgbaColor('#fff', 0.3),\r\n data: [183, 163, 176, 172, 166, 161, 164, 159, 172, 173, 184, 163, 99, 173, 183, 167, 160, 183, 163, 176, 172, 166, 173, 188, 175]\r\n }]\r\n },\r\n options: {\r\n legend: {\r\n display: false\r\n },\r\n scales: {\r\n yAxes: [{\r\n display: false,\r\n stacked: true\r\n }],\r\n xAxes: [{\r\n stacked: false,\r\n ticks: {\r\n display: false\r\n },\r\n barPercentage: 0.9,\r\n categoryPercentage: 1.0,\r\n gridLines: {\r\n color: rgbaColor('#fff', 0.1),\r\n display: false\r\n }\r\n }]\r\n }\r\n }\r\n });\r\n var userCounterDom = $('.real-time-user');\r\n setInterval(function () {\r\n var userCounter = Math.floor(Math.random() * (120 - 60) + 60);\r\n /*-----------------------------------------------\r\n | Remove data\r\n -----------------------------------------------*/\r\n\r\n realTimeUserChart.data.datasets.forEach(function (dataset) {\r\n dataset.data.shift();\r\n });\r\n realTimeUserChart.update();\r\n /*-----------------------------------------------\r\n | Add data\r\n -----------------------------------------------*/\r\n\r\n setTimeout(function () {\r\n realTimeUserChart.data.datasets.forEach(function (dataset) {\r\n dataset.data.push(userCounter);\r\n });\r\n realTimeUserChart.update();\r\n userCounterDom.text(userCounter);\r\n }, 500);\r\n }, 2000);\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Chat\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var Event = {\r\n CLICK: 'click',\r\n SHOWN_BS_TAB: 'shown.bs.tab',\r\n RESIZE: 'resize',\r\n KEYUP: 'keyup',\r\n EMOJI_BTN_CLIK: 'emojibtn.click'\r\n };\r\n var Selector = {\r\n CHAT_SIDEBAR: '.chat-sidebar',\r\n CHAT_CONTACT: '.chat-contact',\r\n CHAT_CONTENT_SCROLL_AREA: '.chat-content-scroll-area',\r\n CHAT_CONTENT_HEADER_ACTIVE: '.card-chat-pane.active .chat-content-header',\r\n CHAT_CONTENT_SCROLL_AREA_ACTIVE: '.card-chat-pane.active .chat-content-scroll-area',\r\n CARD_CHAT_PANE_ACTIVE: '.card-chat-pane.active',\r\n CHAT_EMOJIAREA: '.chat-editor-area .emojiarea',\r\n BTN_SEND: '.btn-send',\r\n CHAT_FILE_UPLOAD: '.chat-file-upload',\r\n CARD_CHAT_CONTENT: '.card-chat-content',\r\n EMOJIONEAREA_EDITOR: '.emojionearea-editor',\r\n BTN_INFO: '.btn-info',\r\n CONVERSATION_INFO: '.conversation-info',\r\n CONTACTS_LIST_SHOW: '.contacts-list-show',\r\n CHAT_EDITOR_AREA: '.chat-editor-area'\r\n };\r\n var ClassName = {\r\n UNREAD_MESSAGE: 'unread-message',\r\n TEXT_PRIMARY: 'text-primary',\r\n SHOW: 'show'\r\n };\r\n var DATA_KEY = {\r\n TARGET: 'target',\r\n INDEX: 'index'\r\n };\r\n var Attribute = {\r\n STYLE: 'style'\r\n };\r\n var $chatSidebar = $(Selector.CHAT_SIDEBAR);\r\n var $chatContact = $(Selector.CHAT_CONTACT);\r\n var $chatEmojiarea = $(Selector.CHAT_EMOJIAREA);\r\n var $chatIcons = $(Selector.BTN_SEND + \",\" + Selector.CHAT_FILE_UPLOAD);\r\n var $btnSend = $(Selector.BTN_SEND);\r\n var initialEditorHeight = $(Selector.EMOJIONEAREA_EDITOR).outerHeight();\r\n var $chatContent = $(Selector.CARD_CHAT_CONTENT);\r\n var $scrollArea = $(Selector.CHAT_CONTENT_SCROLL_AREA); // Set chat scrollbar area height\r\n\r\n var setChatAreaHeight = function setChatAreaHeight(chatContentArea, editorAreaHeight) {\r\n var chatContentHeight = chatContentArea.height();\r\n var calculated = chatContentHeight - editorAreaHeight;\r\n var chatContentHeaderHeight = $(Selector.CHAT_CONTENT_HEADER_ACTIVE).outerHeight();\r\n var chatArea = chatContentArea.find(Selector.CHAT_CONTENT_SCROLL_AREA_ACTIVE);\r\n chatArea.css({\r\n height: calculated - chatContentHeaderHeight\r\n });\r\n }; // Set scrollbar position\r\n\r\n\r\n var setScrollbarPosition = function setScrollbarPosition($chatArea) {\r\n var scrollbar = window.Scrollbar.get($chatArea);\r\n scrollbar.update();\r\n scrollbar.scrollTo(0, scrollbar.limit.y);\r\n };\r\n\r\n utils.$document.on(Event.CLICK, Selector.CHAT_CONTACT, function () {\r\n var $this = $(this); // Hide contact list sidebar on responsive\r\n\r\n utils.$window.width() < 768 && $chatSidebar.css('left', '-100%'); // Remove unread-message class when read\r\n\r\n $this.hasClass(ClassName.UNREAD_MESSAGE) && $this.removeClass(ClassName.UNREAD_MESSAGE);\r\n });\r\n $chatContact.on(Event.SHOWN_BS_TAB, function () {\r\n var $this = $(this);\r\n var $tab = $this.data(DATA_KEY.TARGET);\r\n $chatEmojiarea.length && $chatEmojiarea[0].emojioneArea.setText('');\r\n var editorHeight = $(Selector.EMOJIONEAREA_EDITOR).outerHeight();\r\n setChatAreaHeight($chatContent, editorHeight);\r\n $chatIcons.removeAttr(Attribute.STYLE);\r\n $btnSend.removeClass(ClassName.TEXT_PRIMARY); // Set scrollbar position on bottom\r\n\r\n var $chatArea = document.querySelector($tab + \" \" + Selector.CHAT_CONTENT_SCROLL_AREA);\r\n setScrollbarPosition($chatArea);\r\n }); // Detect keyup event on EmojioneArea Editor\r\n\r\n if ($chatEmojiarea.length) {\r\n $chatEmojiarea[0].emojioneArea.on(Event.KEYUP + \" \" + Event.EMOJI_BTN_CLIK, function ($editor) {\r\n var textLength = $editor.text().trim().length;\r\n var _$editor$ = $editor[0],\r\n offsetWidth = _$editor$.offsetWidth,\r\n clientWidth = _$editor$.clientWidth;\r\n var currentEditorHeight = $editor.outerHeight();\r\n var emojiLength = $editor.find('img').length; // Change color of submit button on keyup\r\n\r\n textLength || emojiLength ? $btnSend.addClass(ClassName.TEXT_PRIMARY) : $btnSend.removeClass(ClassName.TEXT_PRIMARY);\r\n\r\n if (currentEditorHeight !== initialEditorHeight) {\r\n setChatAreaHeight($chatContent, currentEditorHeight); // Set scrollbar position on bottom\r\n\r\n var tabContentId = $chatContent.find(Selector.CARD_CHAT_PANE_ACTIVE).attr('id');\r\n var $chatArea = document.querySelector(\"#\" + tabContentId + \" \" + Selector.CHAT_CONTENT_SCROLL_AREA);\r\n setScrollbarPosition($chatArea);\r\n } // Align file upload and send icons when editor overflow scroll\r\n\r\n\r\n $chatIcons.css({\r\n marginRight: offsetWidth === clientWidth ? 0 : '1rem'\r\n });\r\n initialEditorHeight = currentEditorHeight;\r\n });\r\n } // Open conversation info sidebar\r\n\r\n\r\n utils.$document.on(Event.CLICK, Selector.BTN_INFO, function () {\r\n var $this = $(this);\r\n var dataIndex = $this.data(DATA_KEY.INDEX);\r\n var $info = $(Selector.CONVERSATION_INFO + \"[data-\" + DATA_KEY.INDEX + \"='\" + dataIndex + \"']\");\r\n $info.toggleClass(ClassName.SHOW);\r\n }); // Show contact list sidebar on responsive\r\n\r\n utils.$document.on(Event.CLICK, Selector.CONTACTS_LIST_SHOW, function () {\r\n return $chatSidebar.css('left', 0);\r\n }); // Set scrollbar area height on resize\r\n\r\n utils.$window.on(Event.RESIZE, function () {\r\n if ($scrollArea.length) {\r\n var editorCurrentHeight = $(Selector.EMOJIONEAREA_EDITOR).outerHeight();\r\n setChatAreaHeight($chatContent, editorCurrentHeight);\r\n var chatArea = document.querySelector(Selector.CHAT_CONTENT_SCROLL_AREA_ACTIVE);\r\n setScrollbarPosition(chatArea);\r\n }\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Copy link\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n $('#copyLinkModal').on('shown.bs.modal', function () {\r\n $('.invitation-link').focus().select();\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Count Up\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $counters = $('[data-countup]');\r\n\r\n if ($counters.length) {\r\n $counters.each(function (index, value) {\r\n var $counter = $(value);\r\n var counter = $counter.data('countup');\r\n\r\n var toAlphanumeric = function toAlphanumeric(num) {\r\n var number = num;\r\n var abbreviations = {\r\n k: 1000,\r\n m: 1000000,\r\n b: 1000000000,\r\n t: 1000000000000\r\n };\r\n\r\n if (num < abbreviations.m) {\r\n number = (num / abbreviations.k).toFixed(2) + \"k\";\r\n } else if (num < abbreviations.b) {\r\n number = (num / abbreviations.m).toFixed(2) + \"m\";\r\n } else if (num < abbreviations.t) {\r\n number = (num / abbreviations.b).toFixed(2) + \"b\";\r\n } else {\r\n number = (num / abbreviations.t).toFixed(2) + \"t\";\r\n }\r\n\r\n return number;\r\n };\r\n\r\n var toComma = function toComma(num) {\r\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n };\r\n\r\n var toSpace = function toSpace(num) {\r\n return num.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ' ');\r\n };\r\n\r\n var playCountUpTriggered = false;\r\n\r\n var countUP = function countUP() {\r\n if (utils.isScrolledIntoView(value) && !playCountUpTriggered) {\r\n if (!playCountUpTriggered) {\r\n $({\r\n countNum: 0\r\n }).animate({\r\n countNum: counter.count\r\n }, {\r\n duration: counter.duration || 1000,\r\n easing: 'linear',\r\n step: function step() {\r\n $counter.text((counter.prefix ? counter.prefix : '') + Math.floor(this.countNum));\r\n },\r\n complete: function complete() {\r\n switch (counter.format) {\r\n case 'comma':\r\n $counter.text((counter.prefix ? counter.prefix : '') + toComma(this.countNum));\r\n break;\r\n\r\n case 'space':\r\n $counter.text((counter.prefix ? counter.prefix : '') + toSpace(this.countNum));\r\n break;\r\n\r\n case 'alphanumeric':\r\n $counter.text((counter.prefix ? counter.prefix : '') + toAlphanumeric(this.countNum));\r\n break;\r\n\r\n default:\r\n $counter.text((counter.prefix ? counter.prefix : '') + this.countNum);\r\n }\r\n }\r\n });\r\n playCountUpTriggered = true;\r\n }\r\n }\r\n\r\n return playCountUpTriggered;\r\n };\r\n\r\n countUP();\r\n utils.$window.scroll(function () {\r\n countUP();\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Data table\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n // $.fn.dataTable.ext.classes.sPageButton = 'btn btn-falcon-default btn-sm';\r\n var dataTables = $('.data-table');\r\n\r\n var customDataTable = function customDataTable(elem) {\r\n elem.find('table').find('tfoot').addClass('bg-200');\r\n elem.find('.pagination').addClass('pagination-sm'); // .closest('[class*=\"col\"]')\r\n // .removeClass('col-sm-12 col-md-7')\r\n // .addClass('col-auto mt-2 px-1')\r\n // .closest('.row')\r\n // .addClass('no-gutters justify-content-center justify-content-md-between px-3 pb-3');\r\n };\r\n\r\n dataTables.length && dataTables.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $.extend({\r\n responsive: true\r\n }, $this.data('options'));\r\n $this.DataTable(options);\r\n var $wrpper = $this.closest('.dataTables_wrapper');\r\n customDataTable($wrpper);\r\n $this.on('draw.dt', function () {\r\n return customDataTable($wrpper);\r\n });\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Countdown\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $dataCountdowns = $('[data-countdown]');\r\n var DATA_KEY = {\r\n FALLBACK: 'countdown-fallback',\r\n COUNTDOWN: 'countdown'\r\n };\r\n\r\n if ($dataCountdowns.length) {\r\n $dataCountdowns.each(function (index, value) {\r\n var $dateCountdown = $(value);\r\n var date = $dateCountdown.data(DATA_KEY.COUNTDOWN);\r\n var fallback;\r\n\r\n if (_typeof($dateCountdown.data(DATA_KEY.FALLBACK)) !== _typeof(undefined)) {\r\n fallback = $dateCountdown.data(DATA_KEY.FALLBACK);\r\n }\r\n\r\n $dateCountdown.countdown(date, function (event) {\r\n if (event.elapsed) {\r\n $dateCountdown.text(fallback);\r\n } else {\r\n $dateCountdown.text(event.strftime('%D days %H:%M:%S'));\r\n }\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Documentation and Component Navigation\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $componentNav = $('#components-nav');\r\n\r\n if ($componentNav.length) {\r\n var loc = window.location.href;\r\n\r\n var _loc$split = loc.split('#');\r\n\r\n loc = _loc$split[0];\r\n var location = loc.split('/');\r\n var url = location[location.length - 2] + \"/\" + location.pop();\r\n var urls = $componentNav.children('li').children('a');\r\n\r\n for (var i = 0, max = urls.length; i < max; i += 1) {\r\n var dom = urls[i].href.split('/');\r\n var domURL = dom[dom.length - 2] + \"/\" + dom.pop();\r\n\r\n if (domURL === url) {\r\n var $targetedElement = $(urls[i]);\r\n $targetedElement.removeClass('text-800');\r\n $targetedElement.addClass('font-weight-medium');\r\n break;\r\n }\r\n }\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| On page scroll for #id targets\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function ($) {\r\n $('a[data-fancyscroll]').click(function scrollTo(e) {\r\n // const $this = $(e.currentTarget);\r\n var $this = $(this);\r\n\r\n if (utils.location.pathname === $this[0].pathname && utils.location.pathname.replace(/^\\//, '') === this.pathname.replace(/^\\//, '') && utils.location.hostname === this.hostname) {\r\n e.preventDefault();\r\n var target = $(this.hash);\r\n target = target.length ? target : $(\"[name=\" + this.hash.slice(1) + \"]\");\r\n\r\n if (target.length) {\r\n $('html,body').animate({\r\n scrollTop: target.offset().top - ($this.data('offset') || 0)\r\n }, 400, 'swing', function () {\r\n var hash = $this.attr('href');\r\n window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash;\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n var hash = window.location.hash;\r\n\r\n if (hash && document.getElementById(hash.slice(1))) {\r\n var $this = $(hash);\r\n $('html,body').animate({\r\n scrollTop: $this.offset().top - $(\"a[href='\" + hash + \"']\").data('offset')\r\n }, 400, 'swing', function () {\r\n window.history.pushState ? window.history.pushState(null, null, hash) : window.location.hash = hash;\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Flatpickr\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var select2 = $('.selectpicker');\r\n select2.length && select2.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $.extend({}, $this.data('options'));\r\n $this.select2(options);\r\n });\r\n});\r\nutils.$document.ready(function () {\r\n var datetimepicker = $('.datetimepicker');\r\n datetimepicker.length && datetimepicker.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $.extend({\r\n dateFormat: 'd/m/y'\r\n }, $this.data('options'));\r\n $this.attr('placeholder', options.dateFormat);\r\n $this.flatpickr(options);\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Flex slider\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var flexslider = $('.flexslider');\r\n\r\n if (flexslider.length) {\r\n flexslider.each(function (item, value) {\r\n var $this = $(value);\r\n $this.flexslider($.extend({\r\n prevText: '',\r\n nextText: ''\r\n }, $this.data('options')));\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Gooogle Map\r\n-----------------------------------------------*/\r\n\r\n/*\r\n global google\r\n*/\r\n\r\nfunction initMap() {\r\n var $googlemaps = $('.googlemap');\r\n\r\n if ($googlemaps.length) {\r\n // Visit https://snazzymaps.com/ for more themes\r\n var mapStyles = {\r\n Default: [{\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#e9e9e9'\r\n }, {\r\n lightness: 17\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#f5f5f5'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#ffffff'\r\n }, {\r\n lightness: 17\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#ffffff'\r\n }, {\r\n lightness: 29\r\n }, {\r\n weight: 0.2\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#ffffff'\r\n }, {\r\n lightness: 18\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#ffffff'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#f5f5f5'\r\n }, {\r\n lightness: 21\r\n }]\r\n }, {\r\n featureType: 'poi.park',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#dedede'\r\n }, {\r\n lightness: 21\r\n }]\r\n }, {\r\n elementType: 'labels.text.stroke',\r\n stylers: [{\r\n visibility: 'on'\r\n }, {\r\n color: '#ffffff'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n saturation: 36\r\n }, {\r\n color: '#333333'\r\n }, {\r\n lightness: 40\r\n }]\r\n }, {\r\n elementType: 'labels.icon',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#f2f2f2'\r\n }, {\r\n lightness: 19\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#fefefe'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#fefefe'\r\n }, {\r\n lightness: 17\r\n }, {\r\n weight: 1.2\r\n }]\r\n }],\r\n Gray: [{\r\n featureType: 'all',\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n saturation: 36\r\n }, {\r\n color: '#000000'\r\n }, {\r\n lightness: 40\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.text.stroke',\r\n stylers: [{\r\n visibility: 'on'\r\n }, {\r\n color: '#000000'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.icon',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 17\r\n }, {\r\n weight: 1.2\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 21\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 17\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 29\r\n }, {\r\n weight: 0.2\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 18\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 19\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 17\r\n }]\r\n }],\r\n Midnight: [{\r\n featureType: 'all',\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n color: '#ffffff'\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.text.stroke',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 13\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#144b53'\r\n }, {\r\n lightness: 14\r\n }, {\r\n weight: 1.4\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#08304b'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#0c4152'\r\n }, {\r\n lightness: 5\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#0b434f'\r\n }, {\r\n lightness: 25\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#0b3d51'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#146474'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#021019'\r\n }]\r\n }],\r\n Hopper: [{\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#165c64'\r\n }, {\r\n saturation: 34\r\n }, {\r\n lightness: -69\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#b7caaa'\r\n }, {\r\n saturation: -14\r\n }, {\r\n lightness: -18\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'landscape.man_made',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#cbdac1'\r\n }, {\r\n saturation: -6\r\n }, {\r\n lightness: -9\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#8d9b83'\r\n }, {\r\n saturation: -89\r\n }, {\r\n lightness: -12\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#d4dad0'\r\n }, {\r\n saturation: -88\r\n }, {\r\n lightness: 54\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#bdc5b6'\r\n }, {\r\n saturation: -89\r\n }, {\r\n lightness: -3\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#bdc5b6'\r\n }, {\r\n saturation: -89\r\n }, {\r\n lightness: -26\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#c17118'\r\n }, {\r\n saturation: 61\r\n }, {\r\n lightness: -45\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'poi.park',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#8ba975'\r\n }, {\r\n saturation: -46\r\n }, {\r\n lightness: -28\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#a43218'\r\n }, {\r\n saturation: 74\r\n }, {\r\n lightness: -51\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'administrative.province',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#ffffff'\r\n }, {\r\n saturation: 0\r\n }, {\r\n lightness: 100\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'administrative.neighborhood',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#ffffff'\r\n }, {\r\n saturation: 0\r\n }, {\r\n lightness: 100\r\n }, {\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative.locality',\r\n elementType: 'labels',\r\n stylers: [{\r\n hue: '#ffffff'\r\n }, {\r\n saturation: 0\r\n }, {\r\n lightness: 100\r\n }, {\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative.land_parcel',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#ffffff'\r\n }, {\r\n saturation: 0\r\n }, {\r\n lightness: 100\r\n }, {\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'all',\r\n stylers: [{\r\n hue: '#3a3935'\r\n }, {\r\n saturation: 5\r\n }, {\r\n lightness: -57\r\n }, {\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'poi.medical',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#cba923'\r\n }, {\r\n saturation: 50\r\n }, {\r\n lightness: -46\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }],\r\n Beard: [{\r\n featureType: 'poi.business',\r\n elementType: 'labels.text',\r\n stylers: [{\r\n visibility: 'on'\r\n }, {\r\n color: '#333333'\r\n }]\r\n }],\r\n AssassianCreed: [{\r\n featureType: 'all',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels',\r\n stylers: [{\r\n visibility: 'off'\r\n }, {\r\n saturation: '-100'\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n saturation: 36\r\n }, {\r\n color: '#000000'\r\n }, {\r\n lightness: 40\r\n }, {\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.text.stroke',\r\n stylers: [{\r\n visibility: 'off'\r\n }, {\r\n color: '#000000'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'all',\r\n elementType: 'labels.icon',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 17\r\n }, {\r\n weight: 1.2\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 20\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#4d6059'\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#4d6059'\r\n }]\r\n }, {\r\n featureType: 'landscape.natural',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#4d6059'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry',\r\n stylers: [{\r\n lightness: 21\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#4d6059'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#4d6059'\r\n }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'geometry',\r\n stylers: [{\r\n visibility: 'on'\r\n }, {\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }, {\r\n lightness: 17\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }, {\r\n lightness: 29\r\n }, {\r\n weight: 0.2\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 18\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 16\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#7f8d89'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#000000'\r\n }, {\r\n lightness: 19\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#2b3638'\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{\r\n color: '#2b3638'\r\n }, {\r\n lightness: 17\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry.fill',\r\n stylers: [{\r\n color: '#24282b'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry.stroke',\r\n stylers: [{\r\n color: '#24282b'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.text',\r\n stylers: [{\r\n visibility: 'off '\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.text.fill',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.text.stroke',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels.icon',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }],\r\n SubtleGray: [{\r\n featureType: 'administrative',\r\n elementType: 'all',\r\n stylers: [{\r\n saturation: '-100'\r\n }]\r\n }, {\r\n featureType: 'administrative.province',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'all',\r\n stylers: [{\r\n saturation: -100\r\n }, {\r\n lightness: 65\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'all',\r\n stylers: [{\r\n saturation: -100\r\n }, {\r\n lightness: '50'\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'all',\r\n stylers: [{\r\n saturation: -100\r\n }]\r\n }, {\r\n featureType: 'road.highway',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'road.arterial',\r\n elementType: 'all',\r\n stylers: [{\r\n lightness: '30'\r\n }]\r\n }, {\r\n featureType: 'road.local',\r\n elementType: 'all',\r\n stylers: [{\r\n lightness: '40'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'all',\r\n stylers: [{\r\n saturation: -100\r\n }, {\r\n visibility: 'simplified'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'geometry',\r\n stylers: [{\r\n hue: '#ffff00'\r\n }, {\r\n lightness: -25\r\n }, {\r\n saturation: -97\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'labels',\r\n stylers: [{\r\n lightness: -25\r\n }, {\r\n saturation: -100\r\n }]\r\n }],\r\n Tripitty: [{\r\n featureType: 'all',\r\n elementType: 'labels',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'administrative',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'landscape',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#2c5ca5'\r\n }]\r\n }, {\r\n featureType: 'poi',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#2c5ca5'\r\n }]\r\n }, {\r\n featureType: 'road',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'transit',\r\n elementType: 'all',\r\n stylers: [{\r\n visibility: 'off'\r\n }]\r\n }, {\r\n featureType: 'water',\r\n elementType: 'all',\r\n stylers: [{\r\n color: '#193a70'\r\n }, {\r\n visibility: 'on'\r\n }]\r\n }]\r\n };\r\n $googlemaps.each(function (index, value) {\r\n var $googlemap = $(value);\r\n var latLng = $googlemap.data('latlng').split(',');\r\n var markerPopup = $googlemap.html();\r\n var icon = $googlemap.data('icon') ? $googlemap.data('icon') : 'https://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi.png';\r\n var zoom = $googlemap.data('zoom');\r\n var mapStyle = $googlemap.data('theme');\r\n var mapElement = value;\r\n\r\n if ($googlemap.data('theme') === 'streetview') {\r\n var pov = $googlemap.data('pov');\r\n var _mapOptions = {\r\n position: {\r\n lat: Number(latLng[0]),\r\n lng: Number(latLng[1])\r\n },\r\n pov: pov,\r\n zoom: zoom,\r\n gestureHandling: 'none',\r\n scrollwheel: false\r\n };\r\n return new google.maps.StreetViewPanorama(mapElement, _mapOptions);\r\n }\r\n\r\n var mapOptions = {\r\n zoom: zoom,\r\n scrollwheel: $googlemap.data('scrollwheel'),\r\n center: new google.maps.LatLng(latLng[0], latLng[1]),\r\n styles: mapStyles[mapStyle]\r\n };\r\n var map = new google.maps.Map(mapElement, mapOptions);\r\n var infowindow = new google.maps.InfoWindow({\r\n content: markerPopup\r\n });\r\n var marker = new google.maps.Marker({\r\n position: new google.maps.LatLng(latLng[0], latLng[1]),\r\n icon: icon,\r\n map: map\r\n });\r\n marker.addListener('click', function () {\r\n infowindow.open(map, marker);\r\n });\r\n return null;\r\n });\r\n }\r\n}\r\n/*-----------------------------------------------\r\n| Tabs\r\n-----------------------------------------------*/\r\n\r\n\r\nutils.$document.ready(function () {\r\n $(document).on('click', '[data-field]', function (e) {\r\n var $this = $(e.target);\r\n var inputField = $this.data('field');\r\n var $inputField = $this.parents('.input-group').children(\".\" + inputField);\r\n var $btnType = $this.data('type');\r\n var value = parseInt($inputField.val(), 10);\r\n var min = $inputField.data('min');\r\n\r\n if (min) {\r\n min = parseInt(min, 10);\r\n } else {\r\n min = 0;\r\n }\r\n\r\n if ($btnType === 'plus') {\r\n value += 1;\r\n } else if (value > min) {\r\n value -= 1;\r\n }\r\n\r\n $inputField.val(value);\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| jqvmap\r\n-----------------------------------------------*/\r\n\r\n/*-----------------------------------------------\r\n| Get color\r\n-----------------------------------------------*/\r\n\r\nvar percentColors = [{\r\n pct: 0.0,\r\n color: {\r\n r: 0xde,\r\n g: 0xec,\r\n b: 0xfc\r\n }\r\n}, {\r\n pct: 0.05,\r\n color: {\r\n r: 0x77,\r\n g: 0xb2,\r\n b: 0xf2\r\n }\r\n}, {\r\n pct: 0.1,\r\n color: {\r\n r: 0x0c,\r\n g: 0x63,\r\n b: 0xbd\r\n }\r\n}];\r\n\r\nvar getColorForPercentage = function getColorForPercentage(pct) {\r\n var i = 1;\r\n\r\n for (i; i < percentColors.length - 1; i += 1) {\r\n if (pct < percentColors[i].pct) {\r\n break;\r\n }\r\n }\r\n\r\n var lower = percentColors[i - 1];\r\n var upper = percentColors[i];\r\n var range = upper.pct - lower.pct;\r\n var rangePct = (pct - lower.pct) / range;\r\n var pctLower = 1 - rangePct;\r\n var pctUpper = rangePct;\r\n var color = {\r\n r: Math.floor(lower.color.r * pctLower + upper.color.r * pctUpper),\r\n g: Math.floor(lower.color.g * pctLower + upper.color.g * pctUpper),\r\n b: Math.floor(lower.color.b * pctLower + upper.color.b * pctUpper)\r\n };\r\n return \"rgb(\" + color.r + \", \" + color.g + \", \" + color.b + \")\";\r\n};\r\n\r\nutils.$document.ready(function () {\r\n var getA = function getA(n, interval, initial) {\r\n if (interval === void 0) {\r\n interval = 1;\r\n }\r\n\r\n if (initial === void 0) {\r\n initial = 1;\r\n }\r\n\r\n return initial + (n - 1) * interval;\r\n };\r\n\r\n var getCommonDifference = function getCommonDifference(S, a, n) {\r\n return 2 * (S - a * n) / (n * (n - 1));\r\n };\r\n\r\n var interval = getCommonDifference(100, 1, 20);\r\n var countries = {\r\n us: Math.floor(getA(20, interval) * 1618),\r\n cn: Math.floor(getA(19, interval) * 1618),\r\n jp: Math.floor(getA(18, interval) * 1618),\r\n de: Math.floor(getA(17, interval) * 1618),\r\n gb: Math.floor(getA(16, interval) * 1618),\r\n fr: Math.floor(getA(15, interval) * 1618),\r\n in: Math.floor(getA(14, interval) * 1618),\r\n it: Math.floor(getA(13, interval) * 1618),\r\n br: Math.floor(getA(12, interval) * 1618),\r\n ca: Math.floor(getA(11, interval) * 1618),\r\n ru: Math.floor(getA(10, interval) * 1618),\r\n kr: Math.floor(getA(9, interval) * 1618),\r\n es: Math.floor(getA(8, interval) * 1618),\r\n au: Math.floor(getA(7, interval) * 1618),\r\n mx: Math.floor(getA(6, interval) * 1618),\r\n id: Math.floor(getA(5, interval) * 1618),\r\n nl: Math.floor(getA(4, interval) * 1618),\r\n tr: Math.floor(getA(3, interval) * 1618),\r\n sa: Math.floor(getA(2, interval) * 1618),\r\n ch: Math.floor(getA(1, interval) * 1618),\r\n za: Math.floor(getA(14, interval) * 1618)\r\n };\r\n\r\n var getSum = function getSum(array) {\r\n return array.reduce(function (a, b) {\r\n return a + b;\r\n }, 0);\r\n };\r\n\r\n var getColors = function getColors() {\r\n var colors = {};\r\n var countriesValues = Object.keys(countries).map(function (country) {\r\n return countries[country];\r\n });\r\n Object.keys(countries).map(function (country) {\r\n var ratio = countries[country] / getSum(countriesValues);\r\n colors[country] = getColorForPercentage(ratio);\r\n return false;\r\n });\r\n return colors;\r\n };\r\n /*-----------------------------------------------\r\n | Map size\r\n -----------------------------------------------*/\r\n\r\n\r\n var setMapSize = function setMapSize(map) {\r\n var containerWidth = map.parent().width();\r\n var containerHeight = containerWidth / 1.618;\r\n map.css({\r\n width: containerWidth,\r\n height: containerHeight\r\n });\r\n };\r\n\r\n var vmaps = $('.vmap');\r\n vmaps.length && vmaps.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $.extend({\r\n map: 'world_en',\r\n backgroundColor: '#ffffff',\r\n borderColor: '#d8e2ef',\r\n borderOpacity: 1,\r\n borderWidth: 1,\r\n color: '#d8e2ef',\r\n colors: getColors(),\r\n onLabelShow: function onLabelShow(event, label, code) {\r\n /* eslint-disable */\r\n if (Object.keys(countries).indexOf(code) >= 0) {\r\n label[0].innerHTML = \"\" + label[0].innerHTML + \"
Active user: \" + countries[code];\r\n } else {\r\n label[0].innerHTML = \"\" + label[0].innerHTML + \"
Active user: 0\";\r\n }\r\n /* eslint-enable */\r\n\r\n },\r\n enableZoom: false,\r\n hoverColor: '#39afd1',\r\n hoverOpacity: 0.5,\r\n normalizeFunction: 'linear',\r\n selectedColor: '#e63757',\r\n selectedRegions: null,\r\n showTooltip: true,\r\n onResize: function onResize() {\r\n setMapSize($this);\r\n }\r\n }, $this.data('options'));\r\n setMapSize($this);\r\n $this.vectorMap(options);\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Lightbox\r\n-----------------------------------------------*/\r\n\r\n/*\r\n global lightbox\r\n*/\r\n\r\nutils.$document.ready(function () {\r\n if ($('[data-lightbox]').length) {\r\n lightbox.option({\r\n resizeDuration: 400,\r\n wrapAround: true,\r\n fadeDuration: 300,\r\n imageFadeDuration: 300\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Owl Carousel\r\n-----------------------------------------------*/\r\n\r\nvar $carousel = $('.owl-carousel');\r\nutils.$document.ready(function () {\r\n if ($carousel.length) {\r\n var Selector = {\r\n ALL_TIMELINE: '*[data-zanim-timeline]',\r\n ACTIVE_ITEM: '.owl-item.active'\r\n };\r\n var owlZanim = {\r\n zanimTimeline: function zanimTimeline($el) {\r\n return $el.find(Selector.ALL_TIMELINE);\r\n },\r\n play: function play($el) {\r\n if (this.zanimTimeline($el).length === 0) return;\r\n $el.find(Selector.ACTIVE_ITEM + \" > \" + Selector.ALL_TIMELINE).zanimation(function (animation) {\r\n animation.play();\r\n });\r\n },\r\n kill: function kill($el) {\r\n if (this.zanimTimeline($el).length === 0) return;\r\n this.zanimTimeline($el).zanimation(function (animation) {\r\n animation.kill();\r\n });\r\n }\r\n };\r\n $carousel.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $this.data('options') || {};\r\n utils.isRTL() && (options.rtl = true);\r\n options.navText || (options.navText = ['', '']);\r\n options.touchDrag = true;\r\n $this.owlCarousel($.extend(options || {}, {\r\n onInitialized: function onInitialized(event) {\r\n owlZanim.play($(event.target));\r\n },\r\n onTranslate: function onTranslate(event) {\r\n owlZanim.kill($(event.target));\r\n },\r\n onTranslated: function onTranslated(event) {\r\n owlZanim.play($(event.target));\r\n }\r\n }));\r\n });\r\n }\r\n\r\n var $controllers = $('[data-owl-carousel-controller]');\r\n\r\n if ($controllers.length) {\r\n $controllers.each(function (index, value) {\r\n var $this = $(value);\r\n var $thumbs = $($this.data('owl-carousel-controller'));\r\n $thumbs.find('.owl-item:first-child').addClass('current');\r\n $thumbs.on('click', '.item', function (e) {\r\n var thumbIndex = $(e.target).parents('.owl-item').index();\r\n $('.owl-item').removeClass('current');\r\n $(e.target).parents('.owl-item').addClass('current');\r\n $this.trigger('to.owl.carousel', thumbIndex, 500);\r\n });\r\n $this.on('changed.owl.carousel', function (e) {\r\n var itemIndex = e.item.index;\r\n var item = itemIndex + 1;\r\n $('.owl-item').removeClass('current');\r\n $thumbs.find(\".owl-item:nth-child(\" + item + \")\").addClass('current');\r\n $thumbs.trigger('to.owl.carousel', itemIndex, 500);\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Inline Player [plyr]\r\n-----------------------------------------------*/\r\n\r\n/*\r\n global Plyr\r\n*/\r\n\r\nutils.$document.ready(function () {\r\n var $players = $('.player');\r\n\r\n if ($players.length) {\r\n $players.each(function (index, value) {\r\n return new Plyr($(value), {\r\n captions: {\r\n active: true\r\n }\r\n });\r\n });\r\n }\r\n\r\n return false;\r\n});\r\n/*\r\n global ProgressBar\r\n*/\r\n\r\nutils.$document.ready(function () {\r\n // progressbar.js@1.0.0 version is used\r\n // Docs: http://progressbarjs.readthedocs.org/en/1.0.0/\r\n\r\n /*-----------------------------------------------\r\n | Progress Circle\r\n -----------------------------------------------*/\r\n var progresCircle = $('.progress-circle');\r\n\r\n if (progresCircle.length) {\r\n progresCircle.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $this.data('options');\r\n var bar = new ProgressBar.Circle(value, {\r\n color: '#aaa',\r\n // This has to be the same size as the maximum width to\r\n // prevent clipping\r\n strokeWidth: 2,\r\n trailWidth: 2,\r\n easing: 'easeInOut',\r\n duration: 3000,\r\n svgStyle: {\r\n 'stroke-linecap': 'round',\r\n display: 'block',\r\n width: '100%'\r\n },\r\n text: {\r\n autoStyleContainer: false\r\n },\r\n from: {\r\n color: '#aaa',\r\n width: 2\r\n },\r\n to: {\r\n color: '#333',\r\n width: 2\r\n },\r\n // Set default step function for all animate calls\r\n step: function step(state, circle) {\r\n circle.path.setAttribute('stroke', state.color);\r\n circle.path.setAttribute('stroke-width', state.width);\r\n var percentage = Math.round(circle.value() * 100);\r\n circle.setText(\"\" + percentage + \"% \" + options.text + \"\");\r\n }\r\n });\r\n var playProgressTriggered = false;\r\n\r\n var progressCircleAnimation = function progressCircleAnimation() {\r\n if (!playProgressTriggered) {\r\n if (utils.isScrolledIntoView(value) || utils.nua.match(/puppeteer/i)) {\r\n bar.animate(options.progress / 100);\r\n playProgressTriggered = true;\r\n }\r\n }\r\n\r\n return playProgressTriggered;\r\n };\r\n\r\n progressCircleAnimation();\r\n utils.$window.scroll(function () {\r\n progressCircleAnimation();\r\n });\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Progress Line\r\n -----------------------------------------------*/\r\n\r\n\r\n var progressLine = $('.progress-line');\r\n\r\n if (progressLine.length) {\r\n progressLine.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $this.data('options');\r\n var bar = new ProgressBar.Line(value, {\r\n strokeWidth: 1,\r\n easing: 'easeInOut',\r\n duration: 3000,\r\n color: '#333',\r\n trailColor: '#eee',\r\n trailWidth: 1,\r\n svgStyle: {\r\n width: '100%',\r\n height: '0.25rem',\r\n 'stroke-linecap': 'round',\r\n 'border-radius': '0.125rem'\r\n },\r\n text: {\r\n style: {\r\n transform: null\r\n },\r\n autoStyleContainer: false\r\n },\r\n from: {\r\n color: '#aaa'\r\n },\r\n to: {\r\n color: '#111'\r\n },\r\n step: function step(state, line) {\r\n line.setText(\"\" + Math.round(line.value() * 100) + \"% \" + options.text + \"\");\r\n }\r\n });\r\n var playProgressTriggered = false;\r\n\r\n var progressLineAnimation = function progressLineAnimation() {\r\n if (!playProgressTriggered) {\r\n if (utils.isScrolledIntoView(value) || utils.nua.match(/puppeteer/i)) {\r\n bar.animate(options.progress / 100);\r\n playProgressTriggered = true;\r\n }\r\n }\r\n\r\n return playProgressTriggered;\r\n };\r\n\r\n progressLineAnimation();\r\n utils.$window.scroll(function () {\r\n progressLineAnimation();\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Toastr\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var ratings = $('.raty');\r\n\r\n if (ratings.length) {\r\n ratings.each(function (index, value) {\r\n var $this = $(value);\r\n var options = $.extend({\r\n starHalf: 'star-half-png text-warning',\r\n starOff: 'star-off-png text-300',\r\n starOn: 'star-on-png text-warning',\r\n starType: 'span',\r\n size: 30\r\n }, $this.data('options'));\r\n $(value).raty(options);\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Remodal [video lightbox]\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $videoModals = $('.video-modal');\r\n\r\n if ($videoModals.length) {\r\n utils.$body.after(\"\\n
\\n \\n
\\n
\\n
\\n
\\n \");\r\n var $videoModal = $('#videoModal').remodal();\r\n var $videoModalIframeWrapper = $('#videoModalIframeWrapper');\r\n $videoModals.each(function (index, value) {\r\n $(value).on('click', function (e) {\r\n e.preventDefault();\r\n var $this = $(e.currentTarget);\r\n var ytId = $this.attr('href').split('/');\r\n var start = $this.data('start');\r\n var end = $this.data('end');\r\n\r\n if (ytId[2] === 'www.youtube.com') {\r\n $videoModalIframeWrapper.html(\"\");\r\n } else if (ytId[2] === 'vimeo.com') {\r\n $videoModalIframeWrapper.html(\"\");\r\n }\r\n\r\n $videoModal.open();\r\n });\r\n });\r\n utils.$document.on('closed', '.remodal', function (e) {\r\n var $this = $(e.currentTarget);\r\n\r\n if ($this.attr('id') === 'videoModal') {\r\n $videoModalIframeWrapper.html('');\r\n }\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Sementic UI\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var uiDropdown = $('.ui.dropdown');\r\n var uiAccordion = $('.ui.accordion');\r\n /*-----------------------------------------------\r\n | Dropdown\r\n -----------------------------------------------*/\r\n\r\n if (uiDropdown.length) {\r\n uiDropdown.dropdown();\r\n }\r\n /*-----------------------------------------------\r\n | Accordion\r\n -----------------------------------------------*/\r\n\r\n\r\n if (uiAccordion.length) {\r\n uiAccordion.each(function (index, value) {\r\n var $this = $(value);\r\n $this.accordion($.extend({\r\n exclusive: false,\r\n selector: {\r\n content: '.accordion-content'\r\n }\r\n }, $this.data('options') || {}));\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Smooth Scrollbar\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var scrollbars = document.querySelectorAll('[data-scrollbar]');\r\n\r\n if (scrollbars.length) {\r\n $.each(scrollbars, function (item, value) {\r\n var $this = $(value);\r\n\r\n var _$this$data = $this.data('scrollbar'),\r\n from = _$this$data.from;\r\n\r\n window.Scrollbar.init(value);\r\n\r\n if (from === 'bottom') {\r\n var scrollContent = window.Scrollbar.get(value);\r\n scrollContent.setPosition(0, scrollContent.limit.y);\r\n }\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| Tabs\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $fancyTabs = $('.fancy-tab');\r\n\r\n if ($fancyTabs.length) {\r\n var Selector = {\r\n TAB_BAR: '.nav-bar',\r\n TAB_BAR_ITEM: '.nav-bar-item',\r\n TAB_CONTENTS: '.tab-contents'\r\n };\r\n var ClassName = {\r\n ACTIVE: 'active',\r\n TRANSITION_REVERSE: 'transition-reverse',\r\n TAB_INDICATOR: 'tab-indicator'\r\n };\r\n /*-----------------------------------------------\r\n | Function for active tab indicator change\r\n -----------------------------------------------*/\r\n\r\n var updateIncicator = function updateIncicator($indicator, $tabs, $tabnavCurrentItem) {\r\n var _$tabnavCurrentItem$p = $tabnavCurrentItem.position(),\r\n left = _$tabnavCurrentItem$p.left;\r\n\r\n var right = $tabs.children(Selector.TAB_BAR).outerWidth() - (left + $tabnavCurrentItem.outerWidth());\r\n $indicator.css({\r\n left: left,\r\n right: right\r\n });\r\n };\r\n\r\n $fancyTabs.each(function (index, value) {\r\n var $tabs = $(value);\r\n var $navBar = $tabs.children(Selector.TAB_BAR);\r\n var $tabnavCurrentItem = $navBar.children(Selector.TAB_BAR_ITEM + \".\" + ClassName.ACTIVE);\r\n $navBar.append(\"\\n
\\n \");\r\n var $indicator = $navBar.children(\".\" + ClassName.TAB_INDICATOR);\r\n var $preIndex = $tabnavCurrentItem.index();\r\n updateIncicator($indicator, $tabs, $tabnavCurrentItem);\r\n $navBar.children(Selector.TAB_BAR_ITEM).click(function (e) {\r\n $tabnavCurrentItem = $(e.currentTarget);\r\n var $currentIndex = $tabnavCurrentItem.index();\r\n var $tabContent = $tabs.children(Selector.TAB_CONTENTS).children().eq($currentIndex);\r\n $tabnavCurrentItem.siblings().removeClass(ClassName.ACTIVE);\r\n $tabnavCurrentItem.addClass(ClassName.ACTIVE);\r\n $tabContent.siblings().removeClass(ClassName.ACTIVE);\r\n $tabContent.addClass(ClassName.ACTIVE);\r\n /*-----------------------------------------------\r\n | Indicator Transition\r\n -----------------------------------------------*/\r\n\r\n updateIncicator($indicator, $tabs, $tabnavCurrentItem);\r\n\r\n if ($currentIndex - $preIndex <= 0) {\r\n $indicator.addClass(ClassName.TRANSITION_REVERSE);\r\n } else {\r\n $indicator.removeClass(ClassName.TRANSITION_REVERSE);\r\n }\r\n\r\n $preIndex = $currentIndex;\r\n });\r\n utils.$window.on('resize', function () {\r\n updateIncicator($indicator, $tabs, $tabnavCurrentItem);\r\n });\r\n });\r\n }\r\n /*-----------------------------------------------\r\n | Product Review Tab\r\n -----------------------------------------------*/\r\n\r\n\r\n var $review = $('[data-tab-target]');\r\n $review.click(function () {\r\n var $this = $(this);\r\n var $reviewTab = $($this.data('tab-target'));\r\n $reviewTab.trigger('click');\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| CKEditor | WYSIWYG\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var tinymces = $('.tinymce');\r\n\r\n if (tinymces.length) {\r\n window.tinymce.init({\r\n selector: '.tinymce',\r\n height: '50vh',\r\n menubar: false,\r\n mobile: {\r\n theme: 'mobile',\r\n toolbar: ['undo', 'bold']\r\n },\r\n statusbar: false,\r\n plugins: 'link,image,lists,table,media',\r\n toolbar: 'styleselect | bold italic link bullist numlist image blockquote table media undo redo'\r\n });\r\n }\r\n\r\n var toggle = $('#progress-toggle-animation');\r\n toggle.on('click', function () {\r\n return $('#progress-toggle').toggleClass('progress-bar-animated');\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Tabs\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n $('.toast').toast();\r\n});\r\n/*-----------------------------------------------\r\n| Toastr\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var $notifications = $('[data-notification]');\r\n $notifications.each(function (index, value) {\r\n var _window2 = window,\r\n toastr = _window2.toastr;\r\n var $this = $(value);\r\n var config = $this.data('notification');\r\n var defaultOptions = {\r\n closeButton: true,\r\n newestOnTop: false,\r\n positionClass: 'toast-bottom-right'\r\n };\r\n $this.on('click', function () {\r\n var type = config.type,\r\n title = config.title,\r\n message = config.message;\r\n var mergedOptions = $.extend(defaultOptions, config);\r\n toastr.options.positionClass !== mergedOptions.positionClass && toastr.remove();\r\n toastr.options = mergedOptions;\r\n\r\n switch (type) {\r\n case 'success':\r\n toastr.success(message, title);\r\n break;\r\n\r\n case 'warning':\r\n toastr.warning(message, title);\r\n break;\r\n\r\n case 'error':\r\n toastr.error(message, title);\r\n break;\r\n\r\n default:\r\n toastr.info(message, title);\r\n break;\r\n }\r\n });\r\n });\r\n});\r\n/*-----------------------------------------------\r\n| Typed Text\r\n-----------------------------------------------*/\r\n\r\n/*\r\n global Typed\r\n */\r\n\r\nutils.$document.ready(function () {\r\n var typedText = $('.typed-text');\r\n\r\n if (typedText.length) {\r\n typedText.each(function (index, value) {\r\n return new Typed(value, {\r\n strings: $(value).data('typed-text'),\r\n typeSpeed: 100,\r\n loop: true,\r\n backDelay: 1500\r\n });\r\n });\r\n }\r\n});\r\n/*-----------------------------------------------\r\n| YTPlayer\r\n-----------------------------------------------*/\r\n\r\nutils.$document.ready(function () {\r\n var Selector = {\r\n BG_YOUTUBE: '.bg-youtube',\r\n BG_HOLDER: '.bg-holder'\r\n };\r\n var DATA_KEY = {\r\n PROPERTY: 'property'\r\n };\r\n var $youtubeBackground = $(Selector.BG_YOUTUBE);\r\n\r\n if ($youtubeBackground.length) {\r\n $youtubeBackground.each(function (index, value) {\r\n var $this = $(value);\r\n $this.data(DATA_KEY.PROPERTY, $.extend($this.data(DATA_KEY.PROPERTY), {\r\n showControls: false,\r\n loop: true,\r\n autoPlay: true,\r\n mute: true,\r\n containment: $this.parent(Selector.BG_HOLDER)\r\n }));\r\n $this.YTPlayer();\r\n });\r\n }\r\n});","/* eslint-disable */\r\nimport $ from 'jquery';\r\n\r\nwindow.jQuery = $;\r\nwindow.$ = $;\r\nglobal.jQuery = $;\r\n\r\n/*\r\n Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net\r\n*/\r\n// Generated by CoffeeScript 1.9.2\r\n\r\n/**\r\n@license Sticky-kit v1.1.2 | WTFPL | Leaf Corcoran 2015 | http://leafo.net\r\n */\r\n\r\n(function() {\r\n var $, win;\r\n \r\n $ = window.jQuery;\r\n \r\n win = $(window);\r\n \r\n $.fn.stick_in_parent = function(opts) {\r\n var doc, elm, enable_bottoming, fn, i, inner_scrolling, len, manual_spacer, offset_top, parent_selector, recalc_every, sticky_class;\r\n if (opts == null) {\r\n opts = {};\r\n }\r\n sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming;\r\n if (offset_top == null) {\r\n offset_top = 0;\r\n }\r\n if (parent_selector == null) {\r\n parent_selector = void 0;\r\n }\r\n if (inner_scrolling == null) {\r\n inner_scrolling = true;\r\n }\r\n if (sticky_class == null) {\r\n sticky_class = \"is_stuck\";\r\n }\r\n doc = $(document);\r\n if (enable_bottoming == null) {\r\n enable_bottoming = true;\r\n }\r\n fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) {\r\n var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick;\r\n if (elm.data(\"sticky_kit\")) {\r\n return;\r\n }\r\n elm.data(\"sticky_kit\", true);\r\n last_scroll_height = doc.height();\r\n parent = elm.parent();\r\n if (parent_selector != null) {\r\n parent = parent.closest(parent_selector);\r\n }\r\n if (!parent.length) {\r\n throw \"failed to find stick parent\";\r\n }\r\n fixed = false;\r\n bottomed = false;\r\n spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $(\"
\");\r\n if (spacer) {\r\n spacer.css('position', elm.css('position'));\r\n }\r\n recalc = function() {\r\n var border_top, padding_top, restore;\r\n if (detached) {\r\n return;\r\n }\r\n last_scroll_height = doc.height();\r\n border_top = parseInt(parent.css(\"border-top-width\"), 10);\r\n padding_top = parseInt(parent.css(\"padding-top\"), 10);\r\n padding_bottom = parseInt(parent.css(\"padding-bottom\"), 10);\r\n parent_top = parent.offset().top + border_top + padding_top;\r\n parent_height = parent.height();\r\n if (fixed) {\r\n fixed = false;\r\n bottomed = false;\r\n if (manual_spacer == null) {\r\n elm.insertAfter(spacer);\r\n spacer.detach();\r\n }\r\n elm.css({\r\n position: \"\",\r\n top: \"\",\r\n width: \"\",\r\n bottom: \"\"\r\n }).removeClass(sticky_class);\r\n restore = true;\r\n }\r\n top = elm.offset().top - (parseInt(elm.css(\"margin-top\"), 10) || 0) - offset_top;\r\n height = elm.outerHeight(true);\r\n el_float = elm.css(\"float\");\r\n if (spacer) {\r\n spacer.css({\r\n width: elm.outerWidth(true),\r\n height: height,\r\n display: elm.css(\"display\"),\r\n \"vertical-align\": elm.css(\"vertical-align\"),\r\n \"float\": el_float\r\n });\r\n }\r\n if (restore) {\r\n return tick();\r\n }\r\n };\r\n recalc();\r\n if (height === parent_height) {\r\n return;\r\n }\r\n last_pos = void 0;\r\n offset = offset_top;\r\n recalc_counter = recalc_every;\r\n tick = function() {\r\n var css, delta, recalced, scroll, will_bottom, win_height;\r\n if (detached) {\r\n return;\r\n }\r\n recalced = false;\r\n if (recalc_counter != null) {\r\n recalc_counter -= 1;\r\n if (recalc_counter <= 0) {\r\n recalc_counter = recalc_every;\r\n recalc();\r\n recalced = true;\r\n }\r\n }\r\n if (!recalced && doc.height() !== last_scroll_height) {\r\n recalc();\r\n recalced = true;\r\n }\r\n scroll = win.scrollTop();\r\n if (last_pos != null) {\r\n delta = scroll - last_pos;\r\n }\r\n last_pos = scroll;\r\n if (fixed) {\r\n if (enable_bottoming) {\r\n will_bottom = scroll + height + offset > parent_height + parent_top;\r\n if (bottomed && !will_bottom) {\r\n bottomed = false;\r\n elm.css({\r\n position: \"fixed\",\r\n bottom: \"\",\r\n top: offset\r\n }).trigger(\"sticky_kit:unbottom\");\r\n }\r\n }\r\n if (scroll < top) {\r\n fixed = false;\r\n offset = offset_top;\r\n if (manual_spacer == null) {\r\n if (el_float === \"left\" || el_float === \"right\") {\r\n elm.insertAfter(spacer);\r\n }\r\n spacer.detach();\r\n }\r\n css = {\r\n position: \"\",\r\n width: \"\",\r\n top: \"\"\r\n };\r\n elm.css(css).removeClass(sticky_class).trigger(\"sticky_kit:unstick\");\r\n }\r\n if (inner_scrolling) {\r\n win_height = win.height();\r\n if (height + offset_top > win_height) {\r\n if (!bottomed) {\r\n offset -= delta;\r\n offset = Math.max(win_height - height, offset);\r\n offset = Math.min(offset_top, offset);\r\n if (fixed) {\r\n elm.css({\r\n top: offset + \"px\"\r\n });\r\n }\r\n }\r\n }\r\n }\r\n } else {\r\n if (scroll > top) {\r\n fixed = true;\r\n css = {\r\n position: \"fixed\",\r\n top: offset\r\n };\r\n css.width = elm.css(\"box-sizing\") === \"border-box\" ? elm.outerWidth() + \"px\" : elm.width() + \"px\";\r\n elm.css(css).addClass(sticky_class);\r\n if (manual_spacer == null) {\r\n elm.after(spacer);\r\n if (el_float === \"left\" || el_float === \"right\") {\r\n spacer.append(elm);\r\n }\r\n }\r\n elm.trigger(\"sticky_kit:stick\");\r\n }\r\n }\r\n if (fixed && enable_bottoming) {\r\n if (will_bottom == null) {\r\n will_bottom = scroll + height + offset > parent_height + parent_top;\r\n }\r\n if (!bottomed && will_bottom) {\r\n bottomed = true;\r\n if (parent.css(\"position\") === \"static\") {\r\n parent.css({\r\n position: \"relative\"\r\n });\r\n }\r\n return elm.css({\r\n position: \"absolute\",\r\n bottom: padding_bottom,\r\n top: \"auto\"\r\n }).trigger(\"sticky_kit:bottom\");\r\n }\r\n }\r\n };\r\n recalc_and_tick = function() {\r\n recalc();\r\n return tick();\r\n };\r\n detach = function() {\r\n detached = true;\r\n win.off(\"touchmove\", tick);\r\n win.off(\"scroll\", tick);\r\n win.off(\"resize\", recalc_and_tick);\r\n $(document.body).off(\"sticky_kit:recalc\", recalc_and_tick);\r\n elm.off(\"sticky_kit:detach\", detach);\r\n elm.removeData(\"sticky_kit\");\r\n elm.css({\r\n position: \"\",\r\n bottom: \"\",\r\n top: \"\",\r\n width: \"\"\r\n });\r\n parent.position(\"position\", \"\");\r\n if (fixed) {\r\n if (manual_spacer == null) {\r\n if (el_float === \"left\" || el_float === \"right\") {\r\n elm.insertAfter(spacer);\r\n }\r\n spacer.remove();\r\n }\r\n return elm.removeClass(sticky_class);\r\n }\r\n };\r\n win.on(\"touchmove\", tick);\r\n win.on(\"scroll\", tick);\r\n win.on(\"resize\", recalc_and_tick);\r\n $(document.body).on(\"sticky_kit:recalc\", recalc_and_tick);\r\n elm.on(\"sticky_kit:detach\", detach);\r\n return setTimeout(tick, 0);\r\n };\r\n for (i = 0, len = this.length; i < len; i++) {\r\n elm = this[i];\r\n fn($(elm));\r\n }\r\n return this;\r\n };\r\n \r\n }).call(this);\r\n ","function appHeight() {\r\n const doc = document.documentElement;\r\n doc.style.setProperty('--vh', (window.innerHeight * 0.01) + 'px');\r\n}\r\n\r\nwindow.addEventListener('resize', appHeight);\r\nappHeight();\r\n","import { combineReducers } from 'redux';\r\nimport { connectRouter } from 'connected-react-router';\r\n\r\nconst createRootReducer = (history) => combineReducers({\r\n router: connectRouter(history),\r\n});\r\n\r\nexport default createRootReducer;\r\n","import { createBrowserHistory } from 'history';\r\nimport { applyMiddleware, compose, createStore } from 'redux';\r\nimport { routerMiddleware } from 'connected-react-router';\r\nimport createRootReducer from './reducers';\r\n\r\nexport const history = createBrowserHistory();\r\n\r\nexport default function configureStore(initialState) {\r\n return createStore(\r\n createRootReducer(history),\r\n initialState,\r\n compose(\r\n applyMiddleware(\r\n routerMiddleware(history),\r\n ),\r\n ),\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\n\r\nconst LoginLayoutRoute = ({ component, ...rest }) => {\r\n const Component = component;\r\n\r\n return (\r\n (\r\n
\r\n \r\n
\r\n )}\r\n />\r\n );\r\n};\r\n\r\nexport default LoginLayoutRoute;\r\n","export default function authHeader() {\r\n const json = sessionStorage.getItem('jwt');\r\n if (json !== 'undefined') {\r\n const token = JSON.parse(json);\r\n if (token.length > 0) {\r\n return { Authorization: `Bearer ${token}` };\r\n }\r\n }\r\n\r\n return {};\r\n}\r\n","import { toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\nimport authHeader from './authHeader';\r\n\r\nexport default function handleResponse(response, showToast = true) {\r\n return response.text().then((text) => {\r\n const data = text && JSON.parse(text);\r\n\r\n if (!response.ok) {\r\n if (showToast && data.errorMessage && data.hasError) {\r\n toast.error(data.errorMessage);\r\n }\r\n\r\n const token = authHeader();\r\n if (response.status === 401 && Object.keys(token).length > 0) {\r\n localStorage.removeItem('jwt');\r\n window.location.reload(true);\r\n }\r\n\r\n return Promise.reject((data && data.errorMessage));\r\n }\r\n\r\n if (showToast) {\r\n if (data.hasError && data.errorMessage) {\r\n toast.error(data.errorMessage);\r\n } else if (!data.hasError && data.message) {\r\n toast.success(data.message);\r\n }\r\n }\r\n\r\n return data;\r\n });\r\n}\r\n","import handleResponse from './handleApiResponse';\r\n\r\n// Make an anonymous request to the API. Generally this is used\r\n// when logging in/retriving non-password protected data.\r\nexport async function anonymousRequest(requestType, endpoint, body = '') {\r\n const request = {\r\n method: requestType,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n };\r\n\r\n if (body.length > 0) {\r\n request.body = body;\r\n }\r\n\r\n return handleResponse(await fetch(endpoint, request), false);\r\n}\r\n\r\nexport async function anonymousRESTRequest(requestType, endpoint, body = '') {\r\n const request = {\r\n method: requestType,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n };\r\n\r\n if (body.length > 0) {\r\n request.body = body;\r\n }\r\n\r\n return fetch(endpoint, request);\r\n}\r\n","import authHeader from './authHeader';\r\nimport handleResponse from './handleApiResponse';\r\n\r\n// / Make a request to the API with the added auth header.\r\nexport async function authenticatedRequest(requestType, endpoint, body = '') {\r\n const request = {\r\n method: requestType,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n ...authHeader(),\r\n },\r\n };\r\n\r\n if (body.length > 0) {\r\n request.body = body;\r\n }\r\n\r\n return handleResponse(await fetch(endpoint, request));\r\n}\r\n\r\n// use above.\r\nexport async function authenticatedRequestBasic(requestType, endpoint, body = '') {\r\n const request = {\r\n method: requestType,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n ...authHeader(),\r\n },\r\n };\r\n\r\n if (body.length > 0) {\r\n request.body = body;\r\n }\r\n\r\n return fetch(endpoint, request);\r\n}\r\n","import { anonymousRequest } from '../helpers/anonymousRequest';\r\nimport { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/User`;\r\n\r\nasync function getUsers(showArchived) {\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function getMessagingUsers() {\r\n return authenticatedRequest('GET', URL + '/AvailableToMessage');\r\n}\r\n\r\nasync function findUser(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function deleteUser(id) {\r\n return authenticatedRequest('DELETE', URL + '/Archive/' + id);\r\n}\r\n\r\nasync function restoreUser(id) {\r\n return authenticatedRequest('POST', URL + '/Restore/' + id);\r\n}\r\n\r\nasync function updateUser(user) {\r\n return authenticatedRequest('PUT', URL + '/' + user.id, JSON.stringify(user));\r\n}\r\n\r\nasync function addUser(user) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(user));\r\n}\r\n\r\nasync function getGuardiansForFamily(familyId) {\r\n return authenticatedRequest('GET', URL + '/Family/' + familyId);\r\n}\r\n\r\nasync function getSiteAdmins() {\r\n return authenticatedRequest('GET', URL + '/SiteAdmins');\r\n}\r\n\r\nasync function getCaregivers() {\r\n return authenticatedRequest('GET', URL + '/Caregivers');\r\n}\r\n\r\nasync function getCaregiversForClassroom(classroomId) {\r\n return authenticatedRequest('GET', URL + '/Caregivers/' + classroomId);\r\n}\r\n\r\nasync function getGuardians() {\r\n return authenticatedRequest('GET', URL + '/Guardians');\r\n}\r\n\r\nasync function getCurrentUser() {\r\n return authenticatedRequest('GET', URL + '/CurrentUser');\r\n}\r\n\r\nasync function changePassword(id, currentPassword, newPassword) {\r\n return authenticatedRequest('POST', URL + '/ChangePassword', JSON.stringify({\r\n id,\r\n currentPassword,\r\n newPassword,\r\n }));\r\n}\r\n\r\nasync function setPassword(token, email, password) {\r\n return anonymousRequest('POST', URL + '/SetPassword', JSON.stringify({\r\n token,\r\n email,\r\n password,\r\n }));\r\n}\r\n\r\nasync function resetPassword(token, email, password) {\r\n return anonymousRequest('POST', URL + '/ResetPassword', JSON.stringify({\r\n token,\r\n email,\r\n password,\r\n }));\r\n}\r\n\r\nasync function resendActivation(id) {\r\n return authenticatedRequest('POST', URL + '/Resend/' + id);\r\n}\r\n\r\nconst userService = {\r\n getUsers,\r\n findUser,\r\n deleteUser,\r\n restoreUser,\r\n updateUser,\r\n addUser,\r\n getGuardiansForFamily,\r\n getSiteAdmins,\r\n getCaregivers,\r\n getCaregiversForClassroom,\r\n getGuardians,\r\n getCurrentUser,\r\n changePassword,\r\n setPassword,\r\n resetPassword,\r\n getMessagingUsers,\r\n resendActivation,\r\n};\r\n\r\nexport default userService;\r\n","import React, { useState } from 'react';\r\nimport userService from '../services/userService';\r\n\r\nexport const UserContext = React.createContext({\r\n user: {},\r\n setUser: () => { },\r\n});\r\n\r\nexport const UserContextProvider = (props) => {\r\n const { children } = props;\r\n const token = sessionStorage.getItem('jwt');\r\n\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [state, setState] = useState({\r\n user: {},\r\n\r\n // eslint-disable-next-line no-use-before-define\r\n setUser,\r\n });\r\n\r\n function setUser(user) {\r\n setState({ ...state, user });\r\n }\r\n\r\n const loadUser = async () => {\r\n await userService.getCurrentUser()\r\n .then(\r\n (response) => {\r\n setUser(response.model);\r\n setIsLoading(false);\r\n },\r\n () => { },\r\n );\r\n };\r\n\r\n if (token !== null && typeof state.user.id === 'undefined' && !isLoading) {\r\n setIsLoading(true);\r\n loadUser();\r\n }\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n","const userRules = {\r\n Guardian: {\r\n static: [\r\n 'classrooms:visit',\r\n 'classrooms:view-overview',\r\n 'classrooms:view-notes',\r\n 'classrooms:view-events',\r\n 'classrooms:view-menus',\r\n 'classrooms:view-photos',\r\n\r\n 'children:visit',\r\n 'children:edit',\r\n\r\n 'families:visit',\r\n 'families:edit',\r\n 'families:view-notes',\r\n\r\n 'users:visit',\r\n 'users:profile-edit',\r\n\r\n 'messages:visit',\r\n 'messages:compose',\r\n 'messages:sendToClassroom',\r\n\r\n 'communications:read',\r\n ],\r\n },\r\n Caregiver: {\r\n static: [\r\n 'classrooms:visit',\r\n 'classrooms:view-overview',\r\n 'classrooms:view-notes',\r\n 'classrooms:edit-notes',\r\n 'classrooms:view-events',\r\n 'classrooms:edit-events',\r\n 'classrooms:view-menus',\r\n 'classrooms:edit-menus',\r\n 'classrooms:view-photos',\r\n 'classrooms:edit-photos',\r\n\r\n 'children:visit',\r\n\r\n 'families:visit',\r\n 'families:view-notes',\r\n\r\n 'users:visit',\r\n 'users:profile-edit',\r\n\r\n 'communications:read',\r\n\r\n 'messages:visit',\r\n 'messages:compose',\r\n 'messages:sendToFamily',\r\n ],\r\n },\r\n 'Site Admin': {\r\n static: [\r\n 'locations:visit',\r\n 'locations:edit',\r\n 'locations:import-families',\r\n 'locations:import-staff',\r\n\r\n 'classrooms:export-attendance',\r\n 'classrooms:view-attendance',\r\n 'classrooms:visit',\r\n 'classrooms:create',\r\n 'classrooms:edit',\r\n 'classrooms:archive',\r\n 'classrooms:view-archive',\r\n 'classrooms:view-overview',\r\n 'classrooms:edit-overview',\r\n 'classrooms:view-notes',\r\n 'classrooms:edit-notes',\r\n 'classrooms:view-events',\r\n 'classrooms:edit-events',\r\n 'classrooms:view-menus',\r\n 'classrooms:edit-menus',\r\n 'classrooms:view-photos',\r\n 'classrooms:edit-photos',\r\n 'classrooms:edit-caregivers',\r\n 'classrooms:edit-children',\r\n\r\n 'children:visit',\r\n 'children:create',\r\n 'children:view-archive',\r\n 'children:edit',\r\n\r\n 'families:visit',\r\n 'families:create',\r\n 'families:archive',\r\n 'families:view-archive',\r\n 'families:edit',\r\n 'families:edit-guardians',\r\n 'families:edit-children',\r\n 'families:view-notes',\r\n\r\n 'users:visit',\r\n 'users:profile-edit',\r\n 'users:create',\r\n 'users:modify-permission',\r\n 'users:create-caregiver',\r\n 'users:create-guardian',\r\n 'users:view-archive',\r\n 'users:edit',\r\n 'users:resendActivation',\r\n\r\n 'communications:read',\r\n\r\n 'messages:visit',\r\n 'messages:compose',\r\n 'messages:sendToFamily',\r\n ],\r\n },\r\n Admin: {\r\n static: [\r\n 'dashboard:visit',\r\n 'dashboard:download',\r\n\r\n 'organizations:visit',\r\n 'organizations:create',\r\n 'organizations:edit',\r\n 'organizations:archive',\r\n 'organizations:view-archive',\r\n\r\n 'locations:visit',\r\n 'locations:create',\r\n 'locations:archive',\r\n 'locations:edit',\r\n 'locations:edit-siteAdmins',\r\n 'locations:view-archive',\r\n 'locations:import-families',\r\n 'locations:import-staff',\r\n\r\n 'conversation:search',\r\n\r\n 'classrooms:export-attendance',\r\n 'classrooms:view-attendance',\r\n 'classrooms:visit',\r\n 'classrooms:create',\r\n 'classrooms:edit',\r\n 'classrooms:archive',\r\n 'classrooms:view-archive',\r\n 'classrooms:view-overview',\r\n 'classrooms:edit-overview',\r\n 'classrooms:view-notes',\r\n 'classrooms:edit-notes',\r\n 'classrooms:view-events',\r\n 'classrooms:edit-events',\r\n 'classrooms:view-menus',\r\n 'classrooms:edit-menus',\r\n 'classrooms:view-photos',\r\n 'classrooms:edit-photos',\r\n 'classrooms:edit-caregivers',\r\n 'classrooms:edit-children',\r\n\r\n 'children:visit',\r\n 'children:create',\r\n 'children:archive',\r\n 'children:view-archive',\r\n 'children:edit',\r\n\r\n 'families:visit',\r\n 'families:create',\r\n 'families:archive',\r\n 'families:view-archive',\r\n 'families:edit',\r\n 'families:edit-guardians',\r\n 'families:edit-children',\r\n 'families:view-notes',\r\n 'families:view-adminNotes',\r\n\r\n 'users:visit',\r\n 'users:profile-edit',\r\n 'users:create',\r\n 'users:modify-permission',\r\n 'users:create-admin',\r\n 'users:create-siteAdmin',\r\n 'users:create-caregiver',\r\n 'users:create-guardian',\r\n 'users:archive',\r\n 'users:view-archive',\r\n 'users:edit',\r\n 'users:resendActivation',\r\n\r\n 'communication:visit',\r\n 'communications:read',\r\n\r\n 'messages:visit',\r\n 'messages:compose',\r\n 'messages:sendToFamily',\r\n ],\r\n },\r\n};\r\n\r\nexport function CanUser(props) {\r\n const check = (rules, role, action, data) => {\r\n const permissions = rules[role];\r\n\r\n if (!permissions) {\r\n return false;\r\n }\r\n\r\n const staticPermissions = permissions.static;\r\n if (staticPermissions && staticPermissions.includes(action)) {\r\n return true;\r\n }\r\n\r\n const dynamicPermissions = permissions.dynamic;\r\n if (dynamicPermissions) {\r\n const permissionCondition = dynamicPermissions[action];\r\n\r\n if (!permissionCondition) {\r\n return false;\r\n }\r\n\r\n return permissionCondition(data);\r\n }\r\n\r\n return false;\r\n };\r\n\r\n const yesValue = typeof props.yes === 'function' ? props.yes() : null;\r\n const noValue = typeof props.no === 'function' ? props.no() : null;\r\n\r\n return check(userRules, props.role, props.perform, props.data) ? yesValue : noValue;\r\n}\r\n\r\nexport function CheckPermission(role, action) {\r\n const permissions = userRules[role];\r\n\r\n if (!permissions) {\r\n return false;\r\n }\r\n\r\n const staticPermissions = permissions.static;\r\n if (staticPermissions && staticPermissions.includes(action)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n}\r\n","import React, { useContext } from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport {\r\n Nav, Navbar, NavItem, NavbarBrand, Collapse,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { UserContext } from '../../context/userContext';\r\n\r\nimport Logo from '../../resources/images/tff-logo.png';\r\nimport './NavMenu.css';\r\n\r\nimport { CanUser } from '../../components/CanUser';\r\n\r\nexport default function NavMenu() {\r\n const userState = useContext(UserContext);\r\n\r\n return (\r\n \r\n \r\n
\r\n \"logo\"\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { UserContext } from '../../context/userContext';\r\n\r\nexport default function SearchNav() {\r\n return (\r\n \r\n {({ user }) => (\r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\nimport { Container } from 'reactstrap';\r\nimport NavMenu from './Nav/NavMenu';\r\nimport SearchNav from './Nav/SearchNav';\r\n\r\nexport function DashboardLayout(props) {\r\n const { children } = props;\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n {children}\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst DashboardLayoutRoute = ({ component, ...rest }) => {\r\n const Component = component;\r\n\r\n return (\r\n (sessionStorage.getItem('jwt') ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n ))}\r\n />\r\n );\r\n};\r\n\r\nexport default DashboardLayoutRoute;\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Dashboard`;\r\n\r\nasync function loadDashboard() {\r\n return authenticatedRequest('GET', URL);\r\n}\r\n\r\nconst dashboardService = { loadDashboard };\r\n\r\nexport default dashboardService;\r\n","import React from 'react';\r\nimport { Card, CardBody } from 'reactstrap';\r\n\r\nexport default function CardHeaderless(props) {\r\n const { className, children } = props;\r\n\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport { Button, UncontrolledTooltip } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport default function TooltipButton(props) {\r\n const {\r\n id,\r\n tooltipLabel,\r\n onClick,\r\n buttonIcon = 'edit',\r\n buttonColour = 'primary',\r\n buttonClass = '',\r\n buttonSize = 'sm',\r\n placement = 'top',\r\n } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nimport { Col, Row, ButtonGroup } from 'reactstrap';\r\nimport BootstrapTable from 'react-bootstrap-table-next';\r\nimport ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';\r\nimport paginationFactory, {\r\n PaginationProvider,\r\n SizePerPageDropdownStandalone,\r\n PaginationListStandalone,\r\n PaginationTotalStandalone,\r\n} from 'react-bootstrap-table2-paginator';\r\nimport { CanUser } from './CanUser';\r\nimport TooltipButton from './TooltipButton';\r\n\r\nimport 'react-bootstrap-table-next/dist/react-bootstrap-table2.min.css';\r\n\r\nconst { SearchBar } = Search;\r\n\r\nexport default function ExtendedTable(props) {\r\n const { rowStyle, data, tableClickEvent } = props;\r\n const rowEvents = { onClick: tableClickEvent };\r\n\r\n const customTotal = (from, to, size) => (\r\n \r\n Showing \r\n {from}\r\n  to \r\n {to}\r\n  of \r\n {size}\r\n  Results\r\n \r\n );\r\n\r\n const sizePerPageRenderer = ({ options, currSizePerPage, onSizePerPageChange }) => (\r\n \r\n {options.map((option) => {\r\n const isSelect = currSizePerPage === `${option.page}`;\r\n return (\r\n onSizePerPageChange(option.page)}\r\n className={`btn ${isSelect ? 'btn-secondary' : 'btn-outline-secondary'}`}\r\n >\r\n {option.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n\r\n const options = {\r\n custom: true,\r\n pageStartIndex: 1,\r\n hidePageListOnlyOnePage: true,\r\n prePageText: 'Back',\r\n nextPageText: 'Next',\r\n showTotal: true,\r\n alwaysShowAllBtns: false,\r\n paginationTotalRenderer: customTotal,\r\n sizePerPage: 15,\r\n sizePerPageRenderer,\r\n sizePerPageList: [\r\n { text: '5', value: 5 },\r\n { text: '10', value: 10 },\r\n { text: '15', value: 15 },\r\n { text: 'All', value: data.length },\r\n ],\r\n };\r\n\r\n return (\r\n \r\n {({ paginationProps, paginationTableProps }) => (\r\n
\r\n \r\n {(toolkitprops) => (\r\n
\r\n \r\n \r\n \r\n\r\n {typeof props.archiveClicked !== 'undefined' && (\r\n (\r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest, authenticatedRequestBasic } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/export`;\r\n\r\n\r\nasync function exportAsync() {\r\n return authenticatedRequestBasic('GET', URL + '/');\r\n}\r\n\r\nconst exportService = {\r\n exportAsync,\r\n};\r\n\r\nexport default exportService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { Row, Col, Button } from 'reactstrap';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { UserContext } from '../../context/userContext';\r\nimport dashboardService from '../../services/dashboardService';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\nimport ExtendedTable from '../../components/ExtendedTable';\r\nimport exportService from '../../services/exportService';\r\nimport { CanUser } from '../../components/CanUser';\r\n\r\nexport default function DashboardPage() {\r\n const userState = useContext(UserContext);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n document.title = 'Dashboard | Today\\'s Family Fridge';\r\n const toggle = async () => {\r\n setIsLoading(true);\r\n await exportService\r\n .exportAsync()\r\n .then((r) => r.blob())\r\n .then((blob) => {\r\n const b = new Blob([blob], { type: 'application/vnd.openxmlformats' });\r\n const anchor = document.createElement('a');\r\n\r\n anchor.download = `export_${(new Date().toJSON().slice(0,10))}.xlsx`;\r\n anchor.href = (window.webkitURL || window.URL).createObjectURL(b);\r\n anchor.dataset.downloadurl = ['application/vnd.openxmlformats', anchor.download, anchor.href].join(':');\r\n anchor.click();\r\n }).finally(() => {\r\n setIsLoading(false);\r\n });\r\n };\r\n\r\n const history = useHistory();\r\n const [dashboard, setDashboard] = useState({\r\n latestLocations: [],\r\n });\r\n\r\n const tableColumns = [\r\n { text: 'Name', dataField: 'name', sort: true },\r\n { text: 'Address', dataField: 'fullAddress', sort: true },\r\n { text: 'Classrooms', dataField: 'classroomCount', sort: true },\r\n { text: 'Organization', dataField: 'organizationName', sort: true },\r\n { text: 'Date Created', dataField: 'createdOn', sort: true },\r\n ];\r\n\r\n const tableClickEvent = (_e, r) => { history.push('/locations/edit/' + r.locationId); };\r\n const loadDashboard = async () => {\r\n await dashboardService\r\n .loadDashboard()\r\n .then((response) => { setDashboard(response.model); });\r\n };\r\n\r\n useEffect(() => { loadDashboard(); }, []);\r\n\r\n return (\r\n \r\n {({ user }) => (\r\n
\r\n \r\n

\r\n Welcome,\r\n  \r\n {user.firstName}\r\n

\r\n
\r\n \r\n \r\n \r\n
Messages Sent
\r\n
{dashboard.messagesSent}
\r\n
\r\n \r\n \r\n \r\n
Photos Uploaded
\r\n
{dashboard.photosUploaded}
\r\n
\r\n \r\n \r\n \r\n
Events Created
\r\n
{dashboard.eventsCreated}
\r\n
\r\n \r\n
\r\n (\r\n \r\n )}\r\n />\r\n \r\n

Recently Added Locations

\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { Card, CardBody } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { CanUser } from './CanUser';\r\n\r\nexport default function PageHeader(props) {\r\n const {\r\n title,\r\n newButtonDefault = 'Add',\r\n newButtonText = '',\r\n userRole,\r\n addPermission,\r\n newButtonUrl = '',\r\n subTitle = '',\r\n marginClass = 'mb-3',\r\n isShowingArchived = false,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n
\r\n {subTitle.length === 0\r\n ?

{title}

\r\n : (\r\n

\r\n {title}\r\n
\r\n {subTitle}\r\n

\r\n )}\r\n
\r\n {newButtonText && newButtonText.length > 0 && !isShowingArchived\r\n && (\r\n (\r\n \r\n \r\n \r\n {newButtonDefault}\r\n  \r\n {newButtonText}\r\n \r\n \r\n )}\r\n />\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Container } from 'reactstrap';\r\n\r\nexport default function Spinner() {\r\n return (\r\n \r\n
\r\n Loading...\r\n
\r\n
\r\n );\r\n}\r\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport React, { useState, useEffect, useContext } from 'react';\r\nimport Moment from 'react-moment';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\nimport { UserContext } from '../../../context/userContext';\r\nimport userService from '../../../services/userService';\r\n\r\nexport default function UserPage() {\r\n document.title = 'Users | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const [pageTitle, setPageTitle] = useState('Users');\r\n\r\n const [users, setUsers] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n function resendActivationEmail(id) {\r\n userService.resendActivation(id);\r\n }\r\n\r\n function userIconFormatter(cell, row) {\r\n return (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{row.fullName}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n function emailColumnFormatter(cell, row) {\r\n return (\r\n { e.stopPropagation(); }}>{row.email}\r\n );\r\n }\r\n\r\n function roleFormatter(cell, row) {\r\n let { role } = row;\r\n if (role === 'Caregiver') {\r\n role = 'Caregiver/Provider';\r\n } else if (role === 'Guardian') {\r\n role = 'Parent/Guardian';\r\n }\r\n\r\n return (\r\n {role}\r\n );\r\n }\r\n\r\n function lastAccessedFormatter(cell, row) {\r\n const canResend = CheckPermission(userState.user.role, 'users:resendActivation');\r\n\r\n if (cell === 'Account Creation Pending' && canResend) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return ({row.lastAccessed});\r\n }\r\n\r\n const tableColumns = [\r\n {\r\n text: 'Name',\r\n dataField: 'fullName',\r\n formatter: userIconFormatter,\r\n sort: true,\r\n },\r\n {\r\n text: 'Email Address',\r\n dataField: 'email',\r\n formatter: emailColumnFormatter,\r\n sort: true,\r\n },\r\n {\r\n text: 'Role',\r\n dataField: 'role',\r\n formatter: roleFormatter,\r\n headerStyle: { width: '200px' },\r\n sort: true,\r\n },\r\n {\r\n text: 'Last Accessed',\r\n dataField: 'lastAccessed',\r\n formatter: lastAccessedFormatter,\r\n headerStyle: { width: '275px' },\r\n sort: true,\r\n },\r\n ];\r\n\r\n const loadUsers = async (showArchived) => {\r\n setPageTitle(showArchived ? 'Archived Users' : 'Users');\r\n\r\n userService\r\n .getUsers(showArchived)\r\n .then((response) => setUsers(response.model))\r\n .then(() => setIsLoading(false));\r\n };\r\n\r\n const tableClickEvent = (e, r) => { history.push(`/users/edit/${r.id}`); };\r\n const handleArchived = () => {\r\n loadUsers(!isShowingArchived);\r\n setIsShowingArchived(!isShowingArchived);\r\n };\r\n\r\n if (!CheckPermission(userState.user.role, 'users:visit') && typeof userState.user.role !== 'undefined') {\r\n history.push('/error/404');\r\n }\r\n\r\n useEffect(() => {\r\n setIsLoading(true);\r\n loadUsers(false);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading ? \r\n : (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { useSpring, animated } from 'react-spring';\r\n\r\nexport default function SpinnerButton(props) {\r\n const { isLoading, children, ...rest } = props;\r\n const [showLoader, setShowLoader] = useState(false);\r\n\r\n useEffect(() => {\r\n if (isLoading) {\r\n setShowLoader(true);\r\n }\r\n\r\n if (!isLoading && showLoader) {\r\n const timeout = setTimeout(() => {\r\n setShowLoader(false);\r\n }, 400);\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n };\r\n }\r\n\r\n return () => {};\r\n }, [isLoading, showLoader]);\r\n\r\n const [width, setWidth] = useState(0);\r\n const [height, setHeight] = useState(0);\r\n const ref = useRef(null);\r\n\r\n useEffect(() => {\r\n if (ref.current && ref.current.getBoundingClientRect().width) {\r\n setWidth(ref.current.getBoundingClientRect().width);\r\n }\r\n if (ref.current && ref.current.getBoundingClientRect().height) {\r\n setHeight(ref.current.getBoundingClientRect().height);\r\n }\r\n }, [children]);\r\n\r\n const fadeOutProps = useSpring({ opacity: showLoader ? 1 : 0, margin: 'auto' });\r\n const fadeInProps = useSpring({ opacity: showLoader ? 0 : 1, margin: 'auto' });\r\n\r\n return (\r\n // eslint-disable-next-line react/button-has-type\r\n \r\n {showLoader ? (\r\n \r\n
\r\n Loading...\r\n
\r\n
\r\n ) : (\r\n {children}\r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Card, CardBody, Button } from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { CanUser } from './CanUser';\r\nimport SpinnerButton from './SpinnerButton';\r\n\r\nexport default function PageHeaderActions(props) {\r\n const {\r\n title,\r\n children,\r\n isNew = false,\r\n isSubmitting,\r\n formName,\r\n userRole,\r\n requiredPermission,\r\n subTitle = '',\r\n } = props;\r\n\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n \r\n {subTitle.length === 0\r\n ?

{title}

\r\n : (\r\n

\r\n {title}\r\n
\r\n {subTitle}\r\n

\r\n )}\r\n\r\n
\r\n {children}\r\n {isNew && (\r\n \r\n )}\r\n (\r\n \r\n \r\n {isNew ? 'Create' : 'Save'}\r\n \r\n )}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport default function Required() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Card, CardHeader, CardBody } from 'reactstrap';\r\nimport Required from './Required';\r\n\r\nexport default function CardForm(props) {\r\n const {\r\n type, canEdit, children, cardClassName = 'mb-3',\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n

\r\n {type}\r\n  \r\n Details\r\n

\r\n {canEdit && (\r\n \r\n Required fields are marked with an asterisk (\r\n \r\n ).\r\n \r\n )}\r\n
\r\n \r\n {children}\r\n \r\n
\r\n );\r\n}\r\n","import authHeader from './authHeader';\r\nimport handleResponse from './handleApiResponse';\r\n\r\n// / Make a request to the API with the added auth header.\r\nexport default async function authenticatedUpload(endpoint, file) {\r\n const data = new FormData();\r\n data.append('file', file);\r\n\r\n const request = {\r\n method: 'POST',\r\n headers: {\r\n ...authHeader(),\r\n },\r\n body: data,\r\n };\r\n\r\n return handleResponse(await fetch(endpoint, request));\r\n}\r\n","import authenticatedUpload from '../helpers/authenticatedUpload';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Upload`;\r\n\r\nasync function uploadPhoto(photo) {\r\n return authenticatedUpload(URL, photo);\r\n}\r\n\r\nconst uploadService = { uploadPhoto };\r\n\r\nexport default uploadService;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Button, Modal, ModalHeader, ModalBody, ModalFooter,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport default function ExtendedModal(props) {\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n const {\r\n buttonLabel,\r\n children,\r\n buttonIcon = 'plus',\r\n buttonClass = 'primary',\r\n buttonSizeClass,\r\n buttonId,\r\n buttonClassName = '',\r\n confirmButtonText = 'Save',\r\n confirmButtonClass = 'primary',\r\n modalSize = 'md',\r\n onConfirm,\r\n iconOnly = false,\r\n hasError = false,\r\n formName = '',\r\n } = props;\r\n\r\n const confirmClicked = (e) => {\r\n onConfirm(e);\r\n\r\n // Prevent closing if there's an error.\r\n // Handle error in passed onConfirm function.\r\n if (!hasError) {\r\n document.querySelector('body').classList.remove('modal-open');\r\n\r\n toggle();\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {iconOnly && (\r\n \r\n {buttonIcon !== '' && }\r\n \r\n )}\r\n\r\n {!iconOnly && (\r\n \r\n {buttonIcon !== '' && }\r\n {buttonLabel}\r\n \r\n )}\r\n\r\n \r\n {buttonLabel}\r\n \r\n {children}\r\n \r\n \r\n \r\n  \r\n {formName\r\n ? \r\n : }\r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable import/no-unresolved */\r\nimport React, { useState } from 'react';\r\nimport {\r\n FormGroup, Label, Row, Col, CustomInput,\r\n} from 'reactstrap';\r\n\r\nimport ImagePicker from 'react-image-picker';\r\nimport 'react-image-picker/dist/index.css';\r\n\r\nimport gender1 from '../resources/images/presets/male.jpg';\r\nimport gender2 from '../resources/images/presets/female.jpg';\r\nimport gender3 from '../resources/images/presets/other.jpg';\r\n\r\nimport ExtendedModal from './ExtendedModal';\r\n\r\nconst genderList = [gender1, gender2, gender3];\r\n\r\nexport default function Avatar(props) {\r\n const { photo, changeProfilePhoto } = props;\r\n\r\n const [image, setImage] = useState();\r\n const [file, setFile] = useState();\r\n const [previewImage, setPreviewImage] = useState();\r\n\r\n const fileChanged = (e) => {\r\n const reader = new FileReader();\r\n const f = e.target.files[0];\r\n\r\n reader.onloadend = () => {\r\n setPreviewImage(reader.result);\r\n };\r\n\r\n reader.readAsDataURL(f);\r\n\r\n setFile(f);\r\n };\r\n\r\n const setProfileImage = () => {\r\n changeProfilePhoto(file, image);\r\n };\r\n\r\n return (\r\n
\r\n
\r\n \"\"\r\n { setProfileImage(); }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {previewImage && \"preview\"}\r\n \r\n \r\n \r\n ({ src: img, value: i }))}\r\n onPick={(img) => { setImage(img); }}\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport InputMask from 'react-input-mask';\r\nimport {\r\n Label, FormGroup, Input, Col,\r\n} from 'reactstrap';\r\nimport DatePicker from 'react-flatpickr';\r\n\r\nimport { Field, useFormikContext } from 'formik';\r\nimport Required from './Required';\r\n\r\nexport default function RequiredField(props) {\r\n const {\r\n type = 'text',\r\n labelName,\r\n inputPlaceholder,\r\n formKey,\r\n showLabel = true,\r\n colSize = '12',\r\n inputMask = '',\r\n rows = '3',\r\n isRequired = true,\r\n isDisabled = false,\r\n isDate = false,\r\n } = props;\r\n\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n\r\n function formatDate(date) {\r\n const d = new Date(date);\r\n let month = '' + (d.getMonth() + 1);\r\n let day = '' + d.getDate();\r\n const year = d.getFullYear();\r\n\r\n if (month.length < 2) month = '0' + month;\r\n if (day.length < 2) day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {({ field, meta }) => (\r\n
\r\n {showLabel && (\r\n \r\n )}\r\n\r\n {inputMask.length > 0 && !isDate && (\r\n \r\n )}\r\n\r\n {inputMask.length === 0 && !isDate && (\r\n \r\n )}\r\n\r\n {isDate && (\r\n setFieldValue(formKey, formatDate(d))}\r\n onClose={() => setFieldTouched(formKey)}\r\n placeholder={inputPlaceholder}\r\n />\r\n )}\r\n\r\n {meta.touched && meta.error && (\r\n
{meta.error}
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport Select from 'react-select';\r\nimport { Label, FormGroup, Col } from 'reactstrap';\r\nimport { useFormikContext, useField } from 'formik';\r\nimport Required from './Required';\r\n\r\nexport default function RequiredSelect(props) {\r\n const {\r\n options,\r\n name,\r\n labelName,\r\n colSize = '12',\r\n isRequired = true,\r\n isDisabled = false,\r\n } = props;\r\n\r\n const { setFieldValue, setFieldTouched } = useFormikContext();\r\n const [field, meta] = useField(props);\r\n\r\n return (\r\n \r\n \r\n \r\n setFieldTouched(name, true)}\r\n onChange={(s) => setFieldValue(name, s)}\r\n />\r\n\r\n {meta.touched && meta.error ? (\r\n {meta.error.value}\r\n ) : null}\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useContext } from 'react';\r\nimport { Row, Form } from 'reactstrap';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\n\r\nimport { UserContext } from '../context/userContext';\r\nimport { CheckPermission } from '../components/CanUser';\r\nimport userService from '../services/userService';\r\nimport uploadService from '../services/uploadService';\r\nimport Avatar from '../components/Avatar';\r\nimport RequiredField from '../components/RequiredField';\r\nimport RequiredSelect from '../components/RequiredSelect';\r\n\r\nexport default function EditUserForm(props) {\r\n const {\r\n user, canEdit, setIsSubmitting, setUser, canChangeRole = true,\r\n } = props;\r\n\r\n const userContext = useContext(UserContext);\r\n const [photo = user.photo || '', setPhoto] = useState();\r\n\r\n // Roles are only allowed to create accounts at their level or lower.\r\n function loadRoleOptions() {\r\n const options = [];\r\n\r\n if (CheckPermission(userContext.user.role, 'users:create-admin')) {\r\n options.push({ value: 'Admin', label: 'Admin' });\r\n }\r\n\r\n if (CheckPermission(userContext.user.role, 'users:create-siteAdmin')) {\r\n options.push({ value: 'Site Admin', label: 'Supervisor' });\r\n }\r\n\r\n if (CheckPermission(userContext.user.role, 'users:create-caregiver')) {\r\n options.push({ value: 'Caregiver', label: 'Caregiver/Provider' });\r\n }\r\n\r\n if (CheckPermission(userContext.user.role, 'users:create-guardian')) {\r\n options.push({ value: 'Guardian', label: 'Parent/Guardian' });\r\n }\r\n\r\n return options;\r\n }\r\n\r\n function loadPronounOptions() {\r\n return [\r\n { value: 'he-him', label: 'He/Him' },\r\n { value: 'she-her', label: 'She/Her' },\r\n { value: 'they-them', label: 'They/Them' },\r\n ];\r\n }\r\n\r\n const roleOptions = loadRoleOptions();\r\n const pronounOptions = loadPronounOptions();\r\n\r\n const initialValues = {\r\n firstName: user.firstName || '',\r\n lastName: user.lastName || '',\r\n emailAddress: user.email || '',\r\n pronouns: pronounOptions.filter((p) => p.value === user.pronouns)[0],\r\n role: roleOptions.filter((r) => r.value === user.role)[0],\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(100, 'First Name must not exceed 100 characters.')\r\n .required('The First Name field is required.'),\r\n\r\n lastName: Yup.string()\r\n .max(100, 'Last Name must not exceed 100 characters.')\r\n .required('The Last Name field is required.'),\r\n\r\n emailAddress: Yup.string()\r\n .email('Please enter a valid Email Address.')\r\n .required('The Email Address field is required.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n setIsSubmitting(true);\r\n\r\n const obj = {\r\n username: values.emailAddress,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.emailAddress,\r\n photo,\r\n notes: user.notes,\r\n role: values.role.value,\r\n };\r\n\r\n if (typeof values.pronouns !== 'undefined') {\r\n obj.pronouns = values.pronouns.value;\r\n }\r\n\r\n if (typeof user.id === 'undefined') {\r\n await userService\r\n .addUser(obj)\r\n .then(async (r) => setUser(r.model))\r\n .finally(() => setIsSubmitting(false));\r\n } else {\r\n obj.id = user.id;\r\n\r\n await userService\r\n .updateUser(obj)\r\n .then((r) => {\r\n if (r.model.id === userContext.user.id) {\r\n userContext.setUser(r.model);\r\n }\r\n\r\n setUser(r.model);\r\n })\r\n .finally(() => setIsSubmitting(false));\r\n }\r\n };\r\n\r\n const changePhoto = async (file, p) => {\r\n let fileName = p ? p.src : '';\r\n\r\n if (file) {\r\n const response = await uploadService.uploadPhoto(file);\r\n fileName = response.model.path;\r\n }\r\n\r\n setPhoto(fileName);\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n {typeof user.id !== 'undefined' && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {canChangeRole\r\n && }\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport {\r\n Card, CardHeader, CardBody, Collapse,\r\n} from 'reactstrap';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nexport default function CardCollapse(props) {\r\n const {\r\n title,\r\n footer,\r\n subtitle,\r\n children,\r\n isShowing = false,\r\n bodyClass = '',\r\n showPlusButton = false,\r\n } = props;\r\n\r\n const [isOpen, setIsOpen] = useState(isShowing);\r\n const toggle = () => setIsOpen(!isOpen);\r\n\r\n return (\r\n \r\n \r\n
\r\n {showPlusButton\r\n ? (\r\n \r\n \r\n
{title}
\r\n
\r\n ) : (\r\n \r\n {title}\r\n
\r\n {subtitle}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n \r\n {children}\r\n {footer && (\r\n
\r\n {footer}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport ReactQuill from 'react-quill';\r\nimport 'react-quill/dist/quill.snow.css';\r\n\r\nexport default function AdvancedEditor(props) {\r\n const { height = 300 } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport {\r\n Card,\r\n CardHeader,\r\n CardBody,\r\n Col,\r\n Row,\r\n UncontrolledTooltip,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport Required from './Required';\r\nimport ExtendedModal from './ExtendedModal';\r\n\r\nexport default function CardCustom(props) {\r\n const {\r\n title,\r\n header,\r\n footer,\r\n children,\r\n showFooter = true,\r\n bodyClass = '',\r\n margin = 'mb-3',\r\n addButtonLink,\r\n addButtonPermission = false,\r\n showExport = false,\r\n exportForm = null,\r\n showRequired = false,\r\n } = props;\r\n\r\n return (\r\n \r\n \r\n {header || (\r\n \r\n \r\n
\r\n {title}\r\n  \r\n {showRequired && }\r\n
\r\n \r\n\r\n {addButtonLink && addButtonPermission && (\r\n \r\n {showExport && exportForm && (\r\n \r\n {exportForm}\r\n \r\n )}\r\n\r\n \r\n Add New\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n )}\r\n
\r\n {children}\r\n {footer && showFooter && (\r\n
{footer}
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media } from 'reactstrap';\r\n\r\nexport default function ListItemLocation(props) {\r\n const { location } = props;\r\n const mappedAddress = 'https://www.google.com/maps/search/?api=1&query=' + location.fullAddress;\r\n\r\n return (\r\n \r\n
\r\n {location.name}\r\n
\r\n
\r\n
\r\n {location.name}\r\n
\r\n {location.fullAddress}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media } from 'reactstrap';\r\n\r\nexport default function ListItemSmall(props) {\r\n const {\r\n linkTo, imgSrc, title, children,\r\n } = props;\r\n\r\n return (\r\n \r\n
\r\n {imgSrc\r\n ? {title}\r\n :
{title[0].toUpperCase()}
}\r\n
\r\n
\r\n
\r\n {title}\r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Card, CardHeader, CardBody } from 'reactstrap';\r\nimport ExtendedModal from './ExtendedModal';\r\n\r\nexport default function CardDeactivate(props) {\r\n const { label, handleArchiveClick, isArchived = false } = props;\r\n\r\n const modalTitle = (isArchived ? 'Restore' : 'Archive') + ' ' + label;\r\n const buttonClass = isArchived ? 'success' : 'danger';\r\n const largeButtonClass = (isArchived ? 'btn-falcon-success' : 'btn-falcon-danger') + ' w-100 rounded-pill';\r\n const confirmButtonText = isArchived ? 'Restore' : 'Archive';\r\n\r\n return (\r\n \r\n
{isArchived ? 'Archived ' + label : 'Danger Zone'}
\r\n \r\n {isArchived\r\n ? (\r\n

\r\n This\r\n {label}\r\n  \r\n has been archived. You can restore it from here.\r\n

\r\n )\r\n : (\r\n

\r\n Once you archive this\r\n {' '}\r\n {label}\r\n , it will no longer be visible.\r\n {' '}\r\n An Admin will need to restore access.\r\n

\r\n )}\r\n\r\n \r\n {isArchived\r\n ? (\r\n

\r\n Are you sure you wish to restore this\r\n {label}\r\n ?\r\n

\r\n )\r\n : (\r\n
\r\n

\r\n Are you sure you wish to archive this\r\n {' '}\r\n {label}\r\n ? You will not be able to undo this action.\r\n

\r\n

\r\n All associated data will be lost.\r\n

\r\n
\r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, {\r\n useState, useEffect, useContext, useRef,\r\n} from 'react';\r\n\r\nimport queryString from 'query-string';\r\n\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { UserContext } from '../../../context/userContext';\r\nimport userService from '../../../services/userService';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardForm from '../../../components/CardForm';\r\nimport EditUserForm from '../../../forms/EditUserForm';\r\nimport CardCollapse from '../../../components/CardCollapse';\r\nimport AdvancedEditor from '../../../components/AdvancedEditor';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport ListItemLocation from '../../../components/ListItemLocation';\r\nimport ListItemSmall from '../../../components/ListItemSmall';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\n\r\nexport default function EditUserPage(props) {\r\n document.title = 'Edit User | Today\\'s Family Fridge';\r\n\r\n const { location, match } = props;\r\n const { id } = match.params;\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const params = queryString.parse(location.search);\r\n const didMount = useRef(false);\r\n\r\n const [isNew, setIsNew] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const [editUser, setEditUser] = useState({});\r\n\r\n const handleDeactivateClick = async (e) => {\r\n e.preventDefault();\r\n\r\n if (editUser.isEnabled) {\r\n await userService.deleteUser(id);\r\n history.push('/users');\r\n } else {\r\n await userService.restoreUser(id)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n setEditUser({ ...editUser, isEnabled: true });\r\n }\r\n });\r\n }\r\n };\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'users:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const canEdit = CheckPermission(userState.user.role, 'users:edit');\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n if (typeof editUser.id === 'undefined') {\r\n if (typeof params.f !== 'undefined') {\r\n setEditUser({ ...editUser, role: 'Guardian' });\r\n } else if (typeof params.c !== 'undefined') {\r\n setEditUser({ ...editUser, role: 'Caregiver' });\r\n } else if (typeof params.l !== 'undefined') {\r\n setEditUser({ ...editUser, role: 'Site Admin' });\r\n }\r\n }\r\n\r\n setIsNew(typeof editUser.id === 'undefined');\r\n setIsLoading(false);\r\n }\r\n }, [editUser]);\r\n\r\n const loadUser = async () => {\r\n setIsLoading(true);\r\n\r\n if (canView) {\r\n if (typeof id === 'undefined') {\r\n didMount.current = true;\r\n\r\n setIsLoading(false);\r\n setEditUser({});\r\n } else {\r\n await userService\r\n .findUser(id)\r\n .then((r) => setEditUser(r.model))\r\n .finally(() => { didMount.current = true; });\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => { loadUser(); }, [id]);\r\n\r\n return (\r\n \r\n {({ user }) => (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n
\r\n \r\n \r\n \r\n setIsSubmitting(s)}\r\n canEdit={canEdit}\r\n user={editUser}\r\n />\r\n \r\n\r\n {!isNew && (\r\n \r\n { editUser.notes = e; }}\r\n />\r\n \r\n )}\r\n \r\n\r\n {!isNew\r\n && (\r\n \r\n
\r\n {editUser.locations && editUser.locations.length > 0 && (\r\n \r\n {editUser.locations.map((l) => )}\r\n \r\n )}\r\n\r\n {editUser.classrooms && editUser.classrooms.length > 0 && (\r\n \r\n {editUser.classrooms.map((classroom) => (\r\n \r\n {classroom.locationName}\r\n \r\n ))}\r\n \r\n )}\r\n\r\n {editUser.families && editUser.families.length > 0 && (\r\n \r\n {editUser.families.map((f) => (\r\n \r\n ))}\r\n \r\n )}\r\n\r\n }\r\n />\r\n
\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Col } from 'reactstrap';\r\n\r\nexport default function ListItemClassroomLarge(props) {\r\n const { classroom } = props;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n {classroom.name}\r\n
\r\n \r\n
{classroom.name}
\r\n

\r\n {classroom.numberOfCaregivers}\r\n  \r\n {classroom.numberOfCaregivers === 1 ? 'caregiver' : 'caregivers'}\r\n
\r\n {classroom.numberOfChildren}\r\n  \r\n {classroom.numberOfChildren === 1 ? 'child' : 'children'}\r\n  â€¢ \r\n {classroom.numberOfParents}\r\n  \r\n {classroom.numberOfParents === 1 ? 'parent' : 'parents'}\r\n

\r\n
\r\n \r\n );\r\n}\r\n","import { useState } from 'react';\r\n\r\nconst useInput = (initialValue) => {\r\n const [value = initialValue || '', setValue] = useState();\r\n\r\n return {\r\n value,\r\n setValue,\r\n bind: {\r\n value,\r\n onChange: (event) => {\r\n setValue(event.target.value);\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport default useInput;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Row, Col, Label, Input, FormGroup, Form, Button, FormFeedback,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport userService from '../services/userService';\r\nimport Required from '../components/Required';\r\nimport useInput from '../hooks/useInput';\r\n\r\nexport default function PasswordForm(props) {\r\n const { userId } = props;\r\n const [isSubmitted, setIsSubmitted] = useState(false);\r\n\r\n const { value: currentPassword, bind: bindCurrentPassword } = useInput('');\r\n const { value: newPassword, bind: bindNewPassword } = useInput('');\r\n const { value: confirmPassword, bind: bindConfirmPassword } = useInput('');\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setIsSubmitted(true);\r\n\r\n if (newPassword !== confirmPassword) {\r\n toast.error('Passwords must match. Please try again.');\r\n } else {\r\n await userService.changePassword(userId, currentPassword, newPassword);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Current Password is required.\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n New Password is required.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Confirm Password is required.\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nimport userService from '../../../services/userService';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardForm from '../../../components/CardForm';\r\nimport EditUserForm from '../../../forms/EditUserForm';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport ListItemClassroomLarge from '../../../components/ListItemClassroomLarge';\r\nimport PasswordForm from '../../../forms/PasswordForm';\r\n\r\nexport default function ProfilePage() {\r\n document.title = 'Edit Profile | Today\\'s Family Fridge';\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [user, setUser] = useState();\r\n\r\n const loadUser = async () => {\r\n setIsLoading(true);\r\n setIsSubmitting(false);\r\n\r\n await userService\r\n .getCurrentUser()\r\n .then((response) => { setUser(response.model); });\r\n };\r\n\r\n useEffect(() => { loadUser(); }, []);\r\n useEffect(() => { setIsLoading(false); }, [user]);\r\n\r\n return (\r\n
\r\n {(!user || isLoading)\r\n ? \r\n : (\r\n <>\r\n \r\n
\r\n \r\n \r\n \r\n setIsSubmitting(s)}\r\n />\r\n \r\n {user.classrooms && (\r\n \r\n {user.classrooms.map((classroom) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Organization`;\r\n\r\nasync function all(showArchived) {\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function find(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function create(o) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(o));\r\n}\r\n\r\nasync function update(o) {\r\n return authenticatedRequest('PUT', URL + '/' + o.organizationId, JSON.stringify(o));\r\n}\r\n\r\nasync function archive(id) {\r\n return authenticatedRequest('DELETE', URL + '/' + id);\r\n}\r\n\r\nasync function restore(id) {\r\n return authenticatedRequest('POST', URL + '/Restore/' + id);\r\n}\r\n\r\nconst organizationService = {\r\n all,\r\n find,\r\n create,\r\n update,\r\n archive,\r\n restore,\r\n};\r\n\r\nexport default organizationService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\nimport { UserContext } from '../../../context/userContext';\r\n\r\nimport organizationService from '../../../services/organizationService';\r\n\r\nexport default function OrganizationPage() {\r\n document.title = 'Organizations | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n\r\n const [pageTitle, setPageTitle] = useState('Organizations');\r\n\r\n const [organizations, setOrganizations] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n const tableClickEvent = (e, r) => { history.push('/organizations/edit/' + r.organizationId); };\r\n const tableColumns = [\r\n { text: 'Name', dataField: 'name', sort: true },\r\n { text: '# of Locations', dataField: 'numberOfLocations', sort: true },\r\n { text: '# of Classrooms', dataField: 'numberOfClassrooms', sort: true },\r\n { text: '# of Families', dataField: 'numberOfFamilies', sort: true },\r\n { text: '# of Parent/Guardian(s)', dataField: 'numberOfGuardians', sort: true },\r\n { text: '# of Caregivers', dataField: 'numberOfCaregivers', sort: true },\r\n { text: '# of Children', dataField: 'numberOfChildren', sort: true },\r\n ];\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'organizations:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const loadOrganizations = async () => {\r\n if (canView) {\r\n setPageTitle(isShowingArchived ? 'Archived Organizations' : 'Organizations');\r\n\r\n await organizationService\r\n .all(isShowingArchived)\r\n .then((r) => setOrganizations(r.model))\r\n .finally(() => setIsLoading(false));\r\n }\r\n };\r\n\r\n useEffect(() => { loadOrganizations(); }, [isShowingArchived]);\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n setIsShowingArchived(!isShowingArchived)}\r\n archivePermission=\"organizations:view-archive\"\r\n userRole={userState.user.role}\r\n columns={tableColumns}\r\n data={organizations}\r\n tableClickEvent={tableClickEvent}\r\n keyField=\"organizationId\"\r\n defaultSort=\"name\"\r\n />\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Col } from 'reactstrap';\r\n\r\nexport default function ListItemChildLarge(props) {\r\n const { child } = props;\r\n\r\n return (\r\n \r\n
\r\n \r\n {child.fullName}\r\n \r\n
{child.fullName}
\r\n

\r\n {child.familyName}\r\n
\r\n {child.locationName}\r\n

\r\n
\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Col } from 'reactstrap';\r\n\r\nexport default function ListItemFamilyLarge(props) {\r\n const { family } = props;\r\n\r\n return (\r\n \r\n
\r\n \r\n
\r\n
{family.name[0].toUpperCase()}
\r\n
\r\n \r\n
{family.name}
\r\n

\r\n {family.childCount}\r\n {family.childCount === 1 ? 'child' : 'children'}\r\n

\r\n
\r\n \r\n );\r\n}\r\n","import React, { useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { UserContext } from '../context/userContext';\r\nimport { CheckPermission } from '../components/CanUser';\r\nimport organizationService from '../services/organizationService';\r\nimport RequiredField from '../components/RequiredField';\r\n\r\nexport default function EditOrganizationForm(props) {\r\n const history = useHistory();\r\n const { organization, setSubmitting } = props;\r\n\r\n const initialValues = { name: organization.name || '' };\r\n const validationSchema = Yup.object().shape({\r\n name: Yup.string()\r\n .max(100, 'Name must not exceed 100 characters.')\r\n .required('The Name field is Required.'),\r\n });\r\n\r\n const userState = useContext(UserContext);\r\n const isDisabled = !CheckPermission(userState.user.role, 'organizations:edit', '');\r\n const onSubmit = async (values) => {\r\n setSubmitting(true);\r\n\r\n const newOrganization = { name: values.name };\r\n\r\n if (typeof organization.organizationId === 'undefined') {\r\n await organizationService\r\n .create(newOrganization)\r\n .then((r) => history.replace('/organizations/edit/' + r.model.organizationId))\r\n .finally(() => setSubmitting(false));\r\n } else {\r\n newOrganization.organizationId = organization.organizationId;\r\n\r\n await organizationService\r\n .update(newOrganization)\r\n .then(() => history.replace('/organizations/'))\r\n .finally(() => setSubmitting(false));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import { authenticatedRequest, authenticatedRequestBasic } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Attendance`;\r\n\r\nasync function checkInAsync(classroomId, childId) {\r\n return authenticatedRequest('POST', URL + '/in/' + classroomId + '/' + childId);\r\n}\r\n\r\nasync function checkOutAsync(classroomId, childId) {\r\n return authenticatedRequest('POST', URL + '/out/' + classroomId + '/' + childId);\r\n}\r\n\r\nasync function getForClassroomAsync(classroomId) {\r\n return authenticatedRequest('GET', URL + '/classroom/' + classroomId);\r\n}\r\n\r\nasync function getCheckedInForClassroomAsync(classroomId) {\r\n return authenticatedRequest('GET', URL + '/in/' + classroomId);\r\n}\r\n\r\nasync function getForChildAsync(childId) {\r\n return authenticatedRequest('GET', URL + '/child/' + childId);\r\n}\r\n\r\nasync function getForClassroomByDateAsync(classroomId, unixDate) {\r\n return authenticatedRequest('GET', URL + '/classroom/' + classroomId + '/' + unixDate);\r\n}\r\n\r\nasync function exportAsync(obj) {\r\n return authenticatedRequestBasic('POST', URL + '/export', JSON.stringify(obj));\r\n}\r\n\r\nconst attendanceService = {\r\n checkInAsync,\r\n checkOutAsync,\r\n getForClassroomAsync,\r\n getCheckedInForClassroomAsync,\r\n getForChildAsync,\r\n getForClassroomByDateAsync,\r\n exportAsync,\r\n};\r\n\r\nexport default attendanceService;\r\n","import React from 'react';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport attendanceService from '../services/attendanceService';\r\nimport RequiredField from '../components/RequiredField';\r\n\r\nexport default function ExportAttendanceForm(props) {\r\n const { organizationId, locationId, classroomId } = props;\r\n\r\n const initialValues = { startDate: '', endDate: '' };\r\n const validationSchema = Yup.object().shape({\r\n startDate: Yup.string().required('Start Date is Required.'),\r\n endDate: Yup.string().required('End Date is Required.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n const obj = {\r\n startDate: values.startDate,\r\n endDate: values.endDate,\r\n organizationId,\r\n locationId,\r\n classroomId,\r\n timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,\r\n };\r\n\r\n await attendanceService\r\n .exportAsync(obj)\r\n .then((r) => r.blob())\r\n .then((blob) => {\r\n const b = new Blob([blob], { type: 'application/vnd.openxmlformats' });\r\n const anchor = document.createElement('a');\r\n\r\n anchor.download = values.startDate + '-' + values.endDate + '.xlsx';\r\n anchor.href = (window.webkitURL || window.URL).createObjectURL(b);\r\n anchor.dataset.downloadurl = ['application/vnd.openxmlformats', anchor.download, anchor.href].join(':');\r\n anchor.click();\r\n });\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React, {\r\n useState, useEffect, useRef, useContext,\r\n} from 'react';\r\n\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Col } from 'reactstrap';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\nimport { UserContext } from '../../../context/userContext';\r\n\r\nimport CardCollapse from '../../../components/CardCollapse';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\nimport CardForm from '../../../components/CardForm';\r\nimport ListItemChildLarge from '../../../components/ListItemChildLarge';\r\nimport ListItemFamilyLarge from '../../../components/ListItemFamilyLarge';\r\nimport ListItemLocation from '../../../components/ListItemLocation';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport EditOrganizationForm from '../../../forms/EditOrganizationForm';\r\nimport ExportAttendanceForm from '../../../forms/ExportAttendanceForm';\r\nimport organizationService from '../../../services/organizationService';\r\n\r\nexport default function EditOrganizationPage(props) {\r\n document.title = \"Edit Organization | Today's Family Fridge\";\r\n\r\n const { match } = props;\r\n const { id } = match.params;\r\n\r\n const history = useHistory();\r\n const didMount = useRef(false);\r\n\r\n const userState = useContext(UserContext);\r\n const canEdit = CheckPermission(\r\n userState.user.role,\r\n 'organizations:edit',\r\n '',\r\n );\r\n const canArchive = CheckPermission(\r\n userState.user.role,\r\n 'organizations:archive',\r\n '',\r\n );\r\n const canExport = CheckPermission(\r\n userState.user.role,\r\n 'classrooms:export-attendance',\r\n );\r\n\r\n let canView = true;\r\n if (\r\n !CheckPermission(userState.user.role, 'organizations:visit')\r\n && typeof userState.user.role !== 'undefined'\r\n ) {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const [organization, setOrganization] = useState({});\r\n\r\n const [isNew, setIsNew] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const loadOrganization = async () => {\r\n if (typeof id !== 'undefined' && canView) {\r\n await organizationService\r\n .find(id)\r\n .then((r) => setOrganization(r.model))\r\n .finally(() => {\r\n didMount.current = true;\r\n });\r\n } else {\r\n setOrganization({});\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n loadOrganization();\r\n }, [id]);\r\n useEffect(() => {\r\n if (didMount.current) {\r\n setIsLoading(false);\r\n setIsNew(typeof organization.organizationId === 'undefined');\r\n }\r\n }, [organization]);\r\n\r\n const handleArchiveClick = async (e) => {\r\n e.preventDefault();\r\n\r\n if (organization.status === 0) {\r\n await organizationService\r\n .restore(id)\r\n .then(() => setOrganization({ ...organization, status: 1 }));\r\n } else {\r\n await organizationService\r\n .archive(id)\r\n .then(() => history.push('/organizations'));\r\n }\r\n };\r\n\r\n if (canView) {\r\n return (\r\n
\r\n \r\n\r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n setIsSubmitting(l)}\r\n />\r\n \r\n\r\n {!isNew && organization.families && (\r\n (\r\n \r\n \r\n {organization.families.length > 0 ? (\r\n organization.families.map((family) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n There are no families associated with this\r\n organization.\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n />\r\n )}\r\n\r\n {!isNew && organization.children && (\r\n (\r\n \r\n \r\n {organization.children.length > 0 ? (\r\n organization.children.map((child) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n There are no children associated with this\r\n organization.\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n />\r\n )}\r\n \r\n\r\n {!isNew && (\r\n \r\n
\r\n {organization.locations && (\r\n (\r\n \r\n )}\r\n >\r\n {organization.locations.length > 0 ? (\r\n organization.locations.map((location) => (\r\n \r\n ))\r\n ) : (\r\n
\r\n There are no locations associated with this\r\n organization.\r\n
\r\n )}\r\n \r\n )}\r\n />\r\n )}\r\n {canArchive && (\r\n \r\n )}\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n return
;\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\nimport authenticatedUpload from '../helpers/authenticatedUpload';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Locations`;\r\n\r\nasync function all(showArchived) {\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function find(id) {\r\n return authenticatedRequest('GET', `${URL}/${id}`);\r\n}\r\n\r\nasync function archive(id) {\r\n return authenticatedRequest('DELETE', `${URL}/${id}`);\r\n}\r\n\r\nasync function restore(id) {\r\n return authenticatedRequest('POST', URL + '/Restore/' + id);\r\n}\r\n\r\nasync function create(location) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(location));\r\n}\r\n\r\nasync function update(location) {\r\n return authenticatedRequest('PUT', `${URL}/${location.locationId}`, JSON.stringify(location));\r\n}\r\n\r\nasync function updateLocationSiteAdminRelationships(id, userIds) {\r\n return authenticatedRequest('POST', URL + '/LocationSiteAdmins', JSON.stringify({\r\n locationId: parseInt(id),\r\n userIds,\r\n }));\r\n}\r\n\r\nasync function importChildData(id, file) {\r\n return authenticatedUpload(URL + '/Import/' + id, file);\r\n}\r\n\r\nasync function importStaffData(id, file) {\r\n return authenticatedUpload(URL + '/Import/Staff/' + id, file);\r\n}\r\n\r\nasync function activateLocation(id) {\r\n return authenticatedRequest('POST', URL + '/Activate/' + id);\r\n}\r\n\r\nconst locationService = {\r\n all,\r\n find,\r\n archive,\r\n restore,\r\n create,\r\n update,\r\n updateLocationSiteAdminRelationships,\r\n importChildData,\r\n importStaffData,\r\n activateLocation,\r\n};\r\n\r\nexport default locationService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\nimport locationService from '../../../services/locationService';\r\n\r\nexport default function LocationPage() {\r\n document.title = 'Locations | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const [pageTitle, setPageTitle] = useState('Locations');\r\n\r\n const [locations, setLocations] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n const userState = useContext(UserContext);\r\n\r\n const tableClickEvent = (e, r) => { history.push('/locations/edit/' + r.locationId); };\r\n const tableColumns = [\r\n { text: 'Name', dataField: 'name', sort: true },\r\n { text: 'Address', dataField: 'fullAddress', sort: true },\r\n { text: 'Classrooms', dataField: 'classroomCount', sort: true },\r\n { text: 'Organization', dataField: 'organizationName', sort: true },\r\n ];\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'locations:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const loadLocations = async () => {\r\n if (canView) {\r\n setPageTitle(isShowingArchived ? 'Archived Locations' : 'Locations');\r\n\r\n await locationService\r\n .all(isShowingArchived)\r\n .then((r) => setLocations(r.model))\r\n .finally(() => setIsLoading(false));\r\n }\r\n };\r\n\r\n useEffect(() => { loadLocations(); }, [isShowingArchived]);\r\n\r\n return (\r\n \r\n {({ user }) => (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n setIsShowingArchived(!isShowingArchived)}\r\n archivePermission=\"locations:view-archive\"\r\n isShowingArchived={isShowingArchived}\r\n data={locations}\r\n userRole={user.role}\r\n columns={tableColumns}\r\n keyField=\"locationId\"\r\n defaultSort=\"name\"\r\n />\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { useState } from 'react';\r\n\r\nconst useSelect = (initialValue) => {\r\n const [value = initialValue || '', setValue] = useState();\r\n\r\n return {\r\n value,\r\n setValue,\r\n bind: {\r\n value,\r\n onChange: (event) => {\r\n setValue(event);\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport default useSelect;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Button, Modal, ModalHeader, ModalBody, ModalFooter,\r\n} from 'reactstrap';\r\nimport SpinnerButton from './SpinnerButton';\r\n\r\nexport default function FormModal(props) {\r\n const [modal, setModal] = useState(false);\r\n const toggle = () => setModal(!modal);\r\n\r\n const {\r\n children, buttonLabel = 'Add New', formName = '', isSubmitting = false,\r\n } = props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {buttonLabel}\r\n \r\n {children}\r\n \r\n \r\n Create\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport Select from 'react-select';\r\nimport { toast } from 'react-toastify';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Formik } from 'formik';\r\nimport {\r\n FormGroup, Button, Form, Collapse,\r\n} from 'reactstrap';\r\nimport * as Yup from 'yup';\r\nimport useSelect from '../hooks/useSelect';\r\nimport userService from '../services/userService';\r\nimport Required from '../components/Required';\r\nimport FormModal from '../components/FormModal';\r\nimport RequiredField from '../components/RequiredField';\r\n\r\nexport default function AddSiteAdminForm(props) {\r\n const {\r\n availableSiteAdmins,\r\n addCreatedSiteAdmin,\r\n addSiteAdmin,\r\n updateSiteAdmins,\r\n isHomeCentre,\r\n canCreate,\r\n } = props;\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const {\r\n value: siteAdmins,\r\n bind: bindSiteAdmins,\r\n } = useSelect([]);\r\n\r\n const options = availableSiteAdmins.map((sa) => {\r\n const name = sa.firstName + ' ' + sa.lastName;\r\n return { value: sa.id, label: name };\r\n });\r\n\r\n const initialValues = {\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(100, 'First Name must not exceed 100 characters.')\r\n .required('The First Name field is required.'),\r\n\r\n lastName: Yup.string()\r\n .max(100, 'Last Name must not exceed 100 characters.')\r\n .required('The Last Name field is required.'),\r\n\r\n emailAddress: Yup.string()\r\n .email('Please enter a valid Email Address.')\r\n .required('The Email Address field is required.'),\r\n });\r\n\r\n const onFormSubmit = async (values, { resetForm }) => {\r\n setIsSubmitting(true);\r\n\r\n const obj = {\r\n username: values.emailAddress,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n email: values.emailAddress,\r\n role: 'Site Admin',\r\n };\r\n\r\n await userService\r\n .addUser(obj)\r\n .then(async (r) => {\r\n if (r.hasError) {\r\n toast.error(r.errorMessage);\r\n } else {\r\n addCreatedSiteAdmin(r.model);\r\n resetForm(initialValues);\r\n }\r\n })\r\n .finally(() => setIsSubmitting(false));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n const ids = siteAdmins.map((sa) => sa.value);\r\n addSiteAdmin(ids);\r\n updateSiteAdmins([]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n {isHomeCentre ? 'Add Home Visitor' : 'Add Supervisor'}\r\n
\r\n \r\n \r\n \r\n {isHomeCentre ? 'Home Visitors ' : 'Supervisors '}\r\n have the\r\n ability to create and add new families to this location.\r\n \r\n
\r\n \r\n
\r\n \r\n {canCreate && (\r\n \r\n \r\n {(p) => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport {\r\n Card, CardBody, FormGroup, Label, CustomInput, ButtonGroup,\r\n} from 'reactstrap';\r\n\r\nimport ImagePicker from 'react-image-picker';\r\nimport 'react-image-picker/dist/index.css';\r\nimport ExtendedModal from './ExtendedModal';\r\n\r\nconst imageList = [\r\n '/Uploads/presets/preset-1.jpg',\r\n '/Uploads/presets/preset-2.jpg',\r\n '/Uploads/presets/preset-3.jpg',\r\n '/Uploads/presets/preset-4.jpg',\r\n '/Uploads/presets/preset-5.jpg',\r\n '/Uploads/presets/preset-6.jpg',\r\n '/Uploads/presets/preset-7.jpg',\r\n '/Uploads/presets/preset-8.jpg',\r\n '/Uploads/presets/preset-9.jpg',\r\n '/Uploads/presets/preset-10.jpg',\r\n '/Uploads/presets/preset-11.jpg',\r\n '/Uploads/presets/preset-12.jpg',\r\n '/Uploads/presets/preset-13.jpg',\r\n '/Uploads/presets/preset-14.jpg',\r\n '/Uploads/presets/preset-15.jpg',\r\n '/Uploads/presets/preset-16.jpg',\r\n '/Uploads/presets/preset-17.jpg',\r\n '/Uploads/presets/preset-18.jpg',\r\n '/Uploads/presets/preset-19.jpg',\r\n '/Uploads/presets/preset-20.jpg',\r\n '/Uploads/presets/preset-21.jpg',\r\n '/Uploads/presets/preset-22.jpg',\r\n '/Uploads/presets/preset-23.jpg',\r\n '/Uploads/presets/preset-24.jpg',\r\n '/Uploads/presets/families.png'];\r\n\r\nexport default function CardStyle(props) {\r\n const { currentPath, handleSubmit, canEdit } = props;\r\n\r\n const [file, setFile] = useState();\r\n const [previewImage, setPreviewImage] = useState();\r\n\r\n const [image, setImage] = useState();\r\n\r\n const handleUpload = () => {\r\n handleSubmit(file, image);\r\n\r\n setFile(null);\r\n setImage(null);\r\n };\r\n\r\n const fileChanged = (e) => {\r\n const reader = new FileReader();\r\n const f = e.target.files[0];\r\n\r\n reader.onloadend = () => {\r\n setPreviewImage(reader.result);\r\n };\r\n\r\n reader.readAsDataURL(f);\r\n\r\n setFile(f);\r\n };\r\n\r\n return (\r\n \r\n \r\n {canEdit && (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {previewImage && \"preview\"}\r\n \r\n\r\n \r\n \r\n \r\n ({ src: img, value: i }))}\r\n onPick={(img) => { setImage(img); }}\r\n />\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport locationService from '../services/locationService';\r\nimport RequiredField from '../components/RequiredField';\r\nimport RequiredSelect from '../components/RequiredSelect';\r\n\r\nexport default function EditLocationForm(props) {\r\n const {\r\n location, organizations, siteAdmins, canEdit, setSubmitting, setWasCreated, setIsLhcc,\r\n } = props;\r\n\r\n const history = useHistory();\r\n const [initialValues, setInitialValues] = useState({ });\r\n\r\n const organizationOptions = [];\r\n for (let i = 0; i < organizations.length; i += 1) {\r\n organizationOptions.push({\r\n value: organizations[i].organizationId,\r\n label: organizations[i].name,\r\n });\r\n }\r\n\r\n const postalCodeRegex = /^[A-Za-z]\\d[A-Za-z][ -]?\\d[A-Za-z]\\d$/;\r\n const telephoneRegex = /^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;\r\n\r\n const provinceOptions = [\r\n { value: 0, label: 'Ontario' },\r\n { value: 1, label: 'Québec' },\r\n { value: 2, label: 'Nova Scotia' },\r\n { value: 3, label: 'New Brunswick' },\r\n { value: 4, label: 'Manitoba' },\r\n { value: 5, label: 'British Columbia' },\r\n { value: 6, label: 'Prince Edward Island' },\r\n { value: 7, label: 'Saskatchewan' },\r\n { value: 8, label: 'Alberta' },\r\n { value: 9, label: 'Newfoundland & Labrador' },\r\n { value: 10, label: 'Northwest Territories' },\r\n { value: 11, label: 'Yukon' },\r\n { value: 12, label: 'Nunavut' },\r\n ];\r\n\r\n const typeOptions = [\r\n { value: 0, label: 'Licensed Home Child Care Premise' },\r\n { value: 1, label: 'Center Based' },\r\n ];\r\n\r\n const validationSchema = Yup.lazy((values) => {\r\n const obj = {\r\n name: Yup.string()\r\n .max(100, 'Name must not exceed 100 characters.')\r\n .required('The Name field is required.'),\r\n\r\n organization: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('The Organization field is required.'),\r\n }),\r\n\r\n premiseType: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('Please select a premise type.'),\r\n }),\r\n\r\n address: Yup.string()\r\n .max(300, 'Address must not exceed 300 characters.')\r\n .required('The Address field is required.'),\r\n\r\n city: Yup.string()\r\n .max(100, 'City must not exceed 100 characters.')\r\n .required('The City field is required.'),\r\n\r\n postalCode: Yup.string()\r\n .matches(postalCodeRegex, 'Please enter a valid postal code. (Ex. A1A 1A1)')\r\n .required('The Postal Code field is required.'),\r\n\r\n province: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('The Province field is required.'),\r\n }),\r\n };\r\n\r\n // Fields are only reuqired for Center based locations\r\n if (typeof values.premiseType !== 'undefined' && values.premiseType.value === 1) {\r\n obj.supervisorName = Yup.string()\r\n .max(200, 'Supervisor\\'s Name must not exceed 200 characters.')\r\n .required('The Supervisor\\'s Name field is required');\r\n\r\n obj.emailAddress = Yup.string()\r\n .email('Please enter a valid Email Address.')\r\n .required('The Email Address field is required.');\r\n\r\n obj.phoneNumber = Yup.string()\r\n .matches(telephoneRegex, 'Please enter a valid Phone Number.')\r\n .required('The Phone Number field is required.');\r\n }\r\n\r\n return Yup.object().shape(obj);\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n setSubmitting(true);\r\n\r\n const obj = {\r\n name: values.name,\r\n address: values.address,\r\n city: values.city,\r\n postalCode: values.postalCode,\r\n supervisorName: values.supervisorName,\r\n email: values.emailAddress,\r\n phoneNumber: values.phoneNumber,\r\n phoneNumberExtension: values.phoneNumberExtension,\r\n organizationId: values.organization.value,\r\n province: values.province.value,\r\n photo: location.photo,\r\n isHomeCentre: values.premiseType.value === 0,\r\n };\r\n\r\n if (typeof location.locationId === 'undefined') {\r\n await locationService\r\n .create(obj)\r\n .then(async (r) => {\r\n history.replace('/locations/edit/' + r.model.locationId);\r\n setWasCreated(true);\r\n\r\n const userIds = siteAdmins.map((sa) => sa.id);\r\n await locationService.updateLocationSiteAdminRelationships(r.model.locationId, userIds);\r\n })\r\n .finally(() => setSubmitting(false));\r\n } else {\r\n obj.locationId = location.locationId;\r\n\r\n await locationService\r\n .update(obj)\r\n .then(async (r) => {\r\n const userIds = siteAdmins.map((sa) => sa.id);\r\n await locationService.updateLocationSiteAdminRelationships(location.locationId, userIds);\r\n\r\n if (!r.hasError) {\r\n history.push('/locations');\r\n }\r\n })\r\n .finally(() => setSubmitting(false));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n let initialPremise = null;\r\n let initialOrganization = null;\r\n let initialProvince = null;\r\n\r\n if (typeof location.locationId !== 'undefined') {\r\n initialPremise = location.isHomeCentre ? typeOptions[0] : typeOptions[1];\r\n\r\n const initialOrgs = organizationOptions.filter((o) => o.value === location.organizationId);\r\n if (initialOrgs.length > 0) {\r\n initialOrganization = initialOrgs[0];\r\n }\r\n\r\n const initialProvs = provinceOptions.filter((p) => p.value === location.province);\r\n if (initialProvs.length > 0) {\r\n initialProvince = initialProvs[0];\r\n }\r\n }\r\n\r\n setInitialValues({\r\n name: location.name || '',\r\n organization: initialOrganization,\r\n premiseType: initialPremise,\r\n address: location.address || '',\r\n city: location.city || '',\r\n postalCode: location.postalCode || '',\r\n province: initialProvince,\r\n supervisorName: location.supervisorName || '',\r\n emailAddress: location.email || '',\r\n phoneNumber: location.phoneNumber || '',\r\n phoneNumberExtension: location.phoneNumberExtension || '',\r\n });\r\n }, [location]);\r\n\r\n return (\r\n \r\n {(p) => {\r\n setIsLhcc(typeof props.values !== 'undefined' && props.values.premiseType.value === 0);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {p.values.premiseType && p.values.premiseType.value === 1 && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n }}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media, Row, Container } from 'reactstrap';\r\n\r\nexport default function SingleSiteAdmin(props) {\r\n const { siteAdmin, removeSiteAdmin, canRemove } = props;\r\n\r\n const fullName = siteAdmin.firstName + ' ' + siteAdmin.lastName;\r\n const email = 'mailto:' + siteAdmin.email;\r\n\r\n const removeClicked = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canRemove) {\r\n removeSiteAdmin(siteAdmin.id);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {fullName}\r\n
\r\n
\r\n
\r\n \r\n {fullName}\r\n {siteAdmin.email}\r\n {canRemove && Remove}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","/* eslint-disable max-len */\r\nimport React, {\r\n useState, useEffect, useRef, useContext,\r\n} from 'react';\r\n\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n Row, Col, FormGroup, Label, CustomInput, Button,\r\n} from 'reactstrap';\r\n\r\nimport AddSiteAdminForm from '../../../forms/AddSiteAdminForm';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\n\r\nimport locationService from '../../../services/locationService';\r\nimport organizationService from '../../../services/organizationService';\r\nimport userService from '../../../services/userService';\r\nimport uploadService from '../../../services/uploadService';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardStyle from '../../../components/CardStyle';\r\nimport CardForm from '../../../components/CardForm';\r\nimport EditLocationForm from '../../../forms/EditLocationForm';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport ListItemClassroomLarge from '../../../components/ListItemClassroomLarge';\r\nimport ExportAttendanceForm from '../../../forms/ExportAttendanceForm';\r\nimport CardCollapse from '../../../components/CardCollapse';\r\nimport SingleSiteAdmin from '../../../components/SingleSiteAdmin';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\nimport SpinnerButton from '../../../components/SpinnerButton';\r\n\r\nexport default function EditLocationPage(props) {\r\n document.title = 'Edit Location | Today\\'s Family Fridge';\r\n\r\n const { match } = props;\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const didMount = useRef(false);\r\n\r\n const { id } = match.params;\r\n\r\n const [location, setLocation] = useState({});\r\n const [organizations, setOrganizations] = useState([]);\r\n\r\n // All site admins\r\n const [siteAdmins, setSiteAdmins] = useState([]);\r\n const [locationSiteAdmins, setLocationSiteAdmins] = useState([]);\r\n\r\n // Site Admins that aren't already part of this location\r\n const [availableSiteAdmins, setAvailableSiteAdmins] = useState([]);\r\n\r\n const canExport = CheckPermission(userState.user.role, 'classrooms:export-attendance');\r\n const canEdit = CheckPermission(userState.user.role, 'locations:edit');\r\n const canArchive = CheckPermission(userState.user.role, 'locations:archive');\r\n const canEditSiteAdmins = CheckPermission(userState.user.role, 'locations:edit-siteAdmins');\r\n const canViewClassrooms = CheckPermission(userState.user.role, 'classrooms:visit');\r\n const canCreateClassrooms = CheckPermission(userState.user.role, 'classrooms:create');\r\n const canCreateSiteAdmins = CheckPermission(userState.user.role, 'users:create-siteAdmin');\r\n\r\n const [isNew, setIsNew] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isLhcc, setIsLhcc] = useState(false);\r\n const [wasCreated, setWasCreated] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'locations:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n if (typeof location.siteAdmins !== 'undefined') {\r\n setLocationSiteAdmins(location.siteAdmins);\r\n }\r\n\r\n setIsNew(typeof location.locationId === 'undefined');\r\n setIsLoading(false);\r\n setIsLhcc(location.isHomeCentre);\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n setAvailableSiteAdmins(\r\n siteAdmins.filter((sa) => !locationSiteAdmins.find((lsa) => lsa.id === sa.id)),\r\n );\r\n }\r\n }, [locationSiteAdmins]);\r\n\r\n const loadLocation = async () => {\r\n if (typeof id !== 'undefined' && canView) {\r\n await locationService\r\n .find(id)\r\n .then((r) => setLocation(r.model))\r\n .finally(() => { didMount.current = true; });\r\n } else {\r\n setIsLoading(false);\r\n setLocation({});\r\n setLocationSiteAdmins([]);\r\n\r\n didMount.current = true;\r\n }\r\n };\r\n\r\n const loadOrganizations = async () => {\r\n await organizationService\r\n .all(false)\r\n .then((r) => setOrganizations(r.model));\r\n };\r\n\r\n const loadSiteAdmins = async () => {\r\n await userService\r\n .getSiteAdmins()\r\n .then((r) => {\r\n setSiteAdmins(r.model);\r\n\r\n if (typeof location.siteAdmins === 'undefined' || location.siteAdmins.length === 0) {\r\n setAvailableSiteAdmins(r.model);\r\n }\r\n });\r\n };\r\n\r\n // Initialize the page.\r\n useEffect(() => {\r\n if (canView) {\r\n loadOrganizations();\r\n loadSiteAdmins();\r\n }\r\n }, []);\r\n\r\n // If the id changes, load from the database.\r\n useEffect(() => { loadLocation(); }, [id]);\r\n\r\n const handleArchiveClick = async (e) => {\r\n e.preventDefault();\r\n\r\n if (location.status === 0) {\r\n await locationService\r\n .restore(id)\r\n .then(() => setLocation({ ...location, status: 1 }));\r\n } else {\r\n await locationService\r\n .archive(id)\r\n .then(() => { history.push('/locations'); });\r\n }\r\n };\r\n\r\n const changePhoto = async (file, photo) => {\r\n if (file) {\r\n await uploadService\r\n .uploadPhoto(file)\r\n .then((r) => setLocation({ ...location, photo: r.model.path }));\r\n } else {\r\n setLocation({ ...location, photo: photo.src });\r\n }\r\n };\r\n\r\n // When the user submits a form, add a new site admin to the location\r\n // without reloading from the database.\r\n const addSiteAdmin = (siteAdminIds, createdSiteAdmin) => {\r\n const temp = [...locationSiteAdmins];\r\n\r\n if (typeof createdSiteAdmin !== 'undefined') {\r\n temp.push(createdSiteAdmin);\r\n } else {\r\n for (let i = 0; i < siteAdminIds.length; i += 1) {\r\n temp.push(availableSiteAdmins.find((asa) => asa.id === siteAdminIds[i]));\r\n }\r\n }\r\n\r\n setLocationSiteAdmins(temp);\r\n };\r\n\r\n // Remove a site admin from a location and add it to the available list.\r\n // Will not reload entire location.\r\n const removeSiteAdmin = (siteAdminId) => {\r\n const temp = [...locationSiteAdmins];\r\n temp.splice(temp.findIndex((lsa) => lsa.id === siteAdminId), 1);\r\n\r\n setLocationSiteAdmins(temp);\r\n };\r\n\r\n const [familyFile, setFamilyFile] = useState();\r\n const [staffFile, setStaffFile] = useState();\r\n\r\n const [familyFileUploading, setFamilyFileUploading] = useState(false);\r\n const [staffFileUploading, setStaffFileUploading] = useState(false);\r\n\r\n const [isLocationActivating, setIsLocationActivating] = useState(false);\r\n\r\n const handleFamilyImport = async (e) => {\r\n e.preventDefault();\r\n\r\n setFamilyFileUploading(true);\r\n\r\n await locationService\r\n .importChildData(id, familyFile)\r\n .then((r) => {\r\n setFamilyFileUploading(false);\r\n\r\n if (!r.hasError) {\r\n history.push('/locations');\r\n }\r\n });\r\n };\r\n\r\n const handleStaffImport = async (e) => {\r\n e.preventDefault();\r\n\r\n setStaffFileUploading(true);\r\n\r\n await locationService\r\n .importStaffData(id, staffFile)\r\n .then((r) => {\r\n setStaffFileUploading(false);\r\n\r\n if (!r.hasError) {\r\n history.push('/locations');\r\n }\r\n });\r\n };\r\n\r\n const fileChanged = (e) => {\r\n const reader = new FileReader();\r\n const f = e.target.files[0];\r\n\r\n reader.readAsDataURL(f);\r\n setFamilyFile(f);\r\n };\r\n\r\n const staffFileChanged = (e) => {\r\n const reader = new FileReader();\r\n const f = e.target.files[0];\r\n\r\n reader.readAsDataURL(f);\r\n setStaffFile(f);\r\n };\r\n\r\n const handleActivateClicked = async (e) => {\r\n e.preventDefault();\r\n\r\n setIsLocationActivating(true);\r\n\r\n await locationService\r\n .activateLocation(id)\r\n .then(() => {\r\n setIsLocationActivating(false);\r\n history.push('/locations');\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n
\r\n {!isNew\r\n && (\r\n \r\n )}\r\n \r\n \r\n \r\n {organizations.length > 0 && (\r\n setIsLhcc(i)}\r\n setWasCreated={(w) => setWasCreated(w)}\r\n setSubmitting={(l) => setIsSubmitting(l)}\r\n />\r\n )}\r\n \r\n\r\n {!isNew && location.classrooms && canViewClassrooms && (\r\n }>\r\n \r\n {location.classrooms.length > 0\r\n ? location.classrooms.map((c) => )\r\n :
There are no classrooms associated with this location.
}\r\n
\r\n
\r\n )}\r\n \r\n\r\n \r\n
\r\n {location.status === 2 && canArchive && (\r\n
\r\n
\r\n

Location Inactive

\r\n

\r\n This Location is currently inactive. Once all staff and family data has been imported and you are happy with the results, click below to activate.\r\n
\r\n
\r\n Warning: Clicking activate will send out welcome emails to all those associated to this Location. This includes Caregivers and Parents/Guardians. Please be sure before continuing.\r\n

\r\n \r\n
\r\n
\r\n )}\r\n\r\n \r\n {canEditSiteAdmins && (\r\n { addSiteAdmin([], sa); }}\r\n updateSiteAdmins={setSiteAdmins}\r\n availableSiteAdmins={availableSiteAdmins}\r\n />\r\n )}\r\n {locationSiteAdmins.map((s) => (\r\n \r\n ))}\r\n \r\n (\r\n Upload}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n (\r\n Upload}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n {!isNew && canArchive && location.status !== 2 && }\r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Classroom`;\r\n\r\nasync function all(showArchived) {\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function archive(id) {\r\n return authenticatedRequest('DELETE', URL + '/' + id);\r\n}\r\n\r\nasync function restore(id) {\r\n return authenticatedRequest('POST', URL + '/Restore/' + id);\r\n}\r\n\r\nasync function update(c) {\r\n return authenticatedRequest('PUT', URL + '/' + c.classroomId, JSON.stringify(c));\r\n}\r\n\r\nasync function create(c) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(c));\r\n}\r\n\r\nasync function find(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function findByLocation(ids) {\r\n return authenticatedRequest('POST', URL + '/Locations', JSON.stringify(ids));\r\n}\r\n\r\nasync function findForChild(childId) {\r\n return authenticatedRequest('GET', URL + '/Child/' + childId);\r\n}\r\n\r\nasync function updateCaregiverClassroomRelationships(id, userIds) {\r\n return authenticatedRequest('POST', URL + '/ClassroomCaregivers', JSON.stringify({\r\n classroomId: parseInt(id),\r\n userIds,\r\n }));\r\n}\r\n\r\nasync function updateClassroomChildrenRelationships(id, childIds) {\r\n return authenticatedRequest('POST', URL + '/ClassroomChildren', JSON.stringify({\r\n classroomId: parseInt(id),\r\n childIds,\r\n }));\r\n}\r\n\r\nconst classroomService = {\r\n all,\r\n archive,\r\n restore,\r\n update,\r\n create,\r\n find,\r\n findByLocation,\r\n findForChild,\r\n updateCaregiverClassroomRelationships,\r\n updateClassroomChildrenRelationships,\r\n};\r\n\r\nexport default classroomService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\nimport { UserContext } from '../../../context/userContext';\r\nimport classroomService from '../../../services/classroomService';\r\n\r\nexport default function ClassroomPage() {\r\n document.title = 'Classrooms | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n\r\n const [pageTitle, setPageTitle] = useState('Classrooms');\r\n\r\n const [classrooms, setClassrooms] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n const tableClickEvent = (e, r) => { history.push('/classrooms/edit/' + r.classroomId); };\r\n const tableColumns = [\r\n { text: 'Name', dataField: 'name', sort: true },\r\n {\r\n text: 'Location',\r\n dataField: 'locationName',\r\n headerStyle: { width: '200px' },\r\n sort: true,\r\n },\r\n { text: 'Address', dataField: 'fullAddress', sort: true },\r\n { text: 'Caregivers/Providers', dataField: 'caregivers', sort: true },\r\n {\r\n text: 'Children',\r\n dataField: 'numberOfChildren',\r\n headerStyle: { width: '150px' },\r\n sort: true,\r\n },\r\n ];\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'classrooms:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const loadClassrooms = async () => {\r\n if (canView) {\r\n setPageTitle(isShowingArchived ? 'Archived Classrooms' : 'Classrooms');\r\n\r\n await classroomService\r\n .all(isShowingArchived)\r\n .then((r) => setClassrooms(r.model))\r\n .finally(() => setIsLoading(false));\r\n }\r\n };\r\n\r\n useEffect(() => { loadClassrooms(); }, [isShowingArchived]);\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n setIsShowingArchived(!isShowingArchived)}\r\n archivePermission=\"classrooms:view-archive\"\r\n userRole={userState.user.role}\r\n columns={tableColumns}\r\n data={classrooms}\r\n tableClickEvent={tableClickEvent}\r\n keyField=\"classroomId\"\r\n defaultSort=\"name\"\r\n />\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Select from 'react-select';\r\n\r\nimport {\r\n FormGroup, Label, Button, Form, Collapse,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport useSelect from '../hooks/useSelect';\r\nimport Required from '../components/Required';\r\n\r\nexport default function AddChildForm(props) {\r\n const { classroomChildren, addChild } = props;\r\n const { value: selectedChildren, setValue: setChildren, bind: bindChildren } = useSelect();\r\n\r\n const options = classroomChildren.map((c) => ({ value: c.childId, label: c.fullName }));\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n if (selectedChildren) {\r\n const ids = selectedChildren.map((c) => c.value);\r\n addChild(ids);\r\n\r\n // Clear the dropdown.\r\n setChildren([]);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
Add Children
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Row, Col, InputGroup, InputGroupAddon, InputGroupText,\r\n} from 'reactstrap';\r\n\r\nimport Moment from 'react-moment';\r\nimport DatePicker from 'react-flatpickr';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { Link } from 'react-router-dom';\r\nimport attendanceService from '../../../../../services/attendanceService';\r\nimport CardHeaderless from '../../../../../components/CardHeaderless';\r\nimport ExtendedModal from '../../../../../components/ExtendedModal';\r\nimport ExportAttendanceForm from '../../../../../forms/ExportAttendanceForm';\r\n\r\nexport default function ClassroomAttendance(props) {\r\n const { classroomId } = props;\r\n\r\n const [currentClassroomId] = useState(classroomId);\r\n const [attendance, setAttendance] = useState([]);\r\n const [date, setDate] = useState();\r\n\r\n const loadAttendance = async () => {\r\n if (typeof currentClassroomId !== 'undefined') {\r\n setDate(new Date().toString());\r\n }\r\n };\r\n\r\n const loadAttendanceDate = async () => {\r\n if (typeof date !== 'undefined') {\r\n await attendanceService\r\n .getForClassroomByDateAsync(parseInt(currentClassroomId), new Date(date).getTime() / 1000)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n setAttendance(r.model);\r\n } else {\r\n // TODO: Handle\r\n }\r\n });\r\n }\r\n };\r\n\r\n const clearDate = async () => {\r\n setDate();\r\n loadAttendance();\r\n };\r\n\r\n useEffect(() => { loadAttendance(); }, [classroomId]);\r\n useEffect(() => { loadAttendanceDate(); }, [date]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

Attendance

\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n setDate(d)}\r\n options={{ maxDate: new Date() }}\r\n />\r\n\r\n {date && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {attendance.map((a) => (\r\n \r\n \r\n
\r\n \r\n \"\"\r\n \r\n
\r\n {a.child.fullName}\r\n
\r\n \r\n \r\n Time In\r\n

\r\n {a.checkedInAt}\r\n
\r\n {a.checkedInAt}\r\n

\r\n \r\n \r\n Time Out\r\n

\r\n {a.checkedOutAt !== null ? (\r\n \r\n {a.checkedOutAt}\r\n
\r\n {a.checkedOutAt}\r\n
\r\n ) : (\r\n -\r\n )}\r\n

\r\n \r\n
\r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Child`;\r\n\r\nasync function all(showArchived) {\r\n console.log('ENDPOINT ALL CALLED');\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function availableChildren(showArchived) {\r\n if (showArchived) {\r\n return authenticatedRequest('GET', URL + '/ArchivedChildren');\r\n }\r\n\r\n return authenticatedRequest('GET', URL + '/AvailableChildren');\r\n}\r\n\r\nasync function create(child) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(child));\r\n}\r\n\r\nasync function archive(id) {\r\n return authenticatedRequest('DELETE', URL + '/' + id);\r\n}\r\n\r\nasync function restore(id) {\r\n return authenticatedRequest('POST', URL + '/Restore' + id);\r\n}\r\n\r\nasync function update(child) {\r\n return authenticatedRequest('PUT', URL + '/' + child.childId, JSON.stringify(child));\r\n}\r\n\r\nasync function find(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function findForClassroom(id) {\r\n return authenticatedRequest('GET', URL + '/Classroom/' + id);\r\n}\r\n\r\nasync function findForFamily(id) {\r\n return authenticatedRequest('GET', URL + '/Family/' + id);\r\n}\r\n\r\nasync function findGuardiansForChild(id) {\r\n return authenticatedRequest('GET', URL + '/Guardians/' + id);\r\n}\r\n\r\nasync function addNote(id, content) {\r\n return authenticatedRequest('POST', URL + '/' + id + '/AddNote',\r\n JSON.stringify({\r\n childId: id,\r\n content,\r\n }));\r\n}\r\n\r\nasync function updateChildClassroomRelationships(id, classroomIds) {\r\n return authenticatedRequest('POST', URL + '/ChildClassrooms', JSON.stringify({\r\n childId: parseInt(id),\r\n classroomIds,\r\n }));\r\n}\r\n\r\nconst childService = {\r\n availableChildren,\r\n all,\r\n create,\r\n archive,\r\n restore,\r\n update,\r\n find,\r\n findForClassroom,\r\n findForFamily,\r\n findGuardiansForChild,\r\n addNote,\r\n updateChildClassroomRelationships,\r\n};\r\n\r\nexport default childService;\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Photo`;\r\n\r\nasync function createPhoto(photo) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(photo));\r\n}\r\n\r\nasync function deletePhoto(id) {\r\n return authenticatedRequest('DELETE', URL + '/' + id);\r\n}\r\n\r\nasync function photosForChild(id) {\r\n return authenticatedRequest('GET', URL + '/Child/' + id);\r\n}\r\n\r\nasync function photosForClassroom(id) {\r\n return authenticatedRequest('GET', URL + '/Classroom' + id);\r\n}\r\n\r\nasync function getPhoto(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function updatePhoto(id, photo) {\r\n return authenticatedRequest('PUT', URL + '/' + id, JSON.stringify(photo));\r\n}\r\n\r\nconst photoService = {\r\n createPhoto,\r\n deletePhoto,\r\n photosForChild,\r\n photosForClassroom,\r\n getPhoto,\r\n updatePhoto,\r\n};\r\n\r\nexport default photoService;\r\n","import React, { useState } from 'react';\r\nimport Select from 'react-select';\r\nimport {\r\n Form, FormGroup, Label, CustomInput,\r\n} from 'reactstrap';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\nimport CardCollapse from '../components/CardCollapse';\r\nimport Required from '../components/Required';\r\nimport photoService from '../services/photoService';\r\nimport uploadService from '../services/uploadService';\r\n\r\nexport default function AddPhotoForm(props) {\r\n const { classroomId, addPhoto, classroomChildren } = props;\r\n\r\n const [fileHasError, setFileHasError] = useState(false);\r\n const [file, setFile] = useState();\r\n\r\n const [previewImage, setPreviewImage] = useState();\r\n\r\n const [contentHasError, setContentHasError] = useState(false);\r\n const [content, setContent] = useState('');\r\n\r\n const [childHasError, setChildHasError] = useState();\r\n const [child, setChild] = useState();\r\n\r\n const childOptions = [];\r\n for (let i = 0; i < classroomChildren.length; i += 1) {\r\n const c = classroomChildren[i];\r\n\r\n if (c.hasPhotoPermission) {\r\n childOptions.push({\r\n value: c.childId,\r\n label: c.fullName,\r\n });\r\n }\r\n }\r\n\r\n const fileChanged = (e) => {\r\n const reader = new FileReader();\r\n const f = e.target.files[0];\r\n\r\n reader.onloadend = () => {\r\n setPreviewImage(reader.result);\r\n };\r\n\r\n reader.readAsDataURL(f);\r\n\r\n setFile(f);\r\n };\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setFileHasError(!file);\r\n setChildHasError(!child);\r\n setContentHasError(!content);\r\n\r\n if (file && child && content) {\r\n await uploadService\r\n .uploadPhoto(file)\r\n .then(async (response) => {\r\n await photoService.createPhoto({\r\n path: response.model.path,\r\n classroomId: parseInt(classroomId),\r\n childId: child.value,\r\n width: response.model.width,\r\n height: response.model.height,\r\n description: content,\r\n }).then((r) => addPhoto(r.model));\r\n })\r\n .finally(() => {\r\n setFile(null);\r\n setChild(null);\r\n setPreviewImage(null);\r\n setContent('');\r\n });\r\n }\r\n };\r\n\r\n const addFooter = (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n It is recommended that images be no larger than 1920x1080.\r\n {previewImage && \"preview\"}\r\n \r\n \r\n \r\n setCloneOption(v)} />\r\n \r\n \r\n \r\n setMorningSnack(v)} placeholder=\"Enter what the morning snack will be...\" className={morningSnackHasError ? 'hasError' : ''} height={150} />\r\n \r\n \r\n \r\n setLunch(v)} placeholder=\"Enter what lunch will be...\" className={lunchHasError ? 'hasError' : ''} height={150} />\r\n \r\n \r\n \r\n setAfternoonSnack(v)} placeholder=\"Enter what the afternoon snack will be...\" className={afternoonSnackHasError ? 'hasError' : ''} height={150} />\r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Row, Col, Label, FormGroup, Button,\r\n} from 'reactstrap';\r\nimport { toast } from 'react-toastify';\r\nimport Flatpickr from 'react-flatpickr';\r\nimport 'flatpickr/dist/flatpickr.min.css';\r\n\r\nimport moment from 'moment';\r\nimport Moment from 'react-moment';\r\nimport menuService from '../services/menuService';\r\nimport ExtendedModal from '../components/ExtendedModal';\r\nimport CardCustom from '../components/CardCustom';\r\nimport Required from '../components/Required';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\n\r\nexport default function EditMenuForm(props) {\r\n const { menu, canEdit, removeMenu } = props;\r\n\r\n const defaultDate = new Date();\r\n defaultDate.setHours(0, 0, 0, 0);\r\n\r\n const [dateHasError, setDateHasError] = useState(false);\r\n const [morningSnackHasError, setMorningSnackHasError] = useState(false);\r\n const [lunchHasError, setLunchHasError] = useState(false);\r\n const [afternoonSnackHasError, setAfternoonSnackHasError] = useState(false);\r\n\r\n const [isEditing, setIsEditing] = useState(false);\r\n\r\n const [date, setDate] = useState(moment.utc(menu.date).toDate());\r\n const [morningSnack, setMorningSnack] = useState(menu.morningSnack);\r\n const [lunch, setLunch] = useState(menu.lunch);\r\n const [afternoonSnack, setAfternoonSnack] = useState(menu.afternoonSnack);\r\n\r\n useEffect(() => {\r\n setDate(moment.utc(menu.date).toDate());\r\n setMorningSnack(menu.morningSnack);\r\n setLunch(menu.lunch);\r\n setAfternoonSnack(menu.afternoonSnack);\r\n }, [isEditing]);\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n setDateHasError(!date);\r\n setMorningSnackHasError(!morningSnack);\r\n setLunchHasError(!lunch);\r\n setAfternoonSnackHasError(!afternoonSnack);\r\n\r\n if (morningSnack && lunch && afternoonSnack) {\r\n menu.date = moment.utc(date).format();\r\n menu.morningSnack = morningSnack;\r\n menu.lunch = lunch;\r\n menu.afternoonSnack = afternoonSnack;\r\n\r\n await menuService\r\n .updateMenu(menu)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n setIsEditing(false);\r\n }\r\n });\r\n } else {\r\n if (!morningSnack) {\r\n toast.error('Please enter a morning snack for your new menu.');\r\n }\r\n\r\n if (!lunch) {\r\n toast.error('Please enter a lunch for your new menu.');\r\n }\r\n\r\n if (!afternoonSnack) {\r\n toast.error('Please enter a afternoon snack for your new menu.');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onDelete = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n await menuService\r\n .deleteMenu(menu.menuId)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n removeMenu(menu.menuId);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const header = (\r\n
\r\n
\r\n \r\n \r\n {date}\r\n \r\n \r\n \r\n \r\n {date}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {date}\r\n \r\n
\r\n

\r\n Created by\r\n {menu.createdBy}\r\n

\r\n
\r\n
\r\n );\r\n\r\n const footer = (\r\n
\r\n {isEditing\r\n ? (\r\n
\r\n \r\n \r\n
\r\n )\r\n : (\r\n
\r\n \r\n
Are you sure that you wish to archive this menu?
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n\r\n return (\r\n \r\n {!isEditing\r\n ? (\r\n \r\n \r\n
Morning Snack
\r\n \r\n \r\n \r\n
Lunch
\r\n \r\n \r\n \r\n
Afternoon Snack
\r\n \r\n \r\n
\r\n )\r\n : (\r\n
\r\n \r\n \r\n setDate(d[0])}\r\n />\r\n \r\n \r\n \r\n setMorningSnack(v)} placeholder=\"Enter what the morning snack will be...\" className={morningSnackHasError ? 'hasError' : ''} height={150} />\r\n \r\n \r\n \r\n setLunch(v)} placeholder=\"Enter what lunch will be...\" className={lunchHasError ? 'hasError' : ''} height={150} />\r\n \r\n \r\n \r\n setAfternoonSnack(v)} placeholder=\"Enter what the afternoon snack will be...\" className={afternoonSnackHasError ? 'hasError' : ''} height={150} />\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport CardHeaderless from '../../../../../components/CardHeaderless';\r\nimport AddMenuForm from '../../../../../forms/AddMenuForm';\r\nimport EditMenuForm from '../../../../../forms/EditMenuForm';\r\n\r\nexport default function ClassroomMenus(props) {\r\n const {\r\n canEdit,\r\n classroomId,\r\n addMenu,\r\n removeMenu,\r\n menus,\r\n pastMenus,\r\n } = props;\r\n\r\n const [classroomCurrentMenus] = useState(menus);\r\n const [classroomPastMenus] = useState(pastMenus);\r\n\r\n return (\r\n
\r\n

Menus

\r\n {canEdit && (\r\n \r\n )}\r\n\r\n {classroomCurrentMenus.length > 0\r\n ? classroomCurrentMenus.map((m) => (\r\n \r\n ))\r\n : (\r\n \r\n
No menus have been added yet! Please check back soon.
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Event`;\r\n\r\nasync function classroomEvents(classroomId) {\r\n return authenticatedRequest('GET', `${URL}/${classroomId}`);\r\n}\r\n\r\nasync function findEvent(id) {\r\n return authenticatedRequest('GET', `${URL}/${id}`);\r\n}\r\n\r\nasync function deleteEvent(id) {\r\n return authenticatedRequest('DELETE', `${URL}/${id}`);\r\n}\r\n\r\nasync function updateEvent(event) {\r\n return authenticatedRequest('PUT', `${URL}/${event.eventId}`, JSON.stringify(event));\r\n}\r\n\r\nasync function addEvent(event) {\r\n return authenticatedRequest('POST', `${URL}`, JSON.stringify(event));\r\n}\r\n\r\nconst eventService = {\r\n classroomEvents,\r\n findEvent,\r\n deleteEvent,\r\n updateEvent,\r\n addEvent,\r\n};\r\n\r\nexport default eventService;\r\n","import React, { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport {\r\n FormGroup, Label, Input, Row, Col, Button,\r\n} from 'reactstrap';\r\n\r\nimport Flatpickr from 'react-flatpickr';\r\nimport 'flatpickr/dist/flatpickr.min.css';\r\n\r\nimport moment from 'moment';\r\n\r\nimport eventService from '../services/eventService';\r\nimport CardCollapse from '../components/CardCollapse';\r\nimport Required from '../components/Required';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\nimport useInput from '../hooks/useInput';\r\n\r\nexport default function AddEventForm(props) {\r\n const { classroomId, addEvent } = props;\r\n\r\n const defaultDate = new Date();\r\n defaultDate.setHours(0, 0, 0, 0);\r\n\r\n const [titleHasError, setTitleHasError] = useState(false);\r\n const [descriptionHasError, setDescriptionHasError] = useState(false);\r\n const [startDateHasError, setStartDateHasError] = useState(false);\r\n const [endDateHasError, setEndDateHasError] = useState(false);\r\n\r\n const { value: title, setValue: setTitle, bind: bindTitle } = useInput();\r\n const [startDate, setStartDate] = useState(defaultDate);\r\n const [endDate, setEndDate] = useState(defaultDate);\r\n const [description, setDescription] = useState('');\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setTitleHasError(!title);\r\n setDescriptionHasError(!description);\r\n setStartDateHasError(!startDate);\r\n setEndDateHasError(!endDate);\r\n\r\n if (title && description) {\r\n const start = moment.utc(startDate).format();\r\n const end = moment.utc(endDate).format();\r\n\r\n await eventService\r\n .addEvent(\r\n {\r\n classroomId: parseInt(classroomId),\r\n startDate: start,\r\n endDate: end,\r\n title,\r\n description,\r\n },\r\n )\r\n .then((r) => {\r\n setTitle('');\r\n setDescription('');\r\n setStartDate(defaultDate);\r\n setEndDate(defaultDate);\r\n\r\n addEvent(r.model);\r\n });\r\n } else {\r\n if (!title) {\r\n toast.error('Please enter a title for your new event.');\r\n }\r\n\r\n if (!description) {\r\n toast.error('Please enter a description for your new event.');\r\n }\r\n }\r\n };\r\n\r\n const addFooter = (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n const d = date[0];\r\n setStartDate(d);\r\n\r\n // Set the end date to this date if it's less.\r\n const end = moment.utc(endDate).toDate();\r\n if (!end || end < d) {\r\n setEndDate(d);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setEndDate(date[0])}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setDescription(v)} placeholder=\"Describe what this event is about...\" className={descriptionHasError ? 'hasError' : ''} />\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport {\r\n Row, Col, Label, FormGroup, Input, Button,\r\n} from 'reactstrap';\r\n\r\nimport moment from 'moment';\r\nimport Moment from 'react-moment';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport Flatpickr from 'react-flatpickr';\r\nimport 'flatpickr/dist/flatpickr.min.css';\r\n\r\nimport eventService from '../services/eventService';\r\nimport ExtendedModal from '../components/ExtendedModal';\r\nimport CardCustom from '../components/CardCustom';\r\nimport Required from '../components/Required';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\nimport useInput from '../hooks/useInput';\r\n\r\nexport default function EditEventForm(props) {\r\n const { event, canEdit, removeEvent } = props;\r\n\r\n const defaultDate = new Date();\r\n defaultDate.setHours(0, 0, 0, 0);\r\n\r\n const [titleHasError, setTitleHasError] = useState(false);\r\n const [descriptionHasError, setDescriptionHasError] = useState(false);\r\n const [startDateHasError, setStartDateHasError] = useState(false);\r\n const [endDateHasError, setEndDateHasError] = useState(false);\r\n\r\n const [isEditing, setIsEditing] = useState(false);\r\n\r\n const { value: title, setValue: setTitle, bind: bindTitle } = useInput(event.title);\r\n const [startDate, setStartDate] = useState(moment.utc(event.startDate).toDate());\r\n const [endDate, setEndDate] = useState(moment.utc(event.endDate).toDate());\r\n const [description, setDescription] = useState(event.description);\r\n\r\n useEffect(() => {\r\n setTitle(event.title);\r\n setStartDate(moment.utc(event.startDate).toDate());\r\n setEndDate(moment.utc(event.endDate).toDate());\r\n setDescription(event.description);\r\n }, [isEditing]);\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n setTitleHasError(!title);\r\n setDescriptionHasError(!description);\r\n setStartDateHasError(!startDate);\r\n setEndDateHasError(!endDate);\r\n\r\n if (title && description) {\r\n const start = moment.utc(startDate).format();\r\n const end = moment.utc(endDate).format();\r\n\r\n event.title = title;\r\n event.description = description;\r\n event.startDate = start;\r\n event.endDate = end;\r\n\r\n await eventService\r\n .updateEvent(event)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n setIsEditing(false);\r\n }\r\n });\r\n } else {\r\n if (!title) {\r\n toast.error('Please enter a title for your new event.');\r\n }\r\n\r\n if (!description) {\r\n toast.error('Please enter a description for your new event.');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const onDelete = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n await eventService\r\n .deleteEvent(event.eventId)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n removeEvent(event.eventId);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const header = (\r\n
\r\n
\r\n \r\n \r\n {startDate}\r\n \r\n \r\n \r\n \r\n {startDate}\r\n \r\n \r\n
\r\n
\r\n
{title}
\r\n

\r\n Created by\r\n {event.createdBy}\r\n

\r\n

\r\n \r\n {startDate}\r\n \r\n — \r\n \r\n {endDate}\r\n \r\n

\r\n
\r\n
\r\n );\r\n\r\n const footer = (\r\n
\r\n {isEditing\r\n ? (\r\n
\r\n \r\n \r\n
\r\n )\r\n : (\r\n
\r\n \r\n
Are you sure that you wish to archive this event?
\r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n\r\n return (\r\n \r\n {!isEditing\r\n ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n const d = date[0];\r\n setStartDate(d);\r\n\r\n // Set the end date to this date if it's less.\r\n const end = moment.utc(endDate).toDate();\r\n if (!end || end < d) {\r\n setEndDate(d);\r\n }\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n setEndDate(date[0])}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setDescription(v)} placeholder=\"Describe what this event is about...\" className={descriptionHasError ? 'hasError' : ''} />\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport CardHeaderless from '../../../../../components/CardHeaderless';\r\nimport AddEventForm from '../../../../../forms/AddEventForm';\r\nimport EditEventForm from '../../../../../forms/EditEventForm';\r\n\r\nexport default function ClassroomEvents(props) {\r\n const {\r\n canEdit,\r\n classroomId,\r\n addEvent,\r\n removeEvent,\r\n events,\r\n } = props;\r\n\r\n const [classroomEvents] = useState(events);\r\n\r\n return (\r\n
\r\n

Events

\r\n {canEdit && }\r\n\r\n {classroomEvents.length > 0\r\n ? events.map((event) => (\r\n \r\n ))\r\n : (\r\n \r\n
No events have been added yet! Please check back soon.
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Notes`;\r\n\r\nasync function allNotes() {\r\n return authenticatedRequest('GET', URL);\r\n}\r\n\r\nasync function classroomNotes(classroomId) {\r\n return authenticatedRequest('GET', `${URL}/${classroomId}`);\r\n}\r\n\r\nasync function findNote(id) {\r\n return authenticatedRequest('GET', `${URL}/${id}`);\r\n}\r\n\r\nasync function deleteNote(id) {\r\n return authenticatedRequest('DELETE', `${URL}/${id}`);\r\n}\r\n\r\nasync function updateNote(note) {\r\n return authenticatedRequest('PUT', `${URL}/${note.noteId}`, JSON.stringify(note));\r\n}\r\n\r\nasync function addNote(note) {\r\n return authenticatedRequest('POST', `${URL}`, JSON.stringify(note));\r\n}\r\n\r\nconst noteService = {\r\n allNotes,\r\n classroomNotes,\r\n findNote,\r\n deleteNote,\r\n updateNote,\r\n addNote,\r\n};\r\n\r\nexport default noteService;\r\n","import React, { useState } from 'react';\r\nimport {\r\n Form, FormGroup, Label, Input,\r\n} from 'reactstrap';\r\n\r\nimport { toast } from 'react-toastify';\r\n\r\nimport noteService from '../services/noteService';\r\nimport CardCollapse from '../components/CardCollapse';\r\nimport Required from '../components/Required';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\nimport useInput from '../hooks/useInput';\r\n\r\nexport default function AddNoteForm(props) {\r\n const { classroomId, addNote } = props;\r\n const { value: title, setValue: setTitle, bind: bindTitle } = useInput();\r\n\r\n const [titleHasError, setTitleHasError] = useState(false);\r\n const [contentHasError, setContentHasError] = useState(false);\r\n const [content, setContent] = useState('');\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setTitleHasError(!title);\r\n setContentHasError(!content);\r\n\r\n if (title && content) {\r\n await noteService\r\n .addNote(\r\n {\r\n classroomId: parseInt(classroomId),\r\n title,\r\n content,\r\n },\r\n )\r\n .then((r) => {\r\n setTitle('');\r\n setContent('');\r\n addNote(r.model);\r\n });\r\n } else {\r\n if (!title) {\r\n toast.error('Please enter a title for your new note.');\r\n }\r\n\r\n if (!content) {\r\n toast.error('Please enter some content for your new note.');\r\n }\r\n }\r\n };\r\n\r\n const addFooter = (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setContent(v)} placeholder=\"Enter the content of your note here...\" className={contentHasError ? 'hasError' : ''} />\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport Moment from \"react-moment\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Button, Form, FormGroup, Label, Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\r\n\r\nimport AdvancedEditor from \"../components/AdvancedEditor\";\r\nimport CardCustom from \"../components/CardCustom\";\r\nimport Required from \"../components/Required\";\r\nimport useInput from \"../hooks/useInput\";\r\nimport noteService from \"../services/noteService\";\r\n\r\nexport default function EditNoteForm(props) {\r\n const { note, canEdit, removeNote } = props;\r\n\r\n const [isEditing, setIsEditing] = useState(false);\r\n const { value: title, bind: bindTitle } = useInput(note.title);\r\n const [content, setContent] = useState(note.content);\r\n\r\n const [titleHasError, setTitleHasError] = useState(false);\r\n const [contentHasError, setContentHasError] = useState(false);\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setTitleHasError(!title);\r\n setContentHasError(!content);\r\n\r\n if (title && content) {\r\n note.title = title;\r\n note.content = content;\r\n\r\n await noteService.updateNote(note).then((r) => {\r\n if (!r.hasError) {\r\n setIsEditing(false);\r\n }\r\n });\r\n } else {\r\n if (!title) {\r\n toast.error(\"Please enter a title for your new note.\");\r\n }\r\n\r\n if (!content) {\r\n toast.error(\"Please enter some content for your new note.\");\r\n }\r\n }\r\n };\r\n\r\n const [deleteConfirmation, setDeleteConfirmation] = useState(false);\r\n const deleteNote = async () => {\r\n const result = await noteService.deleteNote(note.noteId);\r\n if (!result.hasError) {\r\n // schedule removal of note for next event loop, doesn't seem to always fix the modal-open issue\r\n window.setTimeout(() => removeNote(note.noteId), 1);\r\n } else {\r\n toast.error(\"An error occurred while deleting the note.\");\r\n }\r\n // Remove the modal-open class, in case the modal was removed before cleaning it up\r\n document.body.classList.remove(\"modal-open\");\r\n };\r\n\r\n const header = (\r\n
\r\n {!isEditing &&
{title}
}\r\n

Created by {note.createdBy}

\r\n

\r\n \r\n {note.createdOn}\r\n \r\n

\r\n
\r\n );\r\n\r\n const footer = (\r\n
\r\n {isEditing ? (\r\n
\r\n \r\n \r\n
\r\n ) : (\r\n
\r\n \r\n {\r\n // if we don't preventDefault, it can submit the form once the form is opened. This only seems to happen if the delete button is added right before here.\r\n e.preventDefault();\r\n setIsEditing(true);\r\n }}\r\n >\r\n Edit\r\n \r\n
\r\n )}\r\n\r\n setDeleteConfirmation(false)} size=\"md\">\r\n setDeleteConfirmation(false)}> Note Deletion\r\n Are you sure you want to delete this note? \r\n \r\n \r\n {\r\n // There's a race condition that seems to cause the modal to be removed before it can remove the modal-open class from the body.\r\n setDeleteConfirmation(false);\r\n // Schedule for next event loop, doesn't seem to matter anyways.\r\n window.setTimeout(deleteNote, 0);\r\n }}\r\n >\r\n Delete\r\n \r\n \r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n {!isEditing ? (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n setContent(v)}\r\n placeholder=\"Enter the content of your note here...\"\r\n className={contentHasError ? \"hasError\" : \"\"}\r\n />\r\n \r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport CardHeaderless from '../../../../../components/CardHeaderless';\r\nimport AddNoteForm from '../../../../../forms/AddNoteForm';\r\nimport EditNoteForm from '../../../../../forms/EditNoteForm';\r\n\r\nexport default function ClassroomNotes(props) {\r\n const {\r\n canEdit, classroomId, addNote, removeNote, notes,\r\n } = props;\r\n\r\n const [classroomNotes] = useState(notes);\r\n\r\n return (\r\n
\r\n

Notes

\r\n {canEdit && }\r\n\r\n {classroomNotes.length > 0\r\n ? classroomNotes.map((n) => )\r\n : (\r\n \r\n
No notes have been added yet! Please check back soon.
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Moment from 'react-moment';\r\n\r\nexport default function SingleNote(props) {\r\n const { note } = props;\r\n\r\n return (\r\n
\r\n
\r\n
{note.title}
\r\n

\r\n Posted by\r\n  \r\n {note.createdBy}\r\n

\r\n

\r\n \r\n {note.createdOn}\r\n \r\n

\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Moment from 'react-moment';\r\n\r\nexport default function SingleEvent(props) {\r\n const { event } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {event.startDate}\r\n \r\n \r\n \r\n \r\n {event.startDate}\r\n \r\n \r\n
\r\n
\r\n
{event.title}
\r\n

\r\n Created by\r\n {event.createdBy}\r\n

\r\n

\r\n \r\n {event.startDate}\r\n \r\n  — \r\n \r\n {event.endDate}\r\n \r\n

\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport Moment from 'react-moment';\r\n\r\nexport default function SingleMenu(props) {\r\n const { menu } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n {menu.date}\r\n \r\n \r\n \r\n \r\n {menu.date}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {menu.date}\r\n \r\n
\r\n

\r\n Created by\r\n {menu.createdBy}\r\n

\r\n\r\n
Morning Snack
\r\n \r\n
Lunch
\r\n \r\n
Afternoon Snack
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport classroomService from '../services/classroomService';\r\nimport RequiredField from '../components/RequiredField';\r\nimport RequiredSelect from '../components/RequiredSelect';\r\n\r\nexport default function EditClassroomForm(props) {\r\n const history = useHistory();\r\n\r\n const {\r\n classroom,\r\n locations,\r\n canEdit,\r\n classroomChildren,\r\n caregivers,\r\n setSubmitting,\r\n setWasCreated,\r\n selectedLocationId = '',\r\n } = props;\r\n\r\n const locationOptions = [];\r\n for (let i = 0; i < locations.length; i += 1) {\r\n locationOptions.push({\r\n value: locations[i].locationId,\r\n label: locations[i].name,\r\n });\r\n }\r\n\r\n let initialValues = {\r\n name: typeof classroom.classroomId !== 'undefined' ? classroom.name : '',\r\n location: locationOptions.find((l) => l.value === classroom.locationId),\r\n };\r\n\r\n if (selectedLocationId !== '') {\r\n initialValues = {\r\n name: '',\r\n location: locationOptions.find((l) => l.value === parseInt(selectedLocationId)),\r\n };\r\n }\r\n\r\n const validationSchema = Yup.object().shape({\r\n name: Yup.string()\r\n .max(100, 'Name must not exceed 100 characters.')\r\n .required('The Name field is Required.'),\r\n\r\n location: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('The Location field is required.'),\r\n }),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n setSubmitting(true);\r\n\r\n const obj = {\r\n name: values.name,\r\n locationId: values.location.value,\r\n photo: classroom.photo,\r\n };\r\n\r\n if (typeof classroom.classroomId === 'undefined') {\r\n await classroomService\r\n .create(obj)\r\n .then(async (r) => {\r\n const userIds = caregivers.map((c) => c.id);\r\n await classroomService\r\n .updateCaregiverClassroomRelationships(r.model.classroomId, userIds);\r\n\r\n const childIds = classroomChildren.map((c) => c.childId);\r\n await classroomService\r\n .updateClassroomChildrenRelationships(r.model.classroomId, childIds);\r\n\r\n history.replace('/classrooms/edit/' + r.model.classroomId);\r\n setWasCreated(true);\r\n })\r\n .finally(() => setSubmitting(false));\r\n } else {\r\n obj.classroomId = classroom.classroomId;\r\n\r\n await classroomService\r\n .update(obj)\r\n .then(async (r) => {\r\n const userIds = caregivers.map((c) => c.id);\r\n await classroomService\r\n .updateCaregiverClassroomRelationships(classroom.classroomId, userIds);\r\n\r\n const childIds = classroomChildren.map((c) => c.childId);\r\n await classroomService\r\n .updateClassroomChildrenRelationships(classroom.classroomId, childIds);\r\n\r\n if (!r.hasError) {\r\n history.push('/classrooms');\r\n }\r\n })\r\n .finally(() => setSubmitting(false));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect, useCallback } from 'react';\r\n\r\nimport { Row, Col } from 'reactstrap';\r\n\r\nimport Gallery from 'react-photo-gallery';\r\nimport Carousel, { Modal, ModalGateway } from 'react-images';\r\nimport locationService from '../../../../../services/locationService';\r\nimport uploadService from '../../../../../services/uploadService';\r\nimport CardCustom from '../../../../../components/CardCustom';\r\nimport CardStyle from '../../../../../components/CardStyle';\r\nimport CardForm from '../../../../../components/CardForm';\r\nimport SingleNote from '../../../../../components/SingleNote';\r\nimport SingleEvent from '../../../../../components/SingleEvent';\r\nimport SingleMenu from '../../../../../components/SingleMenu';\r\nimport EditClassroomForm from '../../../../../forms/EditClassroomForm';\r\n\r\nexport default function ClassroomOverview(props) {\r\n const {\r\n classroom, canEdit, canViewNotes, canViewEvents, canViewMenus, canViewPhotos,\r\n classroomChildren, caregivers, selectedLocationId,\r\n } = props;\r\n\r\n const [locations, setLocations] = useState([]);\r\n const [currentClassroom, setClassroom] = useState({});\r\n\r\n const [events, setEvents] = useState([]);\r\n const [notes, setNotes] = useState([]);\r\n const [menus, setMenus] = useState([]);\r\n const [photos, setPhotos] = useState([]);\r\n\r\n const [isNew, setIsNew] = useState(true);\r\n\r\n // lightbox state\r\n const [currentImage, setCurrentImage] = useState(0);\r\n const [viewerIsOpen, setViewerIsOpen] = useState(false);\r\n\r\n const openLightbox = useCallback((e, { i }) => {\r\n setCurrentImage(i);\r\n setViewerIsOpen(true);\r\n }, []);\r\n\r\n const closeLightbox = () => {\r\n setCurrentImage(0);\r\n setViewerIsOpen(false);\r\n };\r\n\r\n useEffect(() => { setClassroom(classroom); }, [classroom]);\r\n\r\n useEffect(() => {\r\n setEvents((currentClassroom.events || []).slice(0, 2));\r\n setNotes((currentClassroom.notes || []).slice(0, 4));\r\n setMenus((currentClassroom.menus || []).slice(0, 2));\r\n setPhotos((currentClassroom.photos || []).slice(0, 5));\r\n\r\n setIsNew(typeof currentClassroom.classroomId === 'undefined');\r\n }, [currentClassroom]);\r\n\r\n const loadLocations = async () => {\r\n await locationService\r\n .all()\r\n .then((r) => setLocations(r.model));\r\n };\r\n\r\n useEffect(() => { loadLocations(); }, []);\r\n\r\n const changePhoto = async (file, photo) => {\r\n if (file) {\r\n await uploadService\r\n .uploadPhoto(file)\r\n .then((response) => { setClassroom({ ...currentClassroom, photo: response.model.path }); });\r\n } else {\r\n setClassroom({ ...currentClassroom, photo: photo.src });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {!isNew\r\n && (\r\n \r\n )}\r\n\r\n \r\n props.setWasCreated(w)}\r\n setSubmitting={(s) => props.setSubmitting(s)}\r\n />\r\n \r\n\r\n {!isNew && (\r\n
\r\n {canViewNotes && (\r\n { props.setTab('2'); }} role=\"button\" onKeyDown={() => { props.setTab('2'); }} tabIndex={0}>All Notes)}>\r\n {notes.length > 0\r\n ? notes.map((note) => )\r\n :
There haven't been any notes added. Please check back soon!
}\r\n
\r\n )}\r\n\r\n {canViewEvents && (\r\n { props.setTab('3'); }} role=\"button\" onKeyDown={() => { props.setTab('3'); }} tabIndex={0}>All Events)}>\r\n {events.length > 0\r\n ? events.map((event) => )\r\n :
There are no upcoming events. Please check back soon!
}\r\n
\r\n )}\r\n\r\n {canViewMenus && (\r\n { props.setTab('4'); }} role=\"button\" onKeyDown={() => { props.setTab('4'); }} tabIndex={0}>All Menus)}>\r\n {menus.length > 0\r\n ? (\r\n \r\n {menus.map((menu) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n :
The next menu hasn't been set yet. Please check back soon!
}\r\n
\r\n )}\r\n\r\n {canViewPhotos && (\r\n { props.setTab('5'); }} role=\"button\" onKeyDown={() => { props.setTab('5'); }} tabIndex={0}>All Photos)}>\r\n {photos.length > 0 && (\r\n
\r\n (\r\n {\r\n src: p.path,\r\n width: p.width / p.height,\r\n height: 1,\r\n }\r\n ))}\r\n onClick={openLightbox}\r\n />\r\n \r\n {viewerIsOpen ? (\r\n \r\n ({\r\n src: p.path,\r\n caption: p.description,\r\n }))}\r\n />\r\n \r\n ) : null}\r\n \r\n
\r\n )}\r\n\r\n {photos.length === 0 && (\r\n \r\n \r\n
There haven't been any recent photos added. Please check back soon!
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { Media, Row, Container } from 'reactstrap';\r\n\r\nexport default function SingleCaregiver(props) {\r\n const { caregiver, removeCaregiver, canEdit } = props;\r\n const fullName = caregiver.firstName + ' ' + caregiver.lastName;\r\n const handleClick = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n removeCaregiver(caregiver.id);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {fullName}\r\n
\r\n
\r\n
\r\n \r\n {fullName}\r\n {caregiver.email}\r\n {canEdit && Remove}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media, Row, Container } from 'reactstrap';\r\n\r\nexport default function SingleChild(props) {\r\n const { child, removeChild, canEdit } = props;\r\n\r\n const removeClicked = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n removeChild(child.childId);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {child.fullName}\r\n
\r\n
\r\n
\r\n \r\n {child.fullName}\r\n {child.familyName}\r\n {canEdit && Remove}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, {\r\n useState, useEffect, useRef, useContext,\r\n} from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport queryString from 'query-string';\r\n\r\nimport {\r\n Row, Col, Nav, NavItem, NavLink, TabContent, TabPane,\r\n} from 'reactstrap';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\n\r\nimport AddChildForm from '../../../forms/AddChildForm';\r\nimport AddCaregiverForm from '../../../forms/AddCaregiverForm';\r\nimport ClassroomAttendance from './components/Attendance';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\nimport childService from '../../../services/childService';\r\nimport userService from '../../../services/userService';\r\nimport classroomService from '../../../services/classroomService';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\nimport CardCollapse from '../../../components/CardCollapse';\r\nimport ClassroomPhotos from './components/Photos';\r\nimport ClassroomMenus from './components/Menus';\r\nimport ClassroomEvents from './components/Events';\r\nimport ClassroomNotes from './components/Notes';\r\nimport ClassroomOverview from './components/Overview';\r\nimport SingleCaregiver from '../../../components/SingleCaregiver';\r\nimport SingleChild from '../../../components/SingleChild';\r\n\r\nexport default function EditClassroomPage(props) {\r\n document.title = 'Edit Classroom | Today\\'s Family Fridge';\r\n\r\n const { location, match } = props;\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const params = queryString.parse(location.search);\r\n\r\n const didMount = useRef(false);\r\n\r\n const classroomId = match.params.id;\r\n const [classroom, setClassroom] = useState({\r\n photos: [],\r\n events: [],\r\n notes: [],\r\n menus: [],\r\n pastMenus: [],\r\n });\r\n\r\n // All children\r\n const [children, setChildren] = useState([]);\r\n const [classroomChildren, setClassroomChildren] = useState([]);\r\n\r\n // All caregivers\r\n const [caregivers, setCaregivers] = useState([]);\r\n const [classroomCaregivers, setClassroomCaregivers] = useState([]);\r\n\r\n // Children that aren't already part of this classroom\r\n const [availableChildren, setAvailableChildren] = useState([]);\r\n\r\n // Caregivers that aren't already part of this classroom\r\n const [availableCaregivers, setAvailableCaregivers] = useState([]);\r\n\r\n const [activeTab, setActiveTab] = useState('1');\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [wasCreated, setWasCreated] = useState();\r\n const [isNew, setIsNew] = useState(true);\r\n const [isSubmitting, setSubmitting] = useState();\r\n const [selectedLocationId, setSelectedLocationId] = useState('');\r\n\r\n const canViewOverview = CheckPermission(userState.user.role, 'classrooms:view-overview');\r\n const canEditOverview = CheckPermission(userState.user.role, 'classrooms:edit-overview');\r\n const canViewNotes = CheckPermission(userState.user.role, 'classrooms:view-notes');\r\n const canEditNotes = CheckPermission(userState.user.role, 'classrooms:edit-notes');\r\n const canViewEvents = CheckPermission(userState.user.role, 'classrooms:view-events');\r\n const canEditEvents = CheckPermission(userState.user.role, 'classrooms:edit-events');\r\n const canViewMenus = CheckPermission(userState.user.role, 'classrooms:view-menus');\r\n const canEditMenus = CheckPermission(userState.user.role, 'classrooms:edit-menus');\r\n const canViewPhotos = CheckPermission(userState.user.role, 'classrooms:view-photos');\r\n const canEditPhotos = CheckPermission(userState.user.role, 'classrooms:edit-photos');\r\n\r\n const canCreateCaregivers = CheckPermission(userState.user.role, 'users:create-caregiver');\r\n const canEditCaregivers = CheckPermission(userState.user.role, 'classrooms:edit-caregivers');\r\n const canEditChildren = CheckPermission(userState.user.role, 'classrooms:edit-children');\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'classrooms:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n // If the classroom has been updated, we want to pull in the\r\n // associated lists of children and caregivers.\r\n useEffect(() => {\r\n if (didMount.current && canView) {\r\n setClassroomChildren(classroom.children || []);\r\n setClassroomCaregivers(classroom.caregivers || []);\r\n\r\n setIsNew(typeof classroom.classroomId === 'undefined');\r\n setIsLoading(false);\r\n }\r\n }, [classroom]);\r\n\r\n // If the children associated with the classroom are updated\r\n // we want to update the available children to exclude those that\r\n // are already added.\r\n useEffect(() => {\r\n if (didMount.current && children.length > 0) {\r\n setAvailableChildren(\r\n children.filter((c) => !classroomChildren.find((child) => child.childId === c.childId)),\r\n );\r\n }\r\n }, [children, classroomChildren]);\r\n\r\n // Same as Children.\r\n useEffect(() => {\r\n if (didMount.current && caregivers.length > 0) {\r\n setAvailableCaregivers(\r\n caregivers.filter((c) => !classroomCaregivers.find((cc) => cc.id === c.id)),\r\n );\r\n }\r\n }, [caregivers, classroomCaregivers]);\r\n\r\n const loadClassroom = async () => {\r\n if (typeof classroomId !== 'undefined' && canView) {\r\n await classroomService\r\n .find(classroomId)\r\n .then((r) => {\r\n setClassroom(r.model);\r\n\r\n // Allow the rest of the page to load.\r\n didMount.current = true;\r\n });\r\n } else {\r\n setClassroom({\r\n photos: [],\r\n events: [],\r\n notes: [],\r\n menus: [],\r\n pastMenus: [],\r\n });\r\n\r\n setIsLoading(false);\r\n didMount.current = true;\r\n }\r\n };\r\n\r\n // If the classroomId changes, reload from the database.\r\n useEffect(() => {\r\n loadClassroom();\r\n\r\n if (typeof params.l !== 'undefined') {\r\n setSelectedLocationId(params.l);\r\n } else {\r\n setSelectedLocationId('');\r\n }\r\n }, [classroomId]);\r\n\r\n const loadChildren = async () => {\r\n await childService\r\n .availableChildren(false)\r\n .then((r) => {\r\n setChildren(r.model);\r\n\r\n if (typeof classroom.children === 'undefined' || classroom.children.length === 0) {\r\n setAvailableChildren(r.model);\r\n }\r\n });\r\n };\r\n\r\n const loadCaregivers = async () => {\r\n await userService\r\n .getCaregivers()\r\n .then((r) => {\r\n setCaregivers(r.model);\r\n\r\n if (typeof classroom.caregivers === 'undefined' || classroom.caregivers.length === 0) {\r\n setAvailableCaregivers(r.model);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (canView) {\r\n loadChildren();\r\n loadCaregivers();\r\n\r\n if (canViewOverview) { setActiveTab('1'); } else if (canViewNotes) { setActiveTab('2'); } else if (canViewEvents) { setActiveTab('3'); } else if (canViewMenus) { setActiveTab('4'); } else if (canViewPhotos) { setActiveTab('5'); }\r\n }\r\n }, []);\r\n\r\n // If the classroom is currently archived.\r\n const handleArchiveClick = async () => {\r\n if (classroom.status === 0) {\r\n await classroomService\r\n .restore(classroomId)\r\n .then(() => setClassroom({ ...classroom, status: 1 }));\r\n } else {\r\n await classroomService\r\n .archive(classroomId)\r\n .then(() => history.push('/classrooms'));\r\n }\r\n };\r\n\r\n // When the user submits a form, add a child to the classroom\r\n // without reloading from the database.\r\n const addChild = async (childIds) => {\r\n const temp = [...classroomChildren];\r\n\r\n for (let i = 0; i < childIds.length; i += 1) {\r\n const id = childIds[i];\r\n temp.push(availableChildren.find((c) => c.childId === id));\r\n }\r\n\r\n setClassroomChildren(temp);\r\n };\r\n\r\n // Remove a child from the list of children associated with the classroom.\r\n // This will not reload the entire classroom from the database.\r\n const removeChild = async (childId) => {\r\n const temp = [...classroomChildren];\r\n temp.splice(temp.findIndex((c) => c.childId === childId), 1);\r\n\r\n setClassroomChildren(temp);\r\n };\r\n\r\n // Add a caregiver to the list of caregivers and remove the same caregiver\r\n // from the available list. Will not reload the entire classroom.\r\n const addCaregiver = async (caregiverIds, createdCaregiver) => {\r\n const temp = [...classroomCaregivers];\r\n\r\n if (typeof createdCaregiver !== 'undefined') {\r\n temp.push(createdCaregiver);\r\n } else {\r\n for (let i = 0; i < caregiverIds.length; i += 1) {\r\n const id = caregiverIds[i];\r\n temp.push(availableCaregivers.find((c) => c.id === id));\r\n }\r\n }\r\n\r\n setClassroomCaregivers(temp);\r\n };\r\n\r\n // Remove a caregiver from a classroom and add it to the available list.\r\n // Will not reload entire classroom.\r\n const removeCaregiver = async (caregiverId) => {\r\n const temp = [...classroomCaregivers];\r\n temp.splice(temp.findIndex((c) => c.id === caregiverId), 1);\r\n\r\n setClassroomCaregivers(temp);\r\n };\r\n\r\n // On tab change, force the screen to scroll to the top.\r\n const toggleTab = (tab) => {\r\n window.scrollTo(0, 0);\r\n setActiveTab(tab);\r\n };\r\n\r\n const addNote = (note) => {\r\n let isAdd = true;\r\n const temp = classroom.notes;\r\n\r\n // Check if this is an update.\r\n for (let i = 0; i < temp.length; i += 1) {\r\n if (temp[i].noteId === note.noteId) {\r\n temp[i] = note;\r\n\r\n isAdd = false;\r\n break;\r\n }\r\n }\r\n\r\n if (isAdd) {\r\n temp.unshift(note);\r\n }\r\n\r\n setClassroom({ ...classroom, notes: temp });\r\n };\r\n\r\n const removeNote = (id) => {\r\n const index = classroom.notes.findIndex(x => x.noteId == id);\r\n if (index > -1) {\r\n classroom.notes.splice(index, 1);\r\n setClassroom({...classroom});\r\n }\r\n }\r\n\r\n const updateArray = (items, idKey, dateKey, item) => {\r\n let isAdd = true;\r\n\r\n for (let i = 0; i < items.length; i += 1) {\r\n if (items[i][idKey] === item[idKey]) {\r\n // eslint-disable-next-line no-param-reassign\r\n items[i] = item;\r\n\r\n isAdd = false;\r\n break;\r\n }\r\n }\r\n\r\n if (isAdd) {\r\n let insertIndex = 0;\r\n\r\n for (let y = 0; y <= items.length - 1; y += 1) {\r\n const e = items[y];\r\n\r\n if (e[dateKey] <= item[dateKey]) {\r\n insertIndex += 1;\r\n }\r\n }\r\n\r\n items.splice(insertIndex, 0, item);\r\n }\r\n\r\n return items;\r\n };\r\n\r\n const addPhoto = (photo) => {\r\n setClassroom({\r\n ...classroom,\r\n photos: updateArray(classroom.photos, 'photoId', 'createdOn', photo),\r\n });\r\n };\r\n\r\n const addEvent = (event) => {\r\n setClassroom({\r\n ...classroom,\r\n events: updateArray(classroom.events, 'eventId', 'startDate', event),\r\n });\r\n };\r\n\r\n const removeEvent = (eventId) => {\r\n const temp = classroom.events;\r\n\r\n for (let i = 0; i < temp.length; i += 1) {\r\n if (temp[i].eventId === eventId) {\r\n temp.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n setClassroom({ ...classroom, events: temp });\r\n };\r\n\r\n const addMenu = (menu) => {\r\n setClassroom({\r\n ...classroom,\r\n menus: updateArray(classroom.menus, 'menuId', 'date', menu),\r\n });\r\n };\r\n\r\n const removeMenu = (menuId) => {\r\n const temp = classroom.menus;\r\n\r\n for (let i = 0; i < temp.length; i += 1) {\r\n if (temp[i].menuId === menuId) {\r\n temp.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n setClassroom({ ...classroom, menus: temp });\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n \r\n {!isNew && (\r\n \r\n )}\r\n \r\n (\r\n \r\n setWasCreated(c)}\r\n setSubmitting={(s) => setSubmitting(s)}\r\n caregivers={classroomCaregivers}\r\n classroomChildren={classroomChildren}\r\n selectedLocationId={selectedLocationId}\r\n canEdit={canEditOverview}\r\n canViewNotes={canViewNotes}\r\n canViewEvents={canViewEvents}\r\n canViewMenus={canViewMenus}\r\n canViewPhotos={canViewPhotos}\r\n classroom={classroom}\r\n setTab={toggleTab}\r\n reload={loadClassroom}\r\n />\r\n \r\n )}\r\n />\r\n\r\n {!isNew && (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n\r\n {!isNew && (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n\r\n {!isNew && (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n\r\n {!isNew && (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n\r\n {!isNew && (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n \r\n
\r\n \r\n {canEditCaregivers && (\r\n { addCaregiver([], c); }}\r\n />\r\n )}\r\n\r\n {classroomCaregivers.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n {canEditChildren\r\n && (\r\n \r\n )}\r\n {classroomChildren.map((c) => (\r\n \r\n ))}\r\n \r\n\r\n {!isNew && (\r\n (\r\n \r\n )}\r\n />\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\n\r\nimport childService from '../../../services/childService';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\n\r\nexport default function ChildrenPage() {\r\n document.title = 'Children | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const [pageTitle, setPageTitle] = useState('Children');\r\n\r\n const [children, setChildren] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n const tableClickEvent = (_e, r) => { history.push('/children/edit/' + r.childId); };\r\n\r\n function childIconFormatter(cell, row) {\r\n return (\r\n
\r\n
\r\n \"\"\r\n
\r\n
\r\n
{row.fullName}
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const tableColumns = [\r\n {\r\n text: 'Name',\r\n dataField: 'fullName',\r\n formatter: childIconFormatter,\r\n sort: true,\r\n },\r\n { text: 'Family', dataField: 'familyName', sort: true },\r\n {\r\n text: 'Classroom(s)',\r\n dataField: 'classroomNames',\r\n headerStyle: { width: '250px' },\r\n sort: true,\r\n },\r\n {\r\n text: 'Location(s)',\r\n dataField: 'locationName',\r\n headerStyle: { width: '250px' },\r\n sort: true,\r\n },\r\n ];\r\n\r\n if (!CheckPermission(userState.user.role, 'children:visit') && typeof userState.user.role !== 'undefined') {\r\n history.push('/error/404');\r\n }\r\n\r\n const loadChildren = async () => {\r\n setPageTitle(isShowingArchived ? 'Archived Children' : 'Children');\r\n\r\n await childService\r\n .availableChildren(isShowingArchived)\r\n .then((r) => setChildren(r.model))\r\n .then(() => setIsLoading(false));\r\n };\r\n\r\n useEffect(() => { loadChildren(); }, [isShowingArchived]);\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n setIsShowingArchived(!isShowingArchived)}\r\n archivePermission=\"children:view-archive\"\r\n userRole={userState.user.role}\r\n columns={tableColumns}\r\n data={children}\r\n tableClickEvent={tableClickEvent}\r\n keyField=\"childId\"\r\n defaultSort=\"fullName\"\r\n />\r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Field } from 'formik';\r\nimport { CustomInput, Col } from 'reactstrap';\r\n\r\nexport default function RequiredCheck({\r\n id, name, label, isDisabled, colSize = '12',\r\n}) {\r\n return (\r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport childService from '../services/childService';\r\nimport uploadService from '../services/uploadService';\r\nimport Avatar from '../components/Avatar';\r\nimport RequiredField from '../components/RequiredField';\r\nimport RequiredSelect from '../components/RequiredSelect';\r\nimport RequiredCheck from '../components/RequiredCheck';\r\n\r\nexport default function EditChildForm(props) {\r\n const history = useHistory();\r\n const {\r\n child, isNew, setSubmitting, setWasCreated, canEdit, canCreate,\r\n } = props;\r\n\r\n const pronounOptions = [\r\n { value: 'he-him', label: 'He/Him' },\r\n { value: 'she-her', label: 'She/Her' },\r\n { value: 'they-them', label: 'They/Them' },\r\n ];\r\n\r\n const initialValues = {\r\n firstName: child.firstName || '',\r\n lastName: child.lastName || '',\r\n pronouns: pronounOptions.filter((p) => p.value === child.pronouns)[0],\r\n identifier: child.identifier || '',\r\n hasPhotoPermission: child.hasPhotoPermission || false,\r\n hasAllergies: child.hasAllergies || false,\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(100, 'First Name must not exceed 100 characters.')\r\n .required('The First Name field is Required.'),\r\n\r\n lastName: Yup.string()\r\n .max(100, 'Last Name must not exceed 100 characters.')\r\n .required('The Last Name field is Required.'),\r\n\r\n pronouns: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('The Pronouns field is required.'),\r\n }),\r\n\r\n identifier: Yup.string()\r\n .max(50, 'Child Identifier must not exceed 50 characters.'),\r\n });\r\n\r\n const [photo = child.photo || '', setPhoto] = useState();\r\n\r\n const onSubmit = async (values) => {\r\n setSubmitting(true);\r\n\r\n const obj = {\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n pronouns: values.pronouns.value,\r\n identifier: values.identifier,\r\n hasAllergies: values.hasAllergies,\r\n hasPhotoPermission: values.hasPhotoPermission,\r\n photo,\r\n notes: child.notes,\r\n };\r\n\r\n if (typeof child.childId === 'undefined') {\r\n if (canCreate) {\r\n await childService\r\n .create(obj)\r\n .then(async (r) => {\r\n if (typeof props.family !== 'undefined') {\r\n history.goBack();\r\n } else {\r\n setWasCreated(true);\r\n history.push('/children/edit/' + r.model.childId);\r\n }\r\n })\r\n .finally(() => setSubmitting(false));\r\n }\r\n } else if (canEdit) {\r\n obj.childId = child.childId;\r\n\r\n await childService\r\n .update(obj)\r\n .then(async () => {\r\n\r\n })\r\n .finally(() => setSubmitting(false));\r\n }\r\n };\r\n\r\n const changePhoto = async (file, p) => {\r\n if (file) {\r\n await uploadService\r\n .uploadPhoto(file)\r\n .then((response) => { setPhoto(response.model.path); });\r\n } else {\r\n setPhoto(p.src);\r\n }\r\n };\r\n\r\n return (\r\n \r\n\r\n {(p) => (\r\n
\r\n {!isNew && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\n\r\nexport default function SingleNoteChild(props) {\r\n const { note } = props;\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport { Form, FormGroup, Label } from 'reactstrap';\r\nimport AdvancedEditor from '../components/AdvancedEditor';\r\nimport CardCollapse from '../components/CardCollapse';\r\nimport Required from '../components/Required';\r\nimport childService from '../services/childService';\r\n\r\nexport default function AddNoteChildForm(props) {\r\n const { childId, addNote } = props;\r\n\r\n const [content, setContent] = useState('');\r\n const [contentHasError, setContentHasError] = useState(false);\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setContentHasError(!content);\r\n\r\n if (content) {\r\n await childService\r\n .addNote(childId, content)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n setContent('');\r\n addNote(r.model);\r\n }\r\n });\r\n } else {\r\n toast.error('Please enter some content for your new note.');\r\n }\r\n };\r\n\r\n const addFooter = (\r\n
\r\n \r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n setContent(v)} placeholder=\"Enter the content of your note here...\" className={contentHasError ? 'hasError' : ''} />\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, {\r\n useState, useEffect, useContext, useRef, useCallback\r\n} from 'react';\r\nimport Moment from 'react-moment';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport queryString from 'query-string';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport {\r\n Row, Col, Nav, NavItem, NavLink, TabContent, TabPane,\r\n} from 'reactstrap';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\n\r\nimport childService from '../../../services/childService';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\nimport CardForm from '../../../components/CardForm';\r\nimport EditChildForm from '../../../forms/EditChildForm';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport SingleNoteChild from '../../../components/SingleNoteChild';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport AddNoteChildForm from '../../../forms/AddNoteChildForm';\r\nimport ListItemSmall from '../../../components/ListItemSmall';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\nimport ExtendedModal from '../../../components/ExtendedModal';\r\nimport photoService from '../../../services/photoService';\r\n\r\nexport default function EditChildPage(props) {\r\n document.title = 'Edit Child | Today\\'s Family Fridge';\r\n\r\n const { location, match } = props;\r\n const [uploadedPhotos, setUploadedPhotos] = useState([]);\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const didMount = useRef(false);\r\n\r\n const params = queryString.parse(location.search);\r\n\r\n const childId = match.params.id;\r\n const [child, setChild] = useState({});\r\n\r\n const [activeTab, setActiveTab] = useState('1');\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [wasCreated, setWasCreated] = useState(false);\r\n\r\n const [isNew, setIsNew] = useState(true);\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'children:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n const canEdit = CheckPermission(userState.user.role, 'children:edit');\r\n const canCreate = CheckPermission(userState.user.role, 'children:create');\r\n\r\n const loadChild = async () => {\r\n if (canView) {\r\n if (typeof childId !== 'undefined') {\r\n await childService\r\n .find(childId)\r\n .then((r) => {\r\n setChild(r.model);\r\n setIsNew(false);\r\n setIsLoading(false);\r\n })\r\n .finally(() => { didMount.current = true; });\r\n\r\n await photoService\r\n .photosForChild(childId)\r\n .then((r) => {\r\n setUploadedPhotos(r.model);\r\n });\r\n } else {\r\n setChild({});\r\n setIsNew(true);\r\n setIsLoading(false);\r\n\r\n didMount.current = true;\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => { loadChild(); }, [childId]);\r\n\r\n const handleArchiveClick = async (e) => {\r\n e.preventDefault();\r\n\r\n if (child.status === 0) {\r\n await childService\r\n .restore(child.childId)\r\n .then(() => setChild({ ...child, status: 1 }));\r\n } else {\r\n await childService\r\n .archive(childId)\r\n .then(() => { history.push('/children'); });\r\n }\r\n };\r\n\r\n const toggleTab = (tab) => {\r\n window.scrollTo(0, 0);\r\n setActiveTab(tab);\r\n };\r\n\r\n const addNote = (n) => {\r\n const temp = child.childNotes;\r\n temp.unshift(n);\r\n\r\n setChild({ ...child, childNotes: temp });\r\n };\r\n\r\n const deleteImage = async (image) => {\r\n const images = uploadedPhotos.filter(i => i.photoId !== image.photoId)\r\n \r\n await photoService\r\n .deletePhoto(image.photoId)\r\n .then((r) => {\r\n setUploadedPhotos(images)\r\n });\r\n }\r\n\r\n const noteHeader = (n) => (\r\n
\r\n
{n.createdOn}
\r\n

\r\n Posted by\r\n {n.createdBy}\r\n

\r\n
\r\n );\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n \r\n {!isNew && (\r\n \r\n )}\r\n\r\n \r\n \r\n \r\n setWasCreated(s)}\r\n setSubmitting={(l) => setIsSubmitting(l)}\r\n />\r\n \r\n\r\n {!isNew && (\r\n { toggleTab('2'); }} role=\"button\" onKeyDown={() => { toggleTab('2'); }} tabIndex={0}>All Notes)}>\r\n {child.childNotes && child.childNotes.length > 0\r\n ? (\r\n
\r\n {noteHeader(child.childNotes[0])}\r\n
\r\n \r\n
\r\n
\r\n )\r\n :
There haven't been any notes added.
}\r\n
\r\n )}\r\n
\r\n\r\n {!isNew && (\r\n \r\n

Notes

\r\n \r\n\r\n {(child.childNotes !== null && child.childNotes.length > 0)\r\n ? child.childNotes.map((n) => )\r\n : (\r\n \r\n
No notes have been added yet!
\r\n
\r\n )}\r\n
\r\n )}\r\n \r\n\r\n {!isNew && (\r\n \r\n

Photos

\r\n {uploadedPhotos && uploadedPhotos.length > 0\r\n ? (\r\n \r\n \r\n {uploadedPhotos.map((p) => (\r\n \r\n
\r\n \r\n \r\n deleteImage(p)}\r\n >\r\n
Are you sure that you wish to delete this photo?
\r\n \r\n \r\n
\r\n
\r\n \r\n ))}\r\n
\r\n
\r\n ) : (\r\n \r\n
No photos have been added yet! Please check back soon.
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n \r\n\r\n {!isNew && (\r\n \r\n
\r\n \r\n {child.families && child.families.map((f) => (\r\n \r\n {\r\n f.guardians\r\n .map((g) => {g.fullName})\r\n .reduce((prev, curr) => [prev, ', ', curr], '')\r\n }\r\n \r\n ))}\r\n \r\n \r\n {child.classrooms && child.classrooms.map((c) => (\r\n \r\n {c.locationName}\r\n \r\n ))}\r\n \r\n (\r\n \r\n )}\r\n />\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Family`;\r\n\r\nasync function getFamilies(showArchived) {\r\n let endpoint = URL;\r\n\r\n if (showArchived) {\r\n endpoint += '/Archived';\r\n }\r\n\r\n return authenticatedRequest('GET', endpoint);\r\n}\r\n\r\nasync function findFamily(id) {\r\n return authenticatedRequest('GET', `${URL}/${id}`);\r\n}\r\n\r\nasync function findFamiliesForChild(childId) {\r\n return authenticatedRequest('GET', URL + '/Child/' + childId);\r\n}\r\n\r\nasync function updateFamily(family) {\r\n return authenticatedRequest('PUT', `${URL}/${family.familyId}`, JSON.stringify(family));\r\n}\r\n\r\nasync function deleteFamily(id) {\r\n return authenticatedRequest('DELETE', `${URL}/${id}`);\r\n}\r\n\r\nasync function restoreFamily(id) {\r\n return authenticatedRequest('POST', URL + '/Restore/' + id);\r\n}\r\n\r\nasync function addFamily(family) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(family));\r\n}\r\n\r\nasync function updateChildFamilyRelationships(id, familyIds) {\r\n return authenticatedRequest('POST', URL + '/ChildFamilies', JSON.stringify({\r\n childId: parseInt(id),\r\n familyIds,\r\n }));\r\n}\r\n\r\nasync function updateFamilyChildrenRelationships(id, childIds) {\r\n return authenticatedRequest('POST', URL + '/FamilyChildren', JSON.stringify({\r\n familyId: parseInt(id),\r\n childIds,\r\n }));\r\n}\r\n\r\nasync function updateFamilyGuardianRelationships(id, guardianIds) {\r\n return authenticatedRequest('POST', URL + '/FamilyGuardians', JSON.stringify({\r\n familyId: parseInt(id),\r\n guardianIds,\r\n }));\r\n}\r\n\r\nconst familyService = {\r\n getFamilies,\r\n findFamily,\r\n findFamiliesForChild,\r\n updateFamily,\r\n updateChildFamilyRelationships,\r\n updateFamilyChildrenRelationships,\r\n updateFamilyGuardianRelationships,\r\n deleteFamily,\r\n restoreFamily,\r\n addFamily,\r\n};\r\n\r\nexport default familyService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\nimport CardHeaderless from '../../../components/CardHeaderless';\r\nimport ExtendedTable from '../../../components/ExtendedTable';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Spinner from '../../../components/Spinner';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\nimport familyService from '../../../services/familyService';\r\n\r\nexport default function FamilyPage() {\r\n document.title = 'Families | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n\r\n const [pageTitle, setPageTitle] = useState('Families');\r\n\r\n const [families, setFamilies] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isShowingArchived, setIsShowingArchived] = useState(false);\r\n\r\n const tableClickEvent = (e, r) => { history.push(`/families/edit/${r.familyId}`); };\r\n\r\n const tableColumns = [\r\n {\r\n text: 'Family',\r\n dataField: 'name',\r\n sort: true,\r\n },\r\n {\r\n text: 'Children',\r\n dataField: 'childCount',\r\n headerStyle: { width: '200px' },\r\n sort: true,\r\n },\r\n {\r\n text: 'Parent/Guardian(s)',\r\n dataField: 'guardianCount',\r\n headerStyle: { width: '200px' },\r\n sort: true,\r\n },\r\n {\r\n text: 'Classrooms',\r\n dataField: 'classroomCount',\r\n headerStyle: { width: '200px' },\r\n sort: true,\r\n },\r\n ];\r\n\r\n if (!CheckPermission(userState.user.role, 'families:visit') && typeof userState.user.role !== 'undefined') {\r\n history.push('/error/404');\r\n }\r\n\r\n const loadFamilies = async (showArchived) => {\r\n setPageTitle(showArchived ? 'Archived Families' : 'Families');\r\n\r\n await familyService\r\n .getFamilies(showArchived)\r\n .then((response) => {\r\n setFamilies(response.model);\r\n })\r\n .then(() => { setIsLoading(false); });\r\n };\r\n\r\n const handleArchived = () => {\r\n loadFamilies(!isShowingArchived);\r\n setIsShowingArchived(!isShowingArchived);\r\n };\r\n\r\n useEffect(() => {\r\n setIsLoading(true);\r\n loadFamilies(false);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media, Row, Container } from 'reactstrap';\r\n\r\nexport default function ListItemChild(props) {\r\n const { child, removeChild, canEdit } = props;\r\n\r\n const removeClicked = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n removeChild(child.childId);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {child.fullName}\r\n
\r\n
\r\n
\r\n \r\n {child.fullName}\r\n \r\n {child.hasAllergies ? 'Has Allergies' : 'No Allergies'}\r\n â€¢ \r\n {child.hasPhotoPermission ? 'Photos Allowed' : 'Photos NOT Allowed'}\r\n \r\n {canEdit && Remove}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Media, Container, Row } from 'reactstrap';\r\n\r\nexport default function ListItemGuardian(props) {\r\n const { guardian, removeGuardian, canEdit } = props;\r\n\r\n const fullName = guardian.firstName + ' ' + guardian.lastName;\r\n const email = 'mailto:' + guardian.email;\r\n\r\n const removeClicked = async (e) => {\r\n e.preventDefault();\r\n\r\n if (canEdit) {\r\n removeGuardian(guardian.id);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n {fullName}\r\n
\r\n
\r\n
\r\n \r\n {fullName}\r\n {guardian.email}\r\n {canEdit && Remove}\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport Select from 'react-select';\r\n\r\nimport {\r\n FormGroup,\r\n Button,\r\n Form,\r\n Collapse,\r\n Label,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\nimport * as Yup from 'yup';\r\n\r\nimport Row from 'reactstrap/lib/Row';\r\nimport { Formik } from 'formik';\r\nimport useSelect from '../hooks/useSelect';\r\nimport childService from '../services/childService';\r\nimport Required from '../components/Required';\r\nimport FormModal from '../components/FormModal';\r\nimport RequiredField from '../components/RequiredField';\r\nimport RequiredSelect from '../components/RequiredSelect';\r\nimport RequiredCheck from '../components/RequiredCheck';\r\n\r\nexport default function AddChildFamilyForm(props) {\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const {\r\n addChild,\r\n canCreate,\r\n addCreatedChild,\r\n familyChildren,\r\n classrooms,\r\n } = props;\r\n\r\n const options = familyChildren.map((c) => ({ value: c.childId, label: c.fullName + ' ' }));\r\n const pronounOptions = [\r\n { value: 'he-him', label: 'He/Him' },\r\n { value: 'she-her', label: 'She/Her' },\r\n { value: 'they-them', label: 'They/Them' },\r\n ];\r\n\r\n const initialValues = {\r\n identifier: '',\r\n firstName: '',\r\n lastName: '',\r\n pronouns: 'they-them',\r\n hasPhotoPermission: false,\r\n hasAllergies: false,\r\n locationId: {},\r\n };\r\n\r\n const { value: selectedChildren, setValue: setChildren, bind: bindChildren } = useSelect();\r\n const validationSchema = Yup.object().shape({\r\n firstName: Yup.string()\r\n .max(100, 'First Name must not exceed 100 characters.')\r\n .required('The First Name field is Required.'),\r\n\r\n lastName: Yup.string()\r\n .max(100, 'Last Name must not exceed 100 characters.')\r\n .required('The Last Name field is Required.'),\r\n\r\n pronouns: Yup.object().shape({\r\n label: Yup.string().required(),\r\n value: Yup.string().required('The Pronouns field is required.'),\r\n }),\r\n });\r\n\r\n const onFormSubmit = async (values, { resetForm }) => {\r\n setIsSubmitting(true);\r\n\r\n const obj = {\r\n identifier: values.identifier,\r\n firstName: values.firstName,\r\n lastName: values.lastName,\r\n pronouns: values.pronouns.value,\r\n hasAllergies: values.hasAllergies,\r\n hasPhotoPermission: values.hasPhotoPermission,\r\n classroomId: values.classroomId.value,\r\n };\r\n\r\n await childService\r\n .create(obj)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n addCreatedChild(r.model);\r\n resetForm(initialValues);\r\n }\r\n })\r\n .finally(() => setIsSubmitting(false));\r\n };\r\n\r\n const handleSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n const ids = selectedChildren.map((c) => c.value);\r\n addChild(ids);\r\n\r\n // Clear the dropdown.\r\n setChildren([]);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n
Add Children
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {canCreate && (\r\n \r\n \r\n {(p) => (\r\n \r\n \r\n {classrooms && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport familyService from '../services/familyService';\r\nimport RequiredField from '../components/RequiredField';\r\n\r\nexport default function EditFamilyForm(props) {\r\n const {\r\n family,\r\n canEdit,\r\n guardians,\r\n familyChildren,\r\n setWasCreated,\r\n setIsSubmitting,\r\n } = props;\r\n\r\n const initialValues = {\r\n name: typeof family.familyId !== 'undefined' ? family.name : '',\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n name: Yup.string()\r\n .max(100, 'Name must not exceed 100 characters.')\r\n .required('The Name field is Required.'),\r\n });\r\n\r\n const history = useHistory();\r\n const onSubmit = async (values) => {\r\n setIsSubmitting(true);\r\n\r\n if (typeof family.familyId === 'undefined') {\r\n await familyService\r\n .addFamily({\r\n name: values.name,\r\n notes: family.notes,\r\n adminNotes: family.adminNotes,\r\n })\r\n .then(async (r) => {\r\n const userIds = guardians.map((c) => c.id);\r\n await familyService.updateFamilyGuardianRelationships(r.model.familyId, userIds);\r\n\r\n const childIds = familyChildren.map((c) => c.childId);\r\n await familyService.updateFamilyChildrenRelationships(r.model.familyId, childIds);\r\n\r\n history.replace('/families/edit/' + r.model.familyId);\r\n setWasCreated(true);\r\n })\r\n .finally(() => setIsSubmitting(false));\r\n } else {\r\n family.name = values.name;\r\n\r\n await familyService\r\n .updateFamily(family)\r\n .then(async (r) => {\r\n const userIds = guardians.map((c) => c.id);\r\n await familyService.updateFamilyGuardianRelationships(family.familyId, userIds);\r\n\r\n const childIds = familyChildren.map((c) => c.childId);\r\n await familyService.updateFamilyChildrenRelationships(family.familyId, childIds);\r\n\r\n if (!r.hasError) {\r\n history.push('/families');\r\n }\r\n })\r\n .finally(() => setIsSubmitting(false));\r\n }\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React, {\r\n useEffect, useState, useRef, useContext,\r\n} from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Col } from 'reactstrap';\r\nimport AdvancedEditor from '../../../components/AdvancedEditor';\r\nimport { CanUser, CheckPermission } from '../../../components/CanUser';\r\nimport CardCollapse from '../../../components/CardCollapse';\r\nimport CardCustom from '../../../components/CardCustom';\r\nimport CardDeactivate from '../../../components/CardDeactivate';\r\nimport CardForm from '../../../components/CardForm';\r\nimport ListItemChild from '../../../components/ListItemChild';\r\nimport ListItemGuardian from '../../../components/ListItemGuardian';\r\nimport PageHeaderActions from '../../../components/PageHeaderActions';\r\nimport Spinner from '../../../components/Spinner';\r\n\r\nimport { UserContext } from '../../../context/userContext';\r\n\r\nimport AddChildFamilyForm from '../../../forms/AddChildFamilyForm';\r\nimport AddGuardianFamilyForm from '../../../forms/AddGuardianFamilyForm';\r\nimport EditFamilyForm from '../../../forms/EditFamilyForm';\r\nimport childService from '../../../services/childService';\r\nimport classroomService from '../../../services/classroomService';\r\nimport familyService from '../../../services/familyService';\r\nimport userService from '../../../services/userService';\r\n\r\nexport default function EditFamilyPage(props) {\r\n document.title = 'Edit Family | Today\\'s Family Fridge';\r\n\r\n const { match } = props;\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n const didMount = useRef(false);\r\n\r\n const { id } = match.params;\r\n\r\n const [family, setFamily] = useState({});\r\n\r\n const [notes, setNotes] = useState('');\r\n const [adminNotes, setAdminNotes] = useState('');\r\n\r\n // All children\r\n const [children, setChildren] = useState([]);\r\n const [familyChildren, setFamilyChildren] = useState([]);\r\n\r\n // All guardians\r\n const [guardians, setGuardians] = useState([]);\r\n const [familyGuardians, setFamilyGuardians] = useState([]);\r\n\r\n // Children that aren't already part of this classroom\r\n const [availableChildren, setAvailableChildren] = useState([]);\r\n\r\n // Guardians that aren't already part of this classroom\r\n const [availableGuardians, setAvailableGuardians] = useState([]);\r\n\r\n // Classrooms available to the current user for assigning new children to.\r\n const [availableClassrooms, setAvailableClassrooms] = useState([]);\r\n\r\n const canEdit = CheckPermission(userState.user.role, 'families:edit');\r\n const canCreate = CheckPermission(userState.user.role, 'families:create');\r\n const canEditGuardians = CheckPermission(userState.user.role, 'families:edit-guardians');\r\n const canCreateGuardians = CheckPermission(userState.user.role, 'users:create-guardian');\r\n const canEditChildren = CheckPermission(userState.user.role, 'families:edit-children');\r\n const canCreateChildren = CheckPermission(userState.user.role, 'children:create');\r\n\r\n const [wasCreated, setWasCreated] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isNew, setIsNew] = useState(true);\r\n\r\n let canView = true;\r\n if (!CheckPermission(userState.user.role, 'families:visit') && typeof userState.user.role !== 'undefined') {\r\n canView = false;\r\n history.push('/error/404');\r\n }\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n if (typeof family.guardians !== 'undefined') {\r\n setFamilyGuardians(family.guardians);\r\n }\r\n\r\n if (typeof family.children !== 'undefined') {\r\n setFamilyChildren(family.children);\r\n }\r\n\r\n setNotes(family.notes || '');\r\n setAdminNotes(family.adminNotes || '');\r\n\r\n setIsNew(typeof family.familyId === 'undefined');\r\n setIsLoading(false);\r\n }\r\n }, [family]);\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n setAvailableChildren(\r\n children.filter((c) => !familyChildren.find((fc) => fc.childId === c.childId)),\r\n );\r\n }\r\n }, [children, familyChildren]);\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n setAvailableGuardians(guardians.filter((g) => !familyGuardians.find((fg) => fg.id === g.id)));\r\n }\r\n }, [guardians, familyGuardians]);\r\n\r\n useEffect(() => {\r\n if (didMount.current) {\r\n const f = family;\r\n f.notes = notes;\r\n f.adminNotes = adminNotes;\r\n\r\n setFamily(f);\r\n }\r\n }, [notes, adminNotes]);\r\n\r\n const loadFamily = async () => {\r\n if (typeof id !== 'undefined') {\r\n if (canView) {\r\n await familyService\r\n .findFamily(id)\r\n .then((r) => setFamily(r.model))\r\n .finally(() => { didMount.current = true; });\r\n }\r\n } else {\r\n setIsLoading(false);\r\n setFamily({});\r\n setFamilyChildren([]);\r\n setFamilyGuardians([]);\r\n\r\n didMount.current = true;\r\n }\r\n };\r\n\r\n const loadChildren = async () => {\r\n await childService\r\n .all(false)\r\n .then((r) => {\r\n setChildren(r.model);\r\n\r\n if (typeof family.children === 'undefined' || family.children.length === 0) {\r\n setAvailableChildren(r.model);\r\n }\r\n });\r\n };\r\n\r\n const loadGuardians = async () => {\r\n await userService\r\n .getGuardians()\r\n .then((r) => {\r\n setGuardians(r.model);\r\n\r\n if (typeof family.guardians === 'undefined' || family.guardians.length === 0) {\r\n setAvailableGuardians(r.model);\r\n }\r\n });\r\n };\r\n\r\n const loadClassrooms = async () => {\r\n await classroomService\r\n .all(false)\r\n .then((r) => {\r\n setAvailableClassrooms(r.model.map((l) => ({ value: l.classroomId, label: l.name + ' (' + l.locationName + ')' })));\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (canView) {\r\n loadChildren();\r\n loadGuardians();\r\n loadClassrooms();\r\n }\r\n }, []);\r\n\r\n useEffect(() => { loadFamily(); }, [id]);\r\n\r\n // If the family is currently active.\r\n const handleArchiveClick = async () => {\r\n if (family.status === 0) {\r\n await familyService\r\n .restoreFamily(id)\r\n .then(() => setFamily({ ...family, status: 1 }));\r\n } else {\r\n await familyService\r\n .deleteFamily(id)\r\n .then(() => history.push('/families'));\r\n }\r\n };\r\n\r\n // Add a child to the list of children and remove the same child\r\n // from the available list. Will not reload the entire family.\r\n const addChild = async (childIds, createdChild) => {\r\n const temp = [...familyChildren];\r\n\r\n if (typeof createdChild !== 'undefined') {\r\n temp.push(createdChild);\r\n } else {\r\n for (let i = 0; i < childIds.length; i += 1) {\r\n temp.push(availableChildren.find((c) => c.childId === childIds[i]));\r\n }\r\n }\r\n\r\n setFamilyChildren(temp);\r\n };\r\n\r\n // Remove a child from a family and add it to the available list.\r\n // Will not reload entire family.\r\n const removeChild = async (childId) => {\r\n const temp = [...familyChildren];\r\n temp.splice(temp.findIndex((c) => c.childId === childId), 1);\r\n\r\n setFamilyChildren(temp);\r\n };\r\n\r\n // Add a guardian to the list of guardians and remove the same guardian\r\n // from the available list. Will not reload the entire family.\r\n const addGuardians = async (guardianIds, createdGuardian) => {\r\n const temp = [...familyGuardians];\r\n\r\n if (typeof createdGuardian !== 'undefined') {\r\n temp.push(createdGuardian);\r\n } else {\r\n for (let i = 0; i < guardianIds.length; i += 1) {\r\n temp.push(availableGuardians.find((c) => c.id === guardianIds[i]));\r\n }\r\n }\r\n\r\n setFamilyGuardians(temp);\r\n };\r\n\r\n // Remove a caregiver from a classroom and add it to the available list.\r\n // Will not reload entire classroom.\r\n const removeGuardian = async (guardianId) => {\r\n const temp = [...familyGuardians];\r\n temp.splice(temp.findIndex((g) => g.id === guardianId), 1);\r\n\r\n setFamilyGuardians(temp);\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n {isLoading\r\n ? \r\n : (\r\n \r\n \r\n \r\n setWasCreated(s)}\r\n setIsSubmitting={(s) => setIsSubmitting(s)}\r\n family={family}\r\n familyChildren={familyChildren}\r\n guardians={familyGuardians}\r\n canEdit={canEdit}\r\n canCreate={canCreate}\r\n />\r\n \r\n (\r\n \r\n setNotes(v)} />\r\n \r\n )}\r\n />\r\n\r\n (\r\n \r\n setAdminNotes(v)} />\r\n \r\n )}\r\n />\r\n\r\n \r\n \r\n
\r\n \r\n {canEditGuardians && (\r\n addGuardians([], c)}\r\n />\r\n )}\r\n {familyGuardians.map((g) => (\r\n \r\n ))}\r\n \r\n \r\n {canEditChildren && (\r\n addChild([], c)}\r\n />\r\n )}\r\n\r\n {familyChildren.map((child) => (\r\n \r\n ))}\r\n \r\n\r\n {!isNew && (\r\n (\r\n \r\n )}\r\n />\r\n )}\r\n
\r\n \r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import { useState } from 'react';\r\n\r\nconst useContent = (initialValue) => {\r\n const [value = initialValue, setValue] = useState();\r\n\r\n return {\r\n value,\r\n setValue,\r\n bind: {\r\n value,\r\n setValue,\r\n onChange: (e) => setValue(e),\r\n },\r\n };\r\n};\r\n\r\nexport default useContent;\r\n","import { useState } from 'react';\r\n\r\nconst useCheck = (initialValue) => {\r\n const [checked = initialValue || false, setChecked] = useState();\r\n\r\n return {\r\n checked,\r\n setChecked,\r\n bind: {\r\n checked,\r\n onChange: (event) => {\r\n setChecked(event.target.checked);\r\n },\r\n },\r\n };\r\n};\r\n\r\nexport default useCheck;\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Communication`;\r\n\r\nasync function sendCommunication(communication) {\r\n return authenticatedRequest('POST', URL, JSON.stringify(communication));\r\n}\r\n\r\nasync function getCommunications() {\r\n return authenticatedRequest('GET', URL + '/');\r\n}\r\n\r\nasync function readCommunication(id) {\r\n return authenticatedRequest('PUT', URL + '/Read/' + id);\r\n}\r\n\r\n\r\nconst communicationService = { sendCommunication, getCommunications, readCommunication };\r\n\r\nexport default communicationService;\r\n","import React, { useState, useEffect, useContext } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nimport {\r\n Card, CardBody, CardFooter, Button, Form, Input, FormGroup, Label, Row, Col, Spinner\r\n} from 'reactstrap';\r\n\r\nimport Select from 'react-select';\r\n\r\nimport { toast } from 'react-toastify';\r\nimport { UserContext } from '../../../context/userContext';\r\nimport { CheckPermission } from '../../../components/CanUser';\r\n\r\nimport useSelect from '../../../hooks/useSelect';\r\nimport useInput from '../../../hooks/useInput';\r\nimport useContent from '../../../hooks/useContent';\r\nimport useCheck from '../../../hooks/useCheck';\r\nimport communicationService from '../../../services/communicationService';\r\nimport classroomService from '../../../services/classroomService';\r\nimport locationService from '../../../services/locationService';\r\nimport PageHeader from '../../../components/PageHeader';\r\nimport Required from '../../../components/Required';\r\nimport AdvancedEditor from '../../../components/AdvancedEditor';\r\n\r\nexport default function NewCommunicationPage() {\r\n document.title = 'Communications | Today\\'s Family Fridge';\r\n\r\n const roleOptions = [\r\n { value: 'site-admin', label: 'Site Admins' },\r\n { value: 'caregiver', label: 'Caregivers' },\r\n { value: 'guardian', label: 'Parent/Guardians' },\r\n ];\r\n\r\n const history = useHistory();\r\n const userState = useContext(UserContext);\r\n\r\n const [locations, setLocations] = useState([]);\r\n const [classrooms, setClassrooms] = useState([]);\r\n\r\n const [availableLocations, setAvailableLocations] = useState([]);\r\n const [availableClassrooms, setAvailableClassrooms] = useState([]);\r\n\r\n const { value: subject, bind: bindSubject } = useInput('');\r\n const [subjectHasError, setSubjectHasError] = useState(false);\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n \r\n\r\n const { value: content, bind: bindContent } = useContent('');\r\n const [contentHasError, setContentHasError] = useState(false);\r\n const { checked: isCritical, bind: bindIsCritical } = useCheck(false);\r\n\r\n const {\r\n value: selectedLocations,\r\n bind: bindSelectedLocations,\r\n setValue: setSelectedLocations,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedClassrooms,\r\n bind: bindSelectedClassrooms,\r\n setValue: setSelectedClassrooms,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedRoles,\r\n bind: bindSelectedRoles,\r\n setValue: setSelectedRoles,\r\n } = useSelect();\r\n\r\n if (!CheckPermission(userState.user.role, 'communication:visit') && typeof userState.user.role !== 'undefined') {\r\n history.push('/error/404');\r\n }\r\n\r\n const onSubmit = async (e) => {\r\n e.preventDefault();\r\n\r\n setSubjectHasError(!subject);\r\n setContentHasError(!content);\r\n\r\n\r\n if (selectedLocations.length > 0\r\n && selectedClassrooms.length > 0\r\n && selectedRoles.length > 0\r\n && subject\r\n && content) {\r\n const locationIds = selectedLocations.map((l) => l.value);\r\n const classroomIds = selectedClassrooms.map((c) => c.value);\r\n const roles = selectedRoles.map((r) => r.value);\r\n\r\n try {\r\n setIsSubmitting(true);\r\n await communicationService\r\n .sendCommunication({\r\n isCritical,\r\n locationIds,\r\n classroomIds,\r\n roles,\r\n subject,\r\n content,\r\n });\r\n } finally {\r\n setIsSubmitting(false);\r\n }\r\n\r\n \r\n } else {\r\n if (!subject) {\r\n toast.error('Please enter a subject for this communication.');\r\n }\r\n\r\n if (!content) {\r\n toast.error('Please enter some content for this communication');\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n if (selectedLocations.length > 0) {\r\n const locationIds = selectedLocations.map((c) => c.value);\r\n\r\n await classroomService\r\n .findByLocation(locationIds)\r\n .then((response) => { setClassrooms(response.model); });\r\n }\r\n }\r\n fetchData();\r\n }, [selectedLocations]);\r\n\r\n useEffect(() => {\r\n const locationOptions = [];\r\n for (let i = 0; i < locations.length; i += 1) {\r\n locationOptions.push({\r\n value: locations[i].locationId,\r\n label: locations[i].name,\r\n });\r\n }\r\n\r\n setAvailableLocations(locationOptions);\r\n }, [locations]);\r\n\r\n useEffect(() => {\r\n if (selectedLocations.length === 0) {\r\n setSelectedClassrooms([]);\r\n setClassrooms([]);\r\n\r\n setSelectedRoles([]);\r\n }\r\n }, [selectedLocations]);\r\n\r\n useEffect(() => {\r\n const classroomOptions = [];\r\n for (let i = 0; i < classrooms.length; i += 1) {\r\n const c = classrooms[i];\r\n\r\n classroomOptions.push({\r\n value: c.classroomId,\r\n label: c.name + ' (' + c.locationName + ')',\r\n });\r\n }\r\n\r\n setAvailableClassrooms(classroomOptions);\r\n }, [classrooms]);\r\n\r\n const loadLocations = async () => {\r\n await locationService\r\n .all(false)\r\n .then((response) => { setLocations(response.model); });\r\n };\r\n\r\n useEffect(() => { loadLocations(); }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n Container,\r\n Card,\r\n CardBody,\r\n Row,\r\n Col,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\n// Images\r\nimport Logo from '../../../resources/images/tff-logo.png';\r\n\r\nexport default function NotFoundPage() {\r\n document.title = '404 | Today\\'s Family Fridge';\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n
404
\r\n

The page you're looking for cannot be found.

\r\n
\r\n

\r\n Make sure the address is correct and that the page hasn't moved.\r\n If you think this is a mistake,\r\n  \r\n  contact us\r\n .\r\n

\r\n \r\n \r\n Take me home\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\nimport { anonymousRequest, anonymousRESTRequest } from '../helpers/anonymousRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/authentication`;\r\n\r\nasync function authenticate(username, password) {\r\n return anonymousRESTRequest('POST', URL,\r\n JSON.stringify({\r\n username,\r\n password,\r\n }));\r\n}\r\n\r\nasync function refreshToken() {\r\n return anonymousRequest('POST', URL + '/refresh-token')\r\n .then(\r\n (user) => {\r\n sessionStorage.setItem('jwt', JSON.stringify(user.token));\r\n return user;\r\n },\r\n // (error) => {\r\n // console.log(error);\r\n // },\r\n );\r\n}\r\n\r\nasync function revokeToken() {\r\n return authenticatedRequest('POST', URL + '/revoke-token',\r\n JSON.stringify({\r\n token: JSON.parse(sessionStorage.getItem('jwt')),\r\n }));\r\n}\r\n\r\nasync function forgotPassword(username) {\r\n return anonymousRESTRequest('POST', URL + '/forgot-password',\r\n JSON.stringify({\r\n email: username,\r\n }));\r\n}\r\n\r\nconst authenticationService = {\r\n authenticate,\r\n refreshToken,\r\n revokeToken,\r\n forgotPassword,\r\n};\r\n\r\nexport default authenticationService;\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Row, Form, Label } from 'reactstrap';\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\n\r\nimport authenticationService from '../services/authenticationService';\r\nimport RequiredField from '../components/RequiredField';\r\nimport SpinnerButton from '../components/SpinnerButton';\r\n\r\nexport default function LoginForm(props) {\r\n const { setError, onAuthorized } = props;\r\n\r\n const initialValues = { username: '', password: '' };\r\n const validationSchema = Yup.object().shape({\r\n username: Yup.string().required('Username is Required.'),\r\n password: Yup.string().required('Password is Required.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n await authenticationService\r\n .authenticate(values.username, values.password)\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n }\r\n return Promise.reject(response.text());\r\n })\r\n .then((r) => onAuthorized(r))\r\n .catch((error) => error)\r\n .then((r) => setError(r));\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n Forgot Password?\r\n
\r\n
\r\n Log in\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport {\r\n Container, Row, Col, Alert,\r\n} from 'reactstrap';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\n\r\nimport { UserContext } from '../../context/userContext';\r\nimport LoginForm from '../../forms/LoginForm';\r\n\r\n// Images\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function LoginPage(props) {\r\n document.title = 'Login | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n\r\n const userContext = React.useContext(UserContext);\r\n const [error, setError] = useState('');\r\n\r\n useEffect(() => { sessionStorage.removeItem('jwt'); });\r\n\r\n const handleAuthorized = (user) => {\r\n sessionStorage.setItem('jwt', JSON.stringify(user.token));\r\n\r\n const { from } = props.location.state || { from: { pathname: '/dashboard' } };\r\n history.push(from);\r\n userContext.setUser({});\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n {error && (\r\n \r\n
Log in Failed
\r\n {error}\r\n
\r\n )}\r\n \r\n \r\n
\r\n

Log in

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport userService from '../services/userService';\r\nimport RequiredField from '../components/RequiredField';\r\nimport SpinnerButton from '../components/SpinnerButton';\r\n\r\nexport default function ResetPasswordForm(props) {\r\n const history = useHistory();\r\n\r\n const initialValues = {\r\n password: '',\r\n confirmPassword: '',\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n password: Yup.string()\r\n .required('The New Password field is Required.')\r\n .min(6, 'Your password must be atleast 6 characters in length.')\r\n .matches(/(?=.*[A-Z])/, 'Password must contain at least one uppercase letter.')\r\n .matches(/(?=.*[a-z])/, 'Password must contain at least one lowercase letter.')\r\n .matches(/(?=.*[0-9])/, 'Password must contain at least one digit.')\r\n .matches(/(?=.[~!@#$%^&*()])/, 'Password must contain at least one special character.'),\r\n\r\n confirmPassword: Yup.string()\r\n .required('The Verify Password field is required.')\r\n .oneOf([Yup.ref('password'), null], 'Passwords must match.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n await userService\r\n .resetPassword(props.token, props.email, values.password)\r\n .then(() => history.push('/password-set'));\r\n };\r\n\r\n return (\r\n\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Set Password\r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory, Link } from 'react-router-dom';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport queryString from 'query-string';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\nimport ResetPasswordForm from '../../forms/ResetPasswordForm';\r\n\r\n// Images\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function ResetPasswordPage(props) {\r\n document.title = 'Reset Password | Today\\'s Family Fridge';\r\n\r\n const history = useHistory();\r\n\r\n const { location } = props;\r\n const params = queryString.parse(location.search);\r\n\r\n if (typeof params.e === 'undefined' || typeof params.t === 'undefined') {\r\n history.push('/');\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n\r\n \r\n \r\n
\r\n

Reset Password

\r\n
\r\n
\r\n \r\n
\r\n \r\n Back to Login\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\n\r\nimport authenticationService from '../services/authenticationService';\r\nimport RequiredField from '../components/RequiredField';\r\nimport SpinnerButton from '../components/SpinnerButton';\r\n\r\nexport default function ForgotPasswordForm(props) {\r\n const { setSuccess } = props;\r\n\r\n const initialValues = { email: '' };\r\n const validationSchema = Yup.object().shape({\r\n email: Yup.string().required('The Email Address field is Required.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n await authenticationService\r\n .forgotPassword(values.email)\r\n .then((response) => { setSuccess(response.ok); });\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n Send reset link\r\n \r\n \r\n )}\r\n
\r\n );\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n Container, Row, Col, Alert,\r\n} from 'reactstrap';\r\n\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\nimport ForgotPasswordForm from '../../forms/ForgotPasswordForm';\r\n\r\n// Images\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function ForgotPasswordPage() {\r\n document.title = 'Forgot Password | Today\\'s Family Fridge';\r\n\r\n const [success, setSuccess] = useState(false);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \"\"\r\n {success && (\r\n \r\n
Success
\r\n If an account with the entered email was found we\r\n  \r\n will send you further instructions on how to reset your password.\r\n
\r\n )}\r\n \r\n

Forgot your password?

\r\n

\r\n Enter your email and we'll send\r\n
\r\n you a reset link.\r\n

\r\n \r\n
\r\n \r\n Back to Login\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { Row, Form } from 'reactstrap';\r\n\r\nimport { Formik } from 'formik';\r\nimport * as Yup from 'yup';\r\n\r\nimport RequiredField from '../components/RequiredField';\r\nimport SpinnerButton from '../components/SpinnerButton';\r\nimport userService from '../services/userService';\r\n\r\nexport default function VerifyPasswordForm(props) {\r\n const history = useHistory();\r\n const initialValues = {\r\n password: '',\r\n confirmPassword: '',\r\n };\r\n\r\n const validationSchema = Yup.object().shape({\r\n password: Yup.string()\r\n .required('The New Password field is Required.')\r\n .min(6, 'Your password must be atleast 6 characters in length.')\r\n .matches(/(?=.*[A-Z])/, 'Password must contain at least one uppercase letter.')\r\n .matches(/(?=.*[a-z])/, 'Password must contain at least one lowercase letter.')\r\n .matches(/(?=.*[0-9])/, 'Password must contain at least one digit.')\r\n .matches(/(?=.*[~!@#$%^&*()])/, 'Password must contain at least one special character.'),\r\n\r\n confirmPassword: Yup.string()\r\n .required('The Verify Password field is required.')\r\n .oneOf([Yup.ref('password'), null], 'Passwords must match.'),\r\n });\r\n\r\n const onSubmit = async (values) => {\r\n await userService\r\n .setPassword(props.token, props.email, values.password)\r\n .then(() => history.push('/password-set'));\r\n };\r\n\r\n return (\r\n \r\n {(p) => (\r\n
\r\n \r\n \r\n\r\n \r\n Set Password\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport queryString from 'query-string';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\nimport VerifyPasswordForm from '../../forms/VerifyPasswordForm';\r\n\r\n// Images\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function VerifyPage(props) {\r\n document.title = 'Verify Password | Today\\'s Family Fridge';\r\n\r\n const { location } = props;\r\n const params = queryString.parse(location.search);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \"\"\r\n \r\n

\r\n Set your Password\r\n
\r\n This page is only active for 24 hours after you receive your welcome email.\r\n

\r\n\r\n \r\n \r\n
Your password must meet the following requirements:
\r\n
    \r\n
  • Must contain at least 6 characters.
  • \r\n
  • Must contain at least one uppercase letter.
  • \r\n
  • Must contain at least one lowercase letter.
  • \r\n
  • Must contain at least one digit.
  • \r\n
  • Must contain at least one special character (~!@#$%^&*())
  • \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Back to Login\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\n\r\n// Images\r\nimport Shield from '../../resources/images/icons/shield.svg';\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function LogoutPage() {\r\n document.title = 'Logout | Today\\'s Family Fridge';\r\n\r\n useEffect(() => { sessionStorage.removeItem('jwt'); }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \"\"\r\n \r\n
\r\n \"shield\"\r\n

See you again

\r\n

You are now successfully signed out.

\r\n
\r\n Return to Log In\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Row, Col } from 'reactstrap';\r\nimport CardHeaderless from '../../components/CardHeaderless';\r\n\r\n// Images\r\nimport Shield from '../../resources/images/icons/shield.svg';\r\nimport Logo from '../../resources/images/tff-logo.png';\r\n\r\nexport default function PasswordSetPage() {\r\n document.title = 'Set Password | Today\\'s Family Fridge';\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \"\"\r\n \r\n
\r\n \"shield\"\r\n

Success!

\r\n

Your password has successfully been set. Please login to continue.

\r\n
\r\n Return to Log In\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport {\r\n Container,\r\n Card,\r\n CardBody,\r\n Row,\r\n Col,\r\n} from 'reactstrap';\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n\r\n// Images\r\nimport Logo from '../../../resources/images/tff-logo.png';\r\n\r\nexport default function ErrorPage() {\r\n document.title = '500 | Today\\'s Family Fridge';\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \"\"\r\n \r\n \r\n \r\n
500
\r\n

Whoops, something went wrong!

\r\n
\r\n

\r\n Try refreshing the page, or going back and attempting the action again.\r\n If this problem persists,\r\n  \r\n contact us\r\n .\r\n

\r\n \r\n \r\n Take me home\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState, useEffect } from 'react';\r\nimport { FormGroup, Label } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport useSelect from '../hooks/useSelect';\r\nimport childService from '../services/childService';\r\nimport familyService from '../services/familyService';\r\nimport Required from '../components/Required';\r\nimport ListItemGuardian from '../components/ListItemGuardian';\r\nimport classroomService from '../services/classroomService';\r\nimport userService from '../services/userService';\r\n\r\nexport default function ClassroomToFamilyForm(props) {\r\n const {\r\n setSelectedClassroomId, setSelectedChildId, setSelectedFamilyId,\r\n classroomError, familiesError, childError,\r\n } = props;\r\n\r\n const [classrooms, setClassrooms] = useState([]);\r\n const [children, setChildren] = useState([]);\r\n const [families, setFamilies] = useState([]);\r\n\r\n const [usersToSendTo, setUsersToSendTo] = useState([]);\r\n\r\n const {\r\n value: selectedClassroom,\r\n bind: bindSelectedClassroom,\r\n setValue: setSelectedClassroom,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedChild,\r\n bind: bindSelectedChild,\r\n setValue: setSelectedChild,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedFamily,\r\n bind: bindSelectedFamily,\r\n setValue: setSelectedFamily,\r\n } = useSelect();\r\n\r\n useEffect(() => {\r\n classroomService\r\n .all()\r\n .then((r) => {\r\n if (!r.hasError) {\r\n const mappedClassrooms = r.model.map((c) => ({ value: c.classroomId, label: c.name }));\r\n setClassrooms(mappedClassrooms);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedClassroom(mappedClassrooms[0]);\r\n }\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (selectedClassroom) {\r\n setSelectedClassroomId(selectedClassroom.value);\r\n\r\n setSelectedChild(undefined);\r\n setSelectedFamily(undefined);\r\n setUsersToSendTo(undefined);\r\n\r\n childService\r\n .findForClassroom(selectedClassroom.value).then((r) => {\r\n const mappedChildren = r.model.map((c) => ({\r\n value: c.childId,\r\n label: c.fullName,\r\n }));\r\n setChildren(mappedChildren);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedChild(mappedChildren[0]);\r\n }\r\n });\r\n } else {\r\n setSelectedClassroomId(undefined);\r\n }\r\n }, [selectedClassroom]);\r\n\r\n useEffect(() => {\r\n if (selectedChild) {\r\n setSelectedFamily(undefined);\r\n setSelectedChildId(selectedChild.value);\r\n\r\n familyService\r\n .findFamiliesForChild(selectedChild.value).then((r) => {\r\n const mappedFamilies = r.model.map((c) => ({\r\n value: c.familyId,\r\n label: c.name,\r\n }));\r\n setFamilies(mappedFamilies);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedFamily(mappedFamilies[0]);\r\n }\r\n });\r\n } else {\r\n setSelectedChildId(undefined);\r\n }\r\n }, [selectedChild]);\r\n\r\n useEffect(() => {\r\n if (selectedFamily) {\r\n setSelectedFamilyId(selectedFamily.value);\r\n\r\n userService\r\n .getGuardiansForFamily(selectedFamily.value).then((r) => {\r\n setUsersToSendTo(r.model);\r\n });\r\n } else {\r\n setSelectedFamilyId(undefined);\r\n setUsersToSendTo(undefined);\r\n }\r\n }, [selectedFamily]);\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n {children.length > 0 && (\r\n \r\n \r\n \r\n \r\n )}\r\n {families.length > 1 && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {usersToSendTo && usersToSendTo.length > 0 && (\r\n
\r\n \r\n {usersToSendTo.map((g) => (\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import { authenticatedRequest } from '../helpers/authenticatedRequest';\r\n\r\nconst URL = `${process.env.REACT_APP_API_URL}/Conversation`;\r\n\r\nasync function create(classroomId, familyId, childId) {\r\n return authenticatedRequest(\r\n 'POST',\r\n URL,\r\n JSON.stringify({\r\n ClassroomId: classroomId,\r\n FamilyId: familyId,\r\n ChildId: childId,\r\n }),\r\n );\r\n}\r\n\r\nasync function getAll(searchTerm) {\r\n if (searchTerm) {\r\n return authenticatedRequest('GET', URL + `?searchTerm=${searchTerm}`);\r\n }\r\n return authenticatedRequest('GET', URL);\r\n}\r\n\r\nasync function getConversation(id) {\r\n return authenticatedRequest('GET', URL + '/' + id);\r\n}\r\n\r\nasync function sendMessage(id, message) {\r\n return authenticatedRequest(\r\n 'POST',\r\n URL + '/' + id,\r\n JSON.stringify({\r\n ConversationId: id,\r\n Message: message,\r\n }),\r\n );\r\n}\r\n\r\nasync function getConversationHistory(id) {\r\n return authenticatedRequest('GET', URL + '/History/' + id);\r\n}\r\n\r\nconst conversationService = {\r\n create,\r\n getAll,\r\n getConversation,\r\n sendMessage,\r\n getConversationHistory,\r\n};\r\n\r\nexport default conversationService;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { FormGroup, Label } from 'reactstrap';\r\nimport Select from 'react-select';\r\nimport useSelect from '../hooks/useSelect';\r\nimport childService from '../services/childService';\r\nimport familyService from '../services/familyService';\r\nimport Required from '../components/Required';\r\nimport ListItemGuardian from '../components/ListItemGuardian';\r\nimport classroomService from '../services/classroomService';\r\nimport userService from '../services/userService';\r\n\r\nexport default function FamilyToClassroomForm(props) {\r\n const {\r\n setSelectedClassroomId, setSelectedChildId, setSelectedFamilyId,\r\n classroomError, familiesError, childError,\r\n } = props;\r\n\r\n const [classrooms, setClassrooms] = useState([]);\r\n const [children, setChildren] = useState([]);\r\n const [families, setFamilies] = useState([]);\r\n\r\n const [usersToSendTo, setUsersToSendTo] = useState([]);\r\n\r\n const {\r\n value: selectedClassroom,\r\n bind: bindSelectedClassroom,\r\n setValue: setSelectedClassroom,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedChild,\r\n bind: bindSelectedChild,\r\n setValue: setSelectedChild,\r\n } = useSelect();\r\n\r\n const {\r\n value: selectedFamily,\r\n bind: bindSelectedFamily,\r\n setValue: setSelectedFamily,\r\n } = useSelect();\r\n\r\n useEffect(() => {\r\n familyService\r\n .getFamilies(false)\r\n .then((r) => {\r\n const mappedFamilies = r.model.map((c) => ({\r\n value: c.familyId,\r\n label: c.name,\r\n }));\r\n setFamilies(mappedFamilies);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedFamily(mappedFamilies[0]);\r\n }\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n setSelectedChild(undefined);\r\n setSelectedFamilyId(undefined);\r\n\r\n if (selectedFamily) {\r\n setSelectedFamilyId(selectedFamily.value);\r\n\r\n childService\r\n .findForFamily(selectedFamily.value)\r\n .then((r) => {\r\n const mappedChildren = r.model.map((c) => ({\r\n value: c.childId,\r\n label: c.fullName,\r\n }));\r\n\r\n setChildren(mappedChildren);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedChild(mappedChildren[0]);\r\n }\r\n });\r\n }\r\n }, [selectedFamily]);\r\n\r\n useEffect(() => {\r\n setSelectedChildId(undefined);\r\n setSelectedClassroom(undefined);\r\n\r\n if (selectedChild) {\r\n setSelectedChildId(selectedChild.value);\r\n\r\n classroomService\r\n .findForChild(selectedChild.value)\r\n .then((r) => {\r\n if (!r.hasError) {\r\n const mappedClassrooms = r.model.map((c) => ({\r\n value: c.classroomId,\r\n label: c.name,\r\n }));\r\n\r\n setClassrooms(mappedClassrooms);\r\n\r\n if (r.model.length === 1) {\r\n setSelectedClassroom(mappedClassrooms[0]);\r\n }\r\n }\r\n });\r\n }\r\n }, [selectedChild]);\r\n\r\n useEffect(() => {\r\n setSelectedClassroomId(undefined);\r\n\r\n if (selectedClassroom) {\r\n setSelectedClassroomId(selectedClassroom.value);\r\n\r\n userService\r\n .getCaregiversForClassroom(selectedClassroom.value).then((r) => {\r\n setUsersToSendTo(r.model);\r\n });\r\n } else {\r\n setUsersToSendTo(undefined);\r\n }\r\n }, [selectedClassroom]);\r\n\r\n return (\r\n <>\r\n {families.length > 1\r\n && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {children.length > 0\r\n && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {classrooms.length > 1\r\n && (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {usersToSendTo && usersToSendTo.length > 0 && (\r\n
\r\n \r\n {usersToSendTo.map((g) => (\r\n \r\n ))}\r\n
\r\n )}\r\n \r\n );\r\n}\r\n","import React, {\r\n useContext, useEffect, useRef, useState,\r\n} from 'react';\r\nimport ReactGA from 'react-ga';\r\nimport {\r\n Card, CardBody, Row, Col, Input\r\n} from 'reactstrap';\r\nimport Moment from 'react-moment';\r\nimport ExtendedModal from '../../components/ExtendedModal';\r\nimport ClassroomToFamilyForm from '../../forms/ClassroomToFamilyForm';\r\nimport useInput from '../../hooks/useInput';\r\nimport { UserContext } from '../../context/userContext';\r\nimport conversationService from '../../services/conversationService';\r\nimport { CheckPermission } from '../../components/CanUser';\r\nimport FamilyToClassroomForm from '../../forms/FamilyToClassroomForm';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { CanUser } from '../../components/CanUser';\r\n\r\n/**\r\n * The React state is acting weird and not allowing us to set the conversation length so we have to use a global variable to keep track of the length. \r\n * This variable is used to determine when the conversation length has changed and we should scroll to the end of the conversation view\r\n */\r\nlet conversationLength = 0;\r\n\r\nexport default function ConversationsPage() {\r\n document.title = \"Compose Message | Today's Family Fridge\";\r\n\r\n const userState = useContext(UserContext);\r\n const canSendToClassroom = CheckPermission(userState.user.role, 'messages:sendToClassroom');\r\n\r\n const [conversations, setConversations] = useState([]);\r\n const [selectedConversation, setSelectedConversation] = useState();\r\n const [conversationMessages, setConversationMessages] = useState([]);\r\n\r\n const { value: newMessage, bind: bindNewMessage, setValue: setNewMessage } = useInput();\r\n\r\n const [intervalTimer, setIntervalTimer] = useState();\r\n\r\n const [selectedConversationId, setSelectedConversationId] = useState('');\r\n const [newMessagesLoaded, setNewMessagesLoaded] = useState(false); // When set to true, the page will scroll to the latest message in the conversation\r\n const [selectedClassroomId, setSelectedClassroomId] = useState();\r\n const [selectedFamilyId, setSelectedFamilyId] = useState();\r\n const [selectedChildId, setSelectedChildId] = useState();\r\n\r\n const [classroomHasError, setClassroomHasError] = useState(false);\r\n const [childHasError, setChildHasError] = useState(false);\r\n const [familiesHasError, setFamiliesHasError] = useState(false);\r\n\r\n /**\r\n * Scroll to the bottom of the converation whenever new messages have been loaded. \r\n * This could be new messages to the selected conversation or a new conversation has been selected\r\n */\r\n const AlwaysScrollToBottom = () => {\r\n const elementRef = useRef();\r\n \r\n useEffect(() => {\r\n if (newMessagesLoaded) {\r\n elementRef.current.scrollIntoView()\r\n setNewMessagesLoaded(false)\r\n }\r\n });\r\n return
;\r\n };\r\n\r\n function getConversationHistory(conversationId, forceUpdate) {\r\n conversationService\r\n .getConversationHistory(conversationId)\r\n .then((r) => {\r\n if (conversationMessages.length !== r.model.length || forceUpdate) {\r\n setConversationMessages(r.model);\r\n\r\n /**\r\n * If the conversation length has changed or the conversation is a new thread, indicate that new messages have been loaded to force a scroll to bottom\r\n * This should work using the if statement above with conversationMessages.length however something weird is going on with it always returning 0\r\n * so instead we are using a \"global\" variable to store the length\r\n */\r\n if (conversationLength != r.model.length || forceUpdate) {\r\n conversationLength = r.model.length\r\n setNewMessagesLoaded(true)\r\n }\r\n \r\n }\r\n });\r\n }\r\n\r\n function getConversations(searchTerm) {\r\n conversationService\r\n .getAll(searchTerm)\r\n .then((r) => {\r\n setConversations(r.model);\r\n });\r\n }\r\n\r\n function searchTermUpdated(e) {\r\n clearInterval(intervalTimer);\r\n\r\n var searchTerm = e.target.value\r\n getConversations(searchTerm);\r\n \r\n let x = setInterval(() => {\r\n getConversations(searchTerm);\r\n }, 5000);\r\n setIntervalTimer(x);\r\n }\r\n\r\n useEffect(() => {\r\n ReactGA.pageview('conversations');\r\n getConversations();\r\n\r\n let x = setInterval(() => {\r\n getConversations();\r\n }, 5000);\r\n setIntervalTimer(x);\r\n\r\n return () => {\r\n let id = window.setTimeout(() => {}, 0);\r\n while (id) {\r\n window.clearTimeout(id);\r\n id -= 1;\r\n }\r\n\r\n setIntervalTimer(null);\r\n };\r\n }, []);\r\n\r\n const conversationClicked = (conversationId) => {\r\n clearInterval(intervalTimer);\r\n setSelectedConversationId(conversationId);\r\n setIntervalTimer(setInterval(() => {\r\n getConversationHistory(conversationId, false);\r\n }, 5000));\r\n\r\n conversationService\r\n .getConversation(conversationId)\r\n .then((r) => {\r\n setSelectedConversation(r.model);\r\n });\r\n\r\n getConversationHistory(conversationId, true);\r\n };\r\n\r\n const confirmClicked = () => {\r\n setClassroomHasError(!selectedClassroomId);\r\n setFamiliesHasError(!selectedFamilyId);\r\n setChildHasError(!selectedChildId);\r\n\r\n if (selectedClassroomId && selectedFamilyId && selectedChildId) {\r\n conversationService\r\n .create(selectedClassroomId, selectedFamilyId, selectedChildId)\r\n .then((r) => {\r\n conversationClicked(r.model.conversationId);\r\n });\r\n }\r\n };\r\n\r\n const handleSendMessage = (e) => {\r\n e.preventDefault();\r\n\r\n conversationService\r\n .sendMessage(selectedConversationId, newMessage)\r\n .then(() => {\r\n getConversationHistory(selectedConversationId, true);\r\n setNewMessage('');\r\n });\r\n };\r\n\r\n return (\r\n \r\n {() => (\r\n
\r\n \r\n \r\n

Messages

\r\n (\r\n \r\n )}\r\n />\r\n\r\n \r\n \r\n {canSendToClassroom ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n {conversations.length > 0\r\n && conversations.map((c) => (\r\n conversationClicked(c.conversationId)}\r\n onKeyUp={() => conversationClicked(c.conversationId)}\r\n role=\"tab\"\r\n tabIndex=\"0\"\r\n className={'media chat-contact hover-actions-trigger w-100 ' + (selectedConversationId === c.conversationId ? 'active' : '')}\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {canSendToClassroom ? c.classroom.name : c.family.name}\r\n
\r\n
\r\n
\r\n
\r\n {canSendToClassroom ? c.child.fullName : c.child.fullName + ' (' + c.classroom.name + ')'}\r\n
\r\n
\r\n \r\n {c.lastMessageReceived && (\r\n \r\n {c.lastMessageReceived.sentOn}\r\n \r\n )}\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n
\r\n {selectedConversation\r\n && (\r\n <>\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {selectedConversation.family.name}\r\n  — \r\n {selectedConversation.child.fullName}\r\n
\r\n
\r\n {selectedConversation.participants}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {conversationMessages.length > 0 && conversationMessages.map((c) => (\r\n
\r\n
\r\n {c.sentByCurrentUser ? (\r\n
\r\n
\r\n
\r\n \r\n You\r\n \r\n
\r\n
\r\n
\r\n {c.message}\r\n
\r\n
\r\n
\r\n \r\n {c.sentOn}\r\n \r\n
\r\n
\r\n
\r\n ) : (\r\n <>\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {c.fromUserFullName}\r\n \r\n
\r\n
\r\n {c.message}\r\n
\r\n
\r\n \r\n {c.sentOn}\r\n \r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","/* eslint-disable react/no-danger */\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Card, CardBody } from \"reactstrap\";\r\nimport ReactGA from 'react-ga';\r\nimport Moment from 'react-moment';\r\nimport { UserContext } from \"../../context/userContext\";\r\nimport communicationService from '../../services/communicationService';\r\n\r\nexport default function NotificationsPage() {\r\n document.title = \"Communications | Today's Family Fridge\";\r\n\r\n const [communications, setCommunications] = useState([]);\r\n\r\n function getCommunications() {\r\n communicationService\r\n .getCommunications()\r\n .then((r) => {\r\n setCommunications(r.model);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n ReactGA.pageview('communications');\r\n getCommunications();\r\n }, []);\r\n\r\n async function communicationRead(messageId) {\r\n const communication = communications.filter((c) => c.messageId === messageId)[0];\r\n if (communication.read === 1) return;\r\n\r\n setCommunications(communications.map((comm) => {\r\n if (comm.messageId === messageId) {\r\n // eslint-disable-next-line no-param-reassign\r\n comm.read = 1;\r\n }\r\n\r\n return comm;\r\n }));\r\n\r\n await communicationService\r\n .readCommunication(messageId)\r\n .then(() => {});\r\n }\r\n\r\n return (\r\n \r\n {() => (\r\n
\r\n \r\n \r\n

Communications

\r\n
\r\n
\r\n\r\n
\r\n {communications.length > 0\r\n && communications.map((c) => (\r\n communicationRead(c.messageId)}\r\n onFocus={() => communicationRead(c.messageId)}\r\n role=\"tab\"\r\n tabIndex=\"0\"\r\n >\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {c.fromUser.fullName}\r\n \r\n \r\n {c.read === 0 ? 'NEW' : ''}\r\n \r\n
\r\n
\r\n
\r\n \r\n {c.sentOn}\r\n \r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n","import React from 'react';\r\nimport { BrowserRouter as Router, Switch, Redirect } from 'react-router-dom';\r\n\r\n// Layouts\r\nimport { library } from '@fortawesome/fontawesome-svg-core';\r\n\r\n// Import individual icons and add them to the library.\r\n// Reduces overall size of FontAwesome throughout the entire site\r\n// By only importing what we need.\r\n// https://www.npmjs.com/package/@fortawesome/react-fontawesome\r\nimport {\r\n faHome, faBuilding, faImage, faBell, faCheckCircle, faCamera, faChevronUp,\r\n faGraduationCap, faFileUpload, faSearch, faUserCheck, faBan, faCheck,\r\n faChild, faUsers, faEdit, faSitemap, faQuestionCircle, faAllergies, faFileExport,\r\n faUser, faEnvelope, faSave, faTrash, faArchive, faMinus, faTimesCircle,\r\n faCommentDots, faPlus, faAsterisk, faChevronRight, faChevronLeft, faUserPlus, faCalendarAlt,\r\n faRedoAlt,\r\n} from '@fortawesome/free-solid-svg-icons';\r\n\r\nimport { ToastContainer } from 'react-toastify';\r\nimport ReactGA from 'react-ga';\r\nimport LoginLayoutRoute from './layout/LoginLayout';\r\nimport DashboardLayoutRoute from './layout/DashboardLayout';\r\n\r\nimport { UserContextProvider } from './context/userContext';\r\n\r\nimport DashboardPage from './pages/Dashboard';\r\nimport { EditUserPage, ProfilePage, UserPage } from './pages/User';\r\nimport { EditOrganizationPage, OrganizationPage } from './pages/Organization';\r\nimport { EditLocationPage, LocationPage } from './pages/Location';\r\nimport { ClassroomPage, EditClassroomPage } from './pages/Classroom';\r\nimport { ChildrenPage, EditChildPage } from './pages/Children';\r\nimport { EditFamilyPage, FamilyPage } from './pages/Family';\r\nimport NewCommunicationPage from './pages/Communication/New';\r\nimport NotFoundPage from './pages/Error/404';\r\nimport LoginPage from './pages/Authentication/LoginPage';\r\nimport ResetPasswordPage from './pages/Authentication/ResetPasswordPage';\r\nimport ForgotPasswordPage from './pages/Authentication/ForgotPasswordPage';\r\nimport VerifyPage from './pages/Authentication/VerifyPage';\r\nimport LogoutPage from './pages/Authentication/LogoutPage';\r\nimport PasswordSetPage from './pages/Authentication/PasswordSetPage';\r\nimport ErrorPage from './pages/Error/500';\r\nimport ConversationsPage from './pages/Conversations/Conversations';\r\nimport NotificationsPage from './pages/Notification/Index';\r\n\r\nlibrary.add(\r\n faHome, faBuilding, faImage, faBell, faUserPlus, faTimesCircle, faBan, faCheck,\r\n faGraduationCap, faFileUpload, faSearch, faQuestionCircle, faCalendarAlt, faChevronUp,\r\n faChild, faUsers, faEdit, faSitemap, faUserCheck, faCamera, faAllergies, faFileExport,\r\n faUser, faEnvelope, faSave, faTrash, faArchive, faMinus, faCheckCircle,\r\n faCommentDots, faPlus, faAsterisk, faChevronRight, faChevronLeft, faRedoAlt,\r\n);\r\n\r\nReactGA.initialize('UA-172510774-1');\r\nReactGA.pageview(window.location.pathname + window.location.search);\r\n\r\nexport default function App() {\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n { /* Private routes, must have a jwt that is able to be authenticated. */}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {/* Default Error routes, don't need to be logged in but\r\n these will catch anything that doesn't match above */}\r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","/* eslint-disable import/extensions */\r\nimport React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'connected-react-router';\r\nimport configureStore, { history } from './store/configureStore';\r\nimport App from './App';\r\n\r\nimport './resources/styles/theme.css';\r\nimport './resources/styles/site.css';\r\n\r\nimport './resources/scripts/theme.min.js';\r\nimport './resources/scripts/site.js';\r\n\r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(history, initialState);\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n rootElement,\r\n);\r\n"],"sourceRoot":""}