{"version":3,"sources":["webpack:///../common/actions/ActionTypes.js","webpack:///../common/services/SettingsService.js","webpack:///./src/utils/LocalImages.js","webpack:///../common/utils/TimeHelperFunctions.js","webpack:///./assets/NoAvatarImage.png","webpack:///./assets/DefaultAvatarImage.png","webpack:///./assets/DefaultRewardImage.png","webpack:///./assets/DefaultSkillImage.png","webpack:///./assets/PianoAdventures.png","webpack:///./assets/MyPaBugIcon.png","webpack:///./assets/ViewTutorials.png","webpack:///./assets/InteractiveTour.png","webpack:///./assets/Synthesia.png","webpack:///./assets/LandingTeachers.png","webpack:///./assets/LandingStudents.png","webpack:///./assets/LandingParents.png","webpack:///./assets/AppApple.png","webpack:///./assets/AppGoogle.png","webpack:///./assets/SignUpImage.png","webpack:///./assets/Play.png","webpack:///./assets/GoogleLogo.svg","webpack:///./assets/AppleLogo.svg","webpack:///./assets/HeaderImage.png","webpack:///./assets/HomeLogo.png","webpack:///./assets/LandingConnect.png","webpack:///./assets/LandingLearn.png","webpack:///./assets/LandingExplore.png","webpack:///./assets/IconCustomize.svg","webpack:///./assets/IconDashboard.svg","webpack:///./assets/IconGrowth.svg","webpack:///./assets/IconLearning.svg","webpack:///./assets/IconMessaging.svg","webpack:///./assets/IconSupport.svg","webpack:///./assets/MyPAEarlyAdopterProgramFirstFrame.jpg","webpack:///../common/utils/HelperFunctions.js","webpack:///./src/@history.js","webpack:///../common/reducers/reducerUtils.js","webpack:///./src/store/reducers/fuse/navigation.reducer.js","webpack:///./src/store/reducers/fuse/navbar.reducer.js","webpack:///./src/store/reducers/fuse/message.reducer.js","webpack:///./src/store/reducers/fuse/dialog.reducer.js","webpack:///./src/store/reducers/fuse/routes.reducer.js","webpack:///./src/store/reducers/fuse/index.js","webpack:///./src/fuse-layouts/shared-components/quickPanel/store/actions/quickPanel.actions.js","webpack:///./src/fuse-layouts/shared-components/quickPanel/store/reducers/quickPanel.reducer.js","webpack:///./src/fuse-layouts/shared-components/quickPanel/store/reducers/index.js","webpack:///../common/reducers/BaseReducer.js","webpack:///../common/reducers/TeacherReducer.js","webpack:///../common/reducers/StudentReducer.js","webpack:///../common/reducers/AssignmentReducer.js","webpack:///../common/reducers/PrivateMessageReducer.js","webpack:///../common/reducers/SettingsAndLanguagesReducer.js","webpack:///../common/reducers/EmoticonReducer.js","webpack:///../common/reducers/SentenceReducer.js","webpack:///../common/reducers/SchoolYearReducer.js","webpack:///../common/reducers/AssignLevelReducer.js","webpack:///../common/reducers/GroupReducer.js","webpack:///../common/reducers/PremadeAvatarsReducer.js","webpack:///../common/reducers/NoteReducer.js","webpack:///../common/reducers/AutomaticLoginReducer.js","webpack:///../common/reducers/AppReducers.js","webpack:///./src/store/reducers/index.js","webpack:///./src/store/index.js","webpack:///./src/pages/logout/LogoutConfig.js","webpack:///./src/pages/errors/ErrorPagesConfigs.js","webpack:///./src/pages/HomeConfig.js","webpack:///./src/pages/Teacher/students/StudentsConfig.js","webpack:///./src/pages/Teacher/profile/TeacherProfileConfig.js","webpack:///./src/pages/Teacher/presets/TeacherSentencesConfig.js","webpack:///./src/pages/Teacher/videoTutorials/TeacherVideoTutorialsConfig.js","webpack:///./src/pages/Teacher/teacherResources/TeacherTutorialsConfig.js","webpack:///./src/pages/Teacher/schoolYears/TeacherSchoolYearConfig.js","webpack:///./src/pages/Teacher/settings/TeacherNotificationsConfig.js","webpack:///./src/pages/Teacher/settings/TeacherSettingsLeaderboardConfig.js","webpack:///./src/pages/Teacher/chat/TeacherCommunicationConfig.js","webpack:///./src/pages/Teacher/skills/TeacherSkillsConfig.js","webpack:///./src/pages/Teacher/rewards/TeacherRewardsConfig.js","webpack:///./src/pages/Teacher/assignments/TeacherAssignmentsConfig.js","webpack:///./src/pages/Teacher/studentInfo/TeacherStudentInfoConfig.js","webpack:///./src/pages/Teacher/groups/TeacherGroupInfoConfig.js","webpack:///./src/pages/Teacher/students/GroupsConfig.js","webpack:///./src/pages/Teacher/pianoAdventures/TeacherPianoAdventuresConfig.js","webpack:///./src/pages/Teacher/lessons/TeacherLessonsConfig.js","webpack:///./src/pages/Teacher/presets/TeacherTemplateNotesConfig.js","webpack:///./src/pages/Teacher/support/TeacherSupportConfig.js","webpack:///./src/pages/Teacher/TeacherConfigs.js","webpack:///./src/pages/Student/profile/StudentProfileConfig.js","webpack:///./src/pages/Student/chooseTeacher/StudentChooseTeacherConfig.js","webpack:///./src/pages/Student/chat/StudentCommunicationConfig.js","webpack:///./src/pages/Student/settings/StudentLeaderboardConfig.js","webpack:///./src/pages/Student/settings/StudentNotificationsConfig.js","webpack:///./src/pages/Student/videoTutorials/StudentVideoTutorialsConfig.js","webpack:///./src/pages/Student/lessons/StudentTeacherLessonsConfig.js","webpack:///./src/pages/Student/assignments/StudentMyAssignmentsConfig.js","webpack:///./src/pages/Student/pianoAdventures/StudentPianoAdventuresConfig.js","webpack:///./src/pages/Student/children/StudentChildrenConfig.js","webpack:///./src/pages/Student/support/StudentSupportConfig.js","webpack:///./src/pages/Student/settings/StudentLeaderboardNotificationSettingsConfig.js","webpack:///./src/pages/Student/StudentConfigs.js","webpack:///./src/pages/Guest/login/LoginConfig.js","webpack:///./src/pages/Guest/forgotEmail/ForgotEmailConfig.js","webpack:///./src/pages/Guest/forgotPassword/ForgotPasswordConfig.js","webpack:///./src/pages/Guest/registration/RegistrationConfig.js","webpack:///./src/pages/Guest/contact/ContactConfig.js","webpack:///./src/pages/Guest/privacyTerms/PrivacyTermsConfig.js","webpack:///./src/pages/Guest/landing/LandingConfig.js","webpack:///./src/pages/Guest/automaticLogin/AutomaticLoginConfig.js","webpack:///./src/pages/Guest/GuestConfigs.js","webpack:///./src/pages/AnyUser/assignments/AnyUserAssignmentsConfig.js","webpack:///./src/pages/AnyUser/privacyTerms/PrivacyTermsConfig.js","webpack:///./src/pages/AnyUser/contact/ContactConfig.js","webpack:///./src/pages/AnyUser/AnyUserConfig.js","webpack:///./src/fuse-configs/routesConfig.js","webpack:///../common/utils/ConnectivityHelper.js","webpack:///./src/components/Alert/DialogMessage.js","webpack:///./src/components/Alert/Alert.js","webpack:///./src/services/common/AlertService.js","webpack:///./src/services/common/MessageUIService.js","webpack:///./src/components/RouteAuthorization.js","webpack:///./src/components/Modal/ViewTutorials/ViewTutorialsModalComponent.js","webpack:///../common/services/LayoutService.js","webpack:///./src/components/CookieConsent/CookieConsent.js","webpack:///./src/components/AppContainer.js","webpack:///./src/services/common/SentryService.js","webpack:///./src/services/common/NotificationsService.js","webpack:///./src/components/Chat/LinkWithImage.js","webpack:///./src/components/Chat/ChatHelperComponents.js","webpack:///./src/services/common/AsyncStorageService.js","webpack:///./src/services/common/LinkingService.js","webpack:///./src/services/common/ConnectivityService.js","webpack:///./src/services/common/PlatformService.js","webpack:///./src/services/common/VideoPlayerService.js","webpack:///../common/utils/FetchServicesFactory.js","webpack:///./src/FirebaseConfig.js","webpack:///./src/services/common/FirebaseService.js","webpack:///./src/App.js","webpack:///./index.js","webpack:///../common/actions/StudentActions.js","webpack:///./src/@fuse/FuseDefaultSettings.js","webpack:///../common/services/FetchService.js","webpack:///../common/utils/LinkRegexHelper.js","webpack:///../common/utils/FileConstants.js","webpack:///./src/AppContext.js","webpack:///../common/actions/PrivateMessageActions.js","webpack:///../common/actions/AssignmentActions.js","webpack:///../common/utils/FetchUtils.js","webpack:///../common/services/EndpointsService.js","webpack:///../common/services/EventListenerService.js","webpack:///../common/actions/LessonActions.js","webpack:///../common/reselects/BaseReselects.js","webpack:///../common/utils/VideoUtils/VideoLinkUtils.js","webpack:///./src/@fuse/fuse-colors/fuseDark.js","webpack:///./src/@fuse/fuse-colors/index.js","webpack:///./src/@lodash/index.js","webpack:///./src/components/General/ImageComponent.js","webpack:///../common/actions/SkillAction.js","webpack:///../common/utils/UrlQueryHelperFunctions.js","webpack:///./src/fuse-layouts/layout1/Layout1Config.js","webpack:///./src/fuse-layouts/FuseLayoutConfigs.js","webpack:///./src/services/AmplitudeService.js","webpack:///./src/services/GAService.js","webpack:///./src/services/HotjarService.js","webpack:///./src/services/AnalyticsService.js","webpack:///./src/icons/ArrowLeftCircleIcon.js","webpack:///../common/utils/ImageConstants.js","webpack:///../common/reselects/StudentGroupsDataReselects.js","webpack:///./src/fuse-configs/navigationConfig.js","webpack:///../common/utils/MessageConstants.js","webpack:///../common/reducers/LessonsReducer.js","webpack:///../common/config/AppConfig.js","webpack:///./src/fuse-configs/settingsConfig.js","webpack:///./src/fuse-configs/themesConfig.js","webpack:///./src/store/reducers/fuse/settings.reducer.js","webpack:///../common/actions/Actions.js","webpack:///../common/actions/SettingsAndLanguagesActions.js","webpack:///../common/actions/EmoticonActions.js","webpack:///../common/actions/DemoActions.js","webpack:///../common/utils/PostponeActionHelper.js","webpack:///../common/actions/AutomaticLoginActions.js","webpack:///../common/services/IdentityEndpointsService.js","webpack:///./src/icons/TrophyIcon.js","webpack:///./src/icons/MedalIcon.js","webpack:///./src/icons/AwardIcon.js","webpack:///./src/icons/MusicIcon.js","webpack:///./src/icons/InfoIcon.js","webpack:///./src/icons/ImportIcon.js","webpack:///./src/icons/ExportIcon.js","webpack:///./src/components/General/Icons.js","webpack:///../common/utils/GroupsDataUtils.js","webpack:///./src/styles/BasicStyles.js","webpack:///../common/utils/FormValidators.js","webpack:///./src/components/General/TextComponent.js","webpack:///./src/components/General/DropDownButtonComponent.js","webpack:///../common/actions/SchoolYearActions.js","webpack:///../common/reselects/LessonsReselects.js","webpack:///../common/reselects/EmoticonReselect.js","webpack:///./src/fuse-layouts/shared-components/GoBackComponent.js","webpack:///../common/actions/UserActions.js","webpack:///../common/utils/ChatHelperFunctions.js","webpack:///./src/components/General/LinkComponent.js","webpack:///../common/actions/RewardActions.js","webpack:///./src/components/General/ExternalAppComponent.js","webpack:///../common/actions/LoginActions.js","webpack:///./src/components/SplashScreenComponent.js","webpack:///../common/utils/NotificationsConstants.js","webpack:///./src/services/common/NavigatorService.js","webpack:///./src/store/actions/index.js","webpack:///../common/actions/GroupActions.js","webpack:///./src/store/actions/fuse/navigation.actions.js","webpack:///./src/store/actions/fuse/settings.actions.js","webpack:///./src/store/actions/fuse/navbar.actions.js","webpack:///./src/store/actions/fuse/message.actions.js","webpack:///./src/store/actions/fuse/dialog.actions.js","webpack:///./src/store/actions/fuse/index.js","webpack:///../common/reselects/GroupsDataReselect.js","webpack:///../common/utils/AppConstants.js","webpack:///../common/utils/VideoUtils/VideoPlayerHelper.js","webpack:///../common/utils/NotificationActionHandler.js","webpack:///../common/utils/NotificationsHelper.js","webpack:///../common/utils/UserHelper.js","webpack:///./src/utils/LayoutIcons.js","webpack:///./src/@fuse/components/FusePageLayouts/simple/FusePageSimpleSidebarContent.js","webpack:///./src/@fuse/components/FusePageLayouts/simple/FusePageSimpleSidebar.js","webpack:///./src/@fuse/components/FusePageLayouts/simple/FusePageSimpleHeader.js","webpack:///./src/@fuse/components/FusePageLayouts/simple/FusePageSimple.js","webpack:///./src/@fuse/components/FusePageLayouts/carded/FusePageCardedSidebarContent.js","webpack:///./src/@fuse/components/FusePageLayouts/carded/FusePageCardedSidebar.js","webpack:///./src/@fuse/components/FusePageLayouts/carded/FusePageCardedHeader.js","webpack:///./src/@fuse/components/FusePageLayouts/carded/FusePageCarded.js","webpack:///./src/@fuse/components/DemoSidebarContent.js","webpack:///./src/@fuse/components/DemoContent.js","webpack:///./src/@fuse/components/FuseNavigation/FuseNavBadge.js","webpack:///./src/@fuse/components/FuseNavigation/vertical/FuseNavVerticalItem.js","webpack:///./src/@fuse/components/FuseNavigation/vertical/FuseNavVerticalLink.js","webpack:///./src/@fuse/components/FuseNavigation/vertical/FuseNavVerticalCollapse.js","webpack:///./src/@fuse/components/FuseNavigation/vertical/FuseNavVerticalGroup.js","webpack:///./src/@fuse/hooks/useForm.js","webpack:///./src/@fuse/hooks/useDebounce.js","webpack:///./src/@fuse/hooks/useTimeout.js","webpack:///./src/@fuse/hooks/usePrevious.js","webpack:///./src/@fuse/hooks/useUpdateEffect.js","webpack:///./src/@fuse/hooks/index.js","webpack:///./src/@fuse/components/FuseNavigation/horizontal/FuseNavHorizontalItem.js","webpack:///./src/@fuse/components/FuseNavigation/horizontal/FuseNavHorizontalLink.js","webpack:///./src/@fuse/components/FuseNavigation/horizontal/FuseNavHorizontalCollapse.js","webpack:///./src/@fuse/components/FuseNavigation/horizontal/FuseNavHorizontalGroup.js","webpack:///./src/@fuse/components/FuseNavigation/FuseNavigation.js","webpack:///./src/@fuse/components/withRouterAndRef/withRouterAndRef.js","webpack:///./src/@fuse/components/FuseScrollbars/FuseScrollbars.js","webpack:///./src/@fuse/components/FuseAuthorization/FuseAuthorization.js","webpack:///./src/@fuse/components/FuseTheme/FuseTheme.js","webpack:///./src/@fuse/components/FuseLayout/FuseLayout.js","webpack:///./src/@fuse/components/FuseSettings/FuseSettings.js","webpack:///./src/@fuse/components/FuseCountdown/FuseCountdown.js","webpack:///./src/@fuse/components/FuseHighlight/prism-languages.js","webpack:///./src/@fuse/components/FuseHighlight/FuseHighlight.js","webpack:///./src/@fuse/components/FuseExample/DemoFrame.js","webpack:///./src/@fuse/components/FuseExample/FuseExample.js","webpack:///./src/@fuse/components/FuseShortcuts/FuseShortcuts.js","webpack:///./src/@fuse/components/FuseSearch/FuseSearch.js","webpack:///./src/@fuse/components/FuseMessage/FuseMessage.js","webpack:///./src/@fuse/components/FuseDialog/FuseDialog.js","webpack:///./src/@fuse/components/FuseAnimate/FuseAnimate.js","webpack:///./src/@fuse/components/FuseAnimateGroup/FuseAnimateGroup.js","webpack:///./src/@fuse/components/FuseSplashScreen/FuseSplashScreen.js","webpack:///./src/@fuse/components/FuseChipSelect/FuseChipSelect.js","webpack:///./src/@fuse/components/FuseSuspense/FuseSuspense.js","webpack:///./src/@fuse/components/FuseLoading/FuseLoading.js","webpack:///./src/@fuse/components/FuseSidePanel/FuseSidePanel.js","webpack:///./src/@fuse/FuseUtils.js","webpack:///./src/@fuse/components/formsy/TextFieldFormsy.js","webpack:///./src/@fuse/components/formsy/CheckboxFormsy.js","webpack:///./src/@fuse/components/formsy/RadioGroupFormsy.js","webpack:///./src/@fuse/components/formsy/SelectFormsy.js","webpack:///./src/@fuse/components/formsy/FuseChipSelectFormsy.js","webpack:///./src/@fuse/components/formsy/index.js","webpack:///./src/fuse-layouts/shared-components/NavbarMobileToggleButton.js","webpack:///./src/fuse-layouts/shared-components/UserMenu.js","webpack:///./src/fuse-layouts/layout1/components/ToolbarLayout1.js","webpack:///./src/fuse-layouts/layout1/components/FooterLayout1.js","webpack:///./src/fuse-layouts/layout1/components/LeftSideLayout1.js","webpack:///./src/fuse-layouts/shared-components/UserNavbarHeader.js","webpack:///./src/fuse-layouts/shared-components/NavbarFoldedToggleButton.js","webpack:///./src/fuse-layouts/shared-components/Navigation.js","webpack:///./src/fuse-layouts/layout1/components/NavbarLayout1.js","webpack:///./src/fuse-layouts/layout1/components/NavbarWrapperLayout1.js","webpack:///./src/fuse-layouts/shared-components/SettingsPanel.js","webpack:///./src/fuse-layouts/layout1/Layout1.js","webpack:///./src/fuse-layouts/FuseLayouts.js","webpack:///./src/@fuse/components/NavLinkAdapter/NavLinkAdapter.js","webpack:///./src/@fuse/index.js","webpack:///./src/styles/index.css","webpack:///../common/services/SharedServices.js","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$"],"names":["ActionTypes","Object","freeze","LOG_IN_ACTION","LOG_OUT_ACTION","CHANGE_USER_DATA_ACTION","SET_SETTINGS_ACTION","SET_LANGUAGES_ACTION","SET_LANGUAGE_DEFINITION_ACTION","SET_NOTIFICATIONS_ACTION","SET_EMAIL_NOTIFICATIONS_ACTION","SET_LANGUAGE_CODE_ACTION","CHANGE_LEADERBOARD_PARTICIPATION","STUDENT_SET_CHOSEN_TEACHER_ACTION","SET_STUDENT_CHILDREN","ADD_LESSON_ACTION","UPDATE_LESSON_ACTION","ACTIVATE_LESSON_ACTION","PUBLISH_LESSON_ACTION","SET_LESSONS_ACTION","SET_SELECTED_ASSIGNMENTS","DELETE_LESSON_ACTION","ADD_LESSON_NOTE_ACTION","UPDATE_LESSON_NOTE_ACTION","SET_LESSON_NOTES_ACTION","SET_SELECTED_NOTES","DELETE_LESSON_NOTE_ACTION","DELETE_LESSON_NOTES_ACTION","ADD_GROUP_NOTE_ACTION","UPDATE_GROUP_NOTE_ACTION","SET_GROUP_NOTES_ACTION","DELETE_GROUP_NOTE_ACTION","DELETE_GROUP_NOTES_ACTION","TEACHER_ADD_SKILL_ACTION","TEACHER_UPDATE_SKILL_ACTION","TEACHER_DELETE_SKILL_ACTION","TEACHER_SKILL_CHANGE_IS_ACTIVE_ACTION","TEACHER_SET_SKILLS_ACTION","SET_STUDENT_SKILLS","SET_STUDENT_REWARDS","TEACHER_ADD_OR_UPDATE_SKILLS_ACTION","TEACHER_ADD_REWARD_ACTION","TEACHER_UPDATE_REWARD_ACTION","TEACHER_DELETE_REWARD_ACTION","TEACHER_REWARD_CHANGE_IS_ACTIVE_ACTION","TEACHER_SET_REWARDS_ACTION","TEACHER_ADD_OR_UPDATE_REWARDS_ACTION","SET_ASSIGNMENTS_FOR_ASSIGNMENT_FOLDER","ADD_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER","UPDATE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER","DELETE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER","PRIVATE_MESSAGE_ADD_CONVERSATIONS","PRIVATE_MESSAGE_ADD_GROUP_MESSAGES","PRIVATE_MESSAGE_DELETE","PRIVATE_MESSAGE_ADD_MESSAGES_TO_GROUPS","SET_FLASH_CARDS_ACTION","SET_PIANO_ADVENTURES_BOOKS","SET_EMOTICONS_ACTION","SET_VIDEO_TUTORIALS","SET_TEACHER_VIDEO_TUTORIALS","SENTENCES_SET_ACTION","SENTENCE_ADD_ACTION","SENTENCE_UPDATE_ACTION","SENTENCE_DELETE_ACTION","ASSIGN_LEVELS_SET_ACTION","ASSIGN_LEVEL_ADD_ACTION","ASSIGN_LEVEL_UPDATE_ACTION","ASSIGN_LEVEL_DELETE_ACTION","SCHOOL_YEAR_ACTIVATE_ACTION","SCHOOL_YEARS_SET_ACTION","SCHOOL_YEAR_ADD_ACTION","SCHOOL_YEAR_UPDATE_ACTION","SCHOOL_YEAR_DELETE_ACTION","SET_PREMADE_AVATARS_ACTION","GROUPS_DATA_SET_ACTION","GROUP_DELETE_ACTION","SELECTED_GROUP_STUDENTS_SET","HOME_SCREEN_ACCESS_TIMES_INC","ACTIVE_STUDENT_UPDATE","IMPORT_DEMO_STUDENTS","DELETE_STUDENT","SET_NOTES_FOR_NOTE_FOLDER","ADD_NOTE_FOR_NOTE_FOLDER","UPDATE_NOTE_FOR_NOTE_FOLDER","DELETE_NOTE_FOR_NOTE_FOLDER","EXTERNAL_LOGIN_FROM","SET_ORIGINAL_ACCOUNT_ACCESS_TOKEN","SET_AUTOMATIC_LOGIN_IN_PROGRESS","getStateFunc","getNotifications","state","settingsAndLanguages","settings","notifications","getLanguageCode","languageCode","getLanguageDefinition","languageDefinition","getLanguages","languages","getAllSettings","getAll","loadFromStorage","userId","getStorageItem","SETTINGS_STORAGE_KEY","JSON","parse","storeToStorage","settingsData","settingsDataJson","stringify","setStorageItem","loadLanguageDefinitionFromStorage","code","key","LANGUAGE_DEF_STORAGE_PREFIX_KEY","data","storeLanguageDefinitionToStorage","langDef","loadLanguagesFromStorage","storeLanguagesToStorage","init","getStateFuncParam","LocalImages","NO_AVATAR_IMAGE","require","DEFAULT_AVATAR_IMAGE","DEFAULT_REWARD_IMAGE","DEFAULT_SKILL_IMAGE","PIANO_ADV","MY_PA_BUG_ICON","VIEW_TUTORIALS","INTERACTIVE_TOUR","SYNTHESIA_ICON","LANDING_TEACHERS","LANDING_STUDENTS","LANDING_PARENTS","APP_APPLE","APP_GOOGLE","SIGNUP_IMAGE","PLAY_IMAGE","GOOGLE_LOGO","APPLE_LOGO","HEADER_IMAGE","HOME_LOGO","LANDING_CONNECT","LANDING_LEARN","LANDING_EXPLORE","ICON_CUSTOMIZE","ICON_DASHBOARD","ICON_GROWTH","ICON_LEARNING","ICON_MESSAGING","ICON_SUPPORT","MYPA_EARLY_ADOPTER_VIDEO_FIRST_FRAME","moment","compareDatesByDay","date1","date2","firstUtc","utc","secondUtc","firstLocal","local","secondLocal","isBefore","calculateTimeForConversation","from","todayLocal","startOf","fromLocal","isToday","format","yesterdayLocal","subtract","isYesterday","texti18n","Messages","YESTERDAY","isBeforeYesterday","getDate","calculateTimeForChatHistory","TODAY","getCurrentDate","date","Date","setHours","getNthDateFromDateJson","nth","startdate","momentDate","add","getJSDateFromJson","json","toDate","getMomentDateFromJson","getMomentDate","formatDateJson","fullDateTime","setEndOfTheDay","String","CURRENT_DATE_FORMAT","set","hour","minute","second","millisecond","result","formatTimeJson","value","CURRENT_TIME_FORMAT","formatDate","formatTime","convertTime12to24","time12h","time","modifier","split","hours","minutes","parseInt","formatDateTime","dateTime","CURRENT_DATE_TIME_FORMAT","formatTimeLength","seconds","intSeconds","convertTimeInMinutesToDateTime","timeInMinutes","Math","floor","getTimeInMinutes","timeString","timeStringJson","map","x","isSame","dateTimeLocal","CURRENT_SHORT_DATE_FORMAT","getDayIndexFromDayString","day","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY","formatSchedules","schedules","dayOfWeek","undefined","specificDate","formatReadOnlyDate","CURRENT_READONLY_DATE_FORMAT","sortSchedules","sort","a","b","aDayIndex","bDayIndex","fromTimeInMinutes","aSpecificDateMoment","bSpecificDateMoment","convertMinutesToAmPmString","totalHours","minutesRemaining","ampm","minutesString","insertAtPosition","items","item","itemCompareFunc","insertAtPositionMutable","replaceOldItem","newItem","find","id","newItems","filter","updateOldItem","itemId","updateItemFunc","deleteItem","addMultipleItemsToItemsInDictionary","stateKey","dictKeyId","compareFunc","dictionary","oldItems","forEach","some","setDictionaryState","addItemToItemsInDictionary","changeItemInItemsInDictionary","func","response","assign","getFromDict","dict","keyId","defValue","arrayToMatrix","originalItems","noOfColumns","reminder","length","noOfRows","Array","i","pos","end","min","slice","fixNumberOfColumnsInMatrix","matrix","last","count","push","paginationAdd","lastNew","index","findIndex","concat","indexOfFirstGreater","splice","concatUnique","first","newArr","found","j","calculateNumberOfItemsPerRow","windowSize","defaultItemsPerRow","aspect","width","height","itemsPerRow","trunc","fixGroupedItems","responseData","keyIdName","studentItems","itemsMap","reduce","acc","reduxUpdateWait","Promise","resolve","setTimeout","deepDiffer","one","two","maxDepth","constructor","isArray","len","ii","twoKey","formatMessage","message","args","regexp","RegExp","replace","timeoutPromise","promise","timeoutInMS","timeoutError","reject","timeoutId","Error","then","clearTimeout","catch","error","groupBy","keyProperty","keyValueIfNotExist","currItem","removeAccents","text","keys","ACCENTS_MAP","cv","currentYPosition","self","pageYOffset","document","documentElement","scrollTop","body","getElementYPosition","elementRef","y","offsetTop","offsetParent","doScrolling","containerRef","duration","startingY","fixedHeaderHeight","window","innerWidth","diff","start","requestAnimationFrame","step","timestamp","percent","scrollTo","postponeAction","actionFunc","timeoutHandler","history","processUserDependantReducersMap","reducers","action","type","initialState","navigationConfig","navigation","Actions","foldedOpen","mobileOpen","navbar","options","anchorOrigin","vertical","horizontal","autoHideDuration","variant","children","dialog","routes","generalFuseReducers","userDependantFuseReducers","fuseReducers","combineReducers","TOGGLE_QUICK_PANEL","GET_QUICK_PANEL_DATA","getQuickPanelData","request","FetchService","executeGet","dispatch","payload","toggleQuickPanel","quickPanel","reducer","baseInitialState","pianoAdventuresBooks","flashCards","videoTutorials","teacherVideoTutorials","studentSkills","studentRewards","auth","isInitializing","isLoggedIn","role","USER_TYPES","GUEST","userData","homeScreenAccessTimes","externalLoginFrom","mergeUserDataRedux","oldUserData","newUserData","firstName","lastName","email","username","baseReducer","groupId","leaderboardParticipation","tempState","groupedSkills","groupByGroupId","skills","groupIds","innerDictState","newState","groupedRewards","rewards","itemsReduceFunc","importStarted","teacherReducer","skill","skillCompareFunc","updateItemCreate","isActive","replaceOldItemCreate","deleteItemCreate","newSkillsGrouped","groupSkills","newGroupSkills","newSkill","reward","rewardCompareFunc","newRewardsGrouped","groupRewards","newGroupRewards","newReward","isStarted","getItemName","name","toLowerCase","updateFunc","changeFunc","teacher","studentReducer","leaderboardParticipationByTeacherStudent","leaderboardParticipationByTeacher","leaderboardParticipationByStudent","assignments","assignmentReducer","assignmentFolderId","streamed","clear","grouped","parentIds","parentId","idsMap","Set","has","recursive","list","assignment","order","color","conversations","channels","groupMessages","privateMessageReducer","keyConversations","isChannel","updateConversations","messages","hasChanges","console","log","updateGroupMessages","groupType","clearCache","oldMessages","newMessages","mergeGroupMessages","changedState","conversation","messageId","msg","pop","newConversations","mustContainLastMessage","reverse","oldLastMessageId","sliced","oldLastMsgId","newMessagesSliced","returnMessages","oldFirstMsgId","mapGroupIdMessage","values","sign","mapGroupIdMessages","updatedMessages","NOTIFICATION_TYPES","emailNotifications","settingsAndLanguagesReducer","areDiffer","newSettings","oldSettings","oldKeys","newKeys","every","emoticons","emoticonReducer","sentences","sentencesReducer","sentence","replaceItem","isGlobal","schoolYears","schoolYearsReducer","teacherId","schoolYear","schoolYearCompareFunc","replaceOldSchoolYear","updateSchoolYearIsActive","schoolYearsByKey","startDate","assignLevels","assignLevelsReducer","assignLevel","assignLevelCompareFunc","globalGroups","userGroups","users","students","selectedGroupStudentIds","notes","groupReducer","note","noteCompareFunc","noteId","noteIds","studentId","newStudents","GROUP_TYPES","TEACHER_SINGLE_STUDENT","premadeAvatars","premadeAvatarsReducer","notesReducer","noteFolderId","originalAccountAccessToken","inProgress","automaticLoginReducer","userDependantReducers","base","lesson","lessonsReducer","student","privateMessage","emoticon","group","premadeAvatar","generalReducers","automaticLogin","getAppReducer","additionalGeneralReducers","additionalUserDependantReducers","allUserDependantReducersMap","createReducer","asyncReducers","webAppSpecificReducers","fuse","reduxModule","REPLACE","composeEnhancers","process","enhancer","thunk","store","injectReducer","replaceReducer","LogoutConfig","layout","config","display","toolbar","footer","leftSidePanel","rightSidePanel","path","component","React","lazy","applicationPath","errorsPagesConfigs","HomeConfig","exact","StudentsConfig","TeacherProfileConfig","TeacherSentencesConfig","TeacherVideoTutorialsConfig","TeacherTutorialsConfig","TeacherSchoolYearConfig","TeacherNotificationsConfig","TeacherSettingsLeaderboardConfig","TeacherCommunicationConfig","TeacherSkillsConfig","TeacherRewardsConfig","TeacherAssignmentsConfig","TeacherStudentInfoConfig","TeacherGroupInfoConfig","GroupsConfig","TeacherPianoAdventuresConfig","TeacherLessonsConfig","TeacherTemplateNotesConfig","TeacherSupportConfig","teacherConfigs","StudentProfileConfig","StudentChooseTeacherConfig","StudentChooseTeacherRouteName","StudentCommunicationConfig","StudentLeaderboardConfig","StudentNotificationsConfig","StudentVideoTutorialsConfig","StudentTeacherLessonConfigConfig","StudentMyAssignmentsConfig","StudentPianoAdventuresConfig","StudentChildrenConfig","StudentSupportConfig","StudentLeaderboardNotificationSettingsConfig","studentConfigs","LoginConfig","ForgotEmailConfig","ForgotPasswordConfig","RegistrationConfig","ContactConfig","PrivacyTermsConfig","LandingConfig","AutomaticLoginConfig","guestConfigs","AnyUserAssignmentsConfig","anyUserConfig","sharedRoutes","FuseUtils","generateRoutesFromConfigs","TEACHER","STUDENT","getMappings","mappings","oneAppPath","startsWith","substring","routeMappings","routeReverseMappings","obj","getGuestUrls","urls","route","EVENT_NAME","lastIsConnected","unsubscribe","subscribeToConnectivity","handleConnectivityChange","dispose","addOnConnectedCallback","callback","callOnce","EventListenerService","subscribe","showInfo","DISCONNECTED_FROM_INTERNET","CONNECTED_TO_INTERNET","notify","DialogMessage","Component","props","setState","open","onPressOk","content","dialogTitle","hasCancelBtn","cancelBtnText","confirmBtnText","confirmBtnColor","showMessage","render","confirmBtnStyle","OK","backgroundColor","handleClose","handleConfirm","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","useStyles","makeStyles","theme","green","palette","dark","primary","main","amber","icon","fontSize","iconVariant","opacity","marginRight","spacing","alignItems","margin","MySnackbarContentWrapper","classes","onClose","other","Icon","clsx","CustomizedSnackbars","show","messageType","alertWithType","alertService","alertServiceRef","showError","showSuccess","CHANGES_HAS_BEEN_SAVED","title","messageService","messageServiceRef","ask","CANCEL","ASK_DIALOG_TITLE","infoAlert","INFORMATION","errorAlert","ERROR","shareInviteToStudent","bodyMessage","RouteAuthorization","location","pathname","matched","hasMatched","accessGranted","_hasPermission","isGuestRoute","_isGuestRoute","useEffect","saveRouteToStorage","ROUTE_LOCATION","NavigatorService","navigateAndReset","RouteAuthorizationMemo","memo","RouteAuthorizationWrapper","mapStateToProps","connect","withRouter","authArr","includes","STORAGE_KEY","ViewTutorialsModalComponent","PureComponent","getSettingsFromStorage","getCurrentRoute","isUnmounted","isChecked","fetch","getSchoolYears","lessonsByKeySelector","unloadedGroupIds","loadLessons","schoolYearId","onOkPress","lessonId","lessonSchoolYearId","lessonGroupId","studentGroupId","run","componentWillUnmount","onCancelPress","WELCOME_TO","SITE_NAME","cursor","root","onStartTour","onNotShownAgainPress","DO_NOT_SHOW_AGAIN","SKIP_TUTORIAL","textTransform","appBaseColor","NEXT","LEARN_MORE_WITH_ADDITIONAL","VIDEO_TUTORIALS","VIEW_VIDEOS","activeSchoolYear","user","teacherUserGroup","prev","curr","lessonsByGroupId","lessons","lessonsBySchoolYearId","keyIds","getGroupIdsForTeacherGroupLessons","mapDispatchToProps","getSchoolYearsFetch","loadLessonsForGroupsFetch","forwardRef","layouts","clearLayouts","containerId","setData","getCalculated","idsList","offset","mp","getAllUndefined","CookieConsent","cookieConsentData","now","expires","analyticsEnabled","initAnalytics","removeStorageItem","showBanner","analyticsChecked","setFullYear","getFullYear","toISOString","AnalyticsService","componentDidMount","checkCookieConsent","COOKIE_CONSENT_TEXT_1","COOKIE_CONSENT_TEXT_2","NECESSARY","toggleAnalyticsChecked","USAGE_STATISTICS","PRIVACY_POLICY","onAccept","ALLOW_ALL","handleMessageDialog","ref","MessageUIService","handleDropdownAlertServiceRef","AlertService","AppContainer","modal","useRef","useDispatch","useSelector","hasTeacher","automaticLoginInProgress","initializeAppAction","setNavigationConfig","current","LayoutService","reduxParams","NotificationsHelper","executePendingAction","navigationHappened","jumpToHomeAfterLogin","ex","_guestRoutes","homeRoute","getUser","getHomeRoute","getRouteLocationFromStorage","hasPermission","getRoute","params","AppConfig","sentryUrl","Sentry","dsn","integrations","Integrations","BrowserTracing","CaptureConsole","levels","tracesSampleRate","getClient","getOptions","enabled","enableSentry","environment","react","setUser","userID","extra","is_teacher","sendMessage","severityLevel","level","sendException","exception","sendBreadcrumb","category","simulateCrash","getCurrentToken","removeNotification","_notification","subscribeToTopic","topic","unsubscribeFromTopic","displayLocalNotification","notification","channelId","askForPermission","getInitialNotification","createChannel","channelName","onNotification","handler","onNotificationOpened","onTokenRefresh","LinkWithImage","link","onContextMenu","embedLink","getEmbedLink","getUrlText","onPressLink","playVideo","renderLinkWithImage","openMenu","renderExternalAppLink","_onPressLink","renderStringTokens","tokens","flexDirection","renderEmoticon","url","imageUrl","staticUrl","overflowY","renderTokens","tokenizer","setItem","localStorage","e","getItem","removeItem","saveFile","fileContent","blob","Blob","SUPPORTED_CSV_FILE_FORMATS","APPLICATION_CSV","FileSaver","saveAs","canOpenURL","onError","xhr","XMLHttpRequest","onload","onerror","send","openURL","win","focus","INTERVAL_TIME","FETCH_ADDR","intervalHandler","connectivityStatus","clearInterval","listener","setInterval","isOnline","isConnected","method","mode","_os","getOS","playVimeoVideo","vimeoVideoId","playYouTubeVideo","youtubeVideoId","beforePlayCallback","onExitCallback","getStateFuncGenerator","language","createFetchServices","backendUrls","baseEndPointUrl","staticFilesPath","baseEndPointPath","SharedServices","FirebaseService","getAccessToken","IDENTITY_SERVICE","identityService","identityPath","setGuestEndpoints","FIREBASE_CONFIG","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","appId","firebaseApp","initializeApp","getFirebaseAuth","getAuth","getFirebaseUser","currentUser","loginWithEmailAndPassword","password","signInWithEmailAndPassword","loginWithGoogle","provider","GoogleAuthProvider","setCustomParameters","prompt","signInWithPopup","loginWithApple","OAuthProvider","addScope","loginWithCustomToken","customLoginToken","signInWithCustomToken","firebaseUser","forceRefresh","getIdToken","logout","signOut","onAuthStateChangedListener","setOnAuthStateChanged","onAuthStateChanged","appleLoginSupported","googleLoginSupported","jss","create","jssPreset","plugins","jssExtend","insertionPoint","getElementById","generateClassName","createGenerateClassName","AsyncStorageService","LinkingService","ConnectivityService","PlatformService","SentryService","getState","SettingsService","VideoPlayerHelper","VideoPlayerService","ConnectivityHelper","NotificationsService","initChatHelper","ChatHelperComponents","routesObj","App","ReactDOM","buyRewardFetch","rewardId","fetchPromise","buyRewardPost","tryCatchJson","loadGroupsDataForStudentFetch","GROUP_FETCH_PARAMS","REWARD_BUY_SUCCESSFUL","sellRewardFetch","sellRewardDelete","REWARD_RETURN_SUCCESSFUL","getUserConnectionsFetchNoDispatch","userConnectionGet","acceptStudentInvitationFetch","acceptStudentInvitationPost","chooseTeacher","STUDENT_DETAILS","studentData","studentDetails","currentTeacherId","setStudentChosenTeacher","loadSavedTeacher","defaultSettings","customScrollbars","getParsedQuerySettings","parsedQueryString","qs","search","ignoreQueryPrefix","defaultThemeOptions","typography","fontFamily","join","fontWeightLight","fontWeightRegular","fontWeightMedium","useNextVariants","suppressDeprecationWarnings","overrides","MuiButton","contained","boxShadow","MuiFab","MuiDialog","paper","mustHaveThemeOptions","htmlFontSize","body1","body2","defaultThemes","default","fuseDark","secondary","light","lightBlue","red","status","danger","defaultDark","extendThemeWithMixins","createMuiTheme","border","borderWidth","borderStyle","borderColor","divider","borderLeft","borderLeftWidth","borderRight","borderRightWidth","borderTop","borderTopWidth","borderBottom","borderBottomWidth","mainThemeVariations","mainThemeDark","_","merge","mainThemeLight","DEFAULT_SERVICE_KEY","SHOW_REQUEST_LOGS","fetchService","executeDelete","endpoint","urlParameters","signal","customHeaders","executePost","executePut","resourcePath","defaultResource","defaultAsset","getFullUrl","setCustomHeaders","guestEndpoints","baseStaticFilesUrl","getAccessTokenFunc","ns","createFetchWrapperService","globalCustomHeaders","globalGuestEndpoints","parametersToQueryString","uri","pathFix","customFetch","headers","getBaseHeaders","Accept","accessToken","fetchOptions","userId1","userId2","FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST","externalAppUrls","PA_FLASH_CARDS","PA_PLAYER","ISM","PA_ADULT","paAdultBaseUrl","externalAppUrlsArray","LinksHelper","ExternalAppUrls","getLinkRegex","getExternalAppLinkRegex","toHttp","getLinkTitle","OPEN_PA_PLUS","toIsmLink","compositionId","ismUrl","generateFullUrl","getTemporaryForJwtToken","openLinkAction","fullUrl","COULD_NOT_OPEN_THE_LINK","prepareLinks","links","ismLinks","externalAppLinkRegex","otherLinks","isExternalAppLink","match","isVideoLink","isYouTubeLink","isVimeoLink","isImageLink","valueA","valueB","ismEnabled","SUPPORTED_FILE_TYPES","PDF","MPEG","FLAC","MID","MIDI","SUPPORTED_FILE_EXTENSIONS","SUPPORTED_IMPORT_FILE_TYPES","CSV","NATIVE_CSV_FORMAT","TEXT_CSV_LONG","TEXT_CSV","APPLICATION_VND_MS_EXCEL","SUPPORTED_IMPORT_FILE_EXTENSIONS","AppContext","createContext","MessagesInGroupLimit","SearchMessagesLimit","GroupedMessagesLimit","sendMessageFetch","existingMessages","sendMessagePost","getMessagesInGroupFetch","getGroupedMessagesFetch","getMessagesInGroupFromMessageIdFetch","isUpScroll","limit","messagesGet","addGroupMessages","groupOwnerUserId","messagesGroupedGet","addGroupConversations","getMessagesByTextFetchNoDispatch","messagesByTextGet","deleteMessageFetch","deleteMessageDelete","deleteGroupMessage","LOAD_ASSIGNMENTS_OPTIONS","ENABLE_STREAMED","LIMIT","TIMEOUT","loadAssignmentCommentsFetchNoDispatch","assignmentId","noOfItems","assignmentCommentsGet","addAssignmentCommentFetchNoDispatch","comment","picture","addAssignmentCommentPost","COMMENT_HAS_BEEN_POSTED","deleteAssignmentCommentFetchNoDispatch","commentId","deleteAssignmentCommentDelete","COMMENT_HAS_BEEN_DELETED","loadAssignmentsFetch","isStreamingEnabled","assignmentsGet","populateLinks","relateTo","subtitle","generateSubtitle","setAssignmentsForAssignmentFolder","element","isFolder","pageNumber","getAssignmentsBySearchFetch","filterByParent","addUpdateAssignmentFetch","goBack","requestData","updateAssignmentPut","addAssignmentPost","updateAssignmentForAssignmentFolder","addAssignmentForAssignmentFolder","deleteAssignmentFetch","successMessage","ASSIGNMENT_HAS_BEEN_DELETED","deleteAssignmentDelete","deleteAssignmentForAssignmentFolder","sortAssignmentsFetch","assignmentIds","sortAssignmentPost","importAssignmentsFetch","importAssignmentPost","IMPORT_FILE_CONTENT","IMPORT_ASSIGNMENTS_SUCCESSFUL","exportAssignmentsFetch","ids","exportAssignmentPost","getStringStream","fileName","CURRENT_FILE_EXPORT_DATE_TIME_FORMAT","EXPORT_ASSIGNMENTS_SUCCESSFUL","getSingleAssignmentFetch","assignmentGet","getRelatedAssignmentsFetch","userRelateTo","assignmentsRelatedGet","showErrorMessage","catchErrorMessage","NETWORK_ERROR","fullPromise","getJson","isErrorMessage","fetchTimeout","FETCH_TIMEOUT_ERROR_STRING_CONST","NOT_CONNECTED_TO_INTERNET","createErrorResponse","GLOBAL_FIELD_KEY","FETCH_TIMED_OUT","FETCH_OLD_RESULT_ARRIVED","errorMessage","ERROR_RETRIEVING_LANG_DEF","translateAndFixResponse","errorFieldNames","errors","firstErrorField","messageCode","errorField","get","LOGIN_HAS_BEEN_EXPIRED","UNAUTHORIZED_ACCESS","NOT_FOUND_404_ERROR","UNKNOWN_ERROR_OCCURRED","responseStatusCode","changeUserLeaderboardParticipationPut","enabledEmailTypesGet","setEnabledEmailTypesPost","enabledEmailTypes","assignLevelsGet","premadeAvatarsGet","addAssignLevelPost","updateAssignLevelPut","deleteAssignLevelDelete","editStudentPut","defaultUserGroupId","fullName","assignLevelId","studentByEmailGet","addLessonPost","cloneLessonId","cloneLastLesson","isPublished","updateLessonPut","lessonNotesGet","addLessonNotePost","newFiles","deletedFiles","files","addLessonTemplateNotePost","templateGroupId","updateLessonNotePut","deleteLessonNoteDelete","sortLessonNotesPost","groupNotesGet","addGroupNotePost","updateGroupNotePut","deleteGroupNoteDelete","sortGroupNotesPost","notesGet","updateNotePut","addNotePost","deleteNoteDelete","sortNotePost","lessonsGet","dateFrom","dateTo","activateLessonPost","publishLessonPost","deleteLessonDelete","addSkillPost","points","skillType","updateSkillPut","deleteSkillDelete","skillId","skillsGet","activateSkillPost","addRewardPost","description","updateRewardPut","deleteRewardDelete","rewardsGet","activateRewardPost","studentRewardsGet","studentSkillsGet","addSkillToStudentPost","removeSkillFromStudentDelete","importFileContent","exportFileContent","lessonAssignmentsGet","lessonGet","setLessonAssignmentsPost","demoSkillsPost","demoRewardsPost","demoLessonsPost","pianoAdventuresBooksGet","flashCardsGet","emoticonsGet","videoTutorialsGet","isMobile","teacherVideoTutorialsGet","sentencesGet","addSentencePost","updateSentencePut","deleteSentenceDelete","groupsGet","loadGlobalGroups","loadUsers","loadSchedules","loadSingleStudentGroups","schedulesStartDate","addGroupPost","updateGroupPut","deleteGroupDelete","groupsUsersGet","groupsSchedulesGet","setFcmTokenPost","fcmToken","platform","setEnabledNotificationTypesPost","enabledNotificationTypes","setLanguagePost","addSchoolYearPost","updateSchoolYearPut","deleteSchoolYearDelete","schoolYearGet","schoolYearsGet","activateSchoolYearPost","useActivationCodePut","activationCodeUsedGet","didReachSubscriptionLimitGet","listenersByEvent","eventName","newListener","event","remove","newList","listeners","successResults","removeCalledListeners","notifyAsync","promises","all","changeLessonIsActiveFetch","setLessonIsActive","changeLessonIsPublishedFetch","setLessonIsPublished","setLessons","loadLessonsForGroupsFetchNoDispatch","loadLessonFetch","updateLesson","addUpdateLessonFetch","shouldShowMessage","addLesson","loadSelectedAssignmentsForTeacherFetch","setSelectedAssignments","getAllAssignmentsFetchNoDispatch","calls","rd","contains","getAllNotesFetchNoDispatch","setLessonAssignmentsFetch","selectedAssignments","setSelectedNotesDispatch","selectedNotes","setSelectedNotes","deleteLessonFetch","deleteLesson","LESSON_HAS_BEEN_DELETED","loadLessonNotesFetch","setLessonNotes","addLessonTemplateNoteFetch","noteType","updatedNote","addLessonNote","addUpdateLessonNoteFetch","updateLessonNote","deleteLessonNoteFetch","deleteLessonNote","NOTE_HAS_BEEN_DELETED","deleteLessonNotesFetch","responseDatas","deleteLessonNotes","sortLessonNotesFetch","emptyArray","activeStudentsSelector","createSelector","isInvited","invitedStudentsSelector","suspendedStudentsSelector","filterStudentsByDaySelector","perDayMap","idMap","filterItemsSelector","fn","sortItemsSelector","mergedStudentsSelector","active","invited","suspended","skipSeparator","label","INVITED","isTextLabel","SUSPENDED","createMapOfItemsByIdReduceFunc","createMapOfItemsById","mapKey","createMapOfItemsByUserIdReduceFunc","createMapOfItemsByUserId","createMapOfItemsByIdFromItems","treeSelector","it","selectItemsComponentFilterReselect","filterItems","vimeoJsonUrl","vimeoImageUrlBase","vimeoImageUrlImageParams","imageExtensions","translate","getLinkData","linkTitle","videoId","getVimeoVideoId","getTextFromLink","thumbnailId","thumbnail_url","html","getLinkImage","filterTitle","getTitleFromHTML","startSearchString","endSearchString","startIndex","indexOf","substr","endIndex","fromIndex","newTitle","re","endsWith","loadLinkTitle","canOpen","isLoading","finishedLoading","isImage","A100","A200","A400","A700","__","runInContext","mixin","setIn","setWith","clone","ImageComponent","defaultProps","draggable","addUpdateSkillFetch","updateSkill","addSkill","deleteSkillFetch","deleteSkill","changeSkillIsActiveFetch","setSkillIsActive","loadSkillsFetch","setSkills","loadStudentSkillsFetch","isTeacher","setStudentSkills","addOrUpdateSkills","decodeQueryString","question","hash","query","part","eq","decodeURIComponent","to","arrayKeySuffix","urlParametersKeys","arrValue","encodeURIComponent","defaults","scroll","folded","position","style","form","FuseLayoutConfigs","layout1","amplitudeInitialized","mapUrlToEventName","Map","AmplitudeAnalyticsEnabled","AmplitudeAnalyticsApiKey","amplitude","identifyObj","externalId","sendEvent","eventProperties","stateChange","GAInitialized","GoogleAnalyticsEnabled","GoogleAnalyticsSiteID","ReactGA","initialize","debug","ENV_TYPES","Development","hitType","page","hotjarInitialized","HOTJAR_SNIPPET_VERSION","hotjarEnabled","hotjarSiteID","hotjar","identify","HotjarService","GAService","AmplitudeService","addRouteChangeListener","currentLocation","sendEventAmplitudeOnly","properties","ArrowLeftCircleIcon","size","otherProps","propTypes","PropTypes","string","oneOfType","number","SUPPORTED_IMAGE_MIME_TYPES","JPG","JPEG","GIF","PNG","BMP","IMAGE_TYPES","MAX_IMAGE_SIZE","SHOW_LOGS","getUserIdentityString","studentTeacherDataListSelector","onlyActive","name1","name2","localeCompare","studentSelectedTeacherDataSelector","usersMap","teacherStudentData","teacherData","studentTeacherGroupsDataListSelector","groupFilters","groups","own","filteredGroups","teacherNavigationConfig","studentBaseNavigationConfig","INTERACTIVE_HUB","LayoutIcons","HOME","MY_PIANO_ADVENTURES","MY_LESSONS","LESSONS","MY_ASSIGNMENTS","PIANO_ADVENTURES","MY_PROFILE","MY_TEACHER","TEACHERS","LIBRARY","COMMUNICATION","CHATS","MESSAGES","CHANNELS","MORE","SUPPORT","HELP_OUTLINE","STUDENTS","MY_STUDENTS","ALL_STUDENTS","GROUPS","ALL_GROUPS","BACK_TO_LEADERBOARD_SETTINGS","CLOSE","GROUP_INFO","NO_UPLOADS_TO_SHOW","CURRENT_COLOR","BACK_TO_REWARDS_STORE","BACK_TO_GROUP_SELECTION","GROUP_SELECTION","GROUP_HAS_BEEN_DELETED","BACK_TO_STUDENT_INFO","CUSTOM","START_TIME","END_TIME","SCHEDULE","FOR_THIS_GROUP","BACK_TO_GROUP_PROFILE","STUDENT_OR_GROUP","GROUP","SEARCH","SEARCH_GROUPS","ADD_NEW_GROUP","ADD_GROUP","EDIT_GROUP","GROUP_NAME","GROUP_MEMBERS","BACK_TO_ADD_GROUP","ARE_YOU_SURE_YOU_WANT_TO_DELETE_GROUP","NO_GROUPS_TO_SHOW","BACK_TO_GROUPS","SELECT_STUDENTS","ADD_STUDENTS","DAY","TIME","SELECT_DAY","SELECT_TIME","CUSTOM_ASSIGN_LEVELS_TEXT","SUBSCRIPTIONS_ENDPOINT","FULL_ACCESS_GRANTED","ACTIVATION_CODE","FOR_MORE_INFORMATION","MAX_NUMBER_OF_STUDENTS_REACHED","ACTIVATION","ACTIVATION_CODE_APPLIED","FAILED_TO_GET_IMAGE_SIZE","FAILED_TO_EDIT_THE_IMAGE","AVATAR_IMAGE_EDITOR_HELP","PREVIEW","ARE_YOU_SURE_YOU_WANT_TO_REMOVE_SKILL","ARE_YOU_SURE_YOU_WANT_TO_RETURN_REWARD","REMOVE_SKILLS","OPTIONAL","FOR_YOU","FOR_EVERYONE","SIGN_UP","LOGIN","PIANO_ADVENTURES_INTERACTIVE_PRESETS","CUSTOM_PRESETS","PIANO_ADVENTURES_INTERACTIVE_HUB","PIANO_ADVENTURES_COURSES","COURSES","PIANO_ADVENTURES_ASSIGNMENTS","ASSIGN_LEVEL_PRESET_HAS_BEEN_DELETED","TEXT_PRESET_HAS_BEEN_DELETED","NO_TEXT_PRESETS_TO_SHOW","NO_PRESETS_TO_SHOW","BACK_TO_TEXT_PRESETS","EDIT_TEXT_PRESET","ADD_TEXT_PRESET","ADD_NEW_TEXT_PRESET","TEXT_PRESETS","NO_ASSIGN_LEVEL_PRESETS_TO_SHOW","BACK_TO_ASSIGN_LEVEL_PRESETS","EDIT_ASSIGN_LEVEL_PRESET","ADD_ASSIGN_LEVEL_PRESET","ASSIGN_LEVEL_PRESETS","ADD_NEW_ASSIGN_LEVEL_PRESET","BACK_TO_PRESETS","STUDENT_PROFILE","MY_DASHBOARD","LEADERBOARD_CODE","SEARCH_STUDENTS","SEARCH_MESSAGES","SEARCH_LESSONS","TEACHER_RESOURCES","REWARDS_STORE","ADD_NEW_PRESET","BACK_TO_COMMENT_SENTENCES","ENTER_NAME","ADD_SCHOOL_YEAR","EDIT_SCHOOL_YEAR","ADD_SENTENCE","EDIT_SENTENCE","TEXT","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SENTENCE","ADD_NEW_SENTENCE","COMMENT_SENTENCES","SENTENCE_HAS_BEEN_DELETED","SHOW_TUTORIALS","INVITATIONS","CATEGORY_OR_SUBCATEGORY_COLOR","CAN_NOT_CREATE_ASSIGNMENT_OR_CATEGORY_HERE","DESCRIPTION_TITLE","CAN_NOT_DELETE_CHANNEL_MESSAGES","STICKER","NO_LEVELS_TO_SHOW","NO_BOOKS_TO_SHOW","NO_UNITS_TO_SHOW","NO_ASSIGNMENTS_TO_SHOW","BACK_TO_UNIT","BACK_TO_UNIT_LIST","BACK_TO_BOOK_LIST","BACK_TO_LEVEL_LIST","BACK_TO_ASSIGNMENT","CLOSE_BUTTON_TITLE","DONE","CAN_NOT_DELETE_THIS_SUBCATEGORY","CAN_NOT_DELETE_THIS_CATEGORY","CAN_NOT_DELETE_ALL_CATEGORIES","COLOR","CATEGORIES","SUBCATEGORIES","NEW_CATEGORY","NEW_SUBCATEGORY","NO_CATEGORIES_OR_ASSIGNMENTS_TO_SHOW","NO_SUBCATEGORIES_OR_ASSIGNMENTS_TO_SHOW","BACK_TO_CATEGORIES","BACK_TO_SUBCATEGORIES","EDIT_SUBCATEGORY","EDIT_CATEGORY","ADD_SUBCATEGORY","ADD_CATEGORY","ARE_YOU_SURE_YOU_WANT_TO_DELETE_TEXT_PRESET","ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGN_LEVEL_PRESET","ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_SUBCATEGORY","ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_CATEGORY","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_ITEMS","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_CATEGORIES","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_ASSIGNMENTS","SUBCATEGORY_DELETED_SUCCESSFULLY","NUMBER_OF_CATEGORIES_DELETED_SUCCESSFULLY","CATEGORIES_DELETED_SUCCESSFULLY_FAILED","NUMBER_OF_ASSIGNMENTS_DELETED_SUCCESSFULLY","ASSIGNMENTS_DELETED_SUCCESSFULLY_FAILED","CATEGORY_DELETED_SUCCESSFULLY","ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_MESSAGE","COPY","PIANO_ADVENTURES_LINK","PRIVACY_TERMS_LINK","ABOUT_LINK","LICENCE_AGREEMENT_LINK","PRIVACY_POLICY_LINK","EDIT_PROFILE","COULD_NOT_LOAD_CORRECTLY","NO_PRACTICE_STEPS_TO_SHOW","NO_COMMENTS_TO_SHOW","LOAD_MORE","NO_STUDENTS_TO_SHOW","NO_LESSONS_TO_SHOW","NO_SETTINGS_TO_SHOW","NO_NOTIFICATION_SETTINGS_TO_SHOW","NO_LANGUAGES_TO_SHOW","NO_SCHOOL_YEARS_TO_SHOW","NO_ITEMS_TO_SHOW","NO_USERS_TO_SHOW","NO_CONVERSATIONS_TO_SHOW","NO_MESSAGES_TO_SHOW","NO_SKILLS_TO_SHOW","NO_REWARDS_TO_SHOW","NO_VIDEO_TUTORIALS_TO_SHOW","NO_TEACHER_RESOURCES_TO_SHOW","NOTHING_TO_SHOW","ENABLED","DISABLED","LEADERBOARD_IS_DISABLED","IMPORT_DEMO_SKILLS","IMPORT_DEMO_REWARDS","IMPORT_DEMO_LESSONS","IMPORT_DEMO_ASSIGNMENTS","BACK_TO","ERROR_DATA_NOT_LOADED_CORRECTLY","TOTAL","AVAILABLE","VIDEOS","PRACTICE_STEPS","NOT_ENOUGH_POINTS_TO_BUY_THIS_REWARD","YOU_HAVE","ADD_MORE","SCHOOL_YEAR_HAS_BEEN_DELETED","ARE_YOU_SURE_YOU_WANT_TO_DELETE_LESSON","PIANO_LESSON","DASHBOARD","DASHBOARDS","CLONE_LAST_LESSON","CLONE","NO_PREVIOUS_LESSON_TO_CLONE","INFO","SUCCESS","LESSON","COMMENTS","ASSIGNMENT","ARE_YOU_SURE_YOU_WANT_TO_DELETE_COMMENT","TO","AND","OTHERS","OTHER","SEND_MESSAGE","ADMIN","UNKNOWN","COMING_SOON","CAN_NOT_LOAD_COMMENT_INFO","YES","NO","CHOOSE_WHICH_LIBRARY","CHOOSE_FROM_LIBRARY","TAKE_PHOTO","CHOOSE_ONE_OF_PRE_MADE_AVATARS","NO_PREMADE_AVATARS_TO_SHOW","CHOOSE_YOUR_AVATAR","CHOOSE_PICTURE_FROM_COMPUTER","ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGNMENT","ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGNMENT_FROM_LESSON","SORT_ASSIGNMENTS","SORT_NOTES","SORT_CATEGORIES","SORT_SUBCATEGORIES","EDIT_ASSIGNMENT","EDIT_ASSIGNMENTS","ADD_ASSIGNMENT","REMOVE_ASSIGNMENT","ADD_NEW_ASSIGNMENT","IMPORT_ASSIGNMENTS","EXPORT_ASSIGNMENTS","EXPORT","DESCRIPTION","LINK","LINKS","ASSIGNMENTS","NEW_ASSIGNMENT","NEW_PRIVATE_MESSAGE_RECEIVED","BACK_TO_LESSON_LIST","BACK_TO_LESSONS","BACK_TO_LESSON","BACK_TO_COMMUNICATION","BACK_TO_CUSTOM_PRESET","BACK_TO_SETTINGS","BACK_TO_STUDENT_PROFILE","BACK_TO_DASHBOARD","ARE_YOU_SURE_YOU_WANT_TO_ACCEPT_INVITATION","LOGOUT","BACK_TO_MY_SKILLS","BACK_TO_MY_POINTS","BACK_TO_SKILLS","BACK_TO_SCHOOL_YEAR","BACK_TO_REWARDS","BACK_TO_ASSIGNMENTS","ADD","REMOVE","SKILL_ADD_SUCCESSFUL","SKILL_REMOVE_SUCCESSFUL","BUY_REWARD","BUY","INVALID_FIELD","CLASS_POINTS","MY_POINTS","MY_SKILLS","MY_REWARDS","LEADERBOARD","REWARDS","ADD_REWARD","EDIT_REWARD","SKILLS","ACTIVE","ACTIVE_STATUS","POINTS","PERFORMANCE","EXPERTISE","PERSONAL","PRIVATE_LESSON","PRIVATE","SELECT_PICTURE","PICTURE","ADD_SKILL","EDIT_SKILL","CONFIRM","SELECT_DATE","ARCHIVE","ARCHIVED_STATUS","ADD_NEW_LESSON","EDIT_LESSON","NAME","DATE","START_DATE","END_DATE","VIEW_PREVIOUS_YEARS","SAVE","CURRENT","PREVIOUS","COMPLETED","COMPLETED_LESSONS","ARE_YOU_SURE_YOU_WANT_TO_DELETE_STUDENT","STUDENT_HAS_BEEN_ACTIVATED","STUDENT_HAS_BEEN_SUSPENDED","STUDENT_HAS_BEEN_DELETED","BACK_TO_STUDENT_LIST","STUDENT_LIST","ACTIVATE","SUSPEND","DELETE","RESEND","INVITE_STUDENT_EMAIL_ANDROID_TITLE","INVITE_STUDENT_EMAIL_SUBJECT","ASSIGN_LEVEL","SKILL_TYPE","ACCEPTED","BACK_TO_PREVIOUS_SCREEN","BACK_TO_PIANO_ADVENTURES","LOGIN_FORM_TITLE","REGISTER_STUDENT_FORM_TITLE","REGISTER_TEACHER_FORM_TITLE","REGISTER","ROLE","FORGOT_PASSWORD_FORM_TITLE","SELECT_AVATAR_TITLE","PROFILE_AVATAR_HAS_BEEN_CHANGED","BACK_TO_HOME","PROFILE_HAS_BEEN_CHANGED","LEAVE_EMPTY_TO_KEEP_OLD_PASSWORD","EMAIL_HAS_BEEN_RESENT","EMAIL_ALREADY_EXISTS","USERNAME_ALREADY_EXISTS","INVALID_EMAIL","INVALID_USERNAME","FIELD_IS_REQUIRED","INVALID_FULL_NAME","START_END_DATE_VALIDATION","CREATE_AN_ACCOUNT_MESSAGE","CREATE_NEW_ACCOUNT_MESSAGE","HOME_LOGIN_LINK","FIRST_NAME","LAST_NAME","FULL_NAME","USERNAME","WHAT_IS_YOUR_USERNAME","EMAIL_ADDRESS","EMAIL","WHAT_IS_YOUR_EMAIL","PASSWORD","BACK_TO_SIGN_UP","INVALID_PASSWORD","SUBMIT","INVALID_EMAIL_LOGIN","INVALID_USERNAME_LOGIN","BACK_TO_LOG_IN","SIGN_UP_SUCCESSFULLY","FORGET_PASSWORD_SUCCESSFULLY","FORGET_PASSWORD","STUDENT_HAS_BEEN_INVITED","ADD_STUDENT","ADD_NEW_STUDENT","BACK_TO_PROFILE","STUDENT_HAS_ALREADY_BEEN_INVITED","TEACHER_STUDENTS","PRESETS","PIANO_ADVENTURE","PIANO_ADVENTURES_KIDS","PIANO_ADVENTURES_PRIMER_LEVEL_GUIDE","PIANO_ADVENTURES_TECHNIQUE_ARTISTRY","PIANO_ADVENTURES_ADULT","SCHOOL_YEAR","SCHOOL_YEARS","BOOK_LIST","UNIT_LIST","LEVEL_LIST","LEVEL","MESSAGE","SELECT_ALL","DESELECT_ALL","CONVERSATION","ADD_COMMENT","SETTINGS","HELP","LANGUAGES","NOTIFICATIONS","PRIVACY_TERMS","LEADERBOARD_PARTICIPATION","SHOW_LEADERBOARD","CUSTOMIZE_PER_STUDENT","BY_SIGNING_UP_YOU_AGREE_WITH_OUR","LICENCE_AGREEMENT","EDIT","EDIT_STUDENT","MENU","ABOUT","WELCOME_BACK","SIGN_INTO_YOUR_ACCOUNT","FORGOT_EMAIL","FORGOT_EMAIL_FORM_TITLE","CREATE_ACCOUNT","CREATE_ACCOUNT_FINISH","FORGOT_EMAIL_SUCCESSFULLY","THANK_YOU","SELECT_RECIPIENTS","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SKILL","ARE_YOU_SURE_YOU_WANT_TO_DELETE_REWARD","NOTES","NO_NOTES_TO_SHOW","ADD_NEW_NOTE","ADD_NOTE","EDIT_NOTE","EDIT_NOTES","NOTE_INFO","NOTE","UPLOAD_FILE","NO_FILES_TO_SHOW","SELECT_IMAGE_OR_PDF","CHOOSE_PDF_FROM_LIBRARY","CHOOSE_AUDIO_FROM_LIBRARY","CHOOSE_IMAGE_FROM_LIBRARY","ARE_YOU_SURE_YOU_WANT_TO_DELETE_NOTE","SEARCH_NOTES","SEARCH_ASSIGNMENTS","BACK_TO_GROUP","RELOAD","NAVIGATION","CONTENT","GO_BACK","BACK","COULD_NOT_FIND_THE_PAGE","WELCOME_LOGIN_MESSAGE","LOGIN_TO_YOUR_ACCOUNT","DONT_HAVE_AN_ACCOUNT","SEARCH_OR_START_NEW_CHAT","SELECT_CONTACT_TO_START_CONVERSATION","SHOW_CHATS","SHOW_CONTACTS","CONTACTS","CURRENT_DATE_TIME_FORMAT_V2","CURRENT_DATE_FORMAT_V2","LOADING","TYPE_YOUR_MESSAGE","AVATAR_BADGE_TEACHER","FORBIDDEN","INVITE_STUDENT_UPDATED_SOON","ACCEPT_INVITE_UPDATED_SOON","IMPORT_DEMO_STUDENTS_UPDATED_SOON","NO_TEACHERS_FOR_STUDENT","ALREADY_HAVE_AN_ACCOUNT","NO_MEMBERS","REGISTRATION_SUCCESS","ONLY_REGISTRATION_SUCCESS","SEND_RESET_LINK","COULD_NOT_FOUND_YOUR_ACCOUNT","BACK_TO_LOG_IN_WEB_GUEST","ALL","OPEN_SHEET_MUSIC","TERMS_OF_USE","CONTACT","SUBJECT","CONTACT_MESSAGE_SUCCESSFULLY","TUTORIALS","GENERAL_INFORMATION","OPEN_SYNTHESIA_APP","PIANO_ADVENTURES_NOTE","TEMPLATE_NOTE","CUSTOM_NOTE","BACK_TO_NOTES","NUMBER_OF_NOTES_DELETED_SUCCESSFULLY","NOTES_DELETED_SUCCESSFULLY_FAILED","ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_NOTE","CAN_NOT_CREATE_NOTE_OR_CATEGORY_HERE","CAN_NOT_DELETE_THIS_SUBCATEGORY_NOTES","CAN_NOT_DELETE_THIS_CATEGORY_NOTES","CAN_NOT_DELETE_ALL_CATEGORIES_NOTES","NEW_NOTE","NO_CATEGORIES_OR_NOTES_TO_SHOW","NO_SUBCATEGORIES_OR_NOTES_TO_SHOW","TEMPLATE","START_END_TIME_VALIDATION","STUDENT_INFO","PROFILE_INFO","FACEBOOK_LOGIN","GOOGLE_LOGIN","APPLE_LOGIN","NOT_AUTHORIZED","WRONG_FILE_TYPE_CHOOSEN","FILE_NAME_ERROR","SELECT_CATEGORIES_TO_EXPORT","COULD_NOT_OPEN_SYNTHESIA_LINK","SYNTHESIA_LINKS","ADD_FILE_IMAGE_PDF_AUDIO_MIDI","ADD_FILE_IMAGE_PDF_MIDI","ADD_FILE_IMAGE_PDF","CLICK","SELECT","TOUR_GUIDE_ADD_ASSIGNMENT","TOUR_GUIDE_CHOOSE_PRESET_OR_CUSTOM","TOUR_GUIDE_CHOOSE_LIBRARY","TOUR_GUIDE_BASIC_METHOD","TOUR_GUIDE_CHOOSE_LEVEL","TOUR_GUIDE_LEVEL_1","TOUR_GUIDE_CHOOSE_BOOK","TOUR_GUIDE_LESSON_BOOK","TOUR_GUIDE_CHOOSE_UNIT","TOUR_GUIDE_UNIT_1","TOUR_GUIDE_CHOOSE_ASSIGNMENT","TOUR_GUIDE_LITTLE_RIVER","TOUR_GUIDE_CHECKBOX","TOUR_GUIDE_VIEW_ASSIGNMENT","TOUR_GUIDE_TO_ACCESS_LESSON","TOUR_GUIDE_TO_ADD_NOTE","TOUR_GUIDE_CHOOSE_CATEGORY","TOUR_GUIDE_MUSIC_THEORY","TOUR_GUIDE_CHOOSE_NOTE","TOUR_GUIDE_ACCENT_MARK","TOUR_GUIDE_VIEW_NOTE","TOUR_GUIDE_TO_ACCESS_NOTE","TOUR_GUIDE_CONGRATULATIONS","TOUR_GUIDE_COMPLETED","TOUR_GUIDE_PIANO_ADVENTURE","VISIT_DASHBOARD","ARE_YOU_SURE_YOU_WANT_TO_ARCHIVE_YEAR","ARE_YOU_SURE_YOU_WANT_TO_ACTIVATE_YEAR","CLONE_SCHOOL_YEAR_TITLE","COPY_LESSONS_ON_CLONE_SCHOOL_YEAR","PLEASE_WAIT","OPEN_APP_EXTERNAL_LINK","ARE_YOU_SURE_YOU_WANT_OPEN_THIS_LINK","ACCEPT","PIANO_ADVENTURES_REGISTERED","SELECT_CHANNEL","SELECT_CHAT","PIANO","ADVENTURES","BACK_TO_MY_HUB","REGISTRATION_CODE","WITH_YOU_FIRST_NOTE","LANDING_PAGE_TEXT_1","LANDING_PAGE_TEXT_2","LANDING_PAGE_TEXT_3","GET_STARTED","TEACH_LEARN_CONNECT","TEACH_LEARN_CONNECT_TEXT_1","TEACH_LEARN_CONNECT_TEXT_2","LANDING_PAGE_TEACHERS_TEXT","LANDING_PAGE_STUDENTS_TEXT","PARENTS","LANDING_PAGE_PARENTS_TEXT","QUICK_LOOK","FEATURE_OVERVIEW","PIANO_ADVENTURES_HUB","PIANO_ADVENTURES_HUB_TEXT","COMMUNICATION_TEXT","VIDEO_LIBRARY","VIDEO_LIBRARY_TEXT","STUDENTS_AND_ASSIGNMENTS","STUDENTS_AND_ASSIGNMENTS_TEXT","LANDING_BECOME_EARLY_ADOPTER_TITLE","LANDING_BECOME_EARLY_ADOPTER_SUBTITLE","LANDING_BECOME_EARLY_ADOPTER_TEXT_1","LANDING_BECOME_EARLY_ADOPTER_TEXT_2","LANDING_BECOME_EARLY_ADOPTER_TEXT_3","PIANO_ADVENTURES_LANDING_LINK_TITLE","FABER_PIANO_ADVENTURES","TRADEMARK","QUESTION_MARK","I_HAVE_READ_AND_AGREE","YOU_MUST_ACCEPT_PRIVACY_POLICY_AND_TOU","EARLY_ADOPTER_PAGE_TEXT","APPLY_NOW","SHAPE_DIGITAL_FUTURE_TEXT","NEW_PIANO_TEACHING_PRODUCTS_TEXT","INVITED_TO_APPLY_TEXT","INVITED_TO_APPLY_TEXT_2","LOOKING_ACTIVE_PIANO_TEACHERS_TEXT","APPLY_NOW_EARLY_ACCESS_TEXT_1","APPLY_NOW_EARLY_ACCESS_TEXT_2","BECOME_EARLY_ADOPTER_TEXT","BECOME_EARLY_ADOPTER_TEXT_2","FIRST_LOOK_UPCOMING_FEATURES_TEXT","SHAPE_THE_FUTURE_TEXT","JOIN_COMMUNITY_TEXT","REQUIREMENTS_TO_BECOME_EARLY_ADOPTER_TEXT","PIANO_TEACHERS","REQUIREMENT_TEXT_1","REQUIREMENT_TEXT_1_METHOD","REQUIREMENT_TEXT_2","PIANO_STUDENT_3","REQUIREMENT_TEXT_2_USING","REQUIREMENT_TEXT_3","EXPECTATIONS_EARLY_ADOPTER_TEXT","EXPECTATION_TEXT_1_TITLE","EXPECTATION_TEXT_1","EXPECTATION_TEXT_2_TITLE","EXPECTATION_TEXT_2","GENERAL","BUG_REPORT","FEATURE_SUGGESTION","TECHNICAL_SUPPORT","RETURN","ABBREVIATION","FAILED_TO_UPLOAD_THE_IMAGE","RELATED_ASSIGNMENTS","ASSIGNMENT_COMMENTS","STUDENT_CHILDREN","ADD_NEW_STUDENT_CHILD","NO_STUDENT_CHILDREN_TO_SHOW","SEARCH_STUDENT_CHILDREN","STUDENT_CHILD_HAS_BEEN_CREATED","STUDENT_CHILD_HAS_BEEN_UPDATED","ADD_STUDENT_CHILD","STUDENT_CHILD_INFO","EDIT_STUDENT_CHILD","STUDENT_CHILD_AVATAR_HAS_BEEN_CHANGED","AS_STUDENT_CHILD","REGULAR","NONE","STUDENT_PARENT_FULL_NAME","STUDENT_CHILD_FULLNAME","INVITE_STUDENT","INVITE_STUDENT_CHILD","TEACHER_INVITE_REQUIRED_CHILD_OR_FULLNAME","BACK_TO_STUDENT_CHILDREN_LIST","EMAIL_OR_USERNAME","INVALID_EMAIL_OR_USERNAME","USERNAME_CONTAINS_LETTERS_NUMBERS","ARE_YOU_SURE_YOU_WANT_TO_LOGIN_AS_STUDENT_CHILD","MANAGE_PROFILES","ADD_PROFILE","NEW_STUDENT","SWITCH_PROFILE","CHOOSE_STUDENT_PROFILE","SELECT_STUDENT_PROFILE_OR_ADD_NEW","ADD_NEW_STUDENT_PROFILE","CLONE_LAST_LESSONS","NUMBER_OF_LESSONS_CLONED_SUCCESSFULLY","CAN_NOT_CLONE_LESSONS_FOR_STUDENTS_WITHOUT_LESSONS","CAN_NOT_CLONE_LESSONS_FOR_GROUPS_WITHOUT_LESSONS","NUMBER_OF_LESSONS_SUCCESSFULLY_CLONED_FAILED","LESSON_SETTINGS","ADD_LESSON_SETTING","WEEKLY","DAY_OF_WEEK_OR_SPECIFIC_DATE_REQUIRED","FROM_TIME_REQUIRED","ASSIGN_TO_STUDENT","NO_LEVEL_ASSIGNED","CONTINUE","VIEW_LESSONS","PUBLISH","UNPUBLISH","EDIT_STUDENT_PROFILE","EDIT_GROUP_PROFILE","BIRTHDAY","CLASS_LEADERBOARD","REMOVE_SKILL","ASSIGN_NEW_SKILL","CLASS_REWARDS_STORE","ADD_CLASS_REWARD","ADD_CUSTOM_REWARD","PAUSE_PROFILE","ACTIVATE_PROFILE","DELETE_PROFILE","DOWNLOADS","UNPUBLISHED","CUSTOM_ASSIGNMENTS","CUSTOM_NOTES","CUSTOM_REWARDS","CUSTOM_SKILLS","IMPORT","LEADERBOARD_SETTINGS","BACK_TO_LEADERBOARD","FREQUENTLY_ASKED_QUESTIONS","WHY","CONNECT","LANDING_PAGE_CONNECT","LEARN","LANDING_PAGE_LEARN","EXPLORE","CREATE_YOUR_FREE_ACCOUNT","ADDITIONAL_FAQ","LADNING_PAGE_TITLE","LADNING_PAGE_FIRST_SECTION_TEXT","LANDING_PAGE_SECOND_SECTION_TITLE","LANDING_PAGE_SECOND_SECTION_TEXT_1","LANDING_PAGE_SECOND_SECTION_TEXT_2","LANDING_PAGE_SECOND_SECTION_TEXT_3","LANDING_PAGE_EXPLORE","LANDING_WHATS_INCLUDED","LANDING_WHATS_INCLUDED_TEXT_1","LANDING_WHATS_INCLUDED_TEXT_2","LANDING_PERSONALIZED_DASHBOARD","LANDING_PERSONALIZED_DASHBOARD_TEXT","LANDING_FLEXIBILE_LEARNING","LANDING_FLEXIBILE_LEARNING_TEXT","LANDING_COMPREHENSIVE_SUPPORT","LANDING_COMPREHENSIVE_SUPPORT_TEXT","LANDING_DIRECT_ACCESS","LANDING_DIRECT_ACCESS_TEXT","LANDING_CUSTOMIZABLE_CONTENT","LANDING_CUSTOMIZABLE_CONTENT_TEXT","LANDING_A_GROWING_PLATFORM","LANDING_A_GROWING_PLATFORM_TEXT","LANDING_SLIDE_TEXT_1","LANDING_SLIDE_TEXT_AUTHOR_1","LANDING_SLIDE_TEXT_2","LANDING_SLIDE_TEXT_AUTHOR_2","LANDING_SLIDE_TEXT_3","LANDING_SLIDE_TEXT_AUTHOR_3","LANDING_SLIDE_TEXT_4","LANDING_SLIDE_TEXT_AUTHOR_4","LANDING_SLIDE_TEXT_5","LANDING_SLIDE_TEXT_AUTHOR_5","LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_1","LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_2","LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_3","LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_1","LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_2","LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_3","LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_1","LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_2","LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_3","LANDING_FAQ_ACCORDION_HEADER_TEXT_1","LANDING_FAQ_ACCORDION_BODY_TEXT_1","LANDING_FAQ_ACCORDION_HEADER_TEXT_2","LANDING_FAQ_ACCORDION_BODY_TEXT_2","LANDING_FAQ_ACCORDION_HEADER_TEXT_3","LANDING_FAQ_ACCORDION_BODY_TEXT_3","LANDING_FAQ_ACCORDION_HEADER_TEXT_4","LANDING_FAQ_ACCORDION_BODY_TEXT_4","LANDING_FAQ_ACCORDION_HEADER_TEXT_5","LANDING_FAQ_ACCORDION_BODY_TEXT_5","LANDING_FOOTER_TITLE","LANDING_FOOTER_TEXT_1","LANDING_FOOTER_TEXT_2","LANDING_FOOTER_APP_INFO","VIEW_STUDENT_PROFILE","VIEW_GROUP_PROFILE","RESET_PASSWORD_SUCCESSFULLY","CHANGE_PASSWORD","NEW_PASSWORD","REPEAT_NEW_PASSWORD","WELCOME","TEACHER_ACCOUNT","STUDENT_ACCOUNT","def","definitions","lessonsCompareFunc","replaceOldLession","updateLessonIsActive","updateLessonIsPublished","groupedLessons","lessonsByKey","retVal","Staging","Production","DevConfigCrev","enableNotifications","topicSuffix","enablePianoAdv","contactEmail","wyswygUrl","enableSocialsAuth","fbAppId","externalLogin","DevConfigZoltan","DevConfigMilos","DevConfigNikola","ProductionConfig","MyPaStagingConfig","registrationCodeEnabled","MyPaStagingWebConfig","MyPaProductionConfig","MyPaProductionWebConfig","settingsConfig","themesConfig","sunset","contrastText","greeny","beach","tech","sweetHues","deepOcean","slate","initialSettings","getInitialSettings","initialThemes","getInitialThemes","initial","themes","getThemeOptions","generateSettings","updateMainThemeVariations","defaultLayoutStyle","FuseSettingsConfig","themesObj","FuseThemesConfig","entries","muiTheme","mixins","mainTheme","navbarTheme","toolbarTheme","footerTheme","loadFlashCardsFetch","setFlashCards","loadPianoAdventuresBooksFetch","setPianoAdventuresBooks","getVideoTutorialsFetch","setVideoTutorials","getTeacherVideoTutorialsFetch","setTeacherVideoTutorials","registerTeacherFetch","showSuccessMessage","registerTeacherPost","registerStudentFetch","registerStudentPost","forgotPasswordFetch","forgotPasswordGet","forgotEmailFetch","forgotEmailGet","resetPasswordFetch","resetPasswordPost","sendEmailFetch","sendEmailPost","genericTemporaryForJwtTokenPost","homeScreenAccessTimesIncrement","initializeSettings","setSettingsRedux","NOTIFICATION_TOPICS","STUDENT_CHANNEL","TEACHER_CHANNEL","loadLanguagesFetch","setEnabledEmailTypesFetch","setEmailNotificationsRedux","enabledEmailTypesFetch","setEnabledNotificationTypesFetch","loggedInUserId","setNotifications","token","setLanguageFetch","setCurrentLanguage","currentLanguageCode","languagesGet","lang","isCurrentLanguage","version","fetchLanguageDefinition","setLanguageDefinitionRedux","setLanguagesRedux","oldSettingsData","setNotificationsRedux","setLanguageCodeRedux","shouldParse","languageGet","DUMMY_LANGUAGE_DEFINITION","loadEmoticonsFetch","setEmoticons","loadDemoStudentsFetch","demoStudentsPost","loadDemoSkillsFetch","loadDemoRewardsFetch","setRewards","loadDemoLessonsFetch","changeImportDemoStudents","INVITE_INTERVAL_TIMEOUT","DEMO_IMPORT_INTERVAL_TIMEOUT","ACCEPT_INVITE_INTERVAL_TIMEOUT","PostponeActionHelper","intervalHandlers","addIntervalHandler","onLogout","teacherInviteStudent","removeFunc","loadGroupsDataForTeacherFetchNoDispatch","isLoaded","setGroupsData","demoImport","acceptInvite","loadGroupsDataForStudentFetchNoDispatch","teacherGlobalGroupsIds","getTeacherGlobalGroups","currentRoute","navigate","onAppInitLoggedInForAutomaticLogin","ORIGINAL_ACCOUNT_TOKEN","setOriginalAccountAccessTokenSimple","onAppInitLoggedOutForAutomaticLogin","executeAutomaticLogin","loginAction","logoutAction","userConnectionLoginTokenGet","loginToken","SharedService","setAutomaticLoginInProgress","loginResponseData","executeLogoutFromAutomaticLogin","loginExternalGet","generateToken","loginFbPost","passwordConfirmation","checkEmailExistsGet","checkUsernameExistsGet","excludeUserId","changeUserProfilePut","changeUserPicturePut","changeUserPictureToPremadeAvatarPut","avatarUrl","inviteStudentPost","parentFirstName","parentLastName","existingChildUserId","createAccountIfNotExist","roleId","ROLE_ID","reinviteStudentGet","deleteStudentPost","senderUserId","userConnectionForUserIdGet","userConnectionUpdatePut","userConnectionStudentChildrenGet","userConnectionStudentAddChildPost","activateStudentPut","apiToken","TrophyIcon","MedalIcon","AwardIcon","MusicIcon","ImportIcon","ExportIcon","LessonIcon","LeaderboardIcon","SkillsIcon","RewardsIcon","RevealPasswordIcon","HidePasswordIcon","ArrowLeftCircle","DownloadIcon","UploadIcon","EmailIcon","PlusCircleIcon","PlusButtonIcon","CloseIcon","ReloadIcon","EditIcon","SearchIcon","className","AssignmentIcon","AssignmentFolderIcon","ImportAssignmentIcon","ExportAssignmentIcon","DeleteIcon","ActivateIcon","ArchiveIcon","RemoveIcon","BasicRemoveIcon","UnpublishIcon","PublishIcon","CloneIcon","RightIcon","CalendarIcon","HamburgerMenuIcon","ChatIcon","InsertEmoticonIcon","SendIcon","PianoAdvIcon","TimeIcon","CheckIcon","ThreeDotsIcon","ArrowLeft","SaveIcon","SortIcon","DragIcon","CancelIcon","AccountBoxIcon","PersonIcon","CakeIcon","isGroupSiteGlobal","SITE_GLOBAL","isGroupTeacherSiteGlobal","SITE_GLOBAL_TEACHERS","isGroupStudentSiteGlobal","SITE_GLOBAL_STUDENTS","isGroupTeacherGlobal","TEACHER_GLOBAL","isGroupTeacherCustom","TEACHER_CUSTOM","isGroupSingleStudent","getSiteGlobalGroups","siteGlobalGroupsSelector","teacherGlobalGroupsSelector","getTeacherCustomGroups","teacherCustomGroupsSelector","getTeacherSingleStudentGroups","teacherSingleStudentGroupsSelector","ownerId","getGlobalGroupDataByGroupId","globalGroupsMapByIdSelector","getUserGroupDataByGroupId","userGroupsMapByIdSelector","getTeacherCustomAndSingleStudentsGroups","teacherCustomAndSingleStudentsGroupsSelector","getSiteGlobalTeacherGroups","siteGlobalTeacherGroupsSelector","getSiteGlobalStudentGroups","siteGlobalStudentGroupsSelector","getShouldReloadGroups","groupIdsToCheck","checkingGlobalGroups","maxLoadedGroupId","maxLoadedGlobalGroupIdSelector","maxLoadedUserGroupIdSelector","getGroupDataByGroupId","groupDataAvailable","isSingleStudentOrCustomGroupActive","hasStudents","allActive","getSingleStudentGroupId","otherUserId","teacherSSGroups","selectedGroupId","customGroupIds","getCustomGroupsForStudent","getUserDataByUserId","usersMapByIdSelector","getGlobalGroupOfGroupOwner","customOrStudentGroupId","globalGroupOfGroupOwnerSelector","getCustomGroupStudents","groupStudentList","getStudentDataByTeacherAndStudentIds","studentsMapByTeacherIdAndStudentIdSelector","getStudentDataBySingleStudentGroupId","singleStudentGroupId","singleStudentGroupMap","getStudentPointsByGroupId","availablePoints","getStudentRankingsByGroupId","studentRankingsByGroupIdSelector","getTeacherStudentsList","studentsMapByTeacherIdSelector","getInvitedTeacherStudents","getSuspendedTeacherStudents","getActiveTeacherStudents","filteredStudents","regex","getRawTeacherStudentData","getCustomGroupsDataByStudentId","teacherCustomGroups","customGroup","getTeacherDataById","teachersMapById","getTeacherDataList","teacherDataListSelector","getTeacherDataBySingleStudentGroupId","getGroupsIdsForStudentItems","selectedUser","getGroupsIdsForItems","forceStudentGroup","globalGroupItemsLoaded","studentGroupItemsLoaded","customGroupItemsLoaded","lightBlueColor","assignmentSubtitleColor","deleteColor","lessonUnpublishedColor","blueBubbleBtnStyle","justifyContent","isInteger","str","n","Number","Infinity","isEmail","emailRegex","test","isUsername","usernameRegex","isFullName","getFirstLastName","formValidatorsCache","formValidators","requiredEmail","requiredUsername","emailOrUsername","required","any","passwordNotRequired","videoLink","linkRegex","requiredPositiveInt","pdfImage","pdfImageMid","pdfImageAudioMid","endDate","endTime","toTimeInMinutes","groupSchedules","acceptPrivacyPolicyAndToU","notRequiredFullName","TextComponent","DropDownButtonComponent","button","renderButton","menuId","atElement","useState","menu","setMenu","onMenuClick","currentTarget","onMenuClose","Boolean","anchorOriginAtElement","anchorOriginDefault","transformOriginAtElement","transformOriginDefault","activateSchoolYearFetch","setSchoolYearIsActive","setSchoolYears","addSchoolYearFetch","addSchoolYear","updateSchoolYearFetch","updateSchoolYear","deleteSchoolYearFetch","deleteSchoolYear","lessonsSelector","lessonsKeyIdsSelector","lessonsCurrentSchoolYearSelector","allLessons","currentLessons","pastLessons","lessonsAsList","lessonGroupKeys","lstFromGroups","tmpResult","lstFromSchoolYears","publishedLessonsSelector","unpublishedLessonsSelector","mergedLessonsSelector","publishedLessons","unpublishedLessons","stickerEmoticonsRegex","codes","codesInRegex","regExp","emoticonCodesSelector","emoticonUrls","emoticonUrl","utfEmoticons","stickerEmoticons","onBackFunc","globalSetOnBackFunc","onBackFuncParam","onBackPress","GoBackComponent","hidden","setHidden","currentPath","setCurrentPath","initialPages","useMemo","createNavigationMap","routeChangeListener","oneLevel","changeUserDataFetch","changeUserData","changeLeaderboardParticipationForStudentFetch","changeLeaderboardParticipation","changeLeaderboardParticipationForTeacherFetch","loadGroupsDataForTeacherFetch","changePictureFetch","otherUserData","changePictureToPremadeAvatarFetch","setFcmTokenFetchNoDispatch","checkEmailExistsFetch","emailExists","checkUsernameExistsFetch","usernameExists","NEW_MESSAGE_TIMEOUT","types","EMOTICON","VIDEO_IMAGE","EXTERNAL_APP_LINK","RenderHelper","_index","_link","_i","_token","_openMenu","_sendMessageDisabled","_tokens","_url","_tokenizer","renderHelper","periodicallyCheck","sendMessageDisabled","getPropsFunc","getLastMessage","notificationTypeToCheck","getMessages","shouldCheckPeriodically","lastMessage","lastMessageId","newLastMessage","newLastMessageId","senderId","getTimeForMessage","allMessages","createdAt","parseMessage","nonTextTokens","getLinkAndEmoticonTokens","allTokens","getAllMergedTokens","retTokenizer","exec","isTypeImageLink","reducedContent","originalContent","startInd","contentLength","openMenuHandler","nonSiteGlobalGroupsMapForTeacherCommunication","userHasFullName","LinkComponent","addUpdateRewardFetch","updateReward","addReward","deleteRewardFetch","deleteReward","changeRewardIsActiveFetch","setRewardIsActive","loadRewardsFetch","loadStudentRewardsFetch","setStudentRewards","addOrUpdateRewards","ExternalAppLink","onOpenAssignmentLink","lowerCaseUrl","onIsmPressHandler","borderRadius","onPressHandler","ExternalAppLinkComponent","initializeAuth","uid","loginUser","logoutSimple","executeLoginWithEmailAndPassword","isStudentChildLogin","loginUserInRedux","firebaseLoginResponse","firebaseLoginWithEmailAndPassword","errorData","appLoginUsingFirebaseUser","executeGoogleLogin","firebaseGoogleLogin","executeAppleLogin","firebaseAppleLogin","executeLoginWithCustomToken","firebaseLoginWithCustomToken","firebaseEmail","getFirebaseEmail","formatFirebaseLoginError","executeLogout","wasLoggedIn","sendTokenToServer","logoutActionSimple","firebaseLogout","executeFbLogin","onLoginResultData","onLogin","loginActionSimple","isCustomTokenLogin","defaultErrorMessage","FIREBASE_DEFAULT_EMAIL_PROVIDER","SplashScreenComponent","_props","STUDENT_INVITED","STUDENT_ACCEPTED_INVITATION","TEACHER_NOTIFICATION_TYPES","STUDENT_NOTIFICATION_TYPES","ACTION_NOTIFICATION_TYPES","NEW_MESSAGE","NEW_CHANNEL_MESSAGE","SKILL_ADDED_TO_STUDENT","SKILL_REMOVED_FROM_STUDENT","NEW_LESSON","NEW_ASSIGNMENT_COMMENT","EVENT_TYPE","_history","stateChangedListener","_routeMappings","_routeReverseMappings","_routes","listen","stateChanged","routeName","go","setParams","reset","routeNames","routeParams","_routeKeys","rn","parametersStrings","toggleDrawer","closeDrawer","openDrawer","loadGroupsDataForStudentWithProvidedUserConnectionsRequiredFetch","userConnections","fetchPromiseGetUsersForTeacher","fixGroupDataForStudent","fetchPromiseGetUsers","fixGroupDataForTeacher","addUpdateGroupFetch","deleteGroupFetch","deleteGroup","loadGroupNotesFetch","setGroupNotes","addUpdateGroupNoteFetch","updateGroupNote","addGroupNote","deleteGroupNoteFetch","deleteGroupNote","deleteGroupNotesFetch","deleteGroupNotes","sortGroupNotesFetch","teacherUsers","allUsers","dpnUsersMap","p","studentIds","teachersStudents","teacherSingleStudentGroups","teacherSingleStudentGroup","setSelectedGroupStudents","GET_NAVIGATION","SET_NAVIGATION","RESET_NAVIGATION","getNavigation","setNavigation","resetNavigation","appendNavigationItem","appendNavItem","prependNavigationItem","prependNavItem","updateNavigationItem","updateNavItem","removeNavigationItem","removeNavItem","SET_SETTINGS","SET_DEFAULT_SETTINGS","SET_INITIAL_SETTINGS","RESET_DEFAULT_SETTINGS","setSettings","setDefaultSettings","setInitialSettings","resetSettings","OPEN_FOLDED_NAVBAR","CLOSE_FOLDED_NAVBAR","TOGGLE_FOLDED_NAVBAR","TOGGLE_MOBILE_NAVBAR","OPEN_MOBILE_NAVBAR","CLOSE_MOBILE_NAVBAR","navbarToggleFolded","navbarOpenFolded","navbarCloseFolded","navbarToggleMobile","navbarOpenMobile","navbarCloseMobile","HIDE_MESSAGE","SHOW_MESSAGE","hideMessage","OPEN_DIALOG","CLOSE_DIALOG","closeDialog","openDialog","emptyObject","userGroupsSelector","groupsData","globalGroupsSelector","groupsMapByTypeSelector","reduceFunc","maxGroupId","teacherIdSelector","ownerIdSelector","groupsTeacherMapSelector","groupsTeacherMap","filterGroupsByDaySelector","singleStudentGroups","studentGroupValid","onlyActiveSelector","customGroups","usersSelector","studentsSelector","groupIdSelector","newTeacherStudentsMap","teachersMap","newStudentsMap","studentsMap","leaderboardParticipationByUser","teacherStudents","groupUsers","sortUsers","teacherIdsSelector","teacherIds","groupsByScheduleDaySelector","groupsByDay","userGroup","schedule","dayIndex","specificDateMoment","today","isSameOrAfter","isSameOrBefore","LANGUAGES_STORAGE_PREFIX_KEY","NOT_SHOW_AGAIN","NOT_SHOW_AGAIN_CUSTOM_ASSIGN_LEVELS","STUDENTS_LIMIT_REACHED_MESSAGE_CODE","NOTE_TYPE","USER","FIRST_TIME_GROUP_FETCH_PARAMS","ARE_UTF8_EMOTICONS_AVAILABLE","TABS","INACTIVE","CHAT","COLORS","hexCode","txtColor","SWIPE_DEFINITIONS","LEFT_SWIPE_MARGIN_OFFSET","ANIMATION_DURATION","VELOCITY_THRESHOLD","DIRECTIONAL_OFFSET_THRESHOLD","HOLD_BEFORE_SWIPE_DELAY","CONTACT_TEMPLATE_NAME","REFRESH_TOKEN_INTERVAL_TIMEOUT","o","u","c","ae","oe","ss","vimeoBaseUrl","youTubeBaseUrl","videoPlayerService","beforePlay","onExit","lastIndexOf","getYouTubeVideoId","vimeoSearchString","searchStrings","searchString","extractVideoId","_getTeacherUserGroupByGroupId","_getStudentUserGroupByGroupId","_getTeacherGlobalGroupByGroupId","_getStudentGlobalGroupByGroupId","_studentAcceptedInvitationHandler","shouldDisplayLocalNotification","actionData","processAction","jumpOnAction","_teacherNewMessageHandler","showSenderData","_teacherNewChannelMessageHandler","_studentInvitedHandler","shouldJump","_studentNewMessageHandler","teachers","getStudentTeacher","_studentNewChannelMessageHandler","_skillAddedToStudentHandler","_skillRemovedFromStudentHandler","_lessonAddedToStudentHandler","_studentNewAssignmentCommentHandler","globalTeacherGroup","commentGroupId","backMessageTitle","_teacherNewAssignmentCommentHandler","_guestActionHandler","_dummyActionHandler","_studentActionHandlers","_teacherActionHandlers","_userActionHandlersMap","getActionHandler","notificationActionType","handlers","pendingActionData","_topic","unsubscribeToTopic","notificationsService","isValidNotification","isUserNotification","loggedInUserType","addPendingActionData","processOnNotificationOpened","notificationOpen","_isValidAndUserOrGuestNotificationForJump","_jumpOnAction","processOnNotificationReceived","_isValidAndUserOrGuestNotification","NotificationActionHandler","unsubscribeFromAllTopics","_isUserNotificationForJump","dummy","dummyAsync","guestUser","_userData","_dispatch","teacherUser","groupData","loadPAAssignments","loadCustomAssignments","studentUser","additionalData","teacherConnections","siteGlobalGroupsIds","siteGlobalGroupId","teacherGlobalGroupId","isStudent","getTeacherBaseDataFromState","isUserStudent","siteGlobalGroups","teacherGlobalGroups","getTeacherStudentFromProps","getUserPictureStaticUrl","defaultImageUrl","getUserPictureUrl","trim","spaceIndex","getUsersSortBase","getUsersSortTime","cmp","getGroupsSortBase","getGroupsSortTime","isPremiumUser","FusePageSimpleSidebarContent","innerScroll","header","sidebarHeader","sidebarInner","sidebarHeaderInnerSidebar","sidebarContent","FusePageSimpleSidebar","isOpen","setIsOpen","useImperativeHandle","toggleSidebar","handleToggleDrawer","ev","sidebarWrapper","sidebar","leftSidebar","rightSidebar","keepMounted","rootRef","backdrop","FusePageSimpleHeader","headerHeight","toolbarHeight","minDrawerWidth","maxDrawerWidth","minHeight","flex","background","wrapper","zIndex","maxWidth","minWidth","backgroundSize","topBg","left","right","top","pointerEvents","contentWrapper","overflow","breakpoints","up","FusePageSimple","leftSidebarRef","rightSidebarRef","toggleLeftSidebar","toggleRightSidebar","noExtraContainer","leftSidebarHeader","leftSidebarContent","leftSidebarVariant","noContentScrollbar","contentToolbar","rightSidebarHeader","rightSidebarContent","rightSidebarVariant","bool","FusePageCardedSidebarContent","FusePageCardedSidebar","FusePageCardedHeader","drawerWidth","headerContentHeight","padding","down","maxHeight","headerSidebarToggleButton","contentCard","FusePageCarded","isRightSidebar","isLeftSidebar","DemoSidebarContent","generate","times","cloneElement","DemoContent","FuseNavBadge","checked","badge","paddingRight","transition","textDecoration","FuseNavVerticalItem","userRole","fuseSettings","nestedLevel","paddingValue","listItemPadding","teacherRequired","getItemIcon","ItemIcon","common","white","NavLinkAdapter","shape","isRequired","NavVerticalItem","FuseNavVerticalLink","target","NavVerticalLink","needsToBeOpened","isUrlInChildren","parent","FuseNavVerticalCollapse","setOpen","handleClick","array","NavVerticalCollapse","FuseNavVerticalGroup","NavVerticalGroup","useForm","onSubmit","setForm","handleChange","useCallback","persist","resetForm","isEqual","setInForm","handleSubmit","preventDefault","useDebounce","wait","debounce","useTimeout","delay","callbackRef","timer","usePrevious","useUpdateEffect","effect","deps","isInitialMount","FuseNavHorizontalItem","dense","NavHorizontalItem","FuseNavHorizontalLink","NavHorizontalLink","popper","popperClose","FuseNavHorizontalCollapse","opened","setOpened","handleToggle","placement","arrowProps","transformOrigin","querySelector","NavHorizontalCollapse","FuseNavHorizontalGroup","NavHorizontalGroup","FuseNavigation","verticalNav","horizontalNav","withRouterAndRef","WrappedComponent","InnerComponentWithRef","rest","ComponentWithRouter","withRef","md","MobileDetect","navigator","userAgent","mobile","handlerNameByEvent","FuseScrollbars","createRef","ps","handlerByEvent","hookUpEvents","addEventListener","unHookUpEvents","removeEventListener","destroyPs","destroy","createPs","PerfectScrollbar","option","updatePs","update","scrollToTop","scrollToTopOnChildChange","scrollToTopOnRouteChange","enable","onScrollY","onScrollX","onScrollUp","onScrollDown","onScrollLeft","onScrollRight","onYReachStart","onYReachEnd","onXReachStart","onXReachEnd","wheelPropagation","FuseAuthorization","context","redirectRoute","componentDidUpdate","getDerivedStateFromProps","matchRoutes","shouldComponentUpdate","nextProps","nextState","redirectUrl","contextType","FuseTheme","styles","lineHeight","FuseLayout","awaitRender","routeSettings","Layout","FuseLayouts","bindActionCreators","withStyles","withTheme","formControl","marginBottom","formGroupTitle","fontWeight","formGroup","marginTop","FuseSettings","ThemeSelect","val","startCase","LayoutSelect","getForm","prefix","opt","LayoutConfig","FuseCountdown","onComplete","isMoment","days","countdown","setCountdown","intervalRef","complete","tick","currDate","timeLeft","asDays","toFixed","object","FuseHighlight","domNode","source","trimCode","highlight","Prism","async","sourceLines","shift","indexOfFirstChar","sourceRaw","line","Wrapper","node","flexGrow","shadows","productionPrefix","DemoFrame","ready","contentDocument","sheetsManager","container","dir","direction","__html","renderHead","handleRef","onContentDidMount","onContentDidUpdate","raw","currentTabIndex","FuseExample","currentTab","setCurrentTab","iframe","flexContainer","addIcon","FuseShortcuts","shortcuts","navigationData","searchInputRef","addMenu","setAddMenu","searchText","setSearchText","searchResults","setSearchResults","shortcutItems","findById","flattenNavigation","getFlatNavigation","addMenuClick","addMenuClose","toggleInShortcuts","newShortcuts","_id","ShortcutMenuItem","onToggle","stopPropagation","animation","renderInputComponent","inputProps","inputRef","input","notchedOutline","disableUnderline","renderSuggestion","suggestion","isHighlighted","matches","parts","getSuggestions","inputValue","deburr","inputLength","keep","getSuggestionValue","suggestionsContainerOpen","suggestionsList","listStyleType","transitions","easing","easeInOut","short","suggestions","noSuggestions","isInputBlank","FuseSearch","useReducer","suggestionsNode","popperNode","itemAuthAllowed","showSearch","escFunction","hideSearch","keyCode","handleSuggestionsFetchRequested","handleSuggestionSelected","handleSuggestionsClearRequested","handleClickAway","autosuggestProps","highlightFirstSuggestion","onSuggestionsFetchRequested","onSuggestionsClearRequested","onSuggestionSelected","placeholder","onChange","onFocus","InputLabelProps","shrink","autoFocus","positionFixed","containerProps","clientWidth","trigger","getContrastText","blue","FuseMessage","headlineMapping","FuseDialog","FuseAnimate","visibility","runOnMount","targetQuerySelector","interruptBehavior","setRef","enterAnimationDefaults","stagger","leaveAnimationDefaults","FuseAnimateGroup","newProps","enter","leave","enterHideStyle","enterShowStyle","FuseSplashScreen","paddingTop","paddingLeft","valueContainer","flexWrap","paddingBottom","chip","chipFocused","emphasize","grey","noOptionsMessage","singleValue","NoOptionsMessage","innerProps","inputComponent","Control","selectProps","textFieldProps","innerRef","Option","isFocused","isSelected","Placeholder","SingleValue","ValueContainer","MultiValue","class","removeProps","onClick","onMouseDown","Menu","components","FuseChipSelect","FuseSuspense","loadingProps","FuseLoading","showLoading","setShowLoading","sharp","shorter","transform","borderBottomLeftRadius","borderTopLeftRadius","borderBottomRightRadius","borderTopRightRadius","buttonWrapper","bottom","buttonIcon","mobileButton","FuseSidePanel","setMobileOpen","toggleOpened","toggleMobileDrawer","EventEmitter","events","_getEventListByName","on","once","onceFn","removeListener","apply","emit","bind","delete","filterArrayByString","mainArr","itemObj","searchInObj","prop","hasOwnProperty","searchInString","searchInArray","arr","generateGUID","S4","random","toString","toggleInArray","handleize","setRoutes","defaultAuth","configs","allRoutes","navigationItems","flatNavigation","navItem","randomMatColor","hue","mainColors","randomColor","colors","difference","changes","isObject","nav","_item","omit","s","r","TextFieldFormsy","importedProps","pick","getErrorMessage","getValue","changeValue","setValue","withFormsy","CheckboxFormsy","RadioGroupFormsy","SelectFormsy","FuseChipSelectFormsy","selectedOptions","multiple","showRequired","NavbarMobileToggleButton","UserMenu","isGuest","shouldShowChildrenLink","isEmailOwner","UserMenuButton","identity","separator","menuLogoIcon","ToolbarLayout1","FooterLayout1","LeftSideLayout1","image","boxSizing","UserNavbarHeader","NavbarFoldedToggleButton","Navigation","overflowX","backgroundRepeat","backgroundAttachment","NavbarLayout1","navbarWidth","wrapperFolded","foldedAndOpened","navbarContent","foldedAndClosed","marginLeft","NavbarWrapperLayout1","Transition","dialogPaper","SettingsPanel","handleOpen","invisible","shortest","Layout1","appContext","useContext","renderRoutes","asyncStorageService","linkingService","messageUIService","navigatorService","connectivityService","platformService","sentryService","analyticsService","firebaseService","routeKeys","prevState","currentState"],"mappings":"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ACzyD,gBAAd,CAA+BwsE,UAA/B;AACH;;AAED,SAAS1rE,eAAT,GAA2B;AACvB,SAAO2xD,aAAa,CAACzyD,gBAAd,CAA+Bc,eAA/B,EAAP;AACH;;AAED,SAAS8qE,YAAT,CAAsBkxB,SAAtB,EAAiCC,YAAjC,EAA+C;AAC3CtqC,eAAa,CAACzyD,gBAAd,CAA+B4rE,YAA/B,CAA4CkxB,SAA5C,EAAuDC,YAAvD;AACH;;AAEM,MAAM/8F,gBAAgB,GAAG;AAC5B+xD,UAD4B;AAE5Bia,OAF4B;AAG5BvrF,MAH4B;AAI5BogC,QAJ4B;AAK5B1xB,KAL4B;AAM5B48E,WAN4B;AAO5B9rE,kBAP4B;AAQ5BqsE,cAR4B;AAS5BC,aAT4B;AAU5BC,YAV4B;AAW5BZ,cAX4B;AAY5B9qE,iBAZ4B;AAa5Bk2B;AAb4B,CAAzB,C;;;;;;;ACvMP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wB","file":"main.aaf5b30666674db84cc7.bundle.js","sourcesContent":["const ActionTypes = Object.freeze({\r\n LOG_IN_ACTION: 'LOG_IN_ACTION',\r\n LOG_OUT_ACTION: 'LOG_OUT_ACTION',\r\n CHANGE_USER_DATA_ACTION: 'CHANGE_USER_DATA_ACTION',\r\n SET_SETTINGS_ACTION: 'SET_SETTINGS_ACTION',\r\n SET_LANGUAGES_ACTION: 'SET_LANGUAGES_ACTION',\r\n SET_LANGUAGE_DEFINITION_ACTION: 'SET_LANGUAGE_DEFINITION_ACTION',\r\n SET_NOTIFICATIONS_ACTION: 'SET_NOTIFICATIONS_ACTION',\r\n SET_EMAIL_NOTIFICATIONS_ACTION: 'SET_EMAIL_NOTIFICATIONS_ACTION',\r\n SET_LANGUAGE_CODE_ACTION: 'SET_LANGUAGE_CODE_ACTION',\r\n CHANGE_LEADERBOARD_PARTICIPATION: 'CHANGE_LEADERBOARD_PARTICIPATION',\r\n\r\n STUDENT_SET_CHOSEN_TEACHER_ACTION: 'STUDENT_SET_CHOSEN_TEACHER_ACTION',\r\n SET_STUDENT_CHILDREN: 'SET_STUDENT_CHILDREN',\r\n\r\n ADD_LESSON_ACTION: 'ADD_LESSON_ACTION',\r\n UPDATE_LESSON_ACTION: 'UPDATE_LESSON_ACTION',\r\n ACTIVATE_LESSON_ACTION: 'ACTIVATE_LESSON_ACTION',\r\n PUBLISH_LESSON_ACTION: 'PUBLISH_LESSON_ACTION',\r\n SET_LESSONS_ACTION: 'SET_LESSONS_ACTION',\r\n SET_SELECTED_ASSIGNMENTS: 'SET_SELECTED_ASSIGNMENTS',\r\n DELETE_LESSON_ACTION: 'DELETE_LESSON_ACTION',\r\n\r\n ADD_LESSON_NOTE_ACTION: 'ADD_LESSON_NOTE_ACTION',\r\n UPDATE_LESSON_NOTE_ACTION: 'UPDATE_LESSON_NOTE_ACTION',\r\n SET_LESSON_NOTES_ACTION: 'SET_LESSON_NOTES_ACTION',\r\n SET_SELECTED_NOTES: 'SET_SELECTED_NOTES',\r\n DELETE_LESSON_NOTE_ACTION: 'DELETE_LESSON_NOTE_ACTION',\r\n DELETE_LESSON_NOTES_ACTION: 'DELETE_LESSON_NOTES_ACTION',\r\n\r\n ADD_GROUP_NOTE_ACTION: 'ADD_GROUP_NOTE_ACTION',\r\n UPDATE_GROUP_NOTE_ACTION: 'UPDATE_GROUP_NOTE_ACTION',\r\n SET_GROUP_NOTES_ACTION: 'SET_GROUP_NOTES_ACTION',\r\n DELETE_GROUP_NOTE_ACTION: 'DELETE_GROUP_NOTE_ACTION',\r\n DELETE_GROUP_NOTES_ACTION: 'DELETE_GROUP_NOTES_ACTION',\r\n\r\n TEACHER_ADD_SKILL_ACTION: 'TEACHER_ADD_SKILL_ACTION',\r\n TEACHER_UPDATE_SKILL_ACTION: 'TEACHER_UPDATE_SKILL_ACTION',\r\n TEACHER_DELETE_SKILL_ACTION: 'TEACHER_DELETE_SKILL_ACTION',\r\n TEACHER_SKILL_CHANGE_IS_ACTIVE_ACTION: 'TEACHER_SKILL_CHANGE_IS_ACTIVE_ACTION',\r\n TEACHER_SET_SKILLS_ACTION: 'TEACHER_SET_SKILLS_ACTION',\r\n SET_STUDENT_SKILLS: 'SET_STUDENT_SKILLS',\r\n SET_STUDENT_REWARDS: 'SET_STUDENT_REWARDS',\r\n TEACHER_ADD_OR_UPDATE_SKILLS_ACTION: 'TEACHER_ADD_OR_UPDATE_SKILLS_ACTION',\r\n\r\n TEACHER_ADD_REWARD_ACTION: 'TEACHER_ADD_REWARD_ACTION',\r\n TEACHER_UPDATE_REWARD_ACTION: 'TEACHER_UPDATE_REWARD_ACTION',\r\n TEACHER_DELETE_REWARD_ACTION: 'TEACHER_DELETE_REWARD_ACTION',\r\n TEACHER_REWARD_CHANGE_IS_ACTIVE_ACTION: 'TEACHER_REWARD_CHANGE_IS_ACTIVE_ACTION',\r\n TEACHER_SET_REWARDS_ACTION: 'TEACHER_SET_REWARDS_ACTION',\r\n TEACHER_ADD_OR_UPDATE_REWARDS_ACTION: 'TEACHER_ADD_OR_UPDATE_REWARDS_ACTION',\r\n\r\n SET_ASSIGNMENTS_FOR_ASSIGNMENT_FOLDER: 'SET_ASSIGNMENTS_FOR_ASSIGNMENT_FOLDER',\r\n ADD_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: 'ADD_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER',\r\n UPDATE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: 'UPDATE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER',\r\n DELETE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: 'DELETE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER',\r\n \r\n PRIVATE_MESSAGE_ADD_CONVERSATIONS: 'PRIVATE_MESSAGE_ADD_CONVERSATIONS',\r\n PRIVATE_MESSAGE_ADD_GROUP_MESSAGES: 'PRIVATE_MESSAGE_ADD_GROUP_MESSAGES',\r\n PRIVATE_MESSAGE_DELETE: 'PRIVATE_MESSAGE_DELETE',\r\n PRIVATE_MESSAGE_ADD_MESSAGES_TO_GROUPS: 'PRIVATE_MESSAGE_ADD_MESSAGES_TO_GROUPS',\r\n\r\n SET_FLASH_CARDS_ACTION: 'SET_FLASH_CARDS_ACTION',\r\n SET_PIANO_ADVENTURES_BOOKS: 'SET_PIANO_ADVENTURES_BOOKS',\r\n SET_EMOTICONS_ACTION: 'SET_EMOTICONS_ACTION',\r\n SET_VIDEO_TUTORIALS: 'SET_VIDEO_TUTORIALS',\r\n SET_TEACHER_VIDEO_TUTORIALS: 'SET_TEACHER_VIDEO_TUTORIALS',\r\n\r\n SENTENCES_SET_ACTION: 'SENTENCES_SET_ACTION',\r\n SENTENCE_ADD_ACTION: 'SENTENCE_ADD_ACTION',\r\n SENTENCE_UPDATE_ACTION: 'SENTENCE_UPDATE_ACTION',\r\n SENTENCE_DELETE_ACTION: 'SENTENCE_DELETE_ACTION',\r\n\r\n ASSIGN_LEVELS_SET_ACTION: 'ASSIGN_LEVELS_SET_ACTION',\r\n ASSIGN_LEVEL_ADD_ACTION: 'ASSIGN_LEVEL_ADD_ACTION',\r\n ASSIGN_LEVEL_UPDATE_ACTION: 'ASSIGN_LEVEL_UPDATE_ACTION',\r\n ASSIGN_LEVEL_DELETE_ACTION: 'ASSIGN_LEVEL_DELETE_ACTION',\r\n\r\n SCHOOL_YEAR_ACTIVATE_ACTION: 'SCHOOL_YEAR_ACTIVATE_ACTION',\r\n SCHOOL_YEARS_SET_ACTION: 'SCHOOL_YEARS_SET_ACTION',\r\n SCHOOL_YEAR_ADD_ACTION: 'SCHOOL_YEAR_ADD_ACTION',\r\n SCHOOL_YEAR_UPDATE_ACTION: 'SCHOOL_YEAR_UPDATE_ACTION',\r\n SCHOOL_YEAR_DELETE_ACTION: 'SCHOOL_YEAR_DELETE_ACTION',\r\n\r\n SET_PREMADE_AVATARS_ACTION: 'SET_PREMADE_AVATARS_ACTION',\r\n\r\n GROUPS_DATA_SET_ACTION: 'GROUPS_DATA_SET_ACTION',\r\n GROUP_DELETE_ACTION: 'GROUP_DELETE_ACTION',\r\n SELECTED_GROUP_STUDENTS_SET: 'SELECTED_GROUP_STUDENTS_SET',\r\n HOME_SCREEN_ACCESS_TIMES_INC: 'HOME_SCREEN_ACCESS_TIMES_INC',\r\n\r\n ACTIVE_STUDENT_UPDATE: 'ACTIVE_STUDENT_UPDATE',\r\n IMPORT_DEMO_STUDENTS: 'IMPORT_DEMO_STUDENTS',\r\n DELETE_STUDENT: 'DELETE_STUDENT',\r\n\r\n SET_NOTES_FOR_NOTE_FOLDER: 'SET_NOTES_FOR_NOTE_FOLDER',\r\n ADD_NOTE_FOR_NOTE_FOLDER: 'ADD_NOTE_FOR_NOTE_FOLDER',\r\n UPDATE_NOTE_FOR_NOTE_FOLDER: 'UPDATE_NOTE_FOR_NOTE_FOLDER',\r\n DELETE_NOTE_FOR_NOTE_FOLDER: 'DELETE_NOTE_FOR_NOTE_FOLDER',\r\n EXTERNAL_LOGIN_FROM: 'EXTERNAL_LOGIN_FROM',\r\n\r\n SET_ORIGINAL_ACCOUNT_ACCESS_TOKEN: 'SET_ORIGINAL_ACCOUNT_ACCESS_TOKEN',\r\n SET_AUTOMATIC_LOGIN_IN_PROGRESS: 'SET_AUTOMATIC_LOGIN_IN_PROGRESS',\r\n})\r\n\r\nexport default ActionTypes","import { SETTINGS_STORAGE_KEY, LANGUAGE_DEF_STORAGE_PREFIX_KEY } from '../utils/AppConstants'\r\nimport { getStorageItem, setStorageItem } from '../services/SharedServices'\r\n\r\nlet getStateFunc\r\n\r\nfunction getNotifications() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages.settings.notifications\r\n}\r\n\r\nfunction getLanguageCode() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages.settings.languageCode\r\n}\r\n\r\nfunction getLanguageDefinition() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages.languageDefinition\r\n}\r\n\r\nfunction getLanguages() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages.languages\r\n}\r\n\r\nfunction getAllSettings() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages.settings\r\n}\r\n\r\nfunction getAll() {\r\n const state = getStateFunc()\r\n return state.settingsAndLanguages\r\n}\r\n\r\nasync function loadFromStorage(userId) {\r\n const settings = await getStorageItem(SETTINGS_STORAGE_KEY + (userId || 0))\r\n return settings && JSON.parse(settings) || false\r\n}\r\n\r\nasync function storeToStorage(settingsData, userId) {\r\n const settingsDataJson = JSON.stringify(settingsData)\r\n if (userId) {\r\n await setStorageItem(SETTINGS_STORAGE_KEY + userId, settingsDataJson)\r\n }\r\n // settings for guest user write in any case\r\n await setStorageItem(SETTINGS_STORAGE_KEY + 0, settingsDataJson)\r\n}\r\n\r\nasync function loadLanguageDefinitionFromStorage(code) {\r\n const key = LANGUAGE_DEF_STORAGE_PREFIX_KEY + code\r\n const data = await getStorageItem(key)\r\n return data && JSON.parse(data)\r\n}\r\n\r\nasync function storeLanguageDefinitionToStorage(code, langDef) {\r\n const key = LANGUAGE_DEF_STORAGE_PREFIX_KEY + code\r\n await setStorageItem(key, langDef)\r\n}\r\n\r\nasync function loadLanguagesFromStorage() {\r\n const data = await getStorageItem(LANGUAGE_DEF_STORAGE_PREFIX_KEY)\r\n return data && JSON.parse(data)\r\n}\r\n\r\nasync function storeLanguagesToStorage(languages) {\r\n await setStorageItem(LANGUAGE_DEF_STORAGE_PREFIX_KEY, languages)\r\n}\r\n\r\n/**\r\n * Init settings service\r\n * @param {Function} getStateFuncParam store getState function\r\n */\r\nfunction init(getStateFuncParam) {\r\n getStateFunc = getStateFuncParam\r\n}\r\n\r\nexport default {\r\n getAll,\r\n getAllSettings,\r\n getNotifications,\r\n getLanguageCode,\r\n getLanguageDefinition,\r\n getLanguages,\r\n loadFromStorage,\r\n storeToStorage,\r\n loadLanguageDefinitionFromStorage,\r\n storeLanguageDefinitionToStorage,\r\n loadLanguagesFromStorage,\r\n storeLanguagesToStorage,\r\n init,\r\n}\r\n","export const LocalImages = Object.freeze({\r\n NO_AVATAR_IMAGE: require('../../assets/NoAvatarImage.png'),\r\n DEFAULT_AVATAR_IMAGE: require('../../assets/DefaultAvatarImage.png'),\r\n DEFAULT_REWARD_IMAGE: require('../../assets/DefaultRewardImage.png'),\r\n DEFAULT_SKILL_IMAGE: require('../../assets/DefaultSkillImage.png'),\r\n PIANO_ADV: require('../../assets/PianoAdventures.png'),\r\n MY_PA_BUG_ICON: require('../../assets/MyPaBugIcon.png'),\r\n VIEW_TUTORIALS: require('../../assets/ViewTutorials.png'),\r\n INTERACTIVE_TOUR: require('../../assets/InteractiveTour.png'),\r\n SYNTHESIA_ICON: require('../../assets/Synthesia.png'),\r\n LANDING_TEACHERS: require('../../assets/LandingTeachers.png'),\r\n LANDING_STUDENTS: require('../../assets/LandingStudents.png'),\r\n LANDING_PARENTS: require('../../assets/LandingParents.png'),\r\n APP_APPLE: require('../../assets/AppApple.png'),\r\n APP_GOOGLE: require('../../assets/AppGoogle.png'),\r\n SIGNUP_IMAGE: require('../../assets/SignUpImage.png'),\r\n PLAY_IMAGE: require('../../assets/Play.png'),\r\n GOOGLE_LOGO: require('../../assets/GoogleLogo.svg'),\r\n APPLE_LOGO: require('../../assets/AppleLogo.svg'),\r\n HEADER_IMAGE: require('../../assets/HeaderImage.png'),\r\n HOME_LOGO: require('../../assets/HomeLogo.png'),\r\n LANDING_CONNECT: require('../../assets/LandingConnect.png'),\r\n LANDING_LEARN: require('../../assets/LandingLearn.png'),\r\n LANDING_EXPLORE: require('../../assets/LandingExplore.png'),\r\n ICON_CUSTOMIZE: require('../../assets/IconCustomize.svg'),\r\n ICON_DASHBOARD: require('../../assets/IconDashboard.svg'),\r\n ICON_GROWTH: require('../../assets/IconGrowth.svg'),\r\n ICON_LEARNING: require('../../assets/IconLearning.svg'),\r\n ICON_MESSAGING: require('../../assets/IconMessaging.svg'),\r\n ICON_SUPPORT: require('../../assets/IconSupport.svg'),\r\n MYPA_EARLY_ADOPTER_VIDEO_FIRST_FRAME: require('../../assets/MyPAEarlyAdopterProgramFirstFrame.jpg')\r\n})","import { Messages, texti18n } from './MessageConstants'\r\n\r\nconst moment = require('moment')\r\n\r\nexport const compareDatesByDay = (date1, date2) => {\r\n let firstUtc = moment.utc(date1)\r\n let secondUtc = moment.utc(date2)\r\n const firstLocal = moment(firstUtc.local())\r\n const secondLocal = moment(secondUtc.local())\r\n return firstLocal.isBefore(secondLocal, 'day')\r\n}\r\n\r\nexport function calculateTimeForConversation(from) {\r\n from = moment.utc(from)\r\n const todayLocal = moment().startOf('day')\r\n const fromLocal = moment(from.local())\r\n\r\n if (isToday(fromLocal, todayLocal)) {\r\n return fromLocal.format('HH:mm')\r\n }\r\n else {\r\n const yesterdayLocal = moment().subtract(1, 'days')\r\n\r\n if (isYesterday(fromLocal, yesterdayLocal)) {\r\n return texti18n(Messages.YESTERDAY)\r\n }\r\n else if (isBeforeYesterday(fromLocal, yesterdayLocal)) {\r\n return getDate(fromLocal)\r\n }\r\n }\r\n}\r\n\r\nexport function calculateTimeForChatHistory(from) {\r\n from = moment.utc(from)\r\n const todayLocal = moment().startOf('day')\r\n const fromLocal = moment(from.local())\r\n\r\n if (isToday(fromLocal, todayLocal)) {\r\n return texti18n(Messages.TODAY)\r\n }\r\n else {\r\n const yesterdayLocal = moment().subtract(1, 'days')\r\n\r\n if (isYesterday(fromLocal, yesterdayLocal)) {\r\n return texti18n(Messages.YESTERDAY)\r\n }\r\n else if (isBeforeYesterday(fromLocal, yesterdayLocal)) {\r\n return getDate(fromLocal)\r\n }\r\n }\r\n}\r\n\r\nexport function getCurrentDate() {\r\n const date = new Date()\r\n date.setHours(0, 0, 0, 0)\r\n return date\r\n}\r\n\r\nexport function getNthDateFromDateJson(nth, startdate) {\r\n const momentDate = moment(startdate || new Date(), 'YYYY-MM-DD').add(nth, 'days')\r\n return momentDate.utc().format('YYYY-MM-DD')\r\n}\r\n\r\nexport function getJSDateFromJson(json) {\r\n const momentDate = moment.utc(json, 'YYYY-MM-DD HH:mm:ss')\r\n return momentDate.toDate()\r\n}\r\n\r\nexport function getMomentDateFromJson(json) {\r\n const momentDate = moment.utc(json, 'YYYY-MM-DD HH:mm:ss')\r\n return momentDate\r\n}\r\n\r\nexport const getMomentDate = (date) => moment(date)\r\n\r\nexport function formatDateJson(date, fullDateTime, setEndOfTheDay) {\r\n let momentDate\r\n if (typeof date === 'string' || date instanceof String) {\r\n momentDate = moment(date, texti18n(Messages.CURRENT_DATE_FORMAT))\r\n }\r\n else {\r\n momentDate = moment(date)\r\n }\r\n\r\n if (setEndOfTheDay) {\r\n momentDate.set({ hour: 23, minute: 59, second: 59, millisecond: 0 })\r\n }\r\n\r\n const result = momentDate.utc().format(fullDateTime ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD')\r\n return result\r\n}\r\n\r\nexport function formatTimeJson(value) {\r\n const momentDate = moment(value, texti18n(Messages.CURRENT_TIME_FORMAT))\r\n const result = momentDate.utc().format('HH:mm')\r\n return result\r\n}\r\n\r\nexport function formatDate(date) {\r\n const momentDate = moment.utc(date).local()\r\n const result = momentDate.format(texti18n(Messages.CURRENT_DATE_FORMAT))\r\n return result\r\n}\r\n\r\nexport function formatTime(date) {\r\n const momentDate = moment.utc(date).local()\r\n const result = momentDate.format(texti18n(Messages.CURRENT_TIME_FORMAT))\r\n return result\r\n}\r\n\r\nexport const convertTime12to24 = (time12h) => {\r\n const [time, modifier] = time12h.split(' ')\r\n \r\n let [hours, minutes] = time.split(':')\r\n \r\n if (hours === '12') {\r\n hours = '00'\r\n }\r\n \r\n if (modifier === 'pm') {\r\n hours = parseInt(hours, 10) + 12\r\n }\r\n \r\n return `${hours}:${minutes}`\r\n}\r\n\r\nexport function formatDateTime(dateTime, format = texti18n(Messages.CURRENT_DATE_TIME_FORMAT)) {\r\n const momentDate = moment.utc(dateTime).local()\r\n const result = momentDate.format(format)\r\n return result\r\n}\r\n\r\nexport const formatTimeLength = seconds => {\r\n const intSeconds = parseInt(seconds)\r\n if (intSeconds < 60 * 60) {\r\n return moment.utc(intSeconds * 1000).format('mm:ss')\r\n }\r\n else {\r\n return moment.utc(intSeconds * 1000).format('HH:mm:ss')\r\n }\r\n}\r\n\r\nexport const convertTimeInMinutesToDateTime = timeInMinutes => {\r\n const hours = Math.floor(timeInMinutes / 60)\r\n const minutes = timeInMinutes % 60\r\n return moment().hour(hours).minute(minutes).toDate()\r\n}\r\n\r\nexport const getTimeInMinutes = timeString => {\r\n const timeStringJson = moment(timeString, texti18n(Messages.CURRENT_TIME_FORMAT)).format('HH:mm')\r\n const [hours, minutes] = timeStringJson.split(':').map(x => parseInt(x))\r\n return hours * 60 + minutes\r\n}\r\n\r\nfunction isToday(fromLocal, todayLocal) {\r\n return fromLocal.isSame(todayLocal, 'd')\r\n}\r\n\r\nfunction isYesterday(fromLocal, yesterdayLocal) {\r\n return fromLocal.isSame(yesterdayLocal, 'd')\r\n}\r\n\r\nfunction isBeforeYesterday(fromLocal, yesterdayLocal) {\r\n return fromLocal.isBefore(yesterdayLocal)\r\n}\r\n\r\nconst getDate = dateTimeLocal => {\r\n return dateTimeLocal.format(texti18n(Messages.CURRENT_SHORT_DATE_FORMAT))\r\n}\r\n\r\nexport const getDayIndexFromDayString = day => {\r\n switch (day) {\r\n case Messages.MONDAY:\r\n return 1\r\n case Messages.TUESDAY:\r\n return 2\r\n case Messages.WEDNESDAY:\r\n return 3\r\n case Messages.THURSDAY:\r\n return 4\r\n case Messages.FRIDAY:\r\n return 5\r\n case Messages.SATURDAY:\r\n return 6\r\n case Messages.SUNDAY:\r\n return 0\r\n }\r\n}\r\n\r\nexport const formatSchedules = schedules => (schedules || []).map(x => ({ ...x, dayOfWeek: x.dayOfWeek || undefined, specificDate: x.dayOfWeek ? undefined : x.specificDate }))\r\n\r\nexport const formatReadOnlyDate = date => getMomentDateFromJson(date).format(texti18n(Messages.CURRENT_READONLY_DATE_FORMAT))\r\n\r\nexport const sortSchedules = schedules => (schedules || []).sort((a, b) => {\r\n if (a.dayOfWeek && b.dayOfWeek) {\r\n if (a.dayOfWeek !== b.dayOfWeek) {\r\n const aDayIndex = getDayIndexFromDayString(a.dayOfWeek) === 0 ? 7 : getDayIndexFromDayString(a.dayOfWeek)\r\n const bDayIndex = getDayIndexFromDayString(b.dayOfWeek) === 0 ? 7 : getDayIndexFromDayString(b.dayOfWeek)\r\n return aDayIndex - bDayIndex\r\n }\r\n else {\r\n if (a.fromTimeInMinutes && !b.fromTimeInMinutes) {\r\n return 1\r\n }\r\n else if (!a.fromTimeInMinutes && b.fromTimeInMinutes) {\r\n return -1\r\n }\r\n return a.fromTimeInMinutes - b.fromTimeInMinutes\r\n }\r\n }\r\n else if (a.dayOfWeek && !b.dayOfWeek) {\r\n return - 1\r\n }\r\n else if (a.specificDate && b.specificDate) {\r\n const aSpecificDateMoment = getMomentDateFromJson(a.specificDate)\r\n const bSpecificDateMoment = getMomentDateFromJson(b.specificDate)\r\n if (!aSpecificDateMoment.isSame(bSpecificDateMoment)) {\r\n return aSpecificDateMoment.isBefore(bSpecificDateMoment) ? -1 : 1\r\n }\r\n else {\r\n if (a.fromTimeInMinutes && !b.fromTimeInMinutes) {\r\n return 1\r\n }\r\n else if (!a.fromTimeInMinutes && b.fromTimeInMinutes) {\r\n return -1\r\n }\r\n return a.fromTimeInMinutes - b.fromTimeInMinutes\r\n }\r\n }\r\n return 1\r\n})\r\n\r\nexport function convertMinutesToAmPmString(minutes) {\r\n const totalHours = Math.floor(minutes / 60);\r\n const minutesRemaining = minutes % 60;\r\n const ampm = totalHours >= 12 ? 'pm' : 'am';\r\n const hours = (totalHours % 12) || 12; // if it is 0 then make it 12 :)\r\n const minutesString = minutesRemaining < 10 ? '0' + minutesRemaining : minutesRemaining;\r\n return `${hours}:${minutesString}${ampm}`;\r\n}","module.exports = __webpack_public_path__ + \"96e996ca081ec34e6a2d0d46b3f3b1c1.png\";","module.exports = __webpack_public_path__ + \"c4b31a8219c8e2d30c10ca9fe02351f1.png\";","module.exports = __webpack_public_path__ + \"e9c4eea93e8807e2bba1d0bfbc05de67.png\";","module.exports = __webpack_public_path__ + \"45d494e02118e545d8ed6448a608ae99.png\";","module.exports = __webpack_public_path__ + \"ed323e7a3f115f4fc52b2641d95f54fd.png\";","module.exports = __webpack_public_path__ + \"0910f15825250e73c2e622a1fb7ba162.png\";","module.exports = __webpack_public_path__ + \"416d6b5d226da44329caa58287a7ebbb.png\";","module.exports = __webpack_public_path__ + \"f631a56f21894a5e4c368b952891dbbf.png\";","module.exports = __webpack_public_path__ + \"f7e35b5f1888b823592d5dcef3a6972c.png\";","module.exports = __webpack_public_path__ + \"c221c0f962143579f214c2e6d01512c7.png\";","module.exports = __webpack_public_path__ + \"9c2269c4a8bde7bf22d8e071b301d997.png\";","module.exports = __webpack_public_path__ + \"58d98865fca621bbbdd76de5f72b2eff.png\";","module.exports = __webpack_public_path__ + \"82a3f373899972f958b0db1e44cd0c9b.png\";","module.exports = __webpack_public_path__ + \"1cac308ffb934c908f39e83eb595dfb2.png\";","module.exports = __webpack_public_path__ + \"1031277af2f13f5e0a4fbbf893b2e095.png\";","module.exports = __webpack_public_path__ + \"e0bc5ae5a4ebb7f55dd660c323db37e5.png\";","module.exports = __webpack_public_path__ + \"686f8efa6e3e28e96d1c08399e8d353d.svg\";","module.exports = __webpack_public_path__ + \"1ac6f31d1d151e415fad4f548783be43.svg\";","module.exports = __webpack_public_path__ + \"24a8fb2fb26787709f65a7aa78e13f44.png\";","module.exports = __webpack_public_path__ + \"73bf2393ad45e972bc8d17b1baf93df3.png\";","module.exports = __webpack_public_path__ + \"4bb510b0caf5f6849056dbce6596d865.png\";","module.exports = __webpack_public_path__ + \"dce058e0e6e172120361266814fc4eb2.png\";","module.exports = __webpack_public_path__ + \"0763bf37a4db3100ba5f7329298e7644.png\";","module.exports = __webpack_public_path__ + \"2ff8730fe02aeaff2c6bd23f26a781bc.svg\";","module.exports = __webpack_public_path__ + \"5d09feb7ccf27138477fce0a03a4b56f.svg\";","module.exports = __webpack_public_path__ + \"a08b8c02b1f8a26698d4eb197008095b.svg\";","module.exports = __webpack_public_path__ + \"3e67c782c813586b721c8b24e6bd78f8.svg\";","module.exports = __webpack_public_path__ + \"66b0a6fb98d8b715efe165af64eea5d5.svg\";","module.exports = __webpack_public_path__ + \"22f73d32ff3d290b087b8b7d590ec01a.svg\";","module.exports = __webpack_public_path__ + \"c4d7a431b424ee4f727c97b26911864c.jpg\";","import { ACCENTS_MAP } from './AppConstants'\r\n\r\nexport function insertAtPosition(items, item, itemCompareFunc) {\r\n return insertAtPositionMutable([...items], item, itemCompareFunc)\r\n}\r\n\r\nexport function replaceOldItem(items, newItem, itemCompareFunc) {\r\n const item = items.find(x => x.id === newItem.id)\r\n if (item) {\r\n const newItems = items.filter(x => x.id !== newItem.id)\r\n insertAtPositionMutable(newItems, newItem, itemCompareFunc)\r\n return newItems\r\n }\r\n return items\r\n}\r\n\r\nexport function updateOldItem(items, itemId, updateItemFunc, itemCompareFunc) {\r\n const item = items.find(x => x.id === itemId)\r\n if (item) {\r\n const newItems = items.filter(x => x.id !== itemId)\r\n const newItem = { ...item }\r\n updateItemFunc(newItem)\r\n insertAtPositionMutable(newItems, newItem, itemCompareFunc)\r\n return newItems\r\n }\r\n return items\r\n}\r\n\r\nexport function deleteItem(items, itemId) {\r\n const item = items.find(x => x.id === itemId)\r\n if (item) {\r\n const newItems = items.filter(x => x.id !== itemId)\r\n return newItems\r\n }\r\n return items\r\n}\r\n\r\nexport function addMultipleItemsToItemsInDictionary(state, stateKey, dictKeyId, items, compareFunc) {\r\n let newItems = items\r\n const dictionary = state[stateKey] || {}\r\n if (dictKeyId in dictionary) {\r\n const oldItems = dictionary[dictKeyId]\r\n if (oldItems) {\r\n oldItems.forEach(item => {\r\n if (!newItems.some(x => x.id === item.id)) {\r\n insertAtPositionMutable(newItems, item, compareFunc)\r\n }\r\n })\r\n } \r\n }\r\n return setDictionaryState(state, stateKey, dictKeyId, newItems)\r\n}\r\n\r\nexport function addItemToItemsInDictionary(state, stateKey, dictKeyId, item, compareFunc) {\r\n let newItems\r\n const dictionary = state[stateKey]\r\n if (dictKeyId in dictionary) {\r\n newItems = [...dictionary[dictKeyId]]\r\n insertAtPositionMutable(newItems, item, compareFunc)\r\n }\r\n else {\r\n newItems = [item]\r\n }\r\n return setDictionaryState(state, stateKey, dictKeyId, newItems)\r\n}\r\n\r\nexport function changeItemInItemsInDictionary(state, stateKey, dictKeyId, func) {\r\n let response = state\r\n const dictionary = state[stateKey]\r\n if (dictionary && dictKeyId in dictionary) {\r\n const items = dictionary[dictKeyId]\r\n const newItems = func(items)\r\n response = setDictionaryState(state, stateKey, dictKeyId, newItems)\r\n }\r\n return response\r\n}\r\n\r\nexport function setDictionaryState(state, stateKey, dictKeyId, newItems) {\r\n const response = Object.assign({}, state, {\r\n [stateKey]: { ...state[stateKey], [dictKeyId]: newItems } \r\n })\r\n return response\r\n}\r\n\r\nexport function getFromDict(dict, keyId, defValue) {\r\n return dict && keyId in dict ? dict[keyId] : defValue\r\n}\r\n\r\nexport function arrayToMatrix(originalItems, noOfColumns) {\r\n const reminder = originalItems.length % noOfColumns\r\n const noOfRows = (originalItems.length - reminder) / noOfColumns + (reminder > 0 ? 1 : 0)\r\n const items = new Array(noOfRows)\r\n for (let i = 0, pos = 0; i < noOfRows; ++i, pos += noOfColumns) {\r\n const end = Math.min(originalItems.length, pos + noOfColumns)\r\n items[i] = originalItems.slice(pos, end)\r\n }\r\n return items\r\n}\r\n\r\nexport function fixNumberOfColumnsInMatrix(matrix, noOfColumns, func) {\r\n if (matrix && matrix.length) {\r\n const last = matrix[matrix.length - 1]\r\n const count = noOfColumns - last.length\r\n for (let i = 0; i < count; i++) {\r\n last.push(func(i))\r\n }\r\n }\r\n}\r\n\r\nexport function paginationAdd(oldItems, newItems, func) {\r\n if (!newItems || newItems.length === 0) {\r\n return oldItems\r\n }\r\n const lastNew = newItems[0]\r\n const index = oldItems.findIndex(x => func(lastNew, x))\r\n if (index === -1) {\r\n return oldItems.concat(newItems)\r\n }\r\n else if (oldItems.length - index >= newItems.length) {\r\n return oldItems\r\n }\r\n else {\r\n return oldItems.concat(newItems.slice(oldItems.length - index, newItems.length))\r\n }\r\n}\r\n\r\nexport function insertAtPositionMutable(items, item, itemCompareFunc) {\r\n const compareFunc = itemCompareFunc(item)\r\n const indexOfFirstGreater = items.findIndex(compareFunc)\r\n if (indexOfFirstGreater === -1) {\r\n items.push(item)\r\n }\r\n else {\r\n items.splice(indexOfFirstGreater, 0, item)\r\n }\r\n return items\r\n}\r\n\r\nexport function concatUnique(first, second) {\r\n if (first === undefined && second === undefined) {\r\n return undefined\r\n }\r\n\r\n if (first === undefined || second === undefined) {\r\n return first ? first : second\r\n }\r\n\r\n const newArr = [... first]\r\n\r\n for (let i = 0; i < second.length; ++i) {\r\n let found = false\r\n for (let j = 0; j < first.length; ++j) {\r\n if (first[j].id === second[i].id) {\r\n found = true\r\n break\r\n }\r\n }\r\n if (!found) {\r\n newArr.push(second[i])\r\n }\r\n }\r\n\r\n return newArr\r\n}\r\n\r\nexport function calculateNumberOfItemsPerRow(windowSize, defaultItemsPerRow) {\r\n if (!windowSize)\r\n return defaultItemsPerRow\r\n const aspect = windowSize.width / windowSize.height\r\n let itemsPerRow = defaultItemsPerRow\r\n if (aspect > 1) {\r\n itemsPerRow = parseInt(Math.trunc(itemsPerRow * aspect))\r\n }\r\n return itemsPerRow\r\n}\r\n\r\nexport function fixGroupedItems(responseData, keyIdName) {\r\n const { studentItems, items } = responseData\r\n const itemsMap = items.reduce((acc, x) => {\r\n acc[x.id] = x\r\n return acc\r\n }, {})\r\n studentItems.forEach(x => x.item = itemsMap[x[keyIdName]])\r\n return studentItems\r\n}\r\n\r\nexport function reduxUpdateWait() {\r\n return new Promise(resolve => setTimeout(resolve, 200))\r\n}\r\n\r\nexport function deepDiffer(one, two, maxDepth) {\r\n if (maxDepth === 0) {\r\n return true\r\n }\r\n if (one === two) {\r\n // Short circuit on identical object references instead of traversing them.\r\n return false\r\n }\r\n if (typeof one === 'function' && typeof two === 'function') {\r\n // We consider all functions equal unless explicitly configured otherwise\r\n return true\r\n }\r\n if (typeof one !== 'object' || one === null) {\r\n // Primitives can be directly compared\r\n return one !== two\r\n }\r\n if (typeof two !== 'object' || two === null) {\r\n // We know they are different because the previous case would have triggered\r\n // otherwise.\r\n return true\r\n }\r\n if (one.constructor !== two.constructor) {\r\n return true\r\n }\r\n if (Array.isArray(one)) {\r\n // We know two is also an array because the constructors are equal\r\n const len = one.length\r\n if (two.length !== len) {\r\n return true\r\n }\r\n for (let ii = 0; ii < len; ii++) {\r\n if (deepDiffer(one[ii], two[ii], maxDepth - 1)) {\r\n return true\r\n }\r\n }\r\n }\r\n else {\r\n for (const key in one) {\r\n if (deepDiffer(one[key], two[key], maxDepth - 1)) {\r\n return true\r\n }\r\n }\r\n for (const twoKey in two) {\r\n // The only case we haven't checked yet is keys that are in two but aren't\r\n // in one, which means they are different.\r\n if (one[twoKey] === undefined && two[twoKey] !== undefined) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n}\r\n\r\nexport function formatMessage(message, args) {\r\n for (let i = 0; i < args.length; i++) {\r\n const regexp = new RegExp('\\\\{' + i + '\\\\}', 'gi')\r\n message = message.replace(regexp, args[i])\r\n }\r\n return message\r\n}\r\n\r\nexport function timeoutPromise(promise, timeoutInMS, timeoutError) {\r\n if (!timeoutInMS || timeoutInMS <= 0) { // undefined <= 0 returns false in js\r\n return promise\r\n }\r\n // @see https://github.com/github/fetch/issues/175\r\n return new Promise(function (resolve, reject) {\r\n let timeoutId = setTimeout(function() {\r\n timeoutId = undefined\r\n reject(new Error(timeoutError))\r\n }, timeoutInMS)\r\n promise.then(function (value) {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId)\r\n resolve(value)\r\n }\r\n }).catch(function (error) {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId)\r\n reject(error)\r\n }\r\n })\r\n })\r\n}\r\n\r\nexport function groupBy(items, keyProperty, keyValueIfNotExist) {\r\n return (items || []).reduce(function(acc, currItem) {\r\n const key = currItem[keyProperty] || keyValueIfNotExist\r\n acc[key] = acc[key] || []\r\n acc[key].push(currItem)\r\n return acc\r\n }, {})\r\n}\r\n\r\nexport const removeAccents = text => Object.keys(ACCENTS_MAP).reduce((acc, cv) => acc.replace(new RegExp(ACCENTS_MAP[cv], 'gi'), cv), text)\r\n\r\nconst currentYPosition = () => {\r\n // Firefox, Chrome, Opera, Safari\r\n if (self.pageYOffset)\r\n return self.pageYOffset\r\n // Internet Explorer 6 - standards mode\r\n if (document.documentElement && document.documentElement.scrollTop)\r\n return document.documentElement.scrollTop\r\n // Internet Explorer 6, 7 and 8\r\n if (document.body.scrollTop) \r\n return document.body.scrollTop\r\n return 0\r\n}\r\n\r\nconst getElementYPosition = elementRef => {\r\n let y = elementRef.offsetTop\r\n while (elementRef.offsetParent && elementRef.offsetParent != document.body) {\r\n elementRef = elementRef.offsetParent\r\n y += elementRef.offsetTop\r\n }\r\n return y\r\n}\r\n\r\nexport const doScrolling = (elementRef, containerRef, duration = 500) => {\r\n const startingY = currentYPosition()\r\n const fixedHeaderHeight = window.innerWidth >= 600 ? 169 : 135\r\n const diff = getElementYPosition(elementRef) - startingY - fixedHeaderHeight\r\n let start\r\n setTimeout(() => {\r\n window.requestAnimationFrame(function step(timestamp) {\r\n if (!start) start = timestamp\r\n // Elapsed milliseconds since start of scrolling.\r\n const time = timestamp - start\r\n // Get percent of completion in range [0, 1].\r\n const percent = Math.min(time / duration, 1)\r\n containerRef ? containerRef.scrollTo(0, startingY + diff * percent) : window.scrollTo(0, startingY + diff * percent)\r\n // Proceed with animation as long as we wanted it to.\r\n if (time < duration) {\r\n window.requestAnimationFrame(step)\r\n }\r\n })\r\n }, 500)\r\n}\r\n\r\nexport const postponeAction = async (actionFunc, time) => {\r\n return await new Promise(resolve => {\r\n const timeoutHandler = setTimeout(async () => {\r\n const result = await actionFunc()\r\n clearTimeout(timeoutHandler)\r\n resolve(result)\r\n }, time)\r\n })\r\n}","import * as history from 'history'\r\n\r\nexport default history.createBrowserHistory()\r\n","import ActionTypes from 'dpn-common/actions/ActionTypes'\r\n\r\n// clear user dependant data from redux on logout\r\nexport const processUserDependantReducersMap = reducers => Object.keys(reducers).reduce((acc, cv) => {\r\n acc[cv] = (state, action) => {\r\n if (action.type === ActionTypes.LOG_OUT_ACTION) {\r\n state = undefined\r\n }\r\n\r\n return reducers[cv](state, action)\r\n }\r\n return acc\r\n}, {})","import * as Actions from '../../actions/fuse/index'\r\nimport navigationConfig from 'app/fuse-configs/navigationConfig'\r\n\r\nconst initialState = navigationConfig\r\n\r\nconst navigation = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.GET_NAVIGATION:\r\n {\r\n return [\r\n ...state\r\n ]\r\n }\r\n case Actions.SET_NAVIGATION:\r\n {\r\n return [\r\n ...action.navigation\r\n ]\r\n }\r\n case Actions.RESET_NAVIGATION:\r\n {\r\n return [\r\n ...initialState\r\n ]\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default navigation\r\n","import * as Actions from '../../actions/fuse/index'\r\n\r\nconst initialState = {\r\n foldedOpen: false,\r\n mobileOpen: false,\r\n}\r\n\r\nconst navbar = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.TOGGLE_FOLDED_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n foldedOpen: !state.foldedOpen\r\n }\r\n }\r\n case Actions.OPEN_FOLDED_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n foldedOpen: true\r\n }\r\n }\r\n case Actions.CLOSE_FOLDED_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n foldedOpen: false\r\n }\r\n }\r\n case Actions.TOGGLE_MOBILE_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n mobileOpen: !state.mobileOpen\r\n }\r\n }\r\n case Actions.OPEN_MOBILE_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n mobileOpen: true\r\n }\r\n }\r\n case Actions.CLOSE_MOBILE_NAVBAR:\r\n {\r\n return {\r\n ...state,\r\n mobileOpen: false\r\n }\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default navbar","import * as Actions from '../../actions/fuse/index'\r\n\r\nconst initialState = {\r\n state: null,\r\n options: {\r\n anchorOrigin: {\r\n vertical: 'top',\r\n horizontal: 'center'\r\n },\r\n autoHideDuration: 6000,\r\n message: 'Hi',\r\n variant: null\r\n }\r\n}\r\n\r\nconst message = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.SHOW_MESSAGE:\r\n {\r\n return {\r\n state: true,\r\n options: {\r\n ...initialState.options,\r\n ...action.options\r\n }\r\n }\r\n }\r\n case Actions.HIDE_MESSAGE:\r\n {\r\n return {\r\n ...state,\r\n state: null\r\n }\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default message\r\n","import * as Actions from 'app/store/actions/fuse'\r\n\r\nconst initialState = {\r\n state: false,\r\n options: {\r\n children: 'Hi'\r\n }\r\n}\r\n\r\nconst dialog = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.OPEN_DIALOG:\r\n {\r\n return {\r\n ...state,\r\n state: true,\r\n options: {\r\n ...state.options,\r\n ...action.options\r\n }\r\n }\r\n }\r\n case Actions.CLOSE_DIALOG:\r\n {\r\n return {\r\n ...state,\r\n state: false\r\n }\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default dialog\r\n","// import routesConfig from 'app/fuse-configs/routesConfig';\r\n\r\nconst initialState = {}\r\n\r\nconst routes = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default routes\r\n","import { combineReducers } from 'redux'\r\nimport { processUserDependantReducersMap } from 'dpn-common/reducers/reducerUtils'\r\nimport navigation from './navigation.reducer'\r\nimport settings from './settings.reducer'\r\nimport navbar from './navbar.reducer'\r\nimport message from './message.reducer'\r\nimport dialog from './dialog.reducer'\r\nimport routes from './routes.reducer'\r\n\r\nconst generalFuseReducers = {\r\n settings,\r\n}\r\n\r\nconst userDependantFuseReducers = {\r\n navigation,\r\n navbar,\r\n message,\r\n dialog,\r\n routes\r\n}\r\n\r\nconst fuseReducers = combineReducers({ ...(processUserDependantReducersMap(userDependantFuseReducers)), ...generalFuseReducers })\r\n\r\nexport default fuseReducers\r\n","import FetchService from 'dpn-common/services/FetchService'\r\n\r\nexport const TOGGLE_QUICK_PANEL = '[QUICK PANEL] TOGGLE QUICK PANEL'\r\nexport const GET_QUICK_PANEL_DATA = '[QUICK PANEL] GET DATA'\r\n\r\nexport function getQuickPanelData() {\r\n const request = FetchService.executeGet('/api/quick-panel/data')\r\n return (dispatch) =>\r\n request.then((response) =>\r\n dispatch({\r\n type: GET_QUICK_PANEL_DATA,\r\n payload: response.data\r\n })\r\n )\r\n}\r\n\r\nexport function toggleQuickPanel() {\r\n return {\r\n type: TOGGLE_QUICK_PANEL\r\n }\r\n}\r\n","import * as Actions from '../actions'\r\n\r\nconst initialState = {\r\n state: false,\r\n data: null\r\n}\r\n\r\nconst quickPanel = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.GET_QUICK_PANEL_DATA:\r\n {\r\n return {\r\n ...state,\r\n data: action.payload\r\n }\r\n }\r\n case Actions.TOGGLE_QUICK_PANEL:\r\n {\r\n return {\r\n ...state,\r\n state: !state.state\r\n }\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default quickPanel\r\n","import quickPanel from './quickPanel.reducer'\r\n\r\nconst reducer = quickPanel\r\n\r\nexport default reducer\r\n","import ActionTypes from '../actions/ActionTypes'\r\nimport {\r\n setDictionaryState\r\n} from '../utils/HelperFunctions'\r\nimport { USER_TYPES } from '../utils/AppConstants'\r\n\r\nconst baseInitialState = {\r\n pianoAdventuresBooks: undefined,\r\n flashCards: undefined,\r\n videoTutorials: undefined,\r\n teacherVideoTutorials: undefined,\r\n // { studentId1: { groupId1: [skill1, skill2], groupId2: [skill3]}, studentId2: { groupId3: [skill4, skill5] } }\r\n // if student logged in, teacherId instead of studentId\r\n // for now \r\n studentSkills: undefined,\r\n // { studentId1: { groupId1: [reward1, reward2], groupId2: [reward3]}, studentId2: { groupId3: [reward4, reward5] } }\r\n // if student logged in, teacherId instead of studentId\r\n studentRewards: undefined,\r\n auth: {\r\n isInitializing: true,\r\n isLoggedIn: false,\r\n role: USER_TYPES.GUEST,\r\n userData: { role: USER_TYPES.GUEST }\r\n },\r\n homeScreenAccessTimes: 0,\r\n externalLoginFrom: undefined,\r\n}\r\n\r\nexport const mergeUserDataRedux = (oldUserData, newUserData) => ({\r\n ...oldUserData,\r\n ...newUserData,\r\n firstName: newUserData.firstName,\r\n lastName: newUserData.lastName,\r\n email: newUserData.email,\r\n username: newUserData.username,\r\n})\r\n\r\nfunction baseReducer(state = baseInitialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_PIANO_ADVENTURES_BOOKS:\r\n return Object.assign({}, state, {\r\n pianoAdventuresBooks: action.pianoAdventuresBooks\r\n })\r\n case ActionTypes.SET_FLASH_CARDS_ACTION:\r\n return setDictionaryState(state, 'flashCards', action.groupId, action.flashCards)\r\n case ActionTypes.LOG_IN_ACTION:\r\n return Object.assign({}, state, {\r\n auth: {\r\n isLoggedIn: true,\r\n userData: mergeUserDataRedux(state.auth.userData, action.userData),\r\n role: action.userData.role,\r\n isInitializing: false,\r\n }\r\n })\r\n case ActionTypes.LOG_OUT_ACTION:\r\n return Object.assign({}, state, {\r\n auth: {\r\n isLoggedIn: false,\r\n role: USER_TYPES.GUEST,\r\n userData: { role: USER_TYPES.GUEST },\r\n isInitializing: false,\r\n },\r\n homeScreenAccessTimes: 0,\r\n })\r\n case ActionTypes.CHANGE_USER_DATA_ACTION:\r\n return Object.assign({}, state, {\r\n auth: {\r\n ...state.auth,\r\n userData: mergeUserDataRedux(state.auth.userData, action.userData)\r\n }\r\n })\r\n case ActionTypes.CHANGE_LEADERBOARD_PARTICIPATION:\r\n return Object.assign({}, state, {\r\n auth: {\r\n ...state.auth,\r\n userData: {\r\n ...state.auth.userData,\r\n leaderboardParticipation: action.leaderboardParticipation\r\n }\r\n }\r\n })\r\n case ActionTypes.SET_STUDENT_SKILLS:\r\n {\r\n let tempState = state\r\n if (state.studentSkills === undefined) {\r\n tempState = setDictionaryState(state, 'studentSkills', action.userId, {})\r\n }\r\n const groupedSkills = groupByGroupId(action.skills || [], action.groupIds)\r\n let innerDictState = tempState.studentSkills\r\n Object.keys(groupedSkills).forEach(groupId => {\r\n innerDictState = setDictionaryState(innerDictState, action.userId, groupId, groupedSkills[groupId])\r\n })\r\n const newState = setDictionaryState(state, 'studentSkills', action.userId, innerDictState[action.userId])\r\n return newState\r\n }\r\n\r\n case ActionTypes.SET_STUDENT_REWARDS:\r\n {\r\n let tempState = state\r\n if (state.studentRewards === undefined) {\r\n tempState = setDictionaryState(state, 'studentRewards', action.userId, {})\r\n }\r\n \r\n const groupedRewards = groupByGroupId(action.rewards || [], action.groupIds)\r\n let innerDictState = tempState.studentRewards\r\n Object.keys(groupedRewards).forEach(groupId => {\r\n innerDictState = setDictionaryState(innerDictState, action.userId, groupId, groupedRewards[groupId])\r\n })\r\n return setDictionaryState(state, 'studentRewards', action.userId, innerDictState[action.userId])\r\n }\r\n case ActionTypes.SET_VIDEO_TUTORIALS:\r\n return Object.assign({}, state, {\r\n videoTutorials: action.videoTutorials\r\n })\r\n case ActionTypes.SET_TEACHER_VIDEO_TUTORIALS:\r\n return Object.assign({}, state, {\r\n teacherVideoTutorials: action.videoTutorials\r\n })\r\n case ActionTypes.HOME_SCREEN_ACCESS_TIMES_INC:\r\n return Object.assign({}, state, {\r\n homeScreenAccessTimes: state.homeScreenAccessTimes + 1\r\n })\r\n case ActionTypes.EXTERNAL_LOGIN_FROM:\r\n return Object.assign({}, state, {\r\n externalLoginFrom: action.from\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default baseReducer\r\n\r\nfunction groupByGroupId(items, groupIds) {\r\n const itemsReduceFunc = (acc, cv) => {\r\n if (!acc[cv.item.groupId]) {\r\n acc[cv.item.groupId] = []\r\n }\r\n acc[cv.item.groupId].push(cv)\r\n return acc\r\n }\r\n const itemsMap = items.reduce(itemsReduceFunc, {})\r\n return groupIds && groupIds.length > 0\r\n ?\r\n groupIds.reduce((acc, cv) => {\r\n acc[cv] = itemsMap[cv] || []\r\n return acc\r\n }, {})\r\n :\r\n itemsMap\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n replaceOldItem, updateOldItem, setDictionaryState,\r\n addItemToItemsInDictionary, changeItemInItemsInDictionary,\r\n deleteItem\r\n} from '../utils/HelperFunctions'\r\n\r\n\r\nconst initialState = {\r\n skills: undefined,\r\n rewards: undefined,\r\n importStarted: false\r\n}\r\n\r\nfunction teacherReducer(state = initialState, action) {\r\n switch (action.type) {\r\n\r\n case ActionTypes.TEACHER_SET_SKILLS_ACTION: {\r\n const groupedSkills = groupByGroupId(action.skills || [], action.groupIds)\r\n let tempState = state\r\n Object.keys(groupedSkills).forEach(groupId => {\r\n tempState = setDictionaryState(tempState, 'skills', groupId, groupedSkills[groupId])\r\n })\r\n return tempState\r\n }\r\n case ActionTypes.TEACHER_ADD_SKILL_ACTION:\r\n return addItemToItemsInDictionary(state, 'skills', \r\n action.skill.groupId, action.skill, skillCompareFunc)\r\n case ActionTypes.TEACHER_SKILL_CHANGE_IS_ACTIVE_ACTION:\r\n return changeItemInItemsInDictionary(state, 'skills', action.groupId, \r\n updateItemCreate(action.id, x => x.isActive = action.isActive, skillCompareFunc))\r\n case ActionTypes.TEACHER_UPDATE_SKILL_ACTION:\r\n return changeItemInItemsInDictionary(state, 'skills', action.skill.groupId, \r\n replaceOldItemCreate(action.skill, skillCompareFunc))\r\n case ActionTypes.TEACHER_DELETE_SKILL_ACTION:\r\n return changeItemInItemsInDictionary(state, 'skills', action.skill.groupId,\r\n deleteItemCreate(action.skill.id))\r\n\r\n case ActionTypes.TEACHER_ADD_OR_UPDATE_SKILLS_ACTION: {\r\n let tempState = state\r\n const newSkillsGrouped = groupByGroupId(action.skills || [], action.groupIds)\r\n Object.keys(newSkillsGrouped).forEach(groupId => {\r\n const groupSkills = state.skills && state.skills[groupId]\r\n if (!groupSkills) {\r\n // if there were no items for that groupId\r\n tempState = setDictionaryState(tempState, 'skills', groupId, newSkillsGrouped[groupId])\r\n }\r\n else {\r\n const newGroupSkills = newSkillsGrouped[groupId]\r\n newGroupSkills.forEach(newSkill => {\r\n // go through all new items and see if we should add or update\r\n if (groupSkills.find(x => x.id === newSkill.id)) {\r\n // updating\r\n tempState = changeItemInItemsInDictionary(tempState, 'skills', groupId, \r\n replaceOldItemCreate(newSkill, skillCompareFunc))\r\n }\r\n else {\r\n // adding\r\n tempState = addItemToItemsInDictionary(tempState, 'skills', \r\n groupId, newSkill, skillCompareFunc)\r\n }\r\n })\r\n }\r\n })\r\n return tempState\r\n }\r\n\r\n case ActionTypes.TEACHER_SET_REWARDS_ACTION: {\r\n const groupedRewards = groupByGroupId(action.rewards || [], action.groupIds)\r\n let tempState = state\r\n Object.keys(groupedRewards).forEach(groupId => {\r\n tempState = setDictionaryState(tempState, 'rewards', groupId, groupedRewards[groupId])\r\n })\r\n return tempState\r\n }\r\n case ActionTypes.TEACHER_ADD_REWARD_ACTION:\r\n return addItemToItemsInDictionary(state, 'rewards', \r\n action.reward.groupId, action.reward, rewardCompareFunc)\r\n case ActionTypes.TEACHER_REWARD_CHANGE_IS_ACTIVE_ACTION:\r\n return changeItemInItemsInDictionary(state, 'rewards', action.groupId, \r\n updateItemCreate(action.id, x => x.isActive = action.isActive, rewardCompareFunc))\r\n case ActionTypes.TEACHER_UPDATE_REWARD_ACTION:\r\n return changeItemInItemsInDictionary(state, 'rewards', action.reward.groupId, \r\n replaceOldItemCreate(action.reward, rewardCompareFunc))\r\n case ActionTypes.TEACHER_DELETE_REWARD_ACTION:\r\n return changeItemInItemsInDictionary(state, 'rewards', action.reward.groupId,\r\n deleteItemCreate(action.reward.id))\r\n\r\n case ActionTypes.TEACHER_ADD_OR_UPDATE_REWARDS_ACTION: {\r\n let tempState = state\r\n const newRewardsGrouped = groupByGroupId(action.rewards || [], action.groupIds)\r\n Object.keys(newRewardsGrouped).forEach(groupId => {\r\n const groupRewards = state.rewards && state.rewards[groupId]\r\n if (!groupRewards) {\r\n // if there were no items for that groupId\r\n tempState = setDictionaryState(tempState, 'rewards', groupId, newRewardsGrouped[groupId])\r\n }\r\n else {\r\n const newGroupRewards = newRewardsGrouped[groupId]\r\n newGroupRewards.forEach(newReward => {\r\n // go through all new items and see if we should add or update\r\n if (groupRewards.find(x => x.id === newReward.id)) {\r\n // updating\r\n tempState = changeItemInItemsInDictionary(tempState, 'rewards', groupId, \r\n replaceOldItemCreate(newReward, rewardCompareFunc))\r\n }\r\n else {\r\n // adding\r\n tempState = addItemToItemsInDictionary(tempState, 'rewards', \r\n groupId, newReward, rewardCompareFunc)\r\n }\r\n })\r\n }\r\n })\r\n return tempState\r\n }\r\n case ActionTypes.IMPORT_DEMO_STUDENTS: {\r\n return {\r\n ...state,\r\n importStarted: action.isStarted\r\n }\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default teacherReducer\r\n\r\nfunction groupByGroupId(items, groupIds) {\r\n const itemsReduceFunc = (acc, cv) => {\r\n if (!acc[cv.groupId]) {\r\n acc[cv.groupId] = []\r\n }\r\n acc[cv.groupId].push(cv)\r\n return acc\r\n }\r\n const itemsMap = items.reduce(itemsReduceFunc, {})\r\n return groupIds && groupIds.length > 0\r\n ?\r\n groupIds.reduce((acc, cv) => {\r\n acc[cv] = itemsMap[cv] || []\r\n return acc\r\n }, {})\r\n :\r\n itemsMap\r\n}\r\n\r\nconst getItemName = x => (x && (x.name || (x.item && x.item.name))) || ''\r\n\r\nexport function skillCompareFunc(skill) {\r\n return x => getItemName(x).toLowerCase() > getItemName(skill).toLowerCase()\r\n}\r\n\r\nexport function rewardCompareFunc(reward) {\r\n return x => getItemName(x).toLowerCase() > getItemName(reward).toLowerCase()\r\n}\r\n\r\nfunction replaceOldItemCreate(item, compareFunc) {\r\n return items => replaceOldItem(items, item, compareFunc)\r\n}\r\n\r\nfunction updateItemCreate(id, updateFunc, compareFunc) {\r\n const changeFunc = items => updateOldItem(items, id, updateFunc, compareFunc)\r\n return changeFunc\r\n}\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}","import ActionTypes from '../actions/ActionTypes'\r\n\r\nconst initialState = {\r\n teacher: undefined,\r\n children: undefined,\r\n}\r\n\r\nfunction studentReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.STUDENT_SET_CHOSEN_TEACHER_ACTION:\r\n return Object.assign({}, state, {\r\n teacher: action.teacher\r\n })\r\n case ActionTypes.CHANGE_LEADERBOARD_PARTICIPATION: {\r\n if (!state.teacher) {\r\n return state\r\n }\r\n\r\n const teacher = {\r\n ...state.teacher,\r\n leaderboardParticipation: state.teacher.leaderboardParticipationByTeacherStudent && state.teacher.leaderboardParticipationByTeacher && action.leaderboardParticipation,\r\n leaderboardParticipationByStudent: action.leaderboardParticipation\r\n }\r\n\r\n return Object.assign({}, state, { teacher })\r\n }\r\n case ActionTypes.SET_STUDENT_CHILDREN:\r\n return Object.assign({}, state, {\r\n children: action.children\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default studentReducer","import ActionTypes from '../actions/ActionTypes'\r\nimport {\r\n addItemToItemsInDictionary, changeItemInItemsInDictionary, deleteItem,\r\n replaceOldItem, setDictionaryState, groupBy\r\n} from '../utils/HelperFunctions'\r\n\r\n\r\nconst initialState = {\r\n // { groupId1: { parent: [assignment1, assignment2, ...] } }\r\n assignments: undefined,\r\n}\r\n\r\nfunction assignmentReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_ASSIGNMENTS_FOR_ASSIGNMENT_FOLDER: {\r\n const assignments = { ...state.assignments }\r\n if (action.assignmentFolderId) {\r\n assignments[action.groupId] = {\r\n ...assignments[action.groupId],\r\n [action.assignmentFolderId]: action.assignments\r\n }\r\n return {\r\n ...state,\r\n assignments\r\n }\r\n }\r\n else if (action.streamed) {\r\n const assignments = { ...state.assignments }\r\n if (action.clear || !(action.groupId in assignments)) {\r\n assignments[action.groupId] = {}\r\n }\r\n else {\r\n assignments[action.groupId] = { ...assignments[action.groupId] }\r\n }\r\n const grouped = groupBy(action.assignments, 'parentId', 0)\r\n const parentIds = Object.keys(grouped)\r\n parentIds.forEach(parentId => {\r\n const idsMap = new Set(grouped[parentId].map(x => x.id))\r\n const oldItems = (assignments[action.groupId][parentId] || []).filter(x => !idsMap.has(x.id))\r\n assignments[action.groupId][parentId] = oldItems.concat(grouped[parentId])\r\n })\r\n return {\r\n ...state,\r\n assignments\r\n }\r\n }\r\n else {\r\n assignments[action.groupId] = {}\r\n const recursive = (list, parentId) => {\r\n assignments[action.groupId][parentId] = list\r\n list.forEach(x => {\r\n if (x.children && x.children.length) {\r\n recursive(x.children, x.id)\r\n }\r\n })\r\n }\r\n recursive(action.assignments, 0)\r\n return {\r\n ...state,\r\n assignments,\r\n }\r\n }\r\n }\r\n\r\n case ActionTypes.ADD_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: {\r\n const assignmentFolderId = action.assignmentFolderId ? action.assignmentFolderId : 0\r\n // addItemToItemsInDictionary will be calledif assignments[groupId] exists and its [] or array with more than zero elements\r\n const tempState = state.assignments[action.groupId]\r\n ? addItemToItemsInDictionary(state.assignments || {}, action.groupId, assignmentFolderId, action.assignment, compareFunc)\r\n : setDictionaryState(state.assignments || {}, action.groupId, assignmentFolderId, [action.assignment])\r\n \r\n return setDictionaryState(state, 'assignments', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n case ActionTypes.UPDATE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: {\r\n const assignmentFolderId = action.assignmentFolderId ? action.assignmentFolderId : 0\r\n const tempState = changeItemInItemsInDictionary(state.assignments || {}, action.groupId, assignmentFolderId,\r\n replaceOldItemCreate(action.assignment, compareFunc))\r\n return setDictionaryState(state, 'assignments', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n case ActionTypes.DELETE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER: {\r\n const assignmentFolderId = action.assignmentFolderId ? action.assignmentFolderId : 0\r\n const tempState = changeItemInItemsInDictionary(state.assignments || {}, action.groupId, assignmentFolderId,\r\n deleteItemCreate(action.id))\r\n return setDictionaryState(state, 'assignments', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nfunction compareFunc(assignment) {\r\n return x => {\r\n if (x.order != assignment.order) {\r\n return x.order > assignment.order\r\n }\r\n if (x.color != assignment.color) {\r\n return x.color > assignment.color\r\n }\r\n if (x.name != assignment.name) {\r\n return x.name.toLowerCase() > assignment.name.toLowerCase()\r\n }\r\n return x.id > assignment.id\r\n }\r\n}\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}\r\n\r\nfunction replaceOldItemCreate(item, compareFunc) {\r\n return items => replaceOldItem(items, item, compareFunc)\r\n}\r\n\r\nexport default assignmentReducer\r\n","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n setDictionaryState, getFromDict, deleteItem,\r\n changeItemInItemsInDictionary\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n conversations: undefined,\r\n channels: undefined,\r\n groupMessages: {}, // mapped by group id\r\n}\r\n\r\nfunction privateMessageReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.PRIVATE_MESSAGE_ADD_MESSAGES_TO_GROUPS: {\r\n const keyConversations = !action.isChannel ? 'conversations' : 'channels'\r\n let result = updateConversations(action.messages, keyConversations, state)\r\n if (result.hasChanges) {\r\n console.log('PrivateMessage reducer conversations change')\r\n state = result.state\r\n }\r\n result = updateGroupMessages(action.messages, state)\r\n if (result.hasChanges) {\r\n console.log('PrivateMessage reducer messages change')\r\n state = result.state\r\n }\r\n\r\n return state\r\n }\r\n\r\n case ActionTypes.PRIVATE_MESSAGE_ADD_CONVERSATIONS: {\r\n const keyConversations = !action.groupType ? 'conversations' : 'channels'\r\n const result = updateConversations(action.messages, keyConversations, state)\r\n if (result.hasChanges) {\r\n console.log('PrivateMessage reducer conversations change')\r\n state = result.state\r\n }\r\n return state\r\n }\r\n case ActionTypes.PRIVATE_MESSAGE_ADD_GROUP_MESSAGES: {\r\n if (action.clearCache) {\r\n state = setDictionaryState(state, 'groupMessages', action.groupId, action.messages)\r\n }\r\n else {\r\n const oldMessages = getFromDict(state.groupMessages, action.groupId)\r\n const newMessages = mergeGroupMessages(oldMessages, action.messages)\r\n if (oldMessages != newMessages) {\r\n console.log(`PrivateMessage reducer messages change ${action.groupId}`)\r\n state = setDictionaryState(state, 'groupMessages', action.groupId, newMessages)\r\n }\r\n }\r\n return state\r\n }\r\n case ActionTypes.PRIVATE_MESSAGE_DELETE: {\r\n let changedState = state\r\n // when last message is deleted, update conversation\r\n if (state && state.conversations && state.groupMessages) {\r\n const conversation = state.conversations.find(x => x.groupIds[0] == action.groupId)\r\n if (conversation && conversation.id == action.messageId) {\r\n const messages = getFromDict(state.groupMessages, action.groupId, [])\r\n const msg = messages.filter(x => x.id !== action.messageId).pop()\r\n if (msg) {\r\n const newConversations = state.conversations.map(x => {\r\n return x === conversation ? { ...msg, groupIds: x.groupIds } : x\r\n })\r\n changedState = Object.assign({}, state, {\r\n conversations: newConversations\r\n })\r\n }\r\n else {\r\n changedState = Object.assign({}, state, {\r\n conversations: state.conversations.filter(x => x.id !== conversation.id)\r\n })\r\n }\r\n }\r\n }\r\n return changeItemInItemsInDictionary(changedState, 'groupMessages', action.groupId,\r\n deleteItemCreate(action.messageId))\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default privateMessageReducer\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}\r\n\r\nfunction mergeGroupMessages(oldMessages, newMessages, mustContainLastMessage) {\r\n if (!newMessages || newMessages.length === 0) {\r\n return oldMessages\r\n }\r\n\r\n // backend returns messages ordered from bigger id to lower id if offset is == 0\r\n // or offset is > 0 and limit is negative.\r\n // maybe this will be fixed on backend, but until then\r\n if (newMessages.length > 1 && newMessages[0].id > newMessages[1].id) {\r\n newMessages.reverse()\r\n }\r\n\r\n // if there are no old messages, just return newMessages\r\n if (!oldMessages || oldMessages.length === 0) {\r\n return newMessages \r\n }\r\n\r\n // if mustContainLastMessage:\r\n // - if last old message is not included in new messages only new messages are returned\r\n // - if last old message is last message in new messages then nothing has changed\r\n // - otherwise concat old messages to portion of new messages\r\n const oldLastMessageId = oldMessages[oldMessages.length - 1].id\r\n if (mustContainLastMessage) {\r\n const index = newMessages.findIndex(x => x.id == oldLastMessageId)\r\n if (index === -1) {\r\n return newMessages\r\n }\r\n else if (index === newMessages.length - 1) {\r\n return oldMessages\r\n }\r\n const sliced = newMessages.slice(index + 1, newMessages.length)\r\n return oldMessages.concat(sliced)\r\n }\r\n \r\n const oldLastMsgId = oldMessages[oldMessages.length - 1].id\r\n // check if it should add new messages on the end\r\n for (let i = 0; i < newMessages.length; ++i) {\r\n if (oldLastMsgId < newMessages[i].id) {\r\n const newMessagesSliced = newMessages.slice(i, newMessages.length)\r\n const returnMessages = oldMessages.concat(newMessagesSliced)\r\n return returnMessages\r\n }\r\n }\r\n \r\n const oldFirstMsgId = oldMessages[0].id\r\n // check if it should add new messages on the begining\r\n for (let i = newMessages.length - 1; i >= 0; --i) {\r\n if (oldFirstMsgId > newMessages[i].id) {\r\n const returnMessages = newMessages.slice(0, i + 1).concat(oldMessages)\r\n return returnMessages\r\n }\r\n }\r\n \r\n return oldMessages\r\n}\r\n\r\nfunction updateConversations(messages, keyConversations, state) {\r\n let hasChanges = false\r\n\r\n let conversations = state[keyConversations] || []\r\n const mapGroupIdMessage = conversations.reduce((acc, x) => {\r\n const groupId = x.groupIds[0]\r\n acc[groupId] = x\r\n return acc\r\n }, {})\r\n\r\n messages.forEach(message => {\r\n message.groupIds.forEach(groupId => {\r\n if (!(groupId in mapGroupIdMessage) || mapGroupIdMessage[groupId].id < message.id) {\r\n mapGroupIdMessage[groupId] = { ...message, groupIds: [groupId] }\r\n hasChanges = true\r\n }\r\n })\r\n })\r\n\r\n if (hasChanges) {\r\n conversations = Object.values(mapGroupIdMessage)\r\n .sort((a, b) => {\r\n const diff = Math.sign(b.id - a.id)\r\n return diff != 0 ? diff : Math.sign(b.groupIds[0] - a.groupIds[0])\r\n })\r\n state = Object.assign({}, state, {\r\n [keyConversations]: conversations\r\n })\r\n }\r\n return { hasChanges, state }\r\n}\r\n\r\nfunction updateGroupMessages(messages, state) {\r\n const mapGroupIdMessages = {}\r\n messages.forEach(message => {\r\n message.groupIds.forEach(groupId => {\r\n if (!(groupId in mapGroupIdMessages)) {\r\n mapGroupIdMessages[groupId] = [message]\r\n }\r\n else {\r\n mapGroupIdMessages[groupId].push(message)\r\n }\r\n })\r\n })\r\n\r\n let hasChanges = false\r\n for (let groupId in mapGroupIdMessages) {\r\n const oldMessages = getFromDict(state.groupMessages, groupId)\r\n const newMessages = mapGroupIdMessages[groupId]\r\n const updatedMessages = mergeGroupMessages(oldMessages, newMessages, false)\r\n if (updatedMessages != oldMessages) {\r\n hasChanges = true\r\n state = setDictionaryState(state, 'groupMessages', groupId, updatedMessages)\r\n }\r\n }\r\n return { hasChanges, state }\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport { NOTIFICATION_TYPES } from '../utils/NotificationsConstants'\r\nimport { deepDiffer } from 'dpn-common/utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n settings: {\r\n languageCode: 'en-US',\r\n notifications: Object.values(NOTIFICATION_TYPES),\r\n emailNotifications: undefined,\r\n },\r\n languages: undefined,\r\n languageDefinition: {},\r\n}\r\n\r\nfunction settingsAndLanguagesReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_SETTINGS_ACTION:\r\n if (areDiffer(action.settings, state.settings)) {\r\n state = Object.assign({}, state, {\r\n settings: action.settings,\r\n })\r\n }\r\n break \r\n case ActionTypes.SET_LANGUAGES_ACTION:\r\n state = Object.assign({}, state, {\r\n languages: action.languages\r\n })\r\n break\r\n case ActionTypes.SET_NOTIFICATIONS_ACTION:\r\n state = Object.assign({}, state, {\r\n settings: { ...state.settings, notifications: action.notifications }\r\n })\r\n break\r\n case ActionTypes.SET_EMAIL_NOTIFICATIONS_ACTION:\r\n state = Object.assign({}, state, {\r\n settings: { ...state.settings, emailNotifications: action.emailNotifications }\r\n })\r\n break\r\n case ActionTypes.SET_LANGUAGE_DEFINITION_ACTION:\r\n state = Object.assign({}, state, {\r\n languageDefinition: action.languageDefinition\r\n })\r\n break\r\n case ActionTypes.SET_LANGUAGE_CODE_ACTION:\r\n state = Object.assign({}, state, {\r\n settings: { ...state.settings, languageCode: action.languageCode }\r\n })\r\n break\r\n }\r\n return state\r\n}\r\n\r\nexport default settingsAndLanguagesReducer\r\n\r\nfunction areDiffer(newSettings, oldSettings) {\r\n let result = false\r\n if (newSettings) {\r\n const oldKeys = Object.keys(oldSettings)\r\n const newKeys = Object.keys(newSettings)\r\n result = oldKeys.length == newKeys.length &&\r\n oldKeys.every(x => x in newSettings && newSettings[x] !== undefined) &&\r\n deepDiffer(newSettings, oldSettings)\r\n }\r\n return result\r\n}","import ActionTypes from '../actions/ActionTypes'\r\n\r\nconst initialState = {\r\n emoticons: undefined,\r\n}\r\n\r\nfunction emoticonReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_EMOTICONS_ACTION:\r\n return Object.assign({}, state, {\r\n emoticons: action.emoticons,\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default emoticonReducer\r\n","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n insertAtPosition,\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n sentences: undefined,\r\n}\r\n\r\nfunction sentencesReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SENTENCE_ADD_ACTION:\r\n return Object.assign({}, state, {\r\n sentences: insertAtPosition(state.sentences, action.sentence, compareFunc)\r\n })\r\n case ActionTypes.SENTENCE_UPDATE_ACTION:\r\n return Object.assign({}, state, {\r\n sentences: replaceItem(state.sentences, action.sentence, compareFunc)\r\n })\r\n case ActionTypes.SENTENCES_SET_ACTION:\r\n return Object.assign({}, state, {\r\n sentences: action.sentences\r\n })\r\n case ActionTypes.SENTENCE_DELETE_ACTION:\r\n return Object.assign({}, state, {\r\n sentences: state.sentences.filter(x => x.id !== action.sentence.id || x.isGlobal !== action.sentence.isGlobal)\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default sentencesReducer\r\n\r\nfunction compareFunc(sentence) {\r\n return x => {\r\n // return user defined first\r\n if (x.isGlobal !== sentence.isGlobal) {\r\n return !sentence.isGlobal\r\n }\r\n if (x.order != sentence.order) {\r\n return x.order > sentence.order\r\n }\r\n // desc order of id - newly created appears first\r\n return x.id < sentence.id\r\n }\r\n}\r\n\r\nfunction replaceItem(items, newItem, itemCompareFunc) {\r\n const item = items.find(x => x.id === newItem.id && x.isGlobal === newItem.isGlobal)\r\n if (item) {\r\n const newItems = items.filter(x => x.id !== newItem.id || x.isGlobal !== newItem.isGlobal)\r\n return insertAtPosition(newItems, newItem, itemCompareFunc)\r\n }\r\n return items\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n replaceOldItem, updateOldItem, setDictionaryState,\r\n addItemToItemsInDictionary, changeItemInItemsInDictionary\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n schoolYears: {},\r\n}\r\n\r\nfunction schoolYearsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SCHOOL_YEAR_ADD_ACTION:\r\n return addItemToItemsInDictionary(state, 'schoolYears',\r\n action.teacherId, action.schoolYear, schoolYearCompareFunc)\r\n case ActionTypes.SCHOOL_YEAR_UPDATE_ACTION:\r\n return changeItemInItemsInDictionary(state, 'schoolYears',\r\n action.teacherId, replaceOldSchoolYear(action.schoolYear))\r\n case ActionTypes.SCHOOL_YEAR_ACTIVATE_ACTION:\r\n return changeItemInItemsInDictionary(state, 'schoolYears',\r\n action.teacherId, updateSchoolYearIsActive(action.id, action.isActive))\r\n case ActionTypes.SCHOOL_YEARS_SET_ACTION:\r\n return setDictionaryState(state, 'schoolYears', action.teacherId, action.schoolYears)\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default schoolYearsReducer\r\n\r\nfunction replaceOldSchoolYear(schoolYear) {\r\n return schoolYearsByKey => replaceOldItem(schoolYearsByKey, schoolYear, schoolYearCompareFunc)\r\n}\r\n\r\nfunction updateSchoolYearIsActive(id, value) {\r\n return schoolYearsByKey => updateOldItem(schoolYearsByKey, id, \r\n x => x.isActive = value, schoolYearCompareFunc)\r\n}\r\n\r\nfunction schoolYearCompareFunc(schoolYear) {\r\n return x => {\r\n if (x.isActive !== schoolYear.isActive) {\r\n return !x.isActive\r\n }\r\n if (x.startDate !== schoolYear.startDate) {\r\n return x.startDate < schoolYear.startDate\r\n }\r\n return x.id < schoolYear.id\r\n }\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n replaceOldItem, deleteItem, insertAtPositionMutable,\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n assignLevels: undefined,\r\n}\r\n\r\nfunction assignLevelsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.ASSIGN_LEVELS_SET_ACTION:\r\n return Object.assign({}, state, {\r\n assignLevels: action.assignLevels\r\n })\r\n case ActionTypes.ASSIGN_LEVEL_ADD_ACTION:\r\n return Object.assign({}, state, {\r\n assignLevels: insertAtPositionMutable([...state.assignLevels], action.assignLevel, assignLevelCompareFunc)\r\n })\r\n case ActionTypes.ASSIGN_LEVEL_UPDATE_ACTION:\r\n return Object.assign({}, state, {\r\n assignLevels: replaceOldItem([...state.assignLevels], action.assignLevel, assignLevelCompareFunc)\r\n })\r\n case ActionTypes.ASSIGN_LEVEL_DELETE_ACTION:\r\n return Object.assign({}, state, {\r\n assignLevels: deleteItem([...state.assignLevels], action.assignLevel.id)\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default assignLevelsReducer\r\n\r\nfunction assignLevelCompareFunc(assignLevel) {\r\n return x => {\r\n if (x.order != assignLevel.order) {\r\n return x.order > assignLevel.order\r\n }\r\n if (x.color != assignLevel.color) {\r\n return x.color > assignLevel.color\r\n }\r\n if (x.name != assignLevel.name) {\r\n return x.name.toLowerCase() > assignLevel.name.toLowerCase()\r\n }\r\n return x.id > assignLevel.id\r\n }\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport {\r\n setDictionaryState, addItemToItemsInDictionary,\r\n changeItemInItemsInDictionary, replaceOldItem, deleteItem\r\n} from '../utils/HelperFunctions'\r\nimport { GROUP_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport { mergeUserDataRedux } from './BaseReducer'\r\n\r\nconst initialState = {\r\n globalGroups: [],\r\n userGroups: [],\r\n users: [],\r\n students: [],\r\n selectedGroupStudentIds: [],\r\n notes: {}\r\n}\r\n\r\nfunction groupReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.GROUPS_DATA_SET_ACTION:\r\n return Object.assign({}, state, {\r\n globalGroups: action.data.globalGroups ? action.data.globalGroups : state.globalGroups,\r\n userGroups: action.data.userGroups ? action.data.userGroups : state.userGroups,\r\n users: action.data.users ? action.data.users : state.users,\r\n students: action.data.students ? action.data.students : state.students\r\n })\r\n case ActionTypes.GROUP_DELETE_ACTION:\r\n return Object.assign({}, state, {\r\n userGroups: state.userGroups ? state.userGroups.filter(x => x.id !== action.groupId) : state.userGroups,\r\n })\r\n case ActionTypes.SELECTED_GROUP_STUDENTS_SET:\r\n return Object.assign({}, state, {\r\n selectedGroupStudentIds: action.selectedGroupStudentIds\r\n })\r\n case ActionTypes.SET_GROUP_NOTES_ACTION: {\r\n return setDictionaryState(state, 'notes', action.groupId, action.notes)\r\n }\r\n case ActionTypes.ADD_GROUP_NOTE_ACTION: {\r\n return addItemToItemsInDictionary(state, 'notes',\r\n action.groupId, action.note, noteCompareFunc)\r\n }\r\n case ActionTypes.UPDATE_GROUP_NOTE_ACTION: {\r\n return changeItemInItemsInDictionary(state, 'notes', action.groupId,\r\n replaceOldItemCreate(action.note, noteCompareFunc))\r\n }\r\n case ActionTypes.DELETE_GROUP_NOTE_ACTION: {\r\n return changeItemInItemsInDictionary(state, 'notes', action.groupId,\r\n deleteItemCreate(action.noteId))\r\n }\r\n case ActionTypes.DELETE_GROUP_NOTES_ACTION: {\r\n const noteIds = action.noteIds\r\n let tempState = state\r\n noteIds.forEach(id => \r\n tempState = changeItemInItemsInDictionary(tempState, 'notes', action.groupId,\r\n deleteItemCreate(id)))\r\n return tempState\r\n }\r\n case ActionTypes.ACTIVE_STUDENT_UPDATE: {\r\n return {\r\n ...state,\r\n students: state.students.map((item) => {\r\n if (action.studentId in item.students) {\r\n return {\r\n ...item,\r\n students: {\r\n ...item.students,\r\n [action.studentId]: {\r\n ...item.students[action.studentId],\r\n isActive: action.isActive\r\n }\r\n }\r\n }\r\n }\r\n\r\n return {\r\n ...item\r\n }\r\n }),\r\n userGroups: state.userGroups.map((item) => {\r\n return {\r\n ...item,\r\n users: item.users.map((x) => {\r\n if (action.studentId !== x.userId) {\r\n return x\r\n }\r\n \r\n return {\r\n ...x,\r\n isActive: action.isActive\r\n }\r\n })\r\n }\r\n }),\r\n }\r\n }\r\n case ActionTypes.DELETE_STUDENT: {\r\n return {\r\n ...state,\r\n users: state.users.filter(x => x.id !== action.studentId),\r\n students: state.students.map((item) => {\r\n if (action.studentId in item.students) {\r\n const newStudents = { ...item.students }\r\n delete newStudents[action.studentId]\r\n return {\r\n ...item,\r\n students: newStudents\r\n }\r\n }\r\n\r\n return {\r\n ...item\r\n }\r\n }),\r\n userGroups: state.userGroups\r\n .filter(x => !(x.userId === action.teacherId && x.users.some(y => y.userId === action.studentId) && x.groupType === GROUP_TYPES.TEACHER_SINGLE_STUDENT))\r\n .map((item) => {\r\n return {\r\n ...item,\r\n users: item.users.filter(x => x.userId !== action.studentId)\r\n }\r\n }),\r\n }\r\n }\r\n // if user change his/hers data, those changes should reflect on corresponding user in state.users\r\n case ActionTypes.CHANGE_USER_DATA_ACTION: {\r\n const users = state.users.map(x => {\r\n if (x.id !== action.userData.id) {\r\n return x\r\n }\r\n return mergeUserDataRedux(x, action.userData)\r\n })\r\n return {\r\n ...state,\r\n users,\r\n }\r\n }\r\n \r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default groupReducer\r\n\r\n// function studentCompareFunc(student) {\r\n// return x => x.firstName > student.firstName || (x.firstName === student.firstName && x.lastName > student.lastName)\r\n// }\r\n\r\nfunction noteCompareFunc(note) {\r\n return x => {\r\n if (x.order !== note.order) {\r\n return x.order > note.order\r\n }\r\n if (x.name != note.name) {\r\n return x.name.toLowerCase() > note.name.toLowerCase()\r\n }\r\n return x.id < note.id\r\n }\r\n}\r\n\r\nfunction replaceOldItemCreate(item, compareFunc) {\r\n return items => replaceOldItem(items, item, compareFunc)\r\n}\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}","import ActionTypes from '../actions/ActionTypes'\r\n\r\nconst initialState = {\r\n premadeAvatars: undefined,\r\n}\r\n\r\nfunction premadeAvatarsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_PREMADE_AVATARS_ACTION:\r\n return Object.assign({}, state, {\r\n premadeAvatars: action.premadeAvatars,\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default premadeAvatarsReducer","import ActionTypes from '../actions/ActionTypes'\r\nimport {\r\n addItemToItemsInDictionary, changeItemInItemsInDictionary, deleteItem,\r\n replaceOldItem, setDictionaryState\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n // { groupId1: { parent: [note1, note2, ...] } }\r\n notes: undefined,\r\n}\r\n\r\nfunction notesReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_NOTES_FOR_NOTE_FOLDER: {\r\n const notes = { ...state.notes }\r\n if (action.noteFolderId) {\r\n notes[action.groupId] = {\r\n ...notes[action.groupId],\r\n [action.noteFolderId]: action.notes\r\n }\r\n return {\r\n ...state,\r\n notes\r\n }\r\n }\r\n else {\r\n notes[action.groupId] = {}\r\n const recursive = (list, parentId) => {\r\n notes[action.groupId][parentId] = list\r\n list.forEach(x => {\r\n if (x.children && x.children.length) {\r\n recursive(x.children, x.id)\r\n }\r\n })\r\n }\r\n recursive(action.notes, 0)\r\n return {\r\n ...state,\r\n notes,\r\n }\r\n }\r\n }\r\n\r\n case ActionTypes.ADD_NOTE_FOR_NOTE_FOLDER: {\r\n const noteFolderId = action.noteFolderId ? action.noteFolderId : 0\r\n // addItemToItemsInDictionary will be calledif notes[groupId] exists and its [] or array with more than zero elements\r\n const tempState = state.notes[action.groupId]\r\n ? addItemToItemsInDictionary(state.notes || {}, action.groupId, noteFolderId, action.note, compareFunc)\r\n : setDictionaryState(state.notes || {}, action.groupId, noteFolderId, [action.note])\r\n \r\n return setDictionaryState(state, 'notes', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n case ActionTypes.UPDATE_NOTE_FOR_NOTE_FOLDER: {\r\n const noteFolderId = action.noteFolderId ? action.noteFolderId : 0\r\n const tempState = changeItemInItemsInDictionary(state.notes || {}, action.groupId, noteFolderId,\r\n replaceOldItemCreate(action.note, compareFunc))\r\n return setDictionaryState(state, 'notes', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n case ActionTypes.DELETE_NOTE_FOR_NOTE_FOLDER: {\r\n const noteFolderId = action.noteFolderId ? action.noteFolderId : 0\r\n const tempState = changeItemInItemsInDictionary(state.notes || {}, action.groupId, noteFolderId,\r\n deleteItemCreate(action.id))\r\n return setDictionaryState(state, 'notes', action.groupId, tempState[action.groupId])\r\n }\r\n\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nfunction compareFunc(note) {\r\n return x => {\r\n if (x.order != note.order) {\r\n return x.order > note.order\r\n }\r\n if (x.color != note.color) {\r\n return x.color > note.color\r\n }\r\n if (x.name != note.name) {\r\n return x.name.toLowerCase() > note.name.toLowerCase()\r\n }\r\n return x.id > note.id\r\n }\r\n}\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}\r\n\r\nfunction replaceOldItemCreate(item, compareFunc) {\r\n return items => replaceOldItem(items, item, compareFunc)\r\n}\r\n\r\n\r\nexport default notesReducer","import ActionTypes from '../actions/ActionTypes'\r\n\r\nconst initialState = {\r\n originalAccountAccessToken: undefined,\r\n inProgress: false,\r\n}\r\n\r\nfunction automaticLoginReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.SET_ORIGINAL_ACCOUNT_ACCESS_TOKEN:\r\n return Object.assign({}, state, {\r\n originalAccountAccessToken: action.originalAccountAccessToken\r\n })\r\n case ActionTypes.SET_AUTOMATIC_LOGIN_IN_PROGRESS:\r\n return Object.assign({}, state, {\r\n inProgress: action.inProgress\r\n })\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default automaticLoginReducer","import { combineReducers } from 'redux'\r\nimport baseReducer from './BaseReducer'\r\nimport teacherReducer from './TeacherReducer'\r\nimport lessonsReducer from './LessonsReducer'\r\nimport studentReducer from './StudentReducer'\r\nimport assignmentReducer from './AssignmentReducer'\r\nimport privateMessageReducer from './PrivateMessageReducer'\r\nimport settingsAndLanguagesReducer from './SettingsAndLanguagesReducer'\r\nimport emoticonReducer from './EmoticonReducer'\r\nimport sentencesReducer from './SentenceReducer'\r\nimport schoolYearsReducer from './SchoolYearReducer'\r\nimport assignLevelsReducer from './AssignLevelReducer'\r\nimport groupReducer from './GroupReducer'\r\nimport premadeAvatarsReducer from './PremadeAvatarsReducer'\r\nimport notesReducer from './NoteReducer'\r\nimport automaticLoginReducer from './AutomaticLoginReducer'\r\nimport { processUserDependantReducersMap } from './reducerUtils'\r\n\r\nconst userDependantReducers = {\r\n base: baseReducer,\r\n teacher: teacherReducer,\r\n lesson: lessonsReducer,\r\n student: studentReducer,\r\n assignment: assignmentReducer,\r\n privateMessage: privateMessageReducer,\r\n settingsAndLanguages: settingsAndLanguagesReducer,\r\n emoticon: emoticonReducer,\r\n sentence: sentencesReducer,\r\n schoolYear: schoolYearsReducer,\r\n assignLevel: assignLevelsReducer,\r\n group: groupReducer,\r\n premadeAvatar: premadeAvatarsReducer,\r\n note: notesReducer,\r\n}\r\n\r\nconst generalReducers = {\r\n automaticLogin: automaticLoginReducer,\r\n}\r\n\r\nexport const getAppReducer = (additionalGeneralReducers, additionalUserDependantReducers) => {\r\n const allUserDependantReducersMap = processUserDependantReducersMap({ ...userDependantReducers, ...additionalUserDependantReducers })\r\n \r\n return combineReducers({\r\n ...allUserDependantReducersMap,\r\n ...generalReducers,\r\n ...additionalGeneralReducers,\r\n })\r\n}","import fuse from './fuse'\r\nimport quickPanel from 'app/fuse-layouts/shared-components/quickPanel/store/reducers'\r\nimport { getAppReducer } from 'dpn-common/reducers/AppReducers'\r\n\r\n\r\nconst createReducer = (asyncReducers) => {\r\n const webAppSpecificReducers = {\r\n fuse,\r\n quickPanel,\r\n ...asyncReducers\r\n }\r\n\r\n return getAppReducer(webAppSpecificReducers)\r\n}\r\n\r\nexport default createReducer\r\n","import * as reduxModule from 'redux'\r\nimport createReducer from './reducers'\r\nimport thunk from 'redux-thunk'\r\n\r\n/*\r\nFix for Firefox redux dev tools extension\r\nhttps://github.com/zalmoxisus/redux-devtools-instrument/pull/19#issuecomment-400637274\r\n */\r\nreduxModule.__DO_NOT_USE__ActionTypes.REPLACE = '@@redux/INIT'\r\n\r\nconst composeEnhancers =\r\n process.env.NODE_ENV !== 'production' &&\r\n typeof window === 'object' &&\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ?\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\r\n // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...\r\n }) : reduxModule.compose\r\n\r\nconst enhancer = composeEnhancers(\r\n reduxModule.applyMiddleware(thunk)\r\n)\r\n\r\nconst store = reduxModule.createStore(createReducer(), enhancer)\r\n\r\nstore.asyncReducers = {}\r\n\r\nexport const injectReducer = (key, reducer) => {\r\n if ( store.asyncReducers[key] ) {\r\n return\r\n }\r\n store.asyncReducers[key] = reducer\r\n store.replaceReducer(createReducer(store.asyncReducers))\r\n return store\r\n}\r\n\r\nexport default store\r\n","import React from 'react'\r\n\r\nexport const LogoutConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/logout',\r\n component: React.lazy(() => import('./Logout')),\r\n applicationPath: 'Logout',\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const errorsPagesConfigs = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/error-404',\r\n component: React.lazy(() => import('./Error404Page')),\r\n applicationPath: 'Error404',\r\n },\r\n {\r\n path: '/error-403',\r\n component: React.lazy(() => import('./Error403Page')),\r\n applicationPath: 'Error403',\r\n }\r\n ]\r\n}\r\n","import React from 'react'\r\n\r\nexport const HomeConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/',\r\n exact: true,\r\n component: React.lazy(() => import('./Home')),\r\n applicationPath: ['Home'],\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/students',\r\n component: React.lazy(() => import('./Students')),\r\n applicationPath: 'TeacherStudentList',\r\n }\r\n\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const TeacherProfileConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/profile',\r\n component: React.lazy(() => import('./TeacherProfile')),\r\n applicationPath: 'TeacherProfileEdit',\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherSentencesConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/custom-presets/text',\r\n component: React.lazy(() => import('./TeacherSentences')),\r\n applicationPath: 'TeacherSentences',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherVideoTutorialsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/video-tutorials',\r\n component: React.lazy(() => import('./TeacherVideoTutorials')),\r\n applicationPath: 'TeacherVideoTutorials',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherTutorialsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/teacher-resources',\r\n component: React.lazy(() => import('./TeacherTutorials')),\r\n applicationPath: 'TeacherTutorials'\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherSchoolYearConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/school-years',\r\n component: React.lazy(() => import('./TeacherSchoolYear')),\r\n applicationPath: 'TeacherSchoolYear',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherNotificationsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/notifications',\r\n component: React.lazy(() => import('./TeacherNotifications')),\r\n applicationPath: 'TeacherNotifications',\r\n },\r\n {\r\n path: '/settings/email-notifications',\r\n component: React.lazy(() => import('./TeacherEmailNotifications')),\r\n applicationPath: 'TeacherEmailNotifications',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherSettingsLeaderboardConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/leaderboard',\r\n component: React.lazy(() => import('./TeacherSettingsLeaderboard')),\r\n applicationPath: 'TeacherSettingsLeaderboard',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherCommunicationConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/communication/chat',\r\n component: React.lazy(() => import('./TeacherChat')),\r\n applicationPath: 'TeacherCommunicationChat',\r\n },\r\n {\r\n path: '/communication/channels',\r\n component: React.lazy(() => import('./TeacherChannels')),\r\n applicationPath: 'TeacherCommunicationChannels',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherSkillsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/custom-presets/teacher-skills',\r\n component: React.lazy(() => import('./TeacherSkills')),\r\n applicationPath: 'TeacherSkillList',\r\n },\r\n ]\r\n}\r\n","import React from 'react'\r\n\r\nexport const TeacherRewardsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/custom-presets/teacher-rewards',\r\n component: React.lazy(() => import('./TeacherRewards')),\r\n applicationPath: 'TeacherRewardList'\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherAssignmentsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/custom-presets/teacher-assignments',\r\n component: React.lazy(() => import('./TeacherAssignments')),\r\n applicationPath: 'TeacherAssignments',\r\n },\r\n {\r\n path: '/teacherAssignmentsSort',\r\n component: React.lazy(() => import('./TeacherAssignmentsSort')),\r\n applicationPath: 'TeacherAssignmentsSort',\r\n },\r\n ]\r\n}\r\n","import React from 'react'\r\n\r\nexport const TeacherStudentInfoConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/studentInfo',\r\n component: React.lazy(() => import('./TeacherStudentInfo')),\r\n applicationPath: 'TeacherStudentProfile',\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherGroupInfoConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/teacherGroupInfo',\r\n component: React.lazy(() => import('./TeacherGroupInfo')),\r\n applicationPath: 'TeacherGroupInfo',\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const GroupsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/teacher-groups',\r\n component: React.lazy(() => import('./Groups')),\r\n applicationPath: ['TeacherGroupsList'],\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const TeacherPianoAdventuresConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/piano-adventures/interactive-hub',\r\n component: React.lazy(() => import('./PianoAdventures')),\r\n applicationPath: ['_TeacherHome', 'TeacherPianoAdventures'],\r\n },\r\n {\r\n path: '/piano-adventures/home',\r\n component: React.lazy(() => import('./PianoAdventuresHome')),\r\n applicationPath: 'TeacherPianoAdventuresHome',\r\n },\r\n ]\r\n}\r\n","import React from 'react'\r\n\r\nexport const TeacherLessonsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/teacherLessons',\r\n component: React.lazy(() => import('./TeacherGroupLessonList')),\r\n applicationPath: 'TeacherGroupLessonList',\r\n },\r\n {\r\n path: '/teacherPreviousSchoolYears',\r\n component: React.lazy(() => import('./TeacherGroupSchoolYear')),\r\n applicationPath: 'TeacherGroupSchoolYear',\r\n },\r\n {\r\n path: '/teacherPreviousSchoolYearLessons',\r\n component: React.lazy(() => import('./TeacherGroupSchoolYearLessons')),\r\n applicationPath: 'TeacherGroupSchoolYearLessons',\r\n },\r\n {\r\n path: '/teacherLessonInfo',\r\n component: React.lazy(() => import('./TeacherLessonInfo')),\r\n applicationPath: 'TeacherLessonInfo',\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherTemplateNotesConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/settings/custom-presets/notes',\r\n component: React.lazy(() => import('./TeacherTemplateNotes')),\r\n applicationPath: 'TeacherTemplateNotes',\r\n },\r\n {\r\n path: '/teacherTemplateNotesSort',\r\n component: React.lazy(() => import('./TeacherTemplateNotesSort')),\r\n applicationPath: 'TeacherTemplateNotesSort',\r\n },\r\n {\r\n path: '/noteInfo',\r\n component: React.lazy(() => import('./NoteInfo')),\r\n applicationPath: 'NoteInfo',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const TeacherSupportConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/teacher-support',\r\n component: React.lazy(() => import('./TeacherSupport')),\r\n applicationPath: 'TeacherSupport'\r\n },\r\n ]\r\n}","import { StudentsConfig } from './students/StudentsConfig'\r\nimport { TeacherProfileConfig } from './profile/TeacherProfileConfig'\r\nimport { TeacherSentencesConfig } from './presets/TeacherSentencesConfig'\r\n// import { TeacherAssignLevelsConfig } from './presets/TeacherAssignLevelsConfig'\r\nimport { TeacherVideoTutorialsConfig } from './videoTutorials/TeacherVideoTutorialsConfig'\r\nimport { TeacherTutorialsConfig } from './teacherResources/TeacherTutorialsConfig'\r\nimport { TeacherSchoolYearConfig } from './schoolYears/TeacherSchoolYearConfig'\r\nimport { TeacherNotificationsConfig } from './settings/TeacherNotificationsConfig'\r\nimport { TeacherSettingsLeaderboardConfig } from './settings/TeacherSettingsLeaderboardConfig'\r\nimport { TeacherCommunicationConfig } from './chat/TeacherCommunicationConfig'\r\nimport { TeacherSkillsConfig } from './skills/TeacherSkillsConfig'\r\nimport { TeacherRewardsConfig } from './rewards/TeacherRewardsConfig'\r\nimport { TeacherAssignmentsConfig } from './assignments/TeacherAssignmentsConfig'\r\nimport { TeacherStudentInfoConfig } from './studentInfo/TeacherStudentInfoConfig'\r\nimport { TeacherGroupInfoConfig } from './groups/TeacherGroupInfoConfig'\r\nimport { GroupsConfig } from './students/GroupsConfig'\r\nimport { TeacherPianoAdventuresConfig } from './pianoAdventures/TeacherPianoAdventuresConfig'\r\nimport { TeacherLessonsConfig } from './lessons/TeacherLessonsConfig'\r\nimport { TeacherTemplateNotesConfig } from './presets/TeacherTemplateNotesConfig'\r\nimport { TeacherSupportConfig } from './support/TeacherSupportConfig'\r\n\r\nexport const teacherConfigs = [\r\n StudentsConfig,\r\n GroupsConfig,\r\n TeacherGroupInfoConfig,\r\n TeacherProfileConfig,\r\n TeacherSentencesConfig,\r\n // TeacherAssignLevelsConfig,\r\n TeacherVideoTutorialsConfig,\r\n TeacherTutorialsConfig,\r\n TeacherSchoolYearConfig,\r\n TeacherNotificationsConfig,\r\n TeacherSettingsLeaderboardConfig,\r\n TeacherCommunicationConfig,\r\n TeacherSkillsConfig,\r\n TeacherRewardsConfig,\r\n TeacherAssignmentsConfig,\r\n TeacherStudentInfoConfig,\r\n TeacherPianoAdventuresConfig,\r\n TeacherLessonsConfig,\r\n TeacherTemplateNotesConfig,\r\n TeacherSupportConfig,\r\n]","import React from 'react'\r\n\r\nexport const StudentProfileConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-profile',\r\n component: React.lazy(() => import('./StudentProfile')),\r\n applicationPath: ['StudentProfileEdit'],\r\n }\r\n ]\r\n}","import { StudentChooseTeacherRouteName } from 'dpn-common/utils/AppConstants'\r\nimport React from 'react'\r\n\r\nexport const StudentChooseTeacherConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-teachers',\r\n component: React.lazy(() => import('./StudentChooseTeacher')),\r\n applicationPath: [StudentChooseTeacherRouteName]\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentCommunicationConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-communication/chat',\r\n component: React.lazy(() => import('./StudentChat')),\r\n applicationPath: 'StudentCommunicationChat',\r\n },\r\n {\r\n path: '/student-communication/channels',\r\n component: React.lazy(() => import('./StudentChannels')),\r\n applicationPath: 'StudentCommunicationChannels',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentLeaderboardConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-settings/leaderboard',\r\n component: React.lazy(() => import('./StudentLeaderboard')),\r\n applicationPath: 'StudentLeaderboard',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentNotificationsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-settings/notifications',\r\n component: React.lazy(() => import('./StudentNotifications')),\r\n applicationPath: 'StudentNotifications',\r\n },\r\n {\r\n path: '/student-settings/email-notifications',\r\n component: React.lazy(() => import('./StudentEmailNotifications')),\r\n applicationPath: 'StudentEmailNotifications',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentVideoTutorialsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/student-video-tutorials',\r\n component: React.lazy(() => import('./StudentVideoTutorials')),\r\n applicationPath: 'StudentVideoTutorials',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentTeacherLessonConfigConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-lesson-info',\r\n component: React.lazy(() => import('./StudentLessonInfo')),\r\n applicationPath: 'StudentLessonInfo',\r\n },\r\n {\r\n path: '/student-school-year-lessons',\r\n component: React.lazy(() => import('./StudentSchoolYearLessons')),\r\n applicationPath: 'StudentSchoolYearLessons',\r\n },\r\n {\r\n path: '/student-school-years',\r\n component: React.lazy(() => import('./StudentSchoolYears')),\r\n applicationPath: 'StudentSchoolYear',\r\n },\r\n {\r\n path: '/student-lessons',\r\n component: React.lazy(() => import('./StudentTeacherLessonList')),\r\n applicationPath: 'StudentTeacherLessonList',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentMyAssignmentsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/my-assignments',\r\n component: React.lazy(() => import('./StudentMyAssignments')),\r\n applicationPath: 'StudentMyAssignments',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentPianoAdventuresConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/piano-adventures/student-interactive-hub',\r\n component: React.lazy(() => import('./PianoAdventures')),\r\n applicationPath: ['_StudentHome', 'StudentPianoAdventures'],\r\n },\r\n ]\r\n}\r\n","import React from 'react'\r\n\r\nexport const StudentChildrenConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-profiles',\r\n component: React.lazy(() => import('./StudentProfiles')),\r\n applicationPath: ['StudentProfiles'],\r\n },\r\n {\r\n path: '/student-children',\r\n component: React.lazy(() => import('./StudentChildren')),\r\n applicationPath: ['StudentChildren'],\r\n },\r\n {\r\n path: '/student-child-info',\r\n component: React.lazy(() => import('./StudentChildInfo')),\r\n applicationPath: 'StudentChildInfo',\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentSupportConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/student-support',\r\n component: React.lazy(() => import('./StudentSupport')),\r\n applicationPath: 'StudentSupport'\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const StudentLeaderboardNotificationSettingsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/student-settings/leaderboard-notification',\r\n component: React.lazy(() => import('./StudentLeaderboardNotificationSettings')),\r\n applicationPath: 'StudentLeaderboardNotificationSettings',\r\n },\r\n ]\r\n}","import { StudentProfileConfig } from './profile/StudentProfileConfig'\r\nimport { StudentChooseTeacherConfig } from './chooseTeacher/StudentChooseTeacherConfig'\r\nimport { StudentCommunicationConfig } from './chat/StudentCommunicationConfig'\r\nimport { StudentLeaderboardConfig } from './settings/StudentLeaderboardConfig'\r\nimport { StudentNotificationsConfig } from './settings/StudentNotificationsConfig'\r\nimport { StudentVideoTutorialsConfig } from './videoTutorials/StudentVideoTutorialsConfig'\r\nimport { StudentTeacherLessonConfigConfig } from './lessons/StudentTeacherLessonsConfig'\r\nimport { StudentMyAssignmentsConfig } from './assignments/StudentMyAssignmentsConfig'\r\nimport { StudentPianoAdventuresConfig } from './pianoAdventures/StudentPianoAdventuresConfig'\r\nimport { StudentChildrenConfig } from './children/StudentChildrenConfig'\r\nimport { StudentSupportConfig } from './support/StudentSupportConfig'\r\nimport { StudentLeaderboardNotificationSettingsConfig } from './settings/StudentLeaderboardNotificationSettingsConfig'\r\n\r\nexport const studentConfigs = [\r\n StudentProfileConfig,\r\n StudentChildrenConfig,\r\n StudentChooseTeacherConfig,\r\n StudentCommunicationConfig,\r\n StudentLeaderboardConfig,\r\n StudentNotificationsConfig,\r\n StudentVideoTutorialsConfig,\r\n StudentTeacherLessonConfigConfig,\r\n StudentMyAssignmentsConfig,\r\n StudentPianoAdventuresConfig,\r\n StudentSupportConfig,\r\n StudentLeaderboardNotificationSettingsConfig,\r\n]","import React from 'react'\r\n\r\nexport const LoginConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/login',\r\n component: React.lazy(() => import('./Login')),\r\n applicationPath: ['_GuestHome', 'Login']\r\n },\r\n {\r\n path: '/loginExternal',\r\n component: React.lazy(() => import('./LoginExternal')),\r\n applicationPath: ['LoginExternal']\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const ForgotEmailConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/forgotEmail',\r\n component: React.lazy(() => import('./ForgotEmail')),\r\n applicationPath: 'ForgotEmail'\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const ForgotPasswordConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/forgotPassword',\r\n component: React.lazy(() => import('./ForgotPassword')),\r\n applicationPath: 'ForgotPassword'\r\n },\r\n {\r\n path: '/resetPassword',\r\n component: React.lazy(() => import('./ResetPassword')),\r\n applicationPath: 'ResetPassword'\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const RegistrationConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/registration',\r\n component: React.lazy(() => import('./Registration')),\r\n applicationPath: 'Registration'\r\n },\r\n {\r\n path: '/registration-social',\r\n component: React.lazy(() => import('./RegistrationSocial')),\r\n applicationPath: 'RegistrationSocial'\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const ContactConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/contact',\r\n component: React.lazy(() => import('./Contact')),\r\n applicationPath: ['Contact']\r\n }\r\n ]\r\n}\r\n\r\n","import React from 'react'\r\n\r\nexport const PrivacyTermsConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/terms',\r\n component: React.lazy(() => import('./Terms')),\r\n applicationPath: 'Terms',\r\n },\r\n {\r\n path: '/privacyPolicy',\r\n component: React.lazy(() => import('./PrivacyPolicy')),\r\n applicationPath: 'PrivacyPolicy',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const LandingConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/landing',\r\n component: React.lazy(() => import('./Landing')),\r\n applicationPath: ['_GuestHome', 'Landing']\r\n },\r\n {\r\n path: '/landing-early-adopter',\r\n component: React.lazy(() => import('./EarlyAdopter')),\r\n applicationPath: 'EarlyAdopter'\r\n }\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const AutomaticLoginConfig = {\r\n settings: {\r\n layout: {\r\n config: {\r\n navbar: {\r\n display: false\r\n },\r\n toolbar: {\r\n display: false\r\n },\r\n footer: {\r\n display: false\r\n },\r\n leftSidePanel: {\r\n display: false\r\n },\r\n rightSidePanel: {\r\n display: false\r\n }\r\n }\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/automatic-login',\r\n component: React.lazy(() => import('./AutomaticLogin')),\r\n applicationPath: 'AutomaticLogin',\r\n }\r\n ]\r\n}\r\n\r\n","import { LoginConfig } from './login/LoginConfig'\r\nimport { ForgotEmailConfig } from './forgotEmail/ForgotEmailConfig'\r\nimport { ForgotPasswordConfig } from './forgotPassword/ForgotPasswordConfig'\r\nimport { RegistrationConfig } from './registration/RegistrationConfig'\r\nimport { ContactConfig } from './contact/ContactConfig'\r\nimport { PrivacyTermsConfig } from './privacyTerms/PrivacyTermsConfig'\r\nimport { LandingConfig } from './landing/LandingConfig'\r\nimport { AutomaticLoginConfig } from './automaticLogin/AutomaticLoginConfig'\r\n\r\nexport const guestConfigs = [\r\n LoginConfig,\r\n ForgotEmailConfig,\r\n ForgotPasswordConfig,\r\n RegistrationConfig,\r\n ContactConfig,\r\n PrivacyTermsConfig,\r\n LandingConfig,\r\n AutomaticLoginConfig,\r\n]","import React from 'react'\r\n\r\nexport const AnyUserAssignmentsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/assignment-info',\r\n component: React.lazy(() => import('./AssignmentInfo')),\r\n applicationPath: 'AssignmentInfo',\r\n },\r\n {\r\n path: '/piano-adventures/assignments',\r\n component: React.lazy(() => import('./PianoAdventuresAssignments')),\r\n applicationPath: ['TeacherPianoAdventuresAssignments', 'StudentPianoAdventuresAssignments', 'PianoAdventuresAssignments']\r\n },\r\n {\r\n path: '/piano-adventures/courses',\r\n component: React.lazy(() => import('./PianoAdventuresInteractiveGame')),\r\n applicationPath: ['TeacherPianoAdventuresInteractiveGame', 'StudentPianoAdventuresInteractiveGame', 'PianoAdventuresInteractiveGame']\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const PrivacyTermsConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/terms-of-use',\r\n component: React.lazy(() => import('./Terms')),\r\n applicationPath: 'Terms',\r\n },\r\n {\r\n path: '/support/privacy-policy',\r\n component: React.lazy(() => import('./PrivacyPolicy')),\r\n applicationPath: 'PrivacyPolicy',\r\n },\r\n ]\r\n}","import React from 'react'\r\n\r\nexport const ContactConfig = {\r\n settings: {\r\n layout: {\r\n config: {}\r\n }\r\n },\r\n routes: [\r\n {\r\n path: '/support/contact',\r\n component: React.lazy(() => import('./Contact')),\r\n applicationPath: 'Contact',\r\n }\r\n ]\r\n}","import { AnyUserAssignmentsConfig } from './assignments/AnyUserAssignmentsConfig'\r\nimport { PrivacyTermsConfig } from './privacyTerms/PrivacyTermsConfig'\r\nimport { ContactConfig } from './contact/ContactConfig'\r\n\r\nexport const anyUserConfig = [\r\n AnyUserAssignmentsConfig,\r\n PrivacyTermsConfig,\r\n ContactConfig\r\n]","import React from 'react'\r\nimport { FuseUtils } from '@fuse'\r\nimport { LogoutConfig } from 'pages/logout/LogoutConfig'\r\nimport { errorsPagesConfigs } from 'pages/errors/ErrorPagesConfigs'\r\nimport { HomeConfig } from 'pages/HomeConfig'\r\nimport { teacherConfigs } from 'pages/Teacher/TeacherConfigs'\r\nimport { studentConfigs } from 'pages/Student/StudentConfigs'\r\nimport { guestConfigs } from 'pages/Guest/GuestConfigs'\r\nimport { USER_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport { Redirect } from 'react-router-dom'\r\nimport { anyUserConfig } from 'pages/AnyUser/AnyUserConfig'\r\n\r\nconst sharedRoutes = [\r\n HomeConfig,\r\n LogoutConfig,\r\n errorsPagesConfigs,\r\n]\r\n\r\nexport const routes = [\r\n ...FuseUtils.generateRoutesFromConfigs(teacherConfigs, [USER_TYPES.TEACHER]),\r\n ...FuseUtils.generateRoutesFromConfigs(studentConfigs, [USER_TYPES.STUDENT]),\r\n ...FuseUtils.generateRoutesFromConfigs(anyUserConfig, [USER_TYPES.STUDENT, USER_TYPES.TEACHER]),\r\n ...FuseUtils.generateRoutesFromConfigs(guestConfigs, [USER_TYPES.GUEST]),\r\n ...FuseUtils.generateRoutesFromConfigs(sharedRoutes),\r\n {\r\n component: () => \r\n }\r\n]\r\n\r\nfunction getMappings(config) {\r\n if (Array.isArray(config)) {\r\n return config.reduce(function (map, x) {\r\n const mappings = getMappings(x)\r\n return { ...map, ...mappings }\r\n }, {})\r\n }\r\n else if (config.routes) {\r\n return config.routes.reduce(function (map, x) {\r\n if (Array.isArray(x.applicationPath)) {\r\n x.applicationPath.forEach(function (oneAppPath) {\r\n map[oneAppPath.startsWith('_') ? oneAppPath.substring(1) : oneAppPath] = x.path\r\n })\r\n }\r\n else {\r\n map[x.applicationPath] = x.path\r\n }\r\n return map\r\n }, {})\r\n }\r\n else {\r\n console.log('Should never happened!!! ', config)\r\n }\r\n}\r\n\r\nexport const routeMappings = Object.freeze(\r\n getMappings([sharedRoutes, teacherConfigs, guestConfigs, studentConfigs, anyUserConfig])\r\n)\r\n\r\nexport const routeReverseMappings = Object.freeze(\r\n Object.keys(routeMappings).reduce((obj, key) => { \r\n const value = routeMappings[key]\r\n // route with _ at the beginning of the name has top priority\r\n if (!(value in obj)) {\r\n obj[value] = key\r\n }\r\n else if (key.startsWith('_')) {\r\n obj[value] = key.substring(1)\r\n }\r\n return obj\r\n }, {})\r\n)\r\n\r\nexport function getGuestUrls() {\r\n const urls = []\r\n guestConfigs.forEach(function (value) {\r\n value.routes.forEach(function (route) {\r\n urls.push(route.path)\r\n })\r\n })\r\n return urls\r\n}\r\n","import { Messages, texti18n } from './MessageConstants'\r\nimport EventListenerService from '../services/EventListenerService'\r\nimport { showInfo, subscribeToConnectivity } from '../services/SharedServices'\r\n\r\nconst EVENT_NAME = 'NetInfo_ConnChange'\r\nlet lastIsConnected\r\nlet unsubscribe\r\n\r\nfunction init() {\r\n unsubscribe = subscribeToConnectivity(handleConnectivityChange)\r\n}\r\n\r\nfunction dispose() {\r\n unsubscribe && unsubscribe()\r\n}\r\n\r\nfunction addOnConnectedCallback(callback, callOnce) {\r\n return EventListenerService.subscribe(EVENT_NAME, callback, callOnce)\r\n}\r\n\r\nasync function handleConnectivityChange(state) {\r\n if (state.type === 'none') {\r\n if (lastIsConnected) {\r\n showInfo(texti18n(Messages.DISCONNECTED_FROM_INTERNET))\r\n }\r\n lastIsConnected = false\r\n }\r\n else if (state.type !== 'undefined') {\r\n if (lastIsConnected === false) {\r\n showInfo(texti18n(Messages.CONNECTED_TO_INTERNET))\r\n EventListenerService.notify(EVENT_NAME, true)\r\n }\r\n lastIsConnected = true\r\n }\r\n}\r\n\r\nexport default {\r\n init,\r\n dispose,\r\n addOnConnectedCallback\r\n}\r\n","import React from 'react'\r\nimport { DialogActions, DialogTitle, Button, DialogContentText, Dialog, DialogContent } from '@material-ui/core'\r\nimport { Messages, texti18n } from 'dpn-common/utils/MessageConstants'\r\n\r\nclass DialogMessage extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = {\r\n open: false,\r\n content: '',\r\n onPressOk: null,\r\n dialogTitle: '',\r\n hasCancelBtn: false,\r\n cancelBtnText: '',\r\n confirmBtnText: '',\r\n confirmBtnColor: ''\r\n }\r\n }\r\n\r\n showMessage(dialogTitle, message, onPressOk, cancelBtnText, confirmBtnText, confirmBtnColor) {\r\n const hasCancelBtn = onPressOk !== undefined\r\n if (!onPressOk) {\r\n onPressOk = () => { }\r\n }\r\n this.setState({ open: true, content: message, onPressOk, dialogTitle, hasCancelBtn, cancelBtnText, confirmBtnText, confirmBtnColor })\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ open: false })\r\n }\r\n\r\n handleConfirm = () => {\r\n this.setState({ open: false })\r\n this.state.onPressOk()\r\n }\r\n\r\n render() {\r\n const confirmBtnStyle = this.state.confirmBtnText !== texti18n(Messages.OK) ? { backgroundColor: this.state.confirmBtnColor } : undefined\r\n return (\r\n \r\n {this.state.dialogTitle}\r\n \r\n \r\n {this.state.content}\r\n \r\n \r\n \r\n {this.state.hasCancelBtn &&\r\n \r\n {this.state.cancelBtnText}\r\n \r\n }\r\n \r\n {this.state.confirmBtnText}\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default DialogMessage","import React from 'react'\r\nimport clsx from 'clsx'\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle'\r\nimport ErrorIcon from '@material-ui/icons/Error'\r\nimport InfoIcon from '@material-ui/icons/Info'\r\nimport CloseIcon from '@material-ui/icons/Close'\r\nimport { amber, green } from '@material-ui/core/colors'\r\nimport IconButton from '@material-ui/core/IconButton'\r\nimport Snackbar from '@material-ui/core/Snackbar'\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent'\r\nimport WarningIcon from '@material-ui/icons/Warning'\r\nimport { makeStyles } from '@material-ui/core/styles'\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon,\r\n}\r\n \r\nconst useStyles = makeStyles(theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1),\r\n },\r\n message: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n },\r\n text: {\r\n fontSize: 16\r\n },\r\n margin: theme.spacing(1),\r\n}))\r\n\r\nfunction MySnackbarContentWrapper(props) {\r\n const classes = useStyles()\r\n const { message, onClose, variant, ...other } = props\r\n const Icon = variantIcon[variant]\r\n \r\n return (\r\n \r\n \r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n \r\n ,\r\n ]}\r\n {...other}\r\n />\r\n )\r\n}\r\n\r\nexport default class CustomizedSnackbars extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n this.state = { show: false, message: '', messageType: '' }\r\n }\r\n\r\n alertWithType(messageType, message) {\r\n this.setState({ show: true, message, messageType })\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ show: false, message: '' })\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}","import { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\n\r\nlet alertService\r\n\r\nfunction init(alertServiceRef) {\r\n alertService = alertServiceRef\r\n}\r\n\r\nfunction showError(error) {\r\n alertService && alertService.alertWithType('error', error)\r\n}\r\n\r\nfunction showSuccess(message = texti18n(Messages .CHANGES_HAS_BEEN_SAVED)) {\r\n alertService && alertService.alertWithType('success', message)\r\n}\r\n\r\nfunction showInfo(message) {\r\n alertService && alertService.alertWithType('info', message)\r\n}\r\n\r\nfunction showMessage(title, message) {\r\n alertService && alertService.alertWithType('info', message)\r\n}\r\n\r\nexport default {\r\n init,\r\n showError,\r\n showSuccess,\r\n showInfo,\r\n showMessage,\r\n}","import { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\n\r\nlet messageService\r\n\r\nfunction init(messageServiceRef) {\r\n messageService = messageServiceRef\r\n}\r\n\r\nfunction ask(message, onPressOk, cancelBtnText = texti18n(Messages.CANCEL), confirmBtnText = texti18n(Messages.OK), confirmBtnColor = 'red') {\r\n messageService.showMessage(texti18n(Messages.ASK_DIALOG_TITLE), message, onPressOk, cancelBtnText, confirmBtnText, confirmBtnColor)\r\n}\r\n\r\nfunction infoAlert(message, confirmBtnText = texti18n(Messages.OK)) {\r\n messageService.showMessage(texti18n(Messages.INFORMATION), message, undefined, undefined, confirmBtnText)\r\n}\r\n\r\nfunction errorAlert(message, confirmBtnText = texti18n(Messages.OK)) {\r\n messageService.showMessage(texti18n(Messages.ERROR), message, undefined, undefined, confirmBtnText)\r\n}\r\n\r\nfunction shareInviteToStudent(bodyMessage) {\r\n // const confirmBtnText = texti18n(Messages.OK)\r\n // const message = bodyMessage ? bodyMessage.replace(/<[^>]+>/ig, '').replace(/^\\s+|\\s+$/g, '') : ''\r\n // messageService.showMessage(texti18n(Messages.INFORMATION), message, undefined, undefined, confirmBtnText)\r\n}\r\n\r\nexport default {\r\n init,\r\n ask,\r\n infoAlert,\r\n errorAlert,\r\n shareInviteToStudent,\r\n}","import React, { useEffect } from 'react'\r\nimport { connect } from 'react-redux'\r\nimport { withRouter } from 'react-router-dom'\r\n\r\nimport AppContext from 'app/AppContext'\r\nimport NavigatorService from 'services/common/NavigatorService'\r\nimport { ROUTE_LOCATION, USER_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport { setStorageItem } from 'dpn-common/services/SharedServices'\r\n\r\nfunction RouteAuthorization({ location, role, routes, children }) {\r\n const { pathname } = location\r\n const matched = (routes || []).find(x => x.path === pathname)\r\n const hasMatched = !!matched\r\n const accessGranted = hasMatched && _hasPermission(matched.auth, role)\r\n const isGuestRoute = hasMatched && _isGuestRoute(matched.auth)\r\n\r\n useEffect(() => {\r\n const saveRouteToStorage = async () => {\r\n await setStorageItem(ROUTE_LOCATION, JSON.stringify(location))\r\n }\r\n\r\n if (hasMatched && !accessGranted) {\r\n if (role == USER_TYPES.GUEST) {\r\n saveRouteToStorage()\r\n NavigatorService.navigateAndReset('Login')\r\n }\r\n else if (!isGuestRoute) {\r\n console.log(`Forbidden 403: ${pathname} for ${role}`)\r\n NavigatorService.navigateAndReset('Error403')\r\n }\r\n }\r\n }, [accessGranted, hasMatched])\r\n\r\n if (hasMatched && !accessGranted && !isGuestRoute) {\r\n return null\r\n }\r\n return children\r\n}\r\n\r\nconst RouteAuthorizationMemo = React.memo(RouteAuthorization)\r\n\r\nconst RouteAuthorizationWrapper = function ({ children, location, role }) {\r\n return (\r\n \r\n {({ routes }) => \r\n \r\n {children}\r\n }\r\n \r\n )\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n role: state.base.auth.userData.role,\r\n }\r\n}\r\n\r\nexport default connect(mapStateToProps)(withRouter(RouteAuthorizationWrapper))\r\n\r\nfunction _hasPermission(authArr, role) {\r\n if (authArr === null || authArr === undefined || authArr.length === 0) {\r\n return true\r\n }\r\n return authArr.includes(role)\r\n}\r\n\r\nfunction _isGuestRoute(authArr) {\r\n return !!authArr && authArr.length === 1 && authArr[0] === USER_TYPES.GUEST\r\n}","import React from 'react'\r\nimport { Messages, texti18n } from 'dpn-common/utils/MessageConstants'\r\nimport {\r\n Dialog, AppBar, Toolbar, Typography, DialogContent, Checkbox, FormControlLabel, DialogActions, Button\r\n} from '@material-ui/core'\r\nimport ImageComponent from 'components/General/ImageComponent'\r\nimport { getStorageItem, setStorageItem } from 'dpn-common/services/SharedServices'\r\nimport { LocalImages } from 'utils/LocalImages'\r\nimport { GROUP_TYPES, USER_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport NavigatorService from 'services/common/NavigatorService'\r\nimport { connect } from 'react-redux'\r\nimport { getFromDict } from 'dpn-common/utils/HelperFunctions'\r\nimport { getSchoolYearsFetch } from 'dpn-common/actions/SchoolYearActions'\r\nimport { lessonsByKeySelector } from 'dpn-common/reselects/LessonsReselects'\r\nimport { loadLessonsForGroupsFetch } from 'dpn-common/actions/LessonActions'\r\nimport { getGroupIdsForTeacherGroupLessons } from 'dpn-common/utils/GroupsDataUtils'\r\nimport { appBaseColor } from 'styles/BasicStyles'\r\nimport { CloseIcon } from 'components/General/Icons'\r\n\r\nconst STORAGE_KEY = 'not_shown_again_tutorial'\r\n\r\nclass ViewTutorialsModalComponent extends React.PureComponent {\r\n constructor(props) {\r\n super(props)\r\n this.state = { isChecked: false, open: false }\r\n }\r\n\r\n show = async () => {\r\n if (!this.state.open) {\r\n let data = await this.getSettingsFromStorage(STORAGE_KEY)\r\n if (!data) {\r\n const key = `${STORAGE_KEY}_${this.props.userId}`\r\n data = await this.getSettingsFromStorage(key)\r\n }\r\n const route = NavigatorService.getCurrentRoute()\r\n if (!data && route.name !== 'TeacherLessonInfo' && route.name !== 'LoginExternal' && !this.isUnmounted) {\r\n this.setState({ open: true, isChecked: false })\r\n this.fetch()\r\n }\r\n }\r\n }\r\n\r\n getSettingsFromStorage = async (key) => {\r\n const data = await getStorageItem(key)\r\n return data && JSON.parse(data) || false\r\n }\r\n\r\n fetch = async () => {\r\n if (this.props.role === USER_TYPES.TEACHER) {\r\n this.props.schoolYears === undefined && await this.props.getSchoolYears(this.props.userId)\r\n const { unloadedGroupIds } = lessonsByKeySelector(this.props)\r\n unloadedGroupIds.length > 0 && await this.props.loadLessons(this.props.schoolYearId, unloadedGroupIds)\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.isUnmounted = true\r\n }\r\n\r\n onCancelPress = () => {\r\n this.setState({ open: false })\r\n const key = `${STORAGE_KEY}_${this.props.userId}`\r\n this.state.isChecked && setStorageItem(key, JSON.stringify(true))\r\n } \r\n\r\n onNotShownAgainPress = () => {\r\n this.setState({ isChecked: !this.state.isChecked })\r\n }\r\n\r\n onOkPress = () => {\r\n this.setState({ open: false })\r\n const key = `${STORAGE_KEY}_${this.props.userId}`\r\n this.state.isChecked && setStorageItem(key, JSON.stringify(true))\r\n if (this.props.onOkPress) {\r\n this.props.onOkPress()\r\n }\r\n else {\r\n switch (this.props.role) {\r\n case USER_TYPES.TEACHER:\r\n NavigatorService.navigateAndReset('TeacherVideoTutorials')\r\n break\r\n case USER_TYPES.STUDENT:\r\n NavigatorService.navigateAndReset('StudentVideoTutorials')\r\n break\r\n }\r\n }\r\n }\r\n\r\n onStartTour = () => {\r\n const { lessonId, lessonSchoolYearId, lessonGroupId, studentGroupId } = this.props\r\n const key = `${STORAGE_KEY}_${this.props.userId}`\r\n this.state.isChecked && setStorageItem(key, JSON.stringify(true))\r\n this.setState({ open: false })\r\n if (this.state.isChecked) {\r\n NavigatorService.navigateAndReset('TeacherPianoAdventures')\r\n return\r\n }\r\n if (lessonId && lessonSchoolYearId && lessonGroupId && studentGroupId) {\r\n NavigatorService.navigateAndReset('TeacherLessonInfo', {\r\n lessonId,\r\n lessonSchoolYearId,\r\n lessonGroupId,\r\n studentGroupId,\r\n run: true,\r\n })\r\n }\r\n }\r\n \r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n {texti18n(Messages.WELCOME_TO)} {texti18n(Messages.SITE_NAME)}\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n { \r\n this.props.role === USER_TYPES.TEACHER ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n } \r\n
\r\n {\r\n this.props.role === USER_TYPES.STUDENT &&\r\n \r\n \r\n } label={texti18n(Messages.DO_NOT_SHOW_AGAIN)} \r\n />\r\n }\r\n {\r\n this.props.role === USER_TYPES.TEACHER &&\r\n <>\r\n
\r\n \r\n } label={texti18n(Messages.SKIP_TUTORIAL)} \r\n />\r\n \r\n {texti18n(Messages.NEXT)}\r\n \r\n
\r\n\r\n
\r\n \r\n {texti18n(Messages.LEARN_MORE_WITH_ADDITIONAL)} {texti18n(Messages.VIDEO_TUTORIALS)}\r\n \r\n \r\n {texti18n(Messages.VIEW_VIDEOS)}\r\n \r\n
\r\n \r\n }\r\n
\r\n\r\n \r\n\r\n {\r\n this.props.role === USER_TYPES.STUDENT &&\r\n <>\r\n \r\n {texti18n(Messages.CANCEL)}\r\n \r\n \r\n {texti18n(Messages.OK)}\r\n \r\n \r\n }\r\n \r\n\r\n
\r\n )\r\n }\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n const userId = state.base.auth.userData.id\r\n const schoolYears = getFromDict(state.schoolYear.schoolYears, 0)\r\n const activeSchoolYear = (schoolYears || []).find(x => x.isActive === true)\r\n const userGroups = state.group.userGroups.filter(x => x.groupType === GROUP_TYPES.TEACHER_SINGLE_STUDENT && x.isActive === true && x.users.every(user => user.isActive === true))\r\n const teacherUserGroup = userGroups.reduce((prev, curr) => prev.id < curr.id ? prev : curr, {})\r\n const studentGroupId = teacherUserGroup && teacherUserGroup.id\r\n const lessonsByGroupId = getFromDict(state.lesson.lessons, studentGroupId)\r\n const lessonsBySchoolYearId = getFromDict(lessonsByGroupId, 0)\r\n const lessonId = lessonsBySchoolYearId && lessonsBySchoolYearId.find(x => x.isActive === true && x.schoolYearId === activeSchoolYear.id)?.id\r\n const keyIds = getGroupIdsForTeacherGroupLessons(state.group.userGroups, studentGroupId, studentGroupId)\r\n return {\r\n userId,\r\n keyIds,\r\n lessonId,\r\n lessonSchoolYearId: activeSchoolYear?.id,\r\n lessonGroupId: studentGroupId,\r\n studentGroupId,\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n getSchoolYears: teacherId => getSchoolYearsFetch(teacherId, true, dispatch),\r\n loadLessons: (schoolYearId, groupIds) => loadLessonsForGroupsFetch(schoolYearId, groupIds, dispatch),\r\n }\r\n}\r\n\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps, null, { forwardRef: true })(ViewTutorialsModalComponent)","let layouts = {} // key=>value per containerId \r\n\r\nconst clearLayouts = function(containerId) {\r\n if (!containerId && containerId !== 0) {\r\n layouts = {}\r\n }\r\n else if (containerId in layouts) {\r\n layouts[containerId] = undefined\r\n }\r\n}\r\n\r\nconst setData = function(containerId, itemId, index, height) {\r\n if (!(containerId in layouts)) {\r\n layouts[containerId] = {}\r\n }\r\n layouts[containerId][itemId] = { height, index }\r\n}\r\n\r\nconst getCalculated = function(containerId, idsList) {\r\n const items = layouts[containerId] || {}\r\n const result = idsList.map(function(id, index) {\r\n return {\r\n index,\r\n offset: 0,\r\n length: items[id] ? items[id].height : 0,\r\n }\r\n })\r\n result.forEach((item, index) => {\r\n if (index > 0) {\r\n item.offset = result[index - 1].offset + result[index - 1].length\r\n }\r\n })\r\n return result.reduce((mp, item, index) => {\r\n mp[idsList[index]] = item\r\n return mp\r\n }, {})\r\n}\r\n\r\nconst getAllUndefined = function(containerId, idsList) {\r\n const items = layouts[containerId]\r\n if (!items) {\r\n return idsList\r\n }\r\n return idsList.filter((id, index) => !(id in items) || ((items[id].index === 0 || index === 0) && index !== items[id].index))\r\n}\r\n\r\nexport default {\r\n clearLayouts,\r\n setData,\r\n getCalculated,\r\n getAllUndefined,\r\n}","import React from 'react'\r\nimport { Button, Checkbox, FormControlLabel } from '@material-ui/core'\r\nimport { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\nimport { getStorageItem, removeStorageItem, setStorageItem } from 'dpn-common/services/SharedServices'\r\nimport AnalyticsService from 'services/AnalyticsService'\r\nimport { Link } from 'react-router-dom'\r\n\r\nconst STORAGE_KEY = 'cookie_consent'\r\n\r\nclass CookieConsent extends React.Component {\r\n constructor(props) {\r\n super(props)\r\n\r\n this.state = {\r\n showBanner: false,\r\n analyticsChecked: true,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.checkCookieConsent()\r\n }\r\n\r\n checkCookieConsent = async () => {\r\n const data = await getStorageItem(STORAGE_KEY)\r\n if (data) {\r\n const cookieConsentData = JSON.parse(data)\r\n if (cookieConsentData) {\r\n const now = new Date()\r\n const expires = new Date(cookieConsentData.expires)\r\n if (expires > now) {\r\n cookieConsentData.analyticsEnabled && this.initAnalytics()\r\n return\r\n }\r\n\r\n await removeStorageItem(STORAGE_KEY)\r\n }\r\n }\r\n\r\n this.setState({ showBanner: true })\r\n }\r\n\r\n toggleAnalyticsChecked = () => this.setState({ analyticsChecked: !this.state.analyticsChecked })\r\n\r\n onAccept = async () => {\r\n const { analyticsChecked } = this.state\r\n\r\n const now = new Date()\r\n now.setFullYear(now.getFullYear() + 1)\r\n\r\n await setStorageItem(STORAGE_KEY, JSON.stringify({\r\n analyticsEnabled: analyticsChecked,\r\n expires: now.toISOString()\r\n }))\r\n\r\n this.setState({ showBanner: false })\r\n analyticsChecked && this.initAnalytics()\r\n }\r\n\r\n initAnalytics = () => AnalyticsService.init()\r\n\r\n render() {\r\n const { showBanner, analyticsChecked } = this.state\r\n\r\n if (!showBanner) {\r\n return null\r\n }\r\n\r\n return (\r\n
\r\n
{texti18n(Messages.COOKIE_CONSENT_TEXT_1)}
\r\n
{texti18n(Messages.COOKIE_CONSENT_TEXT_2)}
\r\n
\r\n \r\n }\r\n label={

{texti18n(Messages.NECESSARY)}

}\r\n />\r\n \r\n }\r\n label={

{texti18n(Messages.USAGE_STATISTICS)}

}\r\n />\r\n
\r\n
\r\n
\r\n \r\n {texti18n(Messages.PRIVACY_POLICY)}\r\n \r\n
\r\n
\r\n \r\n {texti18n(Messages.ALLOW_ALL)}\r\n \r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default CookieConsent","import React, { useEffect, useRef } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport SplashScreenComponent from './SplashScreenComponent'\r\nimport { FuseTheme, FuseLayout } from '@fuse'\r\nimport DialogMessage from './Alert/DialogMessage'\r\nimport CustomizedSnackbars from './Alert/Alert'\r\nimport * as Actions from 'app/store/actions'\r\nimport _ from '@lodash'\r\nimport { setNavigationConfig } from '../../src/fuse-configs/navigationConfig'\r\nimport AlertService from 'services/common/AlertService'\r\nimport MessageUIService from 'services/common/MessageUIService'\r\nimport RouteAuthorization from './RouteAuthorization'\r\nimport { ROUTE_LOCATION, USER_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport ViewTutorialsModalComponent from './Modal/ViewTutorials/ViewTutorialsModalComponent'\r\nimport { initializeAppAction } from 'dpn-common/actions/LoginActions'\r\nimport LayoutService from 'dpn-common/services/LayoutService'\r\nimport NotificationsHelper from 'dpn-common/utils/NotificationsHelper'\r\nimport NavigatorService from 'services/common/NavigatorService'\r\nimport { getUser } from 'dpn-common/utils/UserHelper'\r\nimport CookieConsent from 'components/CookieConsent/CookieConsent'\r\nimport { getGuestUrls } from 'app/fuse-configs/routesConfig'\r\nimport { getStorageItem, removeStorageItem } from 'dpn-common/services/SharedServices'\r\n\r\nconst handleMessageDialog = ref => MessageUIService.init(ref)\r\n\r\nconst handleDropdownAlertServiceRef = ref => AlertService.init(ref)\r\n\r\nfunction AppContainer() {\r\n const modal = useRef(null)\r\n\r\n const dispatch = useDispatch()\r\n const { group, userData, hasTeacher, isInitializing, automaticLoginInProgress } = useSelector(state => ({\r\n group: state.group,\r\n userData: state.base.auth.userData,\r\n hasTeacher: !!(state.student && state.student.teacher),\r\n isInitializing: state.base.auth.isInitializing,\r\n automaticLoginInProgress: state.automaticLogin.inProgress,\r\n }))\r\n const { role, id } = userData\r\n\r\n useEffect(() => {\r\n // run initialization once\r\n if (isInitializing) {\r\n initializeAppAction(dispatch)\r\n }\r\n else if (!automaticLoginInProgress) {\r\n // on role change, update navigation and try to show dialog\r\n dispatch(Actions.setNavigation(setNavigationConfig(role)))\r\n if (!!modal.current && role !== USER_TYPES.GUEST) {\r\n modal.current.show()\r\n }\r\n \r\n // chat layouts are saved for specific users. clear them\r\n LayoutService.clearLayouts()\r\n\r\n // try to execute pending notification action\r\n const reduxParams = { group, userData, dispatch }\r\n NotificationsHelper.executePendingAction(userData.id || 0, role, reduxParams)\r\n .then(function (navigationHappened) {\r\n // if there is no pending notification action or action did not perform navigation route change, switch to home route\r\n !navigationHappened && jumpToHomeAfterLogin(role, hasTeacher)\r\n }).catch(ex => {\r\n console.log('Error while executing NotificationsHelper.executePendingAction: ', ex)\r\n jumpToHomeAfterLogin(role, hasTeacher)\r\n })\r\n }\r\n }, [id, isInitializing, automaticLoginInProgress])\r\n\r\n if (isInitializing) {\r\n return \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\nexport default AppContainer\r\n\r\nlet _guestRoutes = undefined\r\n\r\nasync function jumpToHomeAfterLogin(role, hasTeacher) {\r\n if (!_guestRoutes) {\r\n _guestRoutes = getGuestUrls()\r\n }\r\n const route = NavigatorService.getCurrentRoute()\r\n const homeRoute = getUser(role).getHomeRoute({ hasTeacher })\r\n\r\n if (role !== USER_TYPES.GUEST) {\r\n const location = await getRouteLocationFromStorage()\r\n if (location) {\r\n const accessGranted = NavigatorService.hasPermission(location.pathname, role)\r\n if (accessGranted) {\r\n const { params, path } = NavigatorService.getRoute(location)\r\n NavigatorService.navigateAndReset(path, params)\r\n }\r\n else {\r\n NavigatorService.navigateAndReset(homeRoute)\r\n }\r\n return\r\n }\r\n }\r\n \r\n switch (role) {\r\n case USER_TYPES.GUEST:\r\n if (!_guestRoutes.includes(route.path)) { // TODO: allow 404 pages?\r\n NavigatorService.navigateAndReset(homeRoute)\r\n }\r\n else {\r\n NavigatorService.navigateAndReset(route.path, route.params)\r\n }\r\n break\r\n default:\r\n if (_guestRoutes.includes(route.path) || route.path === '/' || route.path === '/logout') {\r\n NavigatorService.navigateAndReset(homeRoute)\r\n }\r\n else {\r\n NavigatorService.navigateAndReset(route.path, route.params)\r\n }\r\n break\r\n }\r\n}\r\n\r\nasync function getRouteLocationFromStorage() {\r\n const data = await getStorageItem(ROUTE_LOCATION)\r\n if (data) {\r\n const location = JSON.parse(data)\r\n if (location) {\r\n await removeStorageItem(ROUTE_LOCATION)\r\n return location\r\n }\r\n }\r\n}","import AppConfig from 'dpn-common/config/AppConfig'\r\nimport * as Sentry from '@sentry/react'\r\nimport { Integrations } from '@sentry/tracing'\r\nimport { CaptureConsole } from '@sentry/integrations'\r\nimport { USER_TYPES } from 'dpn-common/utils/AppConstants'\r\n\r\nfunction init() {\r\n if (!AppConfig.sentryUrl) {\r\n return\r\n }\r\n Sentry.init({\r\n dsn: AppConfig.sentryUrl,\r\n integrations: [\r\n new Integrations.BrowserTracing(),\r\n new CaptureConsole({\r\n levels: ['error']\r\n })\r\n ],\r\n // We recommend adjusting this value in production, or using tracesSampler\r\n // for finer control\r\n tracesSampleRate: 1.0,\r\n })\r\n Sentry.getCurrentHub().getClient().getOptions().enabled = AppConfig.enableSentry\r\n Sentry.setContext(AppConfig.environment, {\r\n react: true\r\n })\r\n}\r\n\r\nfunction dispose() {\r\n}\r\n\r\nfunction setUser(user) {\r\n if (!AppConfig.sentryUrl) {\r\n return\r\n }\r\n Sentry.setUser(user ? {\r\n email: user.email,\r\n userID: user.id + '',\r\n username: user.username,\r\n extra: {\r\n is_teacher: user.role === USER_TYPES.TEACHER\r\n }\r\n } : {})\r\n}\r\n\r\nfunction sendMessage(message, severityLevel) {\r\n if (!AppConfig.sentryUrl) {\r\n return\r\n }\r\n Sentry.captureMessage(message, { level: severityLevel })\r\n}\r\n\r\nfunction sendException(exception) {\r\n if (!AppConfig.sentryUrl) {\r\n return\r\n }\r\n Sentry.captureException(exception)\r\n}\r\n\r\nfunction sendBreadcrumb(message, category, data, level) {\r\n if (!AppConfig.sentryUrl) {\r\n return\r\n }\r\n Sentry.addBreadcrumb({ message, category, data, level })\r\n}\r\n\r\nfunction simulateCrash() {\r\n}\r\n\r\nexport default {\r\n init,\r\n dispose,\r\n setUser,\r\n sendException,\r\n sendBreadcrumb,\r\n simulateCrash,\r\n sendMessage,\r\n}\r\n","async function getCurrentToken() {\r\n return undefined\r\n}\r\n\r\nfunction removeNotification(_notification) {\r\n}\r\n\r\nfunction subscribeToTopic(topic) {\r\n}\r\n\r\nfunction unsubscribeFromTopic(topic) {\r\n}\r\n\r\nfunction displayLocalNotification(notification, channelId) {\r\n}\r\n\r\nasync function askForPermission() {\r\n return false\r\n}\r\n\r\nasync function getInitialNotification() {\r\n return undefined\r\n}\r\n\r\nasync function createChannel(channelId, channelName) {\r\n return undefined\r\n}\r\n\r\n// if application is in foreground or background and notification has been received\r\nfunction onNotification(handler) {\r\n}\r\n\r\n// notification is opened and app is in foreground or background\r\nfunction onNotificationOpened(handler) {\r\n}\r\n\r\n// on fcm token refresh\r\nfunction onTokenRefresh(handler) {\r\n}\r\n\r\nexport default {\r\n getCurrentToken,\r\n removeNotification,\r\n subscribeToTopic,\r\n unsubscribeFromTopic,\r\n displayLocalNotification,\r\n askForPermission,\r\n getInitialNotification,\r\n createChannel,\r\n onNotification,\r\n onNotificationOpened,\r\n onTokenRefresh,\r\n}","import React from 'react'\r\nimport { getEmbedLink } from 'dpn-common/utils/VideoUtils/VideoPlayerHelper'\r\n\r\nexport default class LinkWithImage extends React.Component {\r\n render() {\r\n const { index, link, onContextMenu } = this.props\r\n const embedLink = getEmbedLink(link)\r\n return (\r\n \r\n )\r\n }\r\n}","import React from 'react'\r\nimport { playVideo } from 'dpn-common/utils/VideoUtils/VideoLinkUtils'\r\nimport LinkWithImage from './LinkWithImage'\r\nimport ImageComponent from '../General/ImageComponent'\r\nimport TextComponent from '../General/TextComponent'\r\nimport LinkComponent from 'components/General/LinkComponent'\r\nimport FetchService from 'dpn-common/services/FetchService'\r\nimport { ExternalAppLinkComponent } from 'components/General/ExternalAppComponent'\r\n\r\nfunction getUrlText(index, link, onPressLink) {\r\n return (\r\n onPressLink ? onPressLink(link) : playVideo(link)}>\r\n {link}\r\n \r\n )\r\n}\r\n\r\nfunction renderLinkWithImage(i, link, openMenu) {\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction renderExternalAppLink(i, link, _onPressLink) {\r\n // return getUrlText(i, link, onPressLink)\r\n return (\r\n \r\n )\r\n}\r\n\r\nfunction renderStringTokens(i, tokens) {\r\n if (Array.isArray(tokens)) {\r\n return (\r\n \r\n {tokens.map(x => x)}\r\n \r\n )\r\n }\r\n return (\r\n \r\n {tokens}\r\n \r\n )\r\n}\r\n\r\nfunction renderEmoticon(index, url) {\r\n const imageUrl = FetchService.staticUrl(url)\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nfunction renderTokens(tokenizer) {\r\n return (\r\n
\r\n {tokenizer.map(x => x)}\r\n
\r\n )\r\n}\r\n\r\nexport default {\r\n getUrlText,\r\n renderLinkWithImage,\r\n renderStringTokens,\r\n renderEmoticon,\r\n renderTokens,\r\n renderExternalAppLink\r\n}","import { SUPPORTED_CSV_FILE_FORMATS } from 'dpn-common/utils/FileConstants'\r\nimport FileSaver from 'file-saver'\r\n\r\nfunction setItem(key, value, callback) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n window.localStorage.setItem(key, value)\r\n callback && callback()\r\n resolve && resolve()\r\n }\r\n catch (e) {\r\n console.log('ERROR: ' + e)\r\n reject && reject(e)\r\n }\r\n })\r\n}\r\n\r\nfunction getItem(key, callback) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const result = window.localStorage.getItem(key)\r\n callback && callback()\r\n resolve && resolve(result)\r\n }\r\n catch (e) {\r\n console.log('ERROR: ' + e)\r\n reject && reject(e)\r\n }\r\n })\r\n}\r\n\r\nfunction removeItem(key, callback) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n window.localStorage.removeItem(key)\r\n callback && callback()\r\n resolve && resolve()\r\n }\r\n catch (e) {\r\n console.log('ERROR: ' + e)\r\n reject && reject(e)\r\n }\r\n })\r\n}\r\n\r\nfunction saveFile(fileContent, name) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const blob = new Blob([fileContent], { type: SUPPORTED_CSV_FILE_FORMATS.APPLICATION_CSV })\r\n FileSaver.saveAs(blob, name)\r\n resolve && resolve(true)\r\n }\r\n catch (e) {\r\n console.log('ERROR: ' + e)\r\n reject && reject(false)\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n setItem,\r\n getItem,\r\n removeItem,\r\n saveFile,\r\n}","function canOpenURL(url, onError) {\r\n let xhr = new XMLHttpRequest()\r\n return new Promise((resolve, reject) => {\r\n xhr.onload = () => {\r\n resolve && resolve(true)\r\n }\r\n xhr.onerror = () => {\r\n onError && onError(false)\r\n }\r\n xhr.open('HEAD', url, true)\r\n xhr.send()\r\n })\r\n}\r\n\r\nfunction openURL(url, onError) {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n let win = window.open(url, '_blank')\r\n win.focus()\r\n resolve && resolve(true)\r\n }\r\n catch (e) {\r\n onError && onError('Error: ' + e)\r\n reject && reject()\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n canOpenURL,\r\n openURL,\r\n}\r\n","const INTERVAL_TIME = 60000\r\nconst FETCH_ADDR = 'https://www.google.com'\r\n\r\nlet intervalHandler\r\nlet connectivityStatus\r\n\r\nfunction dispose() {\r\n intervalHandler && clearInterval(intervalHandler)\r\n}\r\n\r\nfunction subscribe(listener) {\r\n intervalHandler = setInterval(async () => {\r\n const isConnected = await isOnline()\r\n if (isConnected !== connectivityStatus) {\r\n listener({ type: isConnected ? 'yes' : 'none' })\r\n }\r\n connectivityStatus = isConnected\r\n }, INTERVAL_TIME)\r\n}\r\n\r\nasync function isOnline() {\r\n try {\r\n await fetch(FETCH_ADDR, {\r\n method: 'GET',\r\n mode: 'no-cors',\r\n \r\n })\r\n return true\r\n }\r\n catch (_ex) {\r\n return false\r\n }\r\n}\r\n\r\nexport default {\r\n subscribe,\r\n isOnline,\r\n dispose,\r\n}\r\n","\r\nconst _os = 'web'\r\n\r\nfunction getOS() {\r\n return _os\r\n}\r\n\r\nexport default {\r\n getOS,\r\n}","function playVimeoVideo(vimeoVideoId) {\r\n}\r\n\r\nfunction playYouTubeVideo(youtubeVideoId, beforePlayCallback, onExitCallback) {\r\n}\r\n\r\nexport default {\r\n playVimeoVideo,\r\n playYouTubeVideo,\r\n}","import AppConfig from 'dpn-common/config/AppConfig'\r\nimport FetchService from 'dpn-common/services/FetchService'\r\nimport SharedServices from 'dpn-common/services/SharedServices'\r\nimport { IDENTITY_SERVICE } from 'dpn-common/utils/AppConstants'\r\n\r\nconst getStateFuncGenerator = getStateFunc => () => {\r\n const state = getStateFunc()\r\n return {\r\n userId: state.base.auth.userData.id || 0,\r\n language: state.settingsAndLanguages.settings.languageCode\r\n }\r\n}\r\n\r\nexport const createFetchServices = function (getStateFunc) {\r\n FetchService.add(\r\n '', AppConfig.backendUrls.baseEndPointUrl, AppConfig.staticFilesPath.baseEndPointPath,\r\n getStateFuncGenerator(getStateFunc), SharedServices.FirebaseService.getAccessToken,\r\n )\r\n \r\n FetchService.add(\r\n IDENTITY_SERVICE, AppConfig.backendUrls.identityService, AppConfig.staticFilesPath.identityPath,\r\n getStateFuncGenerator(getStateFunc), SharedServices.FirebaseService.getAccessToken,\r\n )\r\n \r\n FetchService[IDENTITY_SERVICE].setGuestEndpoints([\r\n '/api/login',\r\n '/api/login/refreshTokenWithToken',\r\n '/api/register',\r\n '/api/login/facebook',\r\n '/api/forgot/password',\r\n '/api/forgot/email',\r\n '/api/language/',\r\n '/api/resetPassword'\r\n ])\r\n}","export const FIREBASE_CONFIG = Object.freeze({\r\n apiKey: 'AIzaSyBqmwWelNgJNe6QNCpyTbrwqpRf9FRcIlM',\r\n authDomain: 'my-piano-adventures.firebaseapp.com',\r\n databaseURL: 'https://my-piano-adventures.firebaseio.com',\r\n projectId: 'my-piano-adventures',\r\n storageBucket: 'my-piano-adventuresappspot.com',\r\n messagingSenderId: '909796213604',\r\n appId: '1:909796213604:web:6ec78a76c388add7737071'\r\n})","import { FIREBASE_CONFIG } from 'app/FirebaseConfig'\r\nimport { initializeApp } from 'firebase/app'\r\nimport {\r\n getAuth, signInWithEmailAndPassword, signInWithPopup, signOut,\r\n GoogleAuthProvider, OAuthProvider, signInWithCustomToken,\r\n} from 'firebase/auth'\r\n\r\nlet firebaseApp\r\n\r\nfunction init() {\r\n firebaseApp = initializeApp(FIREBASE_CONFIG)\r\n}\r\n\r\nfunction getFirebaseAuth() {\r\n return getAuth(firebaseApp)\r\n}\r\n\r\nfunction getFirebaseUser() {\r\n return getFirebaseAuth()?.currentUser\r\n}\r\n\r\nasync function loginWithEmailAndPassword(email, password) {\r\n const { user } = await signInWithEmailAndPassword(getFirebaseAuth(), email, password)\r\n return user\r\n}\r\n\r\nasync function loginWithGoogle() {\r\n const provider = new GoogleAuthProvider()\r\n provider.setCustomParameters({ prompt: 'select_account' })\r\n const { user } = await signInWithPopup(getFirebaseAuth(), provider)\r\n return user\r\n}\r\n\r\nasync function loginWithApple() {\r\n const provider = new OAuthProvider('apple.com')\r\n provider.addScope('email')\r\n provider.addScope('name')\r\n const { user } = await signInWithPopup(getFirebaseAuth(), provider)\r\n return user\r\n}\r\n\r\nasync function loginWithCustomToken(customLoginToken) {\r\n const { user } = await signInWithCustomToken(getFirebaseAuth(), customLoginToken)\r\n return user\r\n}\r\n\r\nasync function getAccessToken(firebaseUser, forceRefresh) {\r\n if (!firebaseUser) {\r\n firebaseUser = getFirebaseUser()\r\n }\r\n\r\n return await firebaseUser?.getIdToken(forceRefresh)\r\n}\r\n\r\nasync function logout() {\r\n return await signOut(getFirebaseAuth())\r\n}\r\n\r\nlet onAuthStateChangedListener\r\n\r\nfunction setOnAuthStateChanged(callback) {\r\n onAuthStateChangedListener && onAuthStateChangedListener()\r\n\r\n if (callback) {\r\n onAuthStateChangedListener = getFirebaseAuth().onAuthStateChanged(callback)\r\n }\r\n}\r\n\r\nasync function appleLoginSupported() {\r\n return true\r\n}\r\n\r\nasync function googleLoginSupported() {\r\n return true\r\n}\r\n\r\nexport default {\r\n init,\r\n getFirebaseAuth,\r\n getFirebaseUser,\r\n loginWithEmailAndPassword,\r\n loginWithGoogle,\r\n loginWithApple,\r\n loginWithCustomToken,\r\n getAccessToken,\r\n logout,\r\n setOnAuthStateChanged,\r\n appleLoginSupported,\r\n googleLoginSupported,\r\n}","import React from 'react'\r\nimport Provider from 'react-redux/es/components/Provider'\r\nimport { Router } from 'react-router-dom'\r\nimport jssExtend from 'jss-extend'\r\nimport history from '@history'\r\nimport store from './store'\r\nimport AppContext from './AppContext'\r\nimport { routes, routeMappings, routeReverseMappings } from './fuse-configs/routesConfig'\r\nimport { create } from 'jss'\r\nimport { StylesProvider, jssPreset, createGenerateClassName } from '@material-ui/styles'\r\nimport ConnectivityHelper from 'dpn-common/utils/ConnectivityHelper'\r\n\r\nimport SettingsService from 'dpn-common/services/SettingsService'\r\nimport AppContainer from 'components/AppContainer'\r\nimport NavigatorService from './services/common/NavigatorService'\r\nimport VideoPlayerHelper from 'dpn-common/utils/VideoUtils/VideoPlayerHelper'\r\nimport SentryService from './services/common/SentryService'\r\nimport NotificationsHelper from 'dpn-common/utils/NotificationsHelper'\r\nimport NotificationsService from './services/common/NotificationsService'\r\nimport { init as initChatHelper } from 'dpn-common/utils/ChatHelperFunctions'\r\nimport ChatHelperComponents from './components/Chat/ChatHelperComponents'\r\nimport SharedServices from 'dpn-common/services/SharedServices'\r\nimport AlertService from './services/common/AlertService'\r\nimport AsyncStorageService from './services/common/AsyncStorageService'\r\nimport LinkingService from './services/common/LinkingService'\r\nimport MessageUIService from './services/common/MessageUIService'\r\nimport ConnectivityService from './services/common/ConnectivityService'\r\nimport PlatformService from './services/common/PlatformService'\r\nimport VideoPlayerService from './services/common/VideoPlayerService'\r\nimport { createFetchServices } from 'dpn-common/utils/FetchServicesFactory'\r\nimport AnalyticsService from 'services/AnalyticsService'\r\nimport FirebaseService from 'services/common/FirebaseService'\r\n\r\nconst jss = create({\r\n ...jssPreset(),\r\n plugins: [...jssPreset().plugins, jssExtend()],\r\n insertionPoint: document.getElementById('jss-insertion-point'),\r\n})\r\n\r\nconst generateClassName = createGenerateClassName()\r\n\r\nSharedServices.init(AlertService, AsyncStorageService, LinkingService, MessageUIService, \r\n NavigatorService, ConnectivityService, PlatformService, SentryService, AnalyticsService, FirebaseService)\r\n\r\ncreateFetchServices(store.getState)\r\n\r\nSettingsService.init(store.getState)\r\n// NavigatorService must be initialized before others (SentryService, ConnectivityHelper)\r\nNavigatorService.init(history, routeMappings, routeReverseMappings, routes)\r\nVideoPlayerHelper.init(VideoPlayerService, () => undefined, () => undefined)\r\nSentryService.init()\r\nConnectivityHelper.init()\r\nNotificationsHelper.init(NotificationsService)\r\ninitChatHelper(ChatHelperComponents)\r\nFirebaseService.init()\r\n\r\nconst routesObj = { routes }\r\nclass App extends React.Component {\r\n componentWillUnmount() {\r\n ConnectivityHelper.dispose()\r\n SharedServices.dispose()\r\n }\r\n\r\n render() {\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\nexport default App","import 'typeface-muli'\r\nimport './src/styles/index.css'\r\n\r\nimport React from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport App from './src/App'\r\n\r\nReactDOM.render(, document.getElementById('root'))","import ActionTypes from './ActionTypes'\r\nimport {\r\n buyRewardPost, sellRewardDelete,\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { STUDENT_DETAILS, GROUP_FETCH_PARAMS } from '../utils/AppConstants'\r\nimport { showSuccess, getStorageItem, setStorageItem, infoAlert } from '../services/SharedServices'\r\nimport { loadGroupsDataForStudentFetch } from './GroupActions'\r\nimport { acceptStudentInvitationPost, userConnectionGet } from 'dpn-common/services/IdentityEndpointsService'\r\n\r\nexport async function buyRewardFetch(rewardId, studentId, dispatch, teacherId) {\r\n const fetchPromise = buyRewardPost(rewardId, studentId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n await loadGroupsDataForStudentFetch(GROUP_FETCH_PARAMS, dispatch, teacherId)\r\n showSuccess(texti18n(Messages.REWARD_BUY_SUCCESSFUL))\r\n }\r\n else {\r\n infoAlert(texti18n(responseData.message))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function sellRewardFetch(rewardId, dispatch, teacherId) {\r\n const fetchPromise = sellRewardDelete(rewardId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n await loadGroupsDataForStudentFetch(GROUP_FETCH_PARAMS, dispatch, teacherId)\r\n showSuccess(texti18n(Messages.REWARD_RETURN_SUCCESSFUL))\r\n }\r\n else {\r\n infoAlert(texti18n(responseData.message))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function getUserConnectionsFetchNoDispatch() {\r\n const fetchPromise = userConnectionGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.success ? responseData.items : undefined\r\n}\r\n\r\nexport async function acceptStudentInvitationFetch(teacherId, code) {\r\n const fetchPromise = acceptStudentInvitationPost(teacherId, code)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData\r\n}\r\n\r\nexport const chooseTeacher = async (teacher, studentId, dispatch) => {\r\n const key = `${STUDENT_DETAILS}_${studentId}`\r\n const studentData = await getStorageItem(key)\r\n const studentDetails = JSON.parse(studentData) || {}\r\n studentDetails.currentTeacherId = teacher.id\r\n await setStorageItem(key, JSON.stringify(studentDetails))\r\n\r\n dispatch(setStudentChosenTeacher(teacher))\r\n}\r\n\r\nexport const loadSavedTeacher = async (studentId) => {\r\n const studentData = await getStorageItem(`${STUDENT_DETAILS}_${studentId}`)\r\n if (studentData) {\r\n return JSON.parse(studentData) || undefined\r\n }\r\n}\r\n\r\nexport function setStudentChosenTeacher(teacher) {\r\n return { type: ActionTypes.STUDENT_SET_CHOSEN_TEACHER_ACTION, teacher }\r\n}\r\n","import {createMuiTheme} from '@material-ui/core';\r\nimport {lightBlue, red} from '@material-ui/core/colors';\r\nimport {fuseDark} from '@fuse/fuse-colors';\r\nimport _ from '@lodash';\r\nimport qs from 'qs';\r\n\r\n/**\r\n * SETTINGS DEFAULTS\r\n */\r\nexport const defaultSettings = {\r\n customScrollbars: true,\r\n theme : {\r\n main : 'default',\r\n navbar : 'mainThemeDark',\r\n toolbar: 'mainThemeLight',\r\n footer : 'mainThemeDark'\r\n }\r\n};\r\n\r\nexport function getParsedQuerySettings()\r\n{\r\n const parsedQueryString = qs.parse(window.location.search, {ignoreQueryPrefix: true});\r\n\r\n if ( parsedQueryString && parsedQueryString.defaultSettings )\r\n {\r\n return JSON.parse(parsedQueryString.defaultSettings);\r\n }\r\n return {}\r\n\r\n // Generating route params from settings\r\n /*const settings = qs.stringify({\r\n defaultSettings: JSON.stringify(defaultSettings, {strictNullHandling: true})\r\n });\r\n console.info(settings);*/\r\n}\r\n\r\n/**\r\n * THEME DEFAULTS\r\n */\r\nexport const defaultThemeOptions = {\r\n typography: {\r\n fontFamily : [\r\n 'Muli',\r\n 'Roboto',\r\n '\"Helvetica\"',\r\n 'Arial',\r\n 'sans-serif'\r\n ].join(','),\r\n fontWeightLight : 300,\r\n fontWeightRegular : 400,\r\n fontWeightMedium : 600,\r\n useNextVariants : true,\r\n suppressDeprecationWarnings: true\r\n },\r\n overrides: {\r\n MuiButton: {\r\n contained: {\r\n boxShadow: 'none',\r\n '&:hover': {\r\n boxShadow: 'none',\r\n }\r\n }\r\n },\r\n MuiFab: {\r\n root: {\r\n boxShadow: 'none',\r\n }\r\n },\r\n MuiDialog: {\r\n paper: {\r\n boxShadow: 'none',\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const mustHaveThemeOptions = {\r\n typography: {\r\n htmlFontSize: 10,\r\n body1 : {\r\n fontSize: \"1.4rem\",\r\n },\r\n body2 : {\r\n fontSize: \"1.4rem\",\r\n }\r\n }\r\n};\r\n\r\nexport const defaultThemes = {\r\n default : {\r\n palette: {\r\n type : 'light',\r\n primary : fuseDark,\r\n secondary: {\r\n light: lightBlue[400],\r\n main : lightBlue[600],\r\n dark : lightBlue[700]\r\n },\r\n error : red\r\n },\r\n status : {\r\n danger: 'orange'\r\n }\r\n },\r\n defaultDark: {\r\n palette: {\r\n type : 'dark',\r\n primary : fuseDark,\r\n secondary: {\r\n light: lightBlue[400],\r\n main : lightBlue[600],\r\n dark : lightBlue[700]\r\n },\r\n error : red\r\n },\r\n status : {\r\n danger: 'orange'\r\n }\r\n }\r\n};\r\n\r\nexport function extendThemeWithMixins(obj)\r\n{\r\n const theme = createMuiTheme(obj);\r\n return {\r\n border : (width = 1) => ({\r\n borderWidth: width,\r\n borderStyle: 'solid',\r\n borderColor: theme.palette.divider\r\n }),\r\n borderLeft : (width = 1) => ({\r\n borderLeftWidth: width,\r\n borderStyle : 'solid',\r\n borderColor : theme.palette.divider\r\n }),\r\n borderRight : (width = 1) => ({\r\n borderRightWidth: width,\r\n borderStyle : 'solid',\r\n borderColor : theme.palette.divider\r\n }),\r\n borderTop : (width = 1) => ({\r\n borderTopWidth: width,\r\n borderStyle : 'solid',\r\n borderColor : theme.palette.divider\r\n }),\r\n borderBottom: (width = 1) => ({\r\n borderBottomWidth: width,\r\n borderStyle : 'solid',\r\n borderColor : theme.palette.divider\r\n })\r\n }\r\n}\r\n\r\nexport function mainThemeVariations(theme)\r\n{\r\n return {\r\n mainThemeDark : createMuiTheme(_.merge({}, defaultThemeOptions, theme, {palette: {type: 'dark'}, ...mustHaveThemeOptions})),\r\n mainThemeLight: createMuiTheme(_.merge({}, defaultThemeOptions, theme, {palette: {type: 'light'}, ...mustHaveThemeOptions}))\r\n }\r\n}\r\n","import { FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST } from 'dpn-common/utils/AppConstants'\r\nimport { parametersToQueryString } from 'dpn-common/utils/UrlQueryHelperFunctions'\r\n\r\nconst DEFAULT_SERVICE_KEY = 'default'\r\n\r\nconst SHOW_REQUEST_LOGS = false\r\n\r\nconst fetchService = {\r\n executeDelete: function (endpoint, urlParameters, signal, customHeaders) { \r\n return this[DEFAULT_SERVICE_KEY].executeDelete(endpoint, urlParameters, signal, customHeaders)\r\n },\r\n executeGet: function (endpoint, urlParameters, signal, customHeaders) {\r\n return this[DEFAULT_SERVICE_KEY].executeGet(endpoint, urlParameters, signal, customHeaders)\r\n },\r\n executePost: function (endpoint, data, urlParameters, signal, customHeaders) {\r\n return this[DEFAULT_SERVICE_KEY].executePost(endpoint, data, urlParameters, signal, customHeaders)\r\n },\r\n executePut: function (endpoint, data, urlParameters, signal, customHeaders) {\r\n return this[DEFAULT_SERVICE_KEY].executePut(endpoint, data, urlParameters, signal, customHeaders)\r\n },\r\n url: function (resourcePath, defaultResource = '') {\r\n return this[DEFAULT_SERVICE_KEY].url(resourcePath, defaultResource)\r\n },\r\n staticUrl: function (resourcePath, defaultAsset = '') {\r\n return this[DEFAULT_SERVICE_KEY].staticUrl(resourcePath, defaultAsset)\r\n },\r\n getFullUrl: function (route, urlParameters) {\r\n return this[DEFAULT_SERVICE_KEY].getFullUrl(route, urlParameters)\r\n },\r\n imageUrl: function (resourcePath, defaultAsset) {\r\n return this[DEFAULT_SERVICE_KEY].imageUrl(resourcePath, defaultAsset)\r\n },\r\n setCustomHeaders: function (customHeaders) {\r\n return this[DEFAULT_SERVICE_KEY].setCustomHeaders(customHeaders)\r\n },\r\n setGuestEndpoints: function (guestEndpoints) {\r\n return this[DEFAULT_SERVICE_KEY].setGuestEndpoints(guestEndpoints)\r\n },\r\n add: function (name, baseEndPointUrl, baseStaticFilesUrl, getStateFunc, getAccessTokenFunc) {\r\n const ns = createFetchWrapperService(baseEndPointUrl, baseStaticFilesUrl, getStateFunc, getAccessTokenFunc, SHOW_REQUEST_LOGS)\r\n this[name || DEFAULT_SERVICE_KEY] = ns\r\n return this\r\n },\r\n}\r\n\r\nexport default fetchService\r\n\r\n/**\r\n * Create fetch wrapper service\r\n * @param {String} baseEndPointUrl base for endpoints\r\n * @param {String} baseStaticFilesUrl base for static files\r\n * @param {Function} getStateFunc function should return { userId, token, language }. UserId should be 0 for guest users\r\n * @param {Function} getAccessTokenFunc function should return string accessToken\r\n * @param {Boolean} SHOW_REQUEST_LOGS log some info or not - by default not\r\n*/\r\nfunction createFetchWrapperService(baseEndPointUrl, baseStaticFilesUrl, getStateFunc, getAccessTokenFunc, SHOW_REQUEST_LOGS) {\r\n let globalCustomHeaders = undefined\r\n let globalGuestEndpoints = undefined\r\n\r\n /**\r\n * Get url for api call\r\n * @param {string} route route\r\n * @param {Object} urlParameters key->value map of query parameters\r\n * @return {string} full url to api\r\n */\r\n function getFullUrl(route, urlParameters) {\r\n return `${baseEndPointUrl}${route}${parametersToQueryString(urlParameters)}`\r\n }\r\n\r\n /**\r\n * Set custom header for each request. Caution, when using this!\r\n * @param {Object} customHeaders key->value map of header values\r\n */\r\n function setCustomHeaders(customHeaders) {\r\n globalCustomHeaders = customHeaders\r\n }\r\n\r\n /**\r\n * Set global guest endpoints. Those endpoints do not depend on api key from redux\r\n * @param {Array} guestEndpoints array of endpoints which are available for guests\r\n */\r\n function setGuestEndpoints(guestEndpoints) {\r\n globalGuestEndpoints = guestEndpoints\r\n }\r\n\r\n /**\r\n * Absolute url to resource file like image etc\r\n * @param {string} resourcePath relative path to resource\r\n * @param {string} defaultResource default resource if resourcePath is null or not defined\r\n * @return {string} resourcePath url\r\n */\r\n function url(resourcePath, defaultResource = '') {\r\n if (resourcePath && resourcePath.length) {\r\n if (resourcePath.startsWith('http') || resourcePath.startsWith('data:')) {\r\n return resourcePath\r\n }\r\n \r\n const path = resourcePath[0] !== '/' ? '/' + resourcePath : resourcePath\r\n return getFullUrl(path)\r\n }\r\n return defaultResource\r\n }\r\n \r\n /**\r\n * Creates object for source parameter of react native image component\r\n * @deprecated use staticUrl or url\r\n * @param {string} resourcePath relative path to resource\r\n * @param {string} defaultResource default value if resourcePath is not set\r\n */\r\n function imageUrl(resourcePath, defaultAsset) {\r\n if (!resourcePath || !resourcePath.length) {\r\n return defaultAsset\r\n }\r\n const uri = staticUrl(resourcePath)\r\n return { uri } \r\n }\r\n\r\n /**\r\n * Creates path to static file\r\n * @param {string} resourcePath relative path to resource\r\n * @param {string} defaultResource default value if resourcePath is not set\r\n */\r\n function staticUrl(resourcePath, defaultAsset) {\r\n if (!resourcePath || !resourcePath.length) {\r\n return defaultAsset\r\n }\r\n else if (resourcePath.startsWith('http') || resourcePath.startsWith('data:')) {\r\n return resourcePath\r\n }\r\n const pathFix = resourcePath[0] !== '/' ? '/' : ''\r\n const uri = `${baseStaticFilesUrl}${pathFix}${resourcePath}`\r\n return uri\r\n }\r\n \r\n /**\r\n * Execute fetch post. Adds token if user is logged in\r\n * @param {string} endpoint \r\n * @param {Object} data what should we post in body. This object will be stringified \r\n * @param {Array} urlParameters format like [{key1: 'hello hello}, {key2: 'whats up'}]\r\n * @param {signal} @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\r\n * @param {customHeaders} custom headers for this request eq { token: 'xyz' }\r\n * @return {Promise}\r\n */\r\n async function executePost(endpoint, data, urlParameters, signal, customHeaders) {\r\n const url = getFullUrl(endpoint, urlParameters)\r\n const body = data ? JSON.stringify(data) : null\r\n SHOW_REQUEST_LOGS && console.log('post: ' + url)\r\n SHOW_REQUEST_LOGS && console.log('body: ', body)\r\n return await customFetch(url, {\r\n method: 'POST',\r\n headers: await getBaseHeaders(endpoint, customHeaders || globalCustomHeaders),\r\n body,\r\n signal,\r\n })\r\n }\r\n \r\n /**\r\n * Execute fetch get. Adds token if user is logged in\r\n * @param {string} endpoint \r\n * @param {Array} urlParameters format like [{key1: 'hello hello}, {key2: 'whats up'}]\r\n * @param {signal} @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\r\n * @param {customHeaders} custom headers for this request eq { token: 'xyz' }\r\n * @return {Promise}\r\n */\r\n async function executeGet(endpoint, urlParameters, signal, customHeaders) {\r\n const url = getFullUrl(endpoint, urlParameters)\r\n SHOW_REQUEST_LOGS && console.log('get: ' + url)\r\n return await customFetch(url, {\r\n method: 'GET',\r\n headers: await getBaseHeaders(endpoint, customHeaders || globalCustomHeaders),\r\n signal,\r\n })\r\n }\r\n \r\n /**\r\n * Execute fetch delete. Adds token if user is logged in\r\n * @param {string} endpoint \r\n * @param {Array} urlParameters format like [{key1: 'hello hello}, {key2: 'whats up'}]\r\n * @param {signal} @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\r\n * @param {customHeaders} custom headers for this request eq { token: 'xyz' }\r\n * @return {Promise}\r\n */\r\n async function executeDelete(endpoint, urlParameters, signal, customHeaders) {\r\n const url = getFullUrl(endpoint, urlParameters)\r\n SHOW_REQUEST_LOGS && console.log('delete: ' + url)\r\n return await customFetch(url, {\r\n method: 'DELETE',\r\n headers: await getBaseHeaders(endpoint, customHeaders || globalCustomHeaders),\r\n signal,\r\n })\r\n }\r\n \r\n /**\r\n * Execute fetch put. Adds token if user is logged in\r\n * @param {string} endpoint \r\n * @param {Object} data what should we put in body. This object will be stringified \r\n * @param {Array} urlParameters format like [{key1: 'hello hello}, {key2: 'whats up'}]\r\n * @param {signal} @see https://developer.mozilla.org/en-US/docs/Web/API/AbortController/signal\r\n * @param {customHeaders} custom headers for this request eq { token: 'xyz' }\r\n * @return {Promise}\r\n */\r\n async function executePut(endpoint, data, urlParameters, signal, customHeaders) {\r\n const url = getFullUrl(endpoint, urlParameters)\r\n const body = data ? JSON.stringify(data) : null\r\n SHOW_REQUEST_LOGS && console.log('put: ' + url)\r\n SHOW_REQUEST_LOGS && console.log('body: ', body)\r\n return await customFetch(url, {\r\n method: 'PUT',\r\n headers: await getBaseHeaders(endpoint, customHeaders || globalCustomHeaders),\r\n body,\r\n signal,\r\n })\r\n }\r\n\r\n async function getBaseHeaders(endpoint, customHeaders) {\r\n const headers = {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n }\r\n\r\n const accessToken = await getAccessTokenFunc()\r\n const state = getStateFunc()\r\n // TODO: allow wildcard matching not just full string for guestEndpoints\r\n if (!!accessToken && (!globalGuestEndpoints || !globalGuestEndpoints.includes(endpoint))) {\r\n headers['Authorization'] = 'Bearer ' + accessToken\r\n }\r\n if (state.language) {\r\n headers['Accept-Language'] = state.language\r\n }\r\n if (customHeaders) {\r\n Object.keys(customHeaders).forEach(x => {\r\n if (x.toLowerCase() === 'token') {\r\n if (customHeaders[x]) {\r\n headers['Authorization'] = 'Bearer ' + customHeaders[x]\r\n }\r\n else {\r\n delete headers['Authorization']\r\n }\r\n }\r\n else {\r\n headers[x] = customHeaders[x]\r\n }\r\n })\r\n }\r\n return headers\r\n }\r\n\r\n async function customFetch(url, fetchOptions) {\r\n const userId1 = getStateFunc().userId\r\n const response = await fetch(url, fetchOptions)\r\n const userId2 = getStateFunc().userId\r\n\r\n // another user uses app between request and response -> must return error\r\n if (userId1 !== userId2) {\r\n console.log(`Fetch call sent by user ${userId1} but received for ${userId2}: ${url}`)\r\n throw new Error(FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST)\r\n }\r\n\r\n return response\r\n }\r\n\r\n return {\r\n executeDelete,\r\n executeGet,\r\n executePost,\r\n executePut,\r\n setCustomHeaders,\r\n setGuestEndpoints,\r\n url,\r\n staticUrl,\r\n getFullUrl,\r\n imageUrl,\r\n }\r\n}","import { getTemporaryForJwtToken } from 'dpn-common/actions/Actions'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { openURL, showError } from 'dpn-common/services/SharedServices'\r\nimport { Messages, texti18n } from './MessageConstants'\r\nimport { isImageLink } from './VideoUtils/VideoLinkUtils'\r\nimport { isVimeoLink, isYouTubeLink } from './VideoUtils/VideoPlayerHelper'\r\n\r\nconst externalAppUrls = Object.freeze({\r\n PA_FLASH_CARDS: 'paflashcards://',\r\n PA_PLAYER: 'paplayer://',\r\n ISM: 'ismapp://',\r\n PA_ADULT: AppConfig.paAdultBaseUrl,\r\n})\r\n\r\nconst externalAppUrlsArray = Object.freeze(Object.values(externalAppUrls))\r\n\r\nexport const LinksHelper = {\r\n ExternalAppUrls: externalAppUrls,\r\n getLinkRegex: () => /(http:\\/\\/www\\.|https:\\/\\/www\\.|http:\\/\\/|https:\\/\\/|www\\.){1}[-a-zA-Z0-9@:%_\\\\+.~#?*&//=]+/gi,\r\n getExternalAppLinkRegex: () => new RegExp(`(${externalAppUrlsArray.map(x => `${x}`).join('|')})[-a-zA-Z0-9@:%_\\\\+.~#?*&//=]*`, 'gi'),\r\n toHttp: link => !!link && link.toLowerCase().startsWith('www') ? `http://${link}` : link,\r\n getLinkTitle: link => link.startsWith(externalAppUrls.PA_PLAYER) ? Messages.PA_PLAYER : link.startsWith(externalAppUrls.PA_FLASH_CARDS) ? Messages.PA_FLASH_CARDS : Messages.OPEN_PA_PLUS,\r\n toIsmLink: function (url) {\r\n const args = url.replace(externalAppUrls.ISM, '')\r\n const [, compositionId] = args.split('=')\r\n return `${AppConfig.ismUrl}/${compositionId}/mode`\r\n },\r\n generateFullUrl: async (url, userId) => {\r\n const responseData = await getTemporaryForJwtToken()\r\n return `${url}${url.includes('?') ? '&' : '?'}mypaUserId=${userId}&mypaCode=${responseData.value}`\r\n },\r\n openLinkAction: function (url, userId) {\r\n return () => {\r\n if (userId) {\r\n getTemporaryForJwtToken().then(function (responseData) {\r\n const fullUrl = `${url}${url.includes('?') ? '&' : '?'}mypaUserId=${userId}&mypaCode=${responseData.value}`\r\n openURL(fullUrl, () => showError(texti18n(Messages.COULD_NOT_OPEN_THE_LINK)))\r\n })\r\n }\r\n else {\r\n openURL(url, () => showError(texti18n(Messages.COULD_NOT_OPEN_THE_LINK)))\r\n }\r\n }\r\n },\r\n prepareLinks: function (links) {\r\n const ismLinks = links.filter(x => x.includes(externalAppUrls.ISM))\r\n const externalAppLinkRegex = this.getExternalAppLinkRegex()\r\n const otherLinks = links.filter(x => !!x && !ismLinks.includes(x)).map(x => {\r\n const isExternalAppLink = x.match(externalAppLinkRegex) || false\r\n const isVideoLink = !isExternalAppLink && (isYouTubeLink(x) || isVimeoLink(x))\r\n return {\r\n isExternalAppLink,\r\n isVideoLink,\r\n isImageLink: !isVideoLink && !isExternalAppLink && isImageLink(x),\r\n url: x,\r\n } \r\n })\r\n \r\n otherLinks.sort(function (a, b) {\r\n const valueA = a.isVideoLink || a.isExternalAppLink ? 1 : a.isImageLink ? 2 : 4\r\n const valueB = b.isVideoLink || b.isExternalAppLink ? 1 : b.isImageLink ? 2 : 4\r\n return valueA - valueB\r\n })\r\n return {\r\n ismLinks: AppConfig.ismEnabled ? ismLinks : [],\r\n otherLinks,\r\n }\r\n }\r\n}\r\n","export const SUPPORTED_FILE_TYPES = Object.freeze({\r\n PDF: 'application/pdf',\r\n MPEG: 'audio/mpeg',\r\n FLAC: 'audio/flac',\r\n MID: 'audio/mid',\r\n MIDI: 'audio/midi'\r\n})\r\n\r\nexport const SUPPORTED_FILE_EXTENSIONS = Object.freeze({\r\n PDF: 'pdf',\r\n MPEG: 'mpeg',\r\n FLAC: 'flac',\r\n MID: 'mid',\r\n MIDI: 'midi'\r\n})\r\n\r\nexport const SUPPORTED_IMPORT_FILE_TYPES = Object.freeze({\r\n CSV: '.csv'\r\n})\r\n\r\nexport const NATIVE_CSV_FORMAT = Object.freeze({\r\n TEXT_CSV_LONG: 'text/comma-separated-values',\r\n TEXT_CSV: 'text/csv',\r\n})\r\n\r\nexport const SUPPORTED_CSV_FILE_FORMATS = Object.freeze({\r\n APPLICATION_CSV: 'application/csv',\r\n APPLICATION_VND_MS_EXCEL: 'application/vnd.ms-excel',\r\n TEXT_CSV: 'text/csv',\r\n})\r\n\r\nexport const SUPPORTED_IMPORT_FILE_EXTENSIONS = Object.freeze({\r\n CSV: 'csv'\r\n})\r\n","import React from 'react'\r\n\r\nconst AppContext = React.createContext({})\r\n\r\nexport default AppContext\r\n","import ActionTypes from './ActionTypes'\r\nimport { \r\n sendMessagePost, messagesGet, messagesGroupedGet, messagesByTextGet, deleteMessageDelete\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\n\r\nexport const MessagesInGroupLimit = 25\r\nexport const SearchMessagesLimit = 25\r\nexport const GroupedMessagesLimit = 25\r\n\r\nexport async function sendMessageFetch(groupIds, message, existingMessages, dispatch) {\r\n const fetchPromise = sendMessagePost(groupIds, message)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n if (groupIds.length === 1) {\r\n await getMessagesInGroupFetch(groupIds[0], existingMessages, false, false, dispatch)\r\n }\r\n await getGroupedMessagesFetch(undefined, undefined, 0, dispatch)\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function getMessagesInGroupFromMessageIdFetch(groupId, messageId, isUpScroll, clearCache, dispatch) {\r\n const limit = isUpScroll ? -MessagesInGroupLimit : MessagesInGroupLimit\r\n const promise = messagesGet(groupId, messageId, limit)\r\n const responseData = await tryCatchJson(promise, true)\r\n if (responseData.success) {\r\n dispatch(addGroupMessages(groupId, responseData.items, true, clearCache))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function getMessagesInGroupFetch(groupId, existingMessages, isUpScroll, clearCache, dispatch) {\r\n let offset\r\n let limit\r\n let mustContainLastMessage = false\r\n if (!existingMessages || existingMessages.length === 0) {\r\n offset = 0\r\n limit = MessagesInGroupLimit\r\n mustContainLastMessage = true\r\n }\r\n else if (isUpScroll) {\r\n limit = -MessagesInGroupLimit\r\n offset = existingMessages[0].id - 1\r\n }\r\n else {\r\n limit = MessagesInGroupLimit\r\n offset = existingMessages[existingMessages.length - 1].id + 1\r\n }\r\n const promise = messagesGet(groupId, offset, limit)\r\n const responseData = await tryCatchJson(promise)\r\n if (responseData.success) {\r\n dispatch(addGroupMessages(groupId, responseData.items, mustContainLastMessage, clearCache))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function getGroupedMessagesFetch(groupOwnerUserId, groupType, offset, dispatch) {\r\n const fetchPromise = messagesGroupedGet(groupOwnerUserId, groupType, offset, GroupedMessagesLimit)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(addGroupConversations(responseData.items, groupType))\r\n } \r\n return responseData.items || []\r\n}\r\n\r\nexport async function getMessagesByTextFetchNoDispatch(text, offset) {\r\n const fetchPromise = messagesByTextGet(text, offset, SearchMessagesLimit)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.items || []\r\n}\r\n\r\nexport async function deleteMessageFetch(groupId, messageId, dispatch) {\r\n const fetchPromise = deleteMessageDelete(groupId, messageId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(deleteGroupMessage(groupId, messageId))\r\n }\r\n}\r\n\r\nconst addGroupConversations = function (messages, groupType) {\r\n return { type: ActionTypes.PRIVATE_MESSAGE_ADD_CONVERSATIONS, messages, groupType }\r\n}\r\n\r\nconst addGroupMessages = function (groupId, messages, mustContainLastMessage, clearCache) {\r\n return { type: ActionTypes.PRIVATE_MESSAGE_ADD_GROUP_MESSAGES, groupId, messages, mustContainLastMessage, clearCache }\r\n}\r\n\r\nconst deleteGroupMessage = function (groupId, messageId) {\r\n return { type: ActionTypes.PRIVATE_MESSAGE_DELETE, groupId, messageId }\r\n}","import ActionTypes from './ActionTypes'\r\nimport {\r\n updateAssignmentPut, addAssignmentPost,\r\n deleteAssignmentDelete, assignmentCommentsGet,\r\n addAssignmentCommentPost, deleteAssignmentCommentDelete,\r\n sortAssignmentPost,\r\n assignmentsGet, assignmentGet, importAssignmentPost, exportAssignmentPost, assignmentsRelatedGet,\r\n} from '../services/EndpointsService'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { getStringStream, tryCatchJson } from '../utils/FetchUtils'\r\nimport { NavigatorService, showSuccess, saveFile } from '../services/SharedServices'\r\nimport { SUPPORTED_IMPORT_FILE_TYPES } from 'dpn-common/utils/FileConstants'\r\nimport { IMPORT_FILE_CONTENT } from 'dpn-common/utils/AppConstants'\r\nimport { formatDateTime } from 'dpn-common/utils/TimeHelperFunctions'\r\n\r\nconst LOAD_ASSIGNMENTS_OPTIONS = Object.freeze({\r\n ENABLE_STREAMED: false,\r\n LIMIT: 5,\r\n TIMEOUT: 500,\r\n})\r\n\r\nexport async function loadAssignmentCommentsFetchNoDispatch({ assignmentId, groupIds, offset, noOfItems }) {\r\n const fetchPromise = assignmentCommentsGet(assignmentId, groupIds, offset, noOfItems)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.items || []\r\n}\r\n\r\nexport async function addAssignmentCommentFetchNoDispatch(assignmentId, comment, groupId, picture, lessonId) {\r\n const fetchPromise = addAssignmentCommentPost(groupId, assignmentId, comment, picture, lessonId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n showSuccess(texti18n(Messages.COMMENT_HAS_BEEN_POSTED))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function deleteAssignmentCommentFetchNoDispatch(commentId) {\r\n const fetchPromise = deleteAssignmentCommentDelete(commentId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n showSuccess(texti18n(Messages.COMMENT_HAS_BEEN_DELETED))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadAssignmentsFetch(groupId, isActive, role, dispatch, offset) {\r\n const isStreamingEnabled = LOAD_ASSIGNMENTS_OPTIONS.ENABLE_STREAMED\r\n const fetchPromise = isStreamingEnabled ?\r\n assignmentsGet({\r\n groupId,\r\n isActive,\r\n populateLinks: true,\r\n offset,\r\n limit: LOAD_ASSIGNMENTS_OPTIONS.LIMIT,\r\n relateTo: role,\r\n })\r\n :\r\n assignmentsGet({\r\n groupId,\r\n isActive,\r\n populateLinks: true,\r\n grouped: true,\r\n relateTo: role,\r\n })\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const assignments = responseData.items\r\n if (isStreamingEnabled && assignments.length === LOAD_ASSIGNMENTS_OPTIONS.LIMIT) {\r\n setTimeout(() => loadAssignmentsFetch(groupId, isActive, role, dispatch, (offset || 0) + LOAD_ASSIGNMENTS_OPTIONS.LIMIT),\r\n LOAD_ASSIGNMENTS_OPTIONS.TIMEOUT)\r\n }\r\n const subtitle = []\r\n generateSubtitle(assignments, subtitle)\r\n dispatch(setAssignmentsForAssignmentFolder(groupId, 0, assignments, isStreamingEnabled, !offset))\r\n }\r\n return responseData\r\n}\r\n\r\nfunction generateSubtitle(assignments, subtitle) {\r\n assignments.forEach(element => {\r\n if (element.isFolder) {\r\n subtitle.push(element.name)\r\n if (element.children.length > 0) {\r\n generateSubtitle(element.children, subtitle)\r\n }\r\n subtitle.pop()\r\n } else {\r\n if (!element.subtitle) {\r\n element.subtitle = element.pageNumber ? subtitle.join(\" | \").concat(\" | \", element.pageNumber) : subtitle.join(\" | \") \r\n }\r\n }\r\n });\r\n}\r\n\r\nexport async function getAssignmentsBySearchFetch(groupId, search, parentId, filterByParent,) {\r\n const fetchPromise = assignmentsGet({\r\n groupId,\r\n parentId: !parentId ? null : parentId,\r\n filterByParent,\r\n isActive: true,\r\n isFolder: false,\r\n search,\r\n limit: 30\r\n })\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData\r\n}\r\n\r\nexport async function addUpdateAssignmentFetch(data, dispatch, goBack) {\r\n const requestData = {\r\n ...data,\r\n parentId: data.parentId ? data.parentId : null,\r\n }\r\n const fetchPromise = data.id\r\n ? updateAssignmentPut(requestData)\r\n : addAssignmentPost(requestData)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(data.id\r\n ? updateAssignmentForAssignmentFolder(value.groupId, value.parentId, value)\r\n : addAssignmentForAssignmentFolder(value.groupId, value.parentId, value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function deleteAssignmentFetch(id, groupId, parentId, dispatch, goBack, successMessage = Messages.ASSIGNMENT_HAS_BEEN_DELETED) {\r\n const fetchPromise = deleteAssignmentDelete(id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteAssignmentForAssignmentFolder(groupId, parentId, id))\r\n goBack && NavigatorService.goBack()\r\n successMessage !== undefined && showSuccess(texti18n(successMessage))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function sortAssignmentsFetch(groupId, parentId, assignmentIds, isActive, dispatch) {\r\n const fetchPromise = sortAssignmentPost(groupId, parentId === 0 ? null : parentId, assignmentIds, isActive)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const assignments = responseData.items\r\n assignments.length > 0 && dispatch(setAssignmentsForAssignmentFolder(groupId, parentId, assignments))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function importAssignmentsFetch(groupId, parentId, content, role, dispatch) {\r\n const fetchPromise = importAssignmentPost(groupId, parentId === 0 ? null : parentId, content, IMPORT_FILE_CONTENT)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n await loadAssignmentsFetch(groupId, true, role, dispatch, 0)\r\n showSuccess(texti18n(Messages.IMPORT_ASSIGNMENTS_SUCCESSFUL))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function exportAssignmentsFetch(groupId, ids) {\r\n const fetchPromise = exportAssignmentPost(groupId, ids, IMPORT_FILE_CONTENT)\r\n const responseData = await getStringStream(fetchPromise, true)\r\n const fileName = `Assignments_${formatDateTime(new Date(), texti18n(Messages.CURRENT_FILE_EXPORT_DATE_TIME_FORMAT))}${SUPPORTED_IMPORT_FILE_TYPES.CSV}`.replace(':', '_').replace(' ', '_')\r\n const success = await saveFile(responseData, fileName)\r\n if (success) {\r\n showSuccess(texti18n(Messages.EXPORT_ASSIGNMENTS_SUCCESSFUL))\r\n }\r\n}\r\n\r\nexport async function getSingleAssignmentFetch(id, dispatch) {\r\n const fetchPromise = assignmentGet(id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n !!dispatch && dispatch(updateAssignmentForAssignmentFolder(value.groupId, value.parentId, value))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function getRelatedAssignmentsFetch(id, userRelateTo) {\r\n const fetchPromise = assignmentsRelatedGet(id, userRelateTo)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n return responseData\r\n}\r\n\r\nfunction setAssignmentsForAssignmentFolder(groupId, assignmentFolderId, assignments, streamed, clear) {\r\n return { type: ActionTypes.SET_ASSIGNMENTS_FOR_ASSIGNMENT_FOLDER, groupId, assignmentFolderId, assignments, streamed, clear }\r\n}\r\n\r\nfunction addAssignmentForAssignmentFolder(groupId, assignmentFolderId, assignment) {\r\n return { type: ActionTypes.ADD_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER, groupId, assignmentFolderId, assignment }\r\n}\r\n\r\nfunction updateAssignmentForAssignmentFolder(groupId, assignmentFolderId, assignment) {\r\n return { type: ActionTypes.UPDATE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER, groupId, assignmentFolderId, assignment }\r\n}\r\n\r\nfunction deleteAssignmentForAssignmentFolder(groupId, assignmentFolderId, id) {\r\n return { type: ActionTypes.DELETE_ASSIGNMENT_FOR_ASSIGNMENT_FOLDER, assignmentFolderId, id, groupId }\r\n}","import { Messages, texti18n, GLOBAL_FIELD_KEY } from './MessageConstants'\r\nimport { FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST, FETCH_TIMEOUT_ERROR_STRING_CONST } from './AppConstants'\r\nimport { showInfo, showError, isOnline } from '../services/SharedServices'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { timeoutPromise } from './HelperFunctions'\r\n\r\nexport const tryCatchJson = async (fetchPromise, showErrorMessage = false, catchErrorMessage = Messages.NETWORK_ERROR) => {\r\n try {\r\n const fullPromise = fetchPromise.then(response => getJson(response))\r\n const { isErrorMessage, responseData } = await timeoutPromise(fullPromise, AppConfig.fetchTimeout, FETCH_TIMEOUT_ERROR_STRING_CONST)\r\n if (showErrorMessage && !!responseData.message) {\r\n if (isErrorMessage) {\r\n showError(responseData.message)\r\n }\r\n else {\r\n showInfo(responseData.message)\r\n }\r\n }\r\n return responseData\r\n }\r\n catch (error) {\r\n console.log(error)\r\n if (!await isOnline()) {\r\n showError(Messages.NOT_CONNECTED_TO_INTERNET)\r\n return createErrorResponse(GLOBAL_FIELD_KEY, Messages.NOT_CONNECTED_TO_INTERNET)\r\n }\r\n else if (error instanceof Error && error.message === FETCH_TIMEOUT_ERROR_STRING_CONST) {\r\n showErrorMessage && showError(Messages.FETCH_TIMED_OUT)\r\n return createErrorResponse(GLOBAL_FIELD_KEY, Messages.FETCH_TIMED_OUT)\r\n }\r\n else if (error instanceof Error && error.message === FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST) {\r\n return createErrorResponse(GLOBAL_FIELD_KEY, Messages.FETCH_OLD_RESULT_ARRIVED)\r\n }\r\n else if (showErrorMessage) {\r\n showError(catchErrorMessage)\r\n }\r\n return createErrorResponse(GLOBAL_FIELD_KEY, catchErrorMessage)\r\n }\r\n}\r\n\r\nexport const getStringStream = async (fetchPromise, errorMessage = Messages.ERROR_RETRIEVING_LANG_DEF) => {\r\n try {\r\n const fullPromise = fetchPromise.then(response => {\r\n if (response.status === 200) {\r\n return response.text()\r\n }\r\n return null\r\n })\r\n const text = await timeoutPromise(fullPromise, AppConfig.fetchTimeout, FETCH_TIMEOUT_ERROR_STRING_CONST)\r\n return text\r\n }\r\n catch (error) {\r\n console.log(error)\r\n errorMessage && showError(errorMessage)\r\n return null\r\n }\r\n}\r\n\r\nfunction translateAndFixResponse(responseData) {\r\n if (responseData.success) {\r\n return responseData\r\n }\r\n\r\n const errorFieldNames = Object.keys(responseData.errors)\r\n // translate all error messages\r\n errorFieldNames.forEach(x => {\r\n const error = responseData.errors[x]\r\n error.message = texti18n(error.message)\r\n })\r\n\r\n // populate message and messageCode with first error\r\n const firstErrorField = responseData.errors[errorFieldNames[0]]\r\n responseData.message = firstErrorField.message\r\n responseData.messageCode = firstErrorField.messageCode\r\n return responseData\r\n}\r\n\r\nexport function createErrorResponse(errorField, errorMessage) {\r\n errorMessage = texti18n(errorMessage)\r\n return {\r\n success: false,\r\n message: errorMessage,\r\n errors: {\r\n [errorField]: {\r\n message: errorMessage,\r\n }\r\n }\r\n }\r\n}\r\n\r\nasync function getJson(response) {\r\n let responseData\r\n let isErrorMessage = true\r\n if (response.status === 401) {\r\n if(response.headers.has('www-authenticate') && response.headers.get('www-authenticate').includes('invalid_token')) {\r\n isErrorMessage = false\r\n console.log('Login has expired!')\r\n responseData = createErrorResponse(GLOBAL_FIELD_KEY, texti18n(Messages.LOGIN_HAS_BEEN_EXPIRED))\r\n }\r\n else {\r\n console.log('Unauthorized access!')\r\n responseData = createErrorResponse(GLOBAL_FIELD_KEY, texti18n(Messages.UNAUTHORIZED_ACCESS))\r\n }\r\n }\r\n else if (response.status == 404) {\r\n responseData = createErrorResponse(GLOBAL_FIELD_KEY, texti18n(Messages.NOT_FOUND_404_ERROR))\r\n }\r\n else if (response.status == 400 || response.status < 300 || response.status >= 500) {\r\n const data = await response.json()\r\n responseData = translateAndFixResponse(data)\r\n }\r\n else {\r\n responseData = createErrorResponse(GLOBAL_FIELD_KEY, texti18n(Messages.UNKNOWN_ERROR_OCCURRED))\r\n }\r\n\r\n responseData.responseStatusCode = response.status\r\n return {\r\n responseData,\r\n isErrorMessage\r\n }\r\n}\r\n","import FetchService from './FetchService'\r\nimport { GROUP_FETCH_PARAMS } from '../utils/AppConstants'\r\n\r\nexport const changeUserLeaderboardParticipationPut = (data) => {\r\n return FetchService.executePut('/api/user/changeLeaderboardParticipation', data)\r\n}\r\n\r\nexport const enabledEmailTypesGet = () => {\r\n return FetchService.executeGet('/api/user/getEnabledEmailTypes')\r\n}\r\n\r\nexport const setEnabledEmailTypesPost = (enabledEmailTypes) => {\r\n return FetchService.executePost('/api/user/setEnabledEmailTypes', { enabledEmailTypes })\r\n}\r\n\r\nexport const assignLevelsGet = () => {\r\n return FetchService.executeGet('/api/assignLevel')\r\n}\r\n\r\nexport const premadeAvatarsGet = () => {\r\n return FetchService.executeGet('/api/premadeAvatars')\r\n}\r\n\r\nexport const addAssignLevelPost = ({ name, code, color }) => {\r\n return FetchService.executePost('/api/assignLevel', { name, code, color })\r\n}\r\n\r\nexport const updateAssignLevelPut = (id, { name, code, color }) => {\r\n return FetchService.executePut(`/api/assignLevel/${id}`, { name, code, color })\r\n}\r\n\r\nexport const deleteAssignLevelDelete = (id) => {\r\n return FetchService.executeDelete(`/api/assignLevel/${id}`)\r\n}\r\n\r\nexport const editStudentPut = (defaultUserGroupId, fullName, assignLevelId, schedules) => {\r\n return FetchService.executePut(`/api/group/${defaultUserGroupId}`, { assignLevelId, name: fullName, schedules })\r\n}\r\n\r\nexport const studentByEmailGet = (email) => {\r\n return FetchService.executeGet('/api/teacher/student/byEmail', { email })\r\n}\r\n\r\nexport const addLessonPost = ({ groupId, schoolYearId, name, date, code, color, cloneLessonId, cloneLastLesson, isPublished }) => {\r\n return FetchService.executePost('/api/lesson', { groupId, schoolYearId, name, date, code, color, cloneLessonId, cloneLastLesson, isPublished })\r\n}\r\n\r\nexport const updateLessonPut = ({ id, groupId, schoolYearId, name, date, code, color, isPublished }) => {\r\n return FetchService.executePut('/api/lesson/' + id, { id, groupId, schoolYearId, name, date, code, color, isPublished })\r\n}\r\n\r\nexport const lessonNotesGet = (lessonId) => {\r\n return FetchService.executeGet(`/api/lesson/${lessonId}/note`)\r\n}\r\n\r\nexport const addLessonNotePost = (lessonId, newFiles, deletedFiles, { id, name, text, code, color }) => {\r\n return FetchService.executePost(`/api/lesson/${lessonId}/note/`, { files: newFiles, deletedFiles, id, name, text, code, color })\r\n}\r\n\r\nexport const addLessonTemplateNotePost = (lessonId, noteId, templateGroupId) => {\r\n return FetchService.executePost(`/api/lesson/${lessonId}/note/template`, { noteId, templateGroupId })\r\n}\r\n\r\nexport const updateLessonNotePut = (lessonId, newFiles, deletedFiles, { id, name, text, code, color }) => {\r\n return FetchService.executePut(`/api/lesson/${lessonId}/note/${id}`, { newFiles, deletedFiles, name, text, code, color })\r\n}\r\n\r\nexport const deleteLessonNoteDelete = (lessonId, noteId) => {\r\n return FetchService.executeDelete(`/api/lesson/${lessonId}/note/${noteId}`)\r\n}\r\n\r\nexport const sortLessonNotesPost = (id, noteIds) => {\r\n return FetchService.executePost(`/api/lesson/${id}/note/sort/`, { noteIds })\r\n}\r\n\r\nexport const groupNotesGet = (groupId) => {\r\n return FetchService.executeGet(`/api/group/${groupId}/note`)\r\n}\r\n\r\nexport const addGroupNotePost = (groupId, { id, name, text, code, color }) => {\r\n return FetchService.executePost(`/api/group/${groupId}/note/`, { id, name, text, code, color })\r\n}\r\n\r\nexport const updateGroupNotePut = (groupId, { id, name, text, code, color }) => {\r\n return FetchService.executePut(`/api/group/${groupId}/note/${id}/`, { groupId, id, name, text, code, color })\r\n}\r\n\r\nexport const deleteGroupNoteDelete = (groupId, id) => {\r\n return FetchService.executeDelete(`/api/group/${groupId}/note/${id}/`)\r\n}\r\n\r\nexport const sortGroupNotesPost = (id, noteIds) => {\r\n return FetchService.executePost(`/api/group/${id}/note/sort/`, { noteIds })\r\n}\r\n\r\nexport const notesGet = (groupId, grouped, isActive) => {\r\n return FetchService.executeGet('/api/note/' + groupId, { grouped, isActive })\r\n}\r\n\r\nexport const updateNotePut = ({ groupId, id, name, text, code, color, parentId, deletedFiles, newFiles, isFolder }) => {\r\n return FetchService.executePut(`/api/note/${groupId}/${id}`, { name, text, code, color, parentId, deletedFiles, newFiles, isFolder })\r\n}\r\n\r\nexport const addNotePost = ({ groupId, id, name, text, code, color, parentId, isFolder, newFiles }) => {\r\n return FetchService.executePost(`/api/note/${groupId}`, { id, name, text, code, color, parentId, isFolder, files: newFiles })\r\n}\r\n\r\nexport const deleteNoteDelete = (groupId, id) => {\r\n return FetchService.executeDelete(`/api/note/${groupId}/${id}`)\r\n}\r\n\r\nexport const sortNotePost = (groupId, parentId, noteIds) => {\r\n return FetchService.executePost(`/api/note/${groupId}/sort`, { noteIds, parentId })\r\n}\r\n\r\nexport const lessonsGet = (schoolYearId, groupIds, isActive, userId, dateFrom, dateTo, search, isPublished) => {\r\n return FetchService.executeGet('/api/lesson/', { schoolYearId, groupIds, isActive, userId, dateFrom, dateTo, search, isPublished })\r\n}\r\n\r\nexport const activateLessonPost = (id) => {\r\n return FetchService.executePost(`/api/lesson/${id}/activate`)\r\n}\r\n\r\nexport const publishLessonPost = (id) => {\r\n return FetchService.executePost(`/api/lesson/${id}/publish`)\r\n}\r\n\r\nexport const deleteLessonDelete = (id) => {\r\n return FetchService.executeDelete(`/api/lesson/${id}`)\r\n}\r\n\r\nexport const addSkillPost = ({ groupId, name, points, picture, skillType }) => {\r\n return FetchService.executePost('/api/skill', { groupId, name, points, picture, skillType })\r\n}\r\n\r\nexport const updateSkillPut = ({ id, groupId, name, points, picture, skillType }) => {\r\n return FetchService.executePut('/api/skill/' + id, { groupId, name, points, picture, skillType })\r\n}\r\n\r\nexport const deleteSkillDelete = (skillId) => {\r\n return FetchService.executeDelete(`/api/skill/${skillId}`)\r\n}\r\n\r\n// Use groupIds or teacherId but not both\r\nexport const skillsGet = (groupIds, teacherId, isActive) => {\r\n return FetchService.executeGet('/api/skill', { groupIds, teacherId, isActive })\r\n} \r\n\r\nexport const activateSkillPost = (id) => {\r\n return FetchService.executePost(`/api/skill/${id}/activate`)\r\n}\r\n\r\nexport const addRewardPost = ({ groupId, name, points, picture, description }) => {\r\n return FetchService.executePost('/api/reward', { groupId, name, points, picture, description })\r\n}\r\n\r\nexport const updateRewardPut = ({ id, groupId, name, points, picture, description }) => {\r\n return FetchService.executePut('/api/reward/' + id, { groupId, name, points, picture, description })\r\n}\r\n\r\nexport const deleteRewardDelete = (rewardId) => {\r\n return FetchService.executeDelete(`/api/reward/${rewardId}`)\r\n}\r\n\r\nexport const rewardsGet = (groupIds, teacherId, isActive) => {\r\n return FetchService.executeGet('/api/reward', { groupIds, teacherId, isActive })\r\n} \r\n\r\nexport const activateRewardPost = (id) => {\r\n return FetchService.executePost(`/api/reward/${id}/activate`)\r\n}\r\n\r\nexport const studentRewardsGet = (studentId, groupIds, teacherId, isActive, grouped = true) => {\r\n return FetchService.executeGet(`/api/reward/student/${studentId}`, {\r\n groupIds, teacherId, isActive, grouped\r\n })\r\n}\r\n\r\nexport const studentSkillsGet = (studentId, groupIds, teacherId, isActive, grouped = true) => {\r\n return FetchService.executeGet(`/api/skill/student/${studentId}`, {\r\n groupIds, teacherId, isActive, grouped\r\n })\r\n}\r\n\r\nexport const buyRewardPost = (rewardId, studentId = null) => {\r\n return FetchService.executePost(`/api/reward/item/${rewardId}`, null, { studentId })\r\n}\r\n\r\nexport const sellRewardDelete = (id) => {\r\n return FetchService.executeDelete(`/api/reward/item/${id}`)\r\n}\r\n\r\nexport const addSkillToStudentPost = (skillId, studentId) => {\r\n return FetchService.executePost(`/api/skill/${skillId}/student/${studentId}`)\r\n}\r\n\r\nexport const removeSkillFromStudentDelete = (id) => {\r\n return FetchService.executeDelete(`/api/skill/item/${id}`)\r\n}\r\n\r\nexport const importAssignmentPost = (groupId, parentId, content, importFileContent) => {\r\n return FetchService.executePost(`/api/assignment/import/${groupId}`, { parentId, content, importFileContent })\r\n}\r\n\r\nexport const exportAssignmentPost = (groupId, ids, exportFileContent) => {\r\n return FetchService.executePost(`/api/assignment/export/${groupId}`, { ids, exportFileContent })\r\n}\r\n\r\nexport const updateAssignmentPut = ({ id, groupId, name, links, description, code, color, parentId, deletedFiles, newFiles, isFolder }) => {\r\n return FetchService.executePut(`/api/assignment/${id}`, { groupId, name, description, links, code, color, parentId, deletedFiles, newFiles, isFolder })\r\n}\r\n\r\nexport const addAssignmentPost = ({ groupId, name, links, description, code, color, parentId, isFolder, newFiles }) => {\r\n return FetchService.executePost(`/api/assignment/group/${groupId}`, { groupId, name, description, links, code, color, parentId, isFolder, newFiles })\r\n}\r\n\r\nexport const sortAssignmentPost = (groupId, parentId, assignmentIds) => {\r\n return FetchService.executePost(`/api/assignment/group/${groupId}/sort`, { assignmentIds, parentId })\r\n}\r\n\r\nexport const assignmentsGet = ({ groupId, parentId, isActive, search, filterByParent, isFolder, offset, limit, populateLinks, grouped, relateTo }) => {\r\n return FetchService.executeGet(`/api/assignment/group/${groupId}`, { parentId, isActive, search, filterByParent, isFolder, offset, limit, populateLinks, grouped, relateTo })\r\n}\r\n\r\nexport const assignmentGet = id => {\r\n return FetchService.executeGet(`/api/assignment/${id}`)\r\n}\r\n\r\nexport const assignmentsRelatedGet = (id, userRelateTo) => {\r\n return FetchService.executeGet(`/api/assignment/related/${id}`, { userRelateTo })\r\n}\r\n\r\nexport const deleteAssignmentDelete = (assignmentId) => {\r\n return FetchService.executeDelete(`/api/assignment/${assignmentId}`)\r\n}\r\n\r\nexport const assignmentCommentsGet = (assignmentId, groupIds, offset, limit) => {\r\n const params = { offset, limit, groupIds }\r\n return FetchService.executeGet(`/api/comment/assignment/${assignmentId}`, params)\r\n}\r\n\r\nexport const addAssignmentCommentPost = (groupId, assignmentId, comment, picture, lessonId) => {\r\n return FetchService.executePost('/api/comment', { groupId, assignmentId, comment, fileContent: picture, lessonId })\r\n}\r\n\r\nexport const deleteAssignmentCommentDelete = (commentId) => {\r\n return FetchService.executeDelete(`/api/comment/${commentId}`)\r\n}\r\n\r\nexport const lessonAssignmentsGet = (lessonId) => {\r\n return FetchService.executeGet(`/api/lesson/${lessonId}/assignment`)\r\n}\r\n\r\nexport const lessonGet = (id) => {\r\n return FetchService.executeGet(`/api/lesson/${id}`)\r\n}\r\n\r\nexport const setLessonAssignmentsPost = (lessonId, assignmentIds) => {\r\n return FetchService.executePost(`/api/lesson/${lessonId}/assignment`, { assignmentIds })\r\n}\r\n\r\nexport const messagesGroupedGet = (groupOwnerUserId, groupType, offset, limit) => {\r\n return FetchService.executeGet('/api/message/grouped', { offset, limit, groupOwnerUserId, groupType })\r\n}\r\n\r\nexport const messagesByTextGet = (text, offset, limit) => {\r\n return FetchService.executeGet('/api/message/search' , { text, offset, limit })\r\n}\r\n\r\nexport const messagesGet = (groupId, offset, limit) => {\r\n return FetchService.executeGet(`/api/message/${groupId}`, { offset, limit })\r\n}\r\n\r\nexport const sendMessagePost = (groupIds, message) => {\r\n return FetchService.executePost('/api/message', { groupIds, message })\r\n}\r\n\r\nexport const deleteMessageDelete = (groupId, messageId) => {\r\n return FetchService.executeDelete(`/api/message/${groupId}/${messageId}`)\r\n}\r\n\r\nexport const demoSkillsPost = (groupId) => {\r\n return FetchService.executePost(`/api/demo/generate/group/${groupId}/skills`)\r\n}\r\n\r\nexport const demoRewardsPost = (groupId) => {\r\n return FetchService.executePost(`/api/demo/generate/group/${groupId}/rewards`)\r\n}\r\n\r\nexport const demoLessonsPost = (schoolYearId, groupId) => {\r\n return FetchService.executePost(`/api/demo/generate/group/${groupId}/lessons/${schoolYearId || 0}`)\r\n}\r\n\r\nexport const pianoAdventuresBooksGet = (groupId) => {\r\n return FetchService.executeGet(`/api/pianoAdventures/book/group/${groupId}`)\r\n}\r\n\r\nexport const flashCardsGet = (groupId) => {\r\n return FetchService.executeGet(`/api/pianoAdventures/flashCard/group/${groupId}`)\r\n}\r\n\r\nexport const emoticonsGet = () => {\r\n return FetchService.executeGet('/api/emoticons/')\r\n}\r\n\r\nexport const videoTutorialsGet = isMobile => {\r\n return FetchService.executeGet('/api/videos/', { isMobile })\r\n}\r\n\r\nexport const teacherVideoTutorialsGet = () => {\r\n return FetchService.executeGet('/api/teacherVideos/')\r\n}\r\n\r\nexport const sentencesGet = () => {\r\n return FetchService.executeGet('/api/sentence')\r\n}\r\n\r\nexport const addSentencePost = ({ text }) => {\r\n return FetchService.executePost('/api/sentence', { text })\r\n}\r\n\r\nexport const updateSentencePut = ({ text, id, isGlobal }) => {\r\n return FetchService.executePut(`/api/sentence/${isGlobal ? 'global' : 'user'}/${id}`, { text })\r\n}\r\n\r\nexport const deleteSentenceDelete = ({ id, isGlobal }) => {\r\n return FetchService.executeDelete(`/api/sentence/${isGlobal ? 'global' : 'user'}/${id}`)\r\n}\r\n\r\nexport const groupsGet = ({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate }) => {\r\n return FetchService.executeGet('/api/group', {\r\n loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate\r\n })\r\n}\r\n\r\nexport const addGroupPost = ({ assignLevelId, name, picture, isActive }, users, schedules) => {\r\n return FetchService.executePost('/api/group', { \r\n assignLevelId, name, picture, isActive, users, schedules,\r\n ...GROUP_FETCH_PARAMS\r\n })\r\n}\r\n\r\nexport const updateGroupPut = ({ id, assignLevelId, name, picture, isActive }, users, schedules) => {\r\n return FetchService.executePut(`/api/group/${id}`, { \r\n assignLevelId, name, picture, isActive, users, schedules,\r\n ...GROUP_FETCH_PARAMS\r\n })\r\n}\r\n\r\nexport const deleteGroupDelete = (id) => {\r\n return FetchService.executeDelete(`/api/group/${id}`)\r\n}\r\n\r\nexport const groupsUsersGet = (groupIds, loadSingleStudentGroups) => {\r\n return FetchService.executeDelete('/api/group/user', { groupIds, loadSingleStudentGroups })\r\n}\r\n\r\nexport const groupsSchedulesGet = (groupIds, startDate) => {\r\n return FetchService.executeDelete('/api/group/schedule', { groupIds, startDate })\r\n}\r\n\r\nexport const setFcmTokenPost = (fcmToken, isLoggedIn, platform) => {\r\n return FetchService.executePost('/api/notification/setFcmToken', { fcmToken, isLoggedIn, platform })\r\n}\r\n\r\nexport const setEnabledNotificationTypesPost = (enabledNotificationTypes, fcmToken) => {\r\n return FetchService.executePost('/api/notification/setEnabledNotificationTypes', { enabledNotificationTypes, fcmToken })\r\n}\r\n\r\nexport const setLanguagePost = (languageCode, fcmToken) => {\r\n return FetchService.executePost('/api/notification/setLanguage', { languageCode, fcmToken })\r\n}\r\n\r\nexport const addSchoolYearPost = data => {\r\n return FetchService.executePost('/api/schoolYear', data)\r\n}\r\n\r\nexport const updateSchoolYearPut = (id, data) => {\r\n return FetchService.executePut('/api/schoolYear/' + id, data)\r\n}\r\n\r\nexport const deleteSchoolYearDelete = id => {\r\n return FetchService.executeDelete(`/api/schoolYear/${id}`)\r\n}\r\n\r\nexport const schoolYearGet = id => {\r\n return FetchService.executeGet(`/api/schoolYear/${id}`)\r\n}\r\n\r\nexport const schoolYearsGet = (teacherId, isActive) => {\r\n return FetchService.executeGet(`/api/schoolYear/getAll/${teacherId}`, { isActive })\r\n}\r\n\r\nexport const activateSchoolYearPost = schoolYearId => {\r\n return FetchService.executePost(`/api/schoolYear/${schoolYearId}/activate`)\r\n}\r\n\r\nexport const useActivationCodePut = code => {\r\n return FetchService.executePut('/api/activationCode/activate', { code })\r\n}\r\n\r\nexport const activationCodeUsedGet = () => {\r\n return FetchService.executeGet('/api/activationCode/isActivated')\r\n}\r\n\r\nexport const didReachSubscriptionLimitGet = () => {\r\n return FetchService.executeGet('/api/subscription/didReachStudentCountLimit')\r\n}\r\n\r\n/*\r\nDO NOT USE THESE!!! All user data should be retrieved via group endpoints\r\n\r\nexport const studentTeacherStudentsGet = (teacherId) => {\r\n return FetchService.executeGet(`/api/student/teacher/${teacherId}/students`)\r\n}\r\n\r\nexport const studentTeachersGet = (isInvited) => {\r\n const parameters = { isActive: true }\r\n if (isInvited !== undefined) {\r\n parameters.isInvited = isInvited\r\n }\r\n return FetchService.executeGet('/api/student/teacher', parameters)\r\n}\r\n\r\nexport const teacherStudentsGet = (isInvited) => {\r\n const parameters = {}\r\n if (isInvited !== undefined) {\r\n parameters.isInvited = isInvited\r\n }\r\n return FetchService.executeGet('/api/teacher/student', parameters)\r\n}\r\n*/","const listenersByEvent = { }\r\n\r\nfunction subscribe(eventName, callback, callOnce) {\r\n // TODO: currently tests does not run with default parameters\r\n callOnce = callOnce || false\r\n const newListener = {\r\n event: eventName,\r\n callback,\r\n callOnce,\r\n remove: function() {\r\n if (this.event in listenersByEvent) {\r\n const newList = listenersByEvent[this.event].filter(x => x.callback !== this.callback)\r\n if (newList.length) {\r\n listenersByEvent[this.event] = newList\r\n }\r\n else {\r\n delete listenersByEvent[this.event]\r\n }\r\n }\r\n }\r\n }\r\n if (!(eventName in listenersByEvent)) {\r\n listenersByEvent[eventName] = []\r\n }\r\n listenersByEvent[eventName].push(newListener)\r\n return newListener\r\n}\r\n\r\nfunction notify(eventName, data) {\r\n if (eventName in listenersByEvent) {\r\n const listeners = listenersByEvent[eventName]\r\n const successResults = listeners.map(x => x.callback(data))\r\n removeCalledListeners(eventName, successResults)\r\n }\r\n}\r\n\r\n// currently tests does not resolve async\r\nfunction notifyAsync(eventName, data) { \r\n return new Promise(function (resolve, reject) {\r\n if (eventName in listenersByEvent) {\r\n const listeners = listenersByEvent[eventName]\r\n const promises = listeners.map(x => x.callback(data))\r\n Promise.all(promises).then(function (successResults) {\r\n removeCalledListeners(eventName, successResults)\r\n resolve(true)\r\n }).catch(function (error) {\r\n // please handle exceptions in callbacks, otherwise it is possible\r\n // for some callOnce callback in listenersByEvent to be called multiple times\r\n reject(error)\r\n }) \r\n }\r\n else {\r\n resolve(true)\r\n }\r\n })\r\n}\r\n\r\nexport default {\r\n subscribe,\r\n notify,\r\n notifyAsync,\r\n}\r\n\r\nfunction removeCalledListeners(eventName, successResults) {\r\n const listeners = listenersByEvent[eventName]\r\n if (listeners) {\r\n listenersByEvent[eventName] = listeners.filter((x, index) => !x.callOnce || successResults[index] === false)\r\n }\r\n}","import ActionTypes from './ActionTypes'\r\nimport {\r\n addLessonPost, updateLessonPut,\r\n activateLessonPost, lessonAssignmentsGet,\r\n setLessonAssignmentsPost, deleteLessonDelete, lessonsGet,\r\n updateLessonNotePut, addLessonNotePost, lessonNotesGet,\r\n deleteLessonNoteDelete, lessonGet, sortLessonNotesPost,\r\n addLessonTemplateNotePost,\r\n publishLessonPost\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { NavigatorService, showError, showSuccess } from '../services/SharedServices'\r\nimport { getJSDateFromJson, getNthDateFromDateJson } from 'dpn-common/utils/TimeHelperFunctions'\r\n\r\nexport async function changeLessonIsActiveFetch(lesson, dispatch, goBack) {\r\n const fetchPromise = activateLessonPost(lesson.id)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const isActive = responseData.value\r\n dispatch(setLessonIsActive(lesson.schoolYearId, lesson.id, lesson.groupId, isActive))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function changeLessonIsPublishedFetch(lesson, dispatch, goBack) {\r\n const fetchPromise = publishLessonPost(lesson.id)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const isPublished = responseData.value\r\n dispatch(setLessonIsPublished(lesson.schoolYearId, lesson.id, lesson.groupId, isPublished))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadLessonsForGroupsFetch(schoolYearId, groupIds, dispatch, isPublished) {\r\n const fetchPromise = lessonsGet(schoolYearId, groupIds, undefined, undefined, undefined, undefined, undefined, isPublished)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success &&\r\n dispatch(setLessons(schoolYearId, responseData.items, groupIds)) \r\n return responseData\r\n}\r\n\r\nexport async function loadLessonsForGroupsFetchNoDispatch(groupIds, search) {\r\n const fetchPromise = lessonsGet(undefined, groupIds, undefined, undefined, undefined, undefined, search)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.items || []\r\n}\r\n\r\n// export async function getGroupsHavingLessonsByDate(userId, daysBefore, daysAfter) {\r\n// const fromDate = getNthDateFromDateJson(-daysBefore)\r\n// const toDate = getNthDateFromDateJson(daysAfter)\r\n// const fetchPromise = lessonsGet(undefined, undefined, true, userId, fromDate, toDate)\r\n// const responseData = await tryCatchJson(fetchPromise, true)\r\n// const result = responseData.success ? responseData.items : []\r\n// return result.reduce((acc, lesson) => {\r\n// const date = getJSDateFromJson(lesson.date)\r\n// const dayOfWeek = date.getDay() + 1\r\n// acc[dayOfWeek] = acc[dayOfWeek] || {}\r\n// acc[dayOfWeek][lesson.groupId] = true\r\n// return acc\r\n// }, {})\r\n// }\r\n\r\nexport async function loadLessonFetch(lessonId, dispatch) {\r\n const fetchPromise = lessonGet(lessonId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(updateLesson(responseData.value)) \r\n return responseData\r\n}\r\n\r\nexport async function addUpdateLessonFetch(data, dispatch, goBack, shouldShowMessage = true) {\r\n const fetchPromise = data.id\r\n ? updateLessonPut(data)\r\n : addLessonPost(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n // dispatch update or add lesson redux action\r\n dispatch(data.id ? updateLesson(value) : addLesson(value))\r\n shouldShowMessage && showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function loadSelectedAssignmentsForTeacherFetch(lessonId, dispatch) {\r\n const fetchPromise = lessonAssignmentsGet(lessonId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n responseData.success && dispatch(setSelectedAssignments(\r\n responseData.items.map(x => ({ assignmentId: x.id, assignmentFolderId: x.parentId || 0 }))\r\n ))\r\n return responseData\r\n}\r\n\r\nexport async function getAllAssignmentsFetchNoDispatch(lessons) {\r\n const calls = (lessons || []).map(x => {\r\n return tryCatchJson(lessonAssignmentsGet(x.id), false)\r\n })\r\n const responseData = await Promise.all(calls)\r\n if(responseData.every(x=> x.success)) {\r\n const noteIds = new Set()\r\n const response = responseData.reduce((acc, rd) => {\r\n return acc.concat(rd.items.filter(item => {\r\n const contains = noteIds.has(item.id)\r\n noteIds.add(item.id)\r\n return !contains\r\n }))\r\n }, [])\r\n return response\r\n }\r\n return undefined\r\n}\r\n\r\nexport async function getAllNotesFetchNoDispatch(lessons) {\r\n const calls = (lessons || []).map(x => {\r\n return tryCatchJson(lessonNotesGet(x.id), false)\r\n })\r\n const responseData = await Promise.all(calls)\r\n if(responseData.every(x=> x.success)) {\r\n const assignmentIds = new Set()\r\n const response = responseData.reduce((acc, rd) => {\r\n return acc.concat(rd.items.filter(item => {\r\n const contains = assignmentIds.has(item.id)\r\n assignmentIds.add(item.id)\r\n return !contains\r\n }))\r\n }, [])\r\n return response\r\n }\r\n return undefined\r\n}\r\n\r\nexport async function setLessonAssignmentsFetch(lessonId, selectedAssignments, dispatch) {\r\n const fetchPromise = setLessonAssignmentsPost(lessonId, selectedAssignments.map(x => x.assignmentId))\r\n const responseData = await tryCatchJson(fetchPromise)\r\n responseData.success && dispatch(setSelectedAssignments(selectedAssignments))\r\n return responseData\r\n}\r\n\r\nexport function setSelectedNotesDispatch(selectedNotes, dispatch) {\r\n dispatch(setSelectedNotes(selectedNotes))\r\n}\r\n\r\nexport async function deleteLessonFetch(lesson, dispatch, goBack) {\r\n const fetchPromise = deleteLessonDelete(lesson.id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteLesson(lesson.groupId, lesson.schoolYearId, lesson.id))\r\n showSuccess(texti18n(Messages.LESSON_HAS_BEEN_DELETED))\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadLessonNotesFetch(lessonId, dispatch) {\r\n const fetchPromise = lessonNotesGet(lessonId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n responseData.success && dispatch(setLessonNotes(lessonId, responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function addLessonTemplateNoteFetch(lessonId, noteId, templateGroupId, note, dispatch) {\r\n const fetchPromise = addLessonTemplateNotePost(lessonId, noteId, templateGroupId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n // eslint-disable-next-line no-unused-vars\r\n const { isFolder, parentId, noteType, isActive, children, ...updatedNote } = note\r\n const value = {\r\n ...updatedNote,\r\n templateGroupId\r\n }\r\n dispatch(addLessonNote(lessonId, value))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function addUpdateLessonNoteFetch(lessonId, newFiles, deletedFiles, data, dispatch, goBack) {\r\n const fetchPromise = data.id\r\n ? updateLessonNotePut(lessonId, newFiles, deletedFiles, data)\r\n : addLessonNotePost(lessonId, newFiles, deletedFiles, data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n if (data.templateGroupId) {\r\n value.templateGroupId = data.templateGroupId\r\n }\r\n dispatch(data.id ? updateLessonNote(lessonId, { ...value, order: data.order }) : addLessonNote(lessonId, value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function deleteLessonNoteFetch(lessonId, noteId, dispatch, goBack) {\r\n const fetchPromise = deleteLessonNoteDelete(lessonId, noteId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteLessonNote(lessonId, noteId))\r\n showSuccess(texti18n(Messages.NOTE_HAS_BEEN_DELETED))\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function deleteLessonNotesFetch(lessonId, noteIds, dispatch, goBack) {\r\n const calls = (noteIds || []).map(x => {\r\n return tryCatchJson(deleteLessonNoteDelete(lessonId, x), false)\r\n })\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n dispatch(deleteLessonNotes(lessonId, noteIds))\r\n responseDatas.success = true\r\n goBack && NavigatorService.goBack()\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas.success = false\r\n }\r\n return responseDatas\r\n}\r\n\r\nexport async function sortLessonNotesFetch(lessonId, noteIds, dispatch) {\r\n const fetchPromise = sortLessonNotesPost(lessonId, noteIds)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setLessonNotes(lessonId, responseData.items))\r\n }\r\n return responseData\r\n}\r\n\r\nexport function setLessons(schoolYearId, lessons, groupIds) {\r\n const type = ActionTypes.SET_LESSONS_ACTION\r\n return { type, lessons, schoolYearId, groupIds }\r\n}\r\n\r\nfunction setSelectedAssignments(selectedAssignments) {\r\n return { type: ActionTypes.SET_SELECTED_ASSIGNMENTS, selectedAssignments }\r\n}\r\n\r\nfunction setSelectedNotes(selectedNotes) {\r\n return { type: ActionTypes.SET_SELECTED_NOTES, selectedNotes }\r\n}\r\n\r\nfunction addLesson(lesson) {\r\n return { type: ActionTypes.ADD_LESSON_ACTION, lesson }\r\n}\r\n\r\nfunction updateLesson(lesson) {\r\n return { type: ActionTypes.UPDATE_LESSON_ACTION, lesson }\r\n}\r\n\r\nfunction setLessonIsActive(schoolYearId, id, groupId, isActive) {\r\n const type = ActionTypes.ACTIVATE_LESSON_ACTION\r\n return { type, id, groupId, isActive, schoolYearId }\r\n}\r\n\r\nfunction setLessonIsPublished(schoolYearId, id, groupId, isPublished) {\r\n const type = ActionTypes.PUBLISH_LESSON_ACTION\r\n return { type, id, groupId, isPublished, schoolYearId }\r\n}\r\n\r\nfunction deleteLesson(groupId, schoolYearId, id) {\r\n return { type: ActionTypes.DELETE_LESSON_ACTION, groupId, schoolYearId, id }\r\n}\r\n\r\nfunction setLessonNotes(lessonId, notes) {\r\n return { type: ActionTypes.SET_LESSON_NOTES_ACTION, lessonId, notes }\r\n}\r\n\r\nfunction addLessonNote(lessonId, note) {\r\n return { type: ActionTypes.ADD_LESSON_NOTE_ACTION, lessonId, note }\r\n}\r\n\r\nfunction updateLessonNote(lessonId, note) {\r\n return { type: ActionTypes.UPDATE_LESSON_NOTE_ACTION, lessonId, note }\r\n}\r\n\r\nfunction deleteLessonNote(lessonId, noteId) {\r\n return { type: ActionTypes.DELETE_LESSON_NOTE_ACTION, lessonId, noteId }\r\n}\r\n\r\nfunction deleteLessonNotes(lessonId, noteIds) {\r\n return { type: ActionTypes.DELETE_LESSON_NOTES_ACTION, lessonId, noteIds }\r\n}","import { createSelector } from 'reselect'\r\nimport { getFromDict } from '../utils/HelperFunctions'\r\nimport { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\n\r\nconst emptyArray = []\r\n\r\nexport const activeStudentsSelector = createSelector(\r\n students => students,\r\n students => students.filter(x => x.isActive && !x.isInvited)\r\n)\r\n\r\nexport const invitedStudentsSelector = createSelector(\r\n students => students,\r\n students => students.filter(x => x.isInvited)\r\n)\r\n\r\nexport const suspendedStudentsSelector = createSelector(\r\n students => students,\r\n students => students.filter(x => !x.isActive && !x.isInvited)\r\n)\r\n\r\nexport const filterStudentsByDaySelector = createSelector(\r\n state => state.students,\r\n state => state.perDayMap,\r\n state => state.day,\r\n (students, perDayMap, day) => {\r\n if (day === '' || day === undefined || day === null) {\r\n return students\r\n }\r\n const idMap = getFromDict(perDayMap, day, {})\r\n return students.filter(x => x.defaultUserGroupId in idMap).map(x => ({\r\n ...x,\r\n fromTimeInMinutes: idMap[x.defaultUserGroupId],\r\n }))\r\n }\r\n)\r\n\r\nexport const filterItemsSelector = createSelector(\r\n state => state.items,\r\n state => state.fn,\r\n state => state.text,\r\n (items, fn, text) => {\r\n if (!!fn && text !== '') {\r\n return fn(items, text)\r\n }\r\n return items\r\n }\r\n)\r\n\r\nexport const sortItemsSelector = createSelector(\r\n state => state.items,\r\n state => state.fn,\r\n (items, fn) => items.sort(fn)\r\n)\r\n\r\nexport const mergedStudentsSelector = createSelector(\r\n state => activeStudentsSelector(state.students),\r\n state => invitedStudentsSelector(state.students),\r\n state => suspendedStudentsSelector(state.students),\r\n (active, invited, suspended) => {\r\n let result = [].concat(active)\r\n if (invited.length > 0) {\r\n // we need to mark last item before label with skipSeparator because we do not need separator before label \r\n if (result.length > 0) {\r\n result[result.length - 1] = { ...result[result.length - 1], skipSeparator: true }\r\n }\r\n const label = { id: 'l0', title: texti18n(Messages.INVITED), isTextLabel: true, isInvited: true, skipSeparator: true }\r\n result = result.concat(label).concat(invited)\r\n }\r\n if (suspended.length > 0) {\r\n if (result.length > 0) {\r\n result[result.length - 1] = { ...result[result.length - 1], skipSeparator: true }\r\n }\r\n const label = { id: 'l1', title: texti18n(Messages.SUSPENDED), isTextLabel: true, isInvited: false, skipSeparator: true }\r\n result = result.concat(label).concat(suspended)\r\n }\r\n if (result.length > 0) {\r\n result[result.length - 1] = { ...result[result.length - 1], skipSeparator: true }\r\n }\r\n return result\r\n})\r\n\r\nconst createMapOfItemsByIdReduceFunc = (map, item) => {\r\n map[item.id] = item\r\n return map\r\n}\r\n\r\nexport const createMapOfItemsById = createSelector(\r\n // or emptyArray because mapKey can exist in state but it could be undefined eq state.students === undefined\r\n state => getFromDict(state, state.mapKey, emptyArray) || emptyArray,\r\n items => {\r\n const result = items.reduce(createMapOfItemsByIdReduceFunc, {})\r\n return result\r\n }\r\n)\r\n\r\nconst createMapOfItemsByUserIdReduceFunc = (map, item) => {\r\n map[item.userId] = item\r\n return map\r\n}\r\n\r\nexport const createMapOfItemsByUserId = createSelector(\r\n // or emptyArray because mapKey can exist in state but it could be undefined eq state.students === undefined\r\n state => state.dict || {},\r\n state => state.mapKey,\r\n (dict, key) => {\r\n const items = getFromDict(dict, key, emptyArray) || emptyArray\r\n return items.reduce(createMapOfItemsByUserIdReduceFunc, {})\r\n }\r\n)\r\n\r\nexport const createMapOfItemsByIdFromItems = createSelector(\r\n // or emptyArray because mapKey can exist in state but it could be undefined eq state.students === undefined\r\n state => state.items || emptyArray,\r\n items => {\r\n const result = items.reduce(createMapOfItemsByIdReduceFunc, {})\r\n return result\r\n }\r\n)\r\n\r\nexport const treeSelector = createSelector(\r\n x => x.items,\r\n items => {\r\n function recursive(items, obj) {\r\n items.forEach(it => {\r\n it.children && recursive(it.children, obj)\r\n obj[it.id] = it\r\n })\r\n return obj\r\n }\r\n return recursive(items, {})\r\n }\r\n)\r\n\r\nexport const selectItemsComponentFilterReselect = createSelector(\r\n x => x.filterItems,\r\n x => x.text || '',\r\n (filterItems, text) => filterItems(text)\r\n)","import { Messages, texti18n } from '../MessageConstants'\r\nimport VideoPlayerHelper, { isVimeoLink, isYouTubeLink, getVimeoVideoId } from './VideoPlayerHelper'\r\nimport { showError, canOpenURL, openURL } from '../../services/SharedServices'\r\n\r\nconst vimeoJsonUrl = 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/'\r\n\r\nconst vimeoImageUrlBase = 'https://i.vimeocdn.com/video/'\r\n\r\nconst vimeoImageUrlImageParams = '?mw=960' // width 960 pixels\r\n\r\nconst imageExtensions = Object.freeze([\r\n '.jpg',\r\n '.png',\r\n '.gif'\r\n])\r\n\r\nconst translate = {\r\n ' ': ' ',\r\n '&': '&',\r\n '"': '\"',\r\n '<': '<',\r\n '>': '>'\r\n}\r\n\r\nexport const getLinkData = async (link) => {\r\n const data = { linkTitle: '', imageUrl: '' }\r\n if (isVimeoLink(link)) {\r\n const videoId = getVimeoVideoId(link)\r\n const text = await getTextFromLink(vimeoJsonUrl + videoId)\r\n if (text) {\r\n try {\r\n const json = JSON.parse(text)\r\n const thumbnailId = getVimeoVideoId(json.thumbnail_url)\r\n data.imageUrl = `${vimeoImageUrlBase}${thumbnailId}${vimeoImageUrlImageParams}`\r\n data.linkTitle = json.title\r\n }\r\n catch (ex) {\r\n console.log(`error retrieving vimeo thumnbnail: ${text}. exception: ${ex}`)\r\n }\r\n }\r\n }\r\n else {\r\n const html = await getTextFromLink(link)\r\n if (html) {\r\n data.linkTitle = getLinkTitle(html)\r\n data.imageUrl = getLinkImage(html)\r\n }\r\n }\r\n\r\n return data\r\n}\r\n\r\nconst getLinkTitle = html => {\r\n return filterTitle(getTitleFromHTML(html))\r\n}\r\n\r\nconst getLinkImage = html => {\r\n const startSearchString = 'property=\"og:image\" content=\"'\r\n const endSearchString = '\">'\r\n const startIndex = html.indexOf(startSearchString)\r\n const substr = html.substring(startIndex + startSearchString.length)\r\n const endIndex = substr.indexOf(endSearchString)\r\n if (startIndex === -1 || endIndex === -1) {\r\n return ''\r\n }\r\n const fromIndex = startIndex + startSearchString.length\r\n return html.substring(fromIndex, fromIndex + endIndex)\r\n}\r\n\r\nconst getTextFromLink = async (link) => {\r\n try {\r\n const response = await fetch(link)\r\n const html = await response.text()\r\n return html\r\n }\r\n catch (ex) {\r\n console.log('getTextFromLink failed for link: ' + link, ex)\r\n }\r\n}\r\n\r\nconst getTitleFromHTML = (html) => {\r\n const startSearchString = ''\r\n const endSearchString = ''\r\n const startIndex = html.indexOf(startSearchString)\r\n const endIndex = html.indexOf(endSearchString)\r\n if (startIndex === -1 || endIndex === -1) {\r\n return ''\r\n }\r\n return html.substring(startIndex + startSearchString.length, endIndex)\r\n}\r\n\r\nconst filterTitle = (title) => {\r\n let newTitle = title\r\n for (const key in translate) {\r\n if (title.indexOf(key) !== -1) {\r\n const re = new RegExp(key, 'gi')\r\n newTitle = newTitle.replace(re, translate[key])\r\n }\r\n }\r\n return newTitle\r\n}\r\n\r\nexport function playVideo(link) {\r\n if (isYouTubeLink(link)) {\r\n VideoPlayerHelper.playYouTubeVideo(link)\r\n }\r\n else if (isVimeoLink(link)) {\r\n VideoPlayerHelper.playVimeoVideo(link)\r\n }\r\n else {\r\n openURL(link, () => showError(texti18n(Messages.COULD_NOT_OPEN_THE_LINK)))\r\n }\r\n}\r\n\r\nexport const isImageLink = link => {\r\n if (!link) {\r\n return false\r\n }\r\n for (let i = 0; i < imageExtensions.length; ++i) {\r\n if (link.endsWith(imageExtensions[i])) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nexport const loadLinkTitle = async link => {\r\n const canOpen = await canOpenURL(link)\r\n\r\n let changedState = { isLoading: false, finishedLoading: true }\r\n\r\n if (canOpen) {\r\n const isImage = isImageLink(link)\r\n if (isImage) {\r\n changedState = { ...changedState, imageUrl: link }\r\n }\r\n else if (isYouTubeLink(link) || isVimeoLink(link)) {\r\n const data = await getLinkData(link)\r\n if (data) {\r\n changedState = { ...changedState, ...data }\r\n }\r\n }\r\n }\r\n\r\n return changedState\r\n}","const fuseDark = {\r\n 50 : '#ECECEE',\r\n 100 : '#C5C6CB',\r\n 200 : '#9EA1A9',\r\n 300 : '#7D818C',\r\n 400 : '#5C616F',\r\n 500 : '#3C4252',\r\n 600 : '#353A48',\r\n 700 : '#2D323E',\r\n 800 : '#262933',\r\n 900 : '#1E2129',\r\n A100: '#C5C6CB',\r\n A200: '#9EA1A9',\r\n A400: '#5C616F',\r\n A700: '#2D323E'\r\n};\r\n\r\nexport default fuseDark;","export {default as fuseDark} from './fuseDark';","import __ from 'lodash'\r\n\r\n/**\r\n * You can extend Lodash with mixins\r\n * And use it as below\r\n * import _ from '@lodash'\r\n */\r\nconst _ = __.runInContext()\r\n\r\n_.mixin({\r\n // Immutable Set for setting state\r\n setIn: (state, name, value) => {\r\n return _.setWith(_.clone(state), name, value, _.clone)\r\n }\r\n})\r\n\r\nexport default _\r\n","import React from 'react'\r\n\r\nconst ImageComponent = React.forwardRef((props, ref) => )\r\n\r\nexport default ImageComponent\r\n\r\nImageComponent.defaultProps = {\r\n draggable: false\r\n}","import { fixGroupedItems } from '../utils/HelperFunctions'\r\nimport { \r\n updateSkillPut, addSkillPost, deleteSkillDelete, skillsGet, studentSkillsGet, activateSkillPost \r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { NavigatorService, showSuccess } from '../services/SharedServices'\r\nimport ActionTypes from './ActionTypes'\r\n\r\n/* Skills start */\r\n\r\nexport async function addUpdateSkillFetch(skill, dispatch, goBack) {\r\n const fetchPromise = skill.id \r\n ? updateSkillPut(skill) \r\n : addSkillPost(skill)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(skill.id ? updateSkill(value) : addSkill(value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function deleteSkillFetch(id, dispatch, goBack) {\r\n const fetchPromise = deleteSkillDelete(id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(deleteSkill(value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function changeSkillIsActiveFetch(skill, dispatch, goBack) {\r\n const fetchPromise = activateSkillPost(skill.id)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setSkillIsActive(skill.id, skill.groupId, responseData.value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadSkillsFetch(groupIds, teacherId, isActive, dispatch) {\r\n const fetchPromise = skillsGet(groupIds, teacherId, isActive)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setSkills(responseData.items, groupIds))\r\n return responseData\r\n}\r\n\r\nexport async function loadStudentSkillsFetch(isTeacher, groupIds, teacherId, studentId, dispatch) {\r\n const fetchPromise = studentSkillsGet(studentId, groupIds, teacherId, true)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n // dispatch(addOrUpdateSkills(responseData.items, groupIds)) TODO: do we need this?\r\n const studentItems = fixGroupedItems(responseData, 'skillId')\r\n dispatch(setStudentSkills(isTeacher ? studentId : teacherId, studentItems, groupIds))\r\n }\r\n return responseData\r\n}\r\n\r\n/* Skills end */\r\n\r\n/* Skills redux start */\r\n\r\nexport function addSkill(skill) {\r\n return { type: ActionTypes.TEACHER_ADD_SKILL_ACTION, skill }\r\n}\r\n\r\nexport function updateSkill(skill) {\r\n return { type: ActionTypes.TEACHER_UPDATE_SKILL_ACTION, skill }\r\n}\r\n\r\nexport function deleteSkill(skill) {\r\n return { type: ActionTypes.TEACHER_DELETE_SKILL_ACTION, skill } \r\n}\r\n\r\nexport function setSkillIsActive(id, groupId, isActive) {\r\n return { type: ActionTypes.TEACHER_SKILL_CHANGE_IS_ACTIVE_ACTION, id, isActive, groupId }\r\n}\r\n\r\nexport function setSkills(skills, groupIds) {\r\n return { type: ActionTypes.TEACHER_SET_SKILLS_ACTION, skills, groupIds }\r\n}\r\n\r\nexport function setStudentSkills(userId, skills, groupIds) {\r\n return { type: ActionTypes.SET_STUDENT_SKILLS, userId, skills, groupIds }\r\n}\r\n\r\nexport function addOrUpdateSkills(skills, groupIds) {\r\n return { type: ActionTypes.TEACHER_ADD_OR_UPDATE_SKILLS_ACTION, skills, groupIds }\r\n}\r\n\r\n/* Skills redux end */","export function decodeQueryString(url) {\r\n const question = url.indexOf('?')\r\n const hash = url.indexOf('#')\r\n if (question === -1) {\r\n return {}\r\n }\r\n // @see https://stackoverflow.com/questions/8486099/how-do-i-parse-a-url-query-parameters-in-javascript\r\n // hash should not be used as params in our case\r\n const query = hash !== -1 ? url.substring(question + 1, hash) : url.substring(question + 1)\r\n const result = query.split('&').filter(x => !!x).reduce(function (params, part) {\r\n part = part.split('+').join(' ') // replace every + with space, regexp-free version\r\n const eq = part.indexOf('=')\r\n let key = eq > -1 ? part.substring(0, eq) : part\r\n const value = eq > -1 ? decodeURIComponent(part.substring(eq + 1)) : ''\r\n const from = key.indexOf('[')\r\n if (from === -1) {\r\n params[decodeURIComponent(key)] = value\r\n }\r\n else {\r\n const to = key.indexOf(']', from)\r\n key = decodeURIComponent(key.substring(0, from))\r\n if(!params[key]) {\r\n params[key] = []\r\n }\r\n const index = decodeURIComponent(key.substring(from + 1, to))\r\n if (index === '') {\r\n params[key].push(value)\r\n }\r\n else {\r\n params[key][index] = value\r\n }\r\n }\r\n return params\r\n }, {})\r\n return result\r\n}\r\n\r\nexport function parametersToQueryString(urlParameters, arrayKeySuffix = '') {\r\n if (!urlParameters || typeof urlParameters !== 'object') {\r\n return ''\r\n }\r\n\r\n const urlParametersKeys = Object.keys(urlParameters)\r\n .filter(key => urlParameters[key] !== null && urlParameters[key] !== undefined)\r\n\r\n if (urlParametersKeys.length === 0) {\r\n return ''\r\n }\r\n\r\n const result = urlParametersKeys.map(key => {\r\n const value = urlParameters[key]\r\n if (Array.isArray(value)) {\r\n return value.filter(x => x !== null && x !== undefined)\r\n .map(arrValue => `${key}${arrayKeySuffix}=${encodeURIComponent(arrValue)}`)\r\n .join('&')\r\n }\r\n return `${key}=${encodeURIComponent(value)}`\r\n }).join('&')\r\n return '?' + result\r\n}","const config = {\r\n title: 'Layout 1 - Vertical',\r\n defaults: {\r\n mode: 'fullwidth',\r\n scroll: 'content',\r\n navbar: {\r\n display: true,\r\n folded: false,\r\n position: 'left'\r\n },\r\n toolbar: {\r\n display: true,\r\n style: 'fixed',\r\n position: 'below'\r\n },\r\n footer: {\r\n display: false,\r\n style: 'fixed',\r\n position: 'below'\r\n },\r\n leftSidePanel: {\r\n display: true\r\n },\r\n rightSidePanel: {\r\n display: true\r\n }\r\n },\r\n form: {\r\n mode: {\r\n title: 'Mode',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Boxed',\r\n value: 'boxed'\r\n },\r\n {\r\n name: 'Full Width',\r\n value: 'fullwidth'\r\n }\r\n ]\r\n },\r\n scroll: {\r\n title: 'Scrollable Area',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Body',\r\n value: 'body'\r\n },\r\n {\r\n name: 'Content',\r\n value: 'content'\r\n }\r\n ]\r\n },\r\n navbar: {\r\n type: 'group',\r\n title: 'Navbar',\r\n children: {\r\n display: {\r\n title: 'Display',\r\n type: 'switch'\r\n },\r\n folded: {\r\n title: 'Folded',\r\n type: 'switch'\r\n },\r\n position: {\r\n title: 'Position',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Left',\r\n value: 'left'\r\n },\r\n {\r\n name: 'Right',\r\n value: 'right'\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n toolbar: {\r\n type: 'group',\r\n title: 'Toolbar',\r\n children: {\r\n display: {\r\n title: 'Display',\r\n type: 'switch'\r\n },\r\n style: {\r\n title: 'Style',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Fixed',\r\n value: 'fixed'\r\n },\r\n {\r\n name: 'Static',\r\n value: 'static'\r\n }\r\n ]\r\n },\r\n position: {\r\n title: 'Position',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Above',\r\n value: 'above'\r\n },\r\n {\r\n name: 'Below',\r\n value: 'below'\r\n }\r\n ]\r\n }\r\n }\r\n },\r\n footer: {\r\n type: 'group',\r\n title: 'Footer',\r\n children: {\r\n display: {\r\n title: 'Display',\r\n type: 'switch'\r\n },\r\n style: {\r\n title: 'Style',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Fixed',\r\n value: 'fixed'\r\n },\r\n {\r\n name: 'Static',\r\n value: 'static'\r\n }\r\n ]\r\n },\r\n position: {\r\n title: 'Position',\r\n type: 'radio',\r\n options: [\r\n {\r\n name: 'Above',\r\n value: 'above'\r\n },\r\n {\r\n name: 'Below',\r\n value: 'below'\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default config\r\n","import layout1 from './layout1/Layout1Config'\r\n\r\nconst FuseLayoutConfigs = {\r\n layout1,\r\n}\r\n\r\nexport default FuseLayoutConfigs\r\n","import AppConfig from 'dpn-common/config/AppConfig'\r\nimport * as amplitude from '@amplitude/analytics-browser'\r\n\r\nlet amplitudeInitialized = false\r\n\r\n\r\nconst mapUrlToEventName = new Map([\r\n ['/students', 'View Student List'],\r\n ['/login', 'Login'],\r\n ['/logout', 'Logout'],\r\n ['/profile', 'View Profile'],\r\n ['/student-profile', 'View Profile'],\r\n ['/communication/chat', 'View Messages'],\r\n ['/student-communication/chat', 'View Messages'],\r\n ['/communication/channels', 'View Channels'],\r\n ['/student-communication/channels', 'View Channels'],\r\n ['/teacher-groups', 'View Group List'],\r\n ['/support/video-tutorials', 'View Support'],\r\n ['/support/student-video-tutorials', 'View Support'],\r\n ['/student-teachers', 'View Teacher'],\r\n ['/piano-adventures/assignments', 'View Library'],\r\n ['/piano-adventures/interactive-hub', 'View My Hub'],\r\n ['/piano-adventures/student-interactive-hub', 'View My Hub'],\r\n ['/student-settings/leaderboard', 'View Settings'],\r\n ['/settings/school-years', 'View Settings'],\r\n])\r\n\r\nfunction init() {\r\n if (!AppConfig.AmplitudeAnalyticsEnabled || !AppConfig.AmplitudeAnalyticsApiKey) {\r\n return\r\n }\r\n amplitude.init(AppConfig.AmplitudeAnalyticsApiKey)\r\n amplitudeInitialized = true\r\n}\r\n\r\nfunction setUser(user) {\r\n if (user) {\r\n const identifyObj = new amplitude.Identify()\r\n identifyObj.set('role', user.role)\r\n identifyObj.set('first_name', user.firstName)\r\n identifyObj.set('last_name', user.lastName)\r\n identifyObj.set('username', user.username)\r\n identifyObj.set('email', user.email)\r\n identifyObj.set('id', user.id)\r\n \r\n amplitude.identify(identifyObj)\r\n amplitude.setUserId(user?.externalId)\r\n }\r\n else {\r\n amplitude.reset()\r\n }\r\n \r\n}\r\n\r\nfunction sendEvent(event, eventProperties) {\r\n if (!amplitudeInitialized) {\r\n return\r\n }\r\n event = mapUrlToEventName.has(event) ? mapUrlToEventName.get(event) : event\r\n amplitude.track(event, eventProperties)\r\n}\r\n\r\nfunction stateChange(newState) {\r\n sendEvent(newState)\r\n}\r\n\r\nexport default {\r\n init,\r\n setUser,\r\n sendEvent,\r\n stateChange,\r\n}\r\n\r\n","import ReactGA from 'react-ga4'\r\nimport AppConfig, { ENV_TYPES } from 'dpn-common/config/AppConfig'\r\n\r\nlet GAInitialized = false\r\n\r\nfunction init() {\r\n if (!AppConfig.GoogleAnalyticsEnabled || !AppConfig.GoogleAnalyticsSiteID) {\r\n return\r\n }\r\n\r\n ReactGA.initialize(AppConfig.GoogleAnalyticsSiteID, { debug: AppConfig.environment === ENV_TYPES.Development })\r\n ReactGA.send({ hitType: 'pageview', page: window.location.pathname + window.location.search })\r\n GAInitialized = true\r\n}\r\n\r\nfunction setUser(user) {\r\n}\r\n\r\nfunction sendEvent(event) {\r\n if (!GAInitialized) {\r\n return\r\n }\r\n\r\n ReactGA.event(event)\r\n}\r\n\r\nfunction stateChange(newState) {\r\n}\r\n\r\nexport default {\r\n init,\r\n setUser,\r\n sendEvent,\r\n stateChange,\r\n}","import { hotjar } from 'react-hotjar'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { USER_TYPES } from 'dpn-common/utils/AppConstants'\r\n\r\nlet hotjarInitialized = false\r\n\r\nconst HOTJAR_SNIPPET_VERSION = 6\r\n\r\nfunction init() {\r\n if (!AppConfig.hotjarEnabled || !AppConfig.hotjarSiteID) {\r\n return\r\n }\r\n\r\n hotjar.initialize(AppConfig.hotjarSiteID, HOTJAR_SNIPPET_VERSION)\r\n hotjarInitialized = true\r\n}\r\n\r\nfunction setUser(user) {\r\n if (!hotjarInitialized) {\r\n return\r\n }\r\n\r\n if (user?.id) {\r\n hotjar.identify(user.id, {\r\n email: user.email,\r\n userID: user.id + '',\r\n username: user.username,\r\n extra: {\r\n is_teacher: user.role === USER_TYPES.TEACHER\r\n }\r\n })\r\n }\r\n else {\r\n hotjar.identify(0, {})\r\n }\r\n}\r\n\r\nfunction sendEvent(event) {\r\n if (!hotjarInitialized) {\r\n return\r\n }\r\n\r\n hotjar.event(`${event}`)\r\n}\r\n\r\nfunction stateChange(newState) {\r\n if (!hotjarInitialized) {\r\n return\r\n }\r\n\r\n // for some reason needed in order for site wide tracking to begin\r\n sendEvent(`stateChange - ${newState}`)\r\n\r\n hotjar.stateChange(`${newState}`)\r\n}\r\n\r\nexport default {\r\n init,\r\n setUser,\r\n sendEvent,\r\n stateChange,\r\n}","import AmplitudeService from './AmplitudeService'\r\nimport NavigatorService from './common/NavigatorService'\r\nimport GAService from './GAService'\r\nimport HotjarService from './HotjarService'\r\n\r\nfunction init() {\r\n // hotjar\r\n HotjarService.init()\r\n // google analytics\r\n GAService.init()\r\n // amplitude analytics\r\n AmplitudeService.init()\r\n\r\n NavigatorService.addRouteChangeListener(stateChange)\r\n}\r\n\r\nfunction setUser(user) {\r\n HotjarService.setUser(user)\r\n GAService.setUser(user)\r\n AmplitudeService.setUser(user)\r\n}\r\n\r\nfunction sendEvent(event) {\r\n HotjarService.sendEvent(event)\r\n GAService.sendEvent(event)\r\n AmplitudeService.sendEvent(event)\r\n}\r\n\r\nfunction stateChange(data) {\r\n const newState = data.currentLocation.pathname\r\n\r\n HotjarService.stateChange(newState)\r\n GAService.stateChange(newState)\r\n AmplitudeService.stateChange(newState)\r\n}\r\n\r\nfunction sendEventAmplitudeOnly(event, properties) {\r\n AmplitudeService.sendEvent(event, properties)\r\n}\r\n\r\nexport default {\r\n init,\r\n setUser,\r\n sendEvent,\r\n sendEventAmplitudeOnly\r\n}","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction ArrowLeftCircleIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nArrowLeftCircleIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nArrowLeftCircleIcon.defaultProps = {\r\n color: 'white',\r\n size: 36,\r\n}\r\n\r\nexport default ArrowLeftCircleIcon","\r\nexport const SUPPORTED_IMAGE_MIME_TYPES = Object.freeze({\r\n JPG: 'image/jpg',\r\n JPEG: 'image/jpeg',\r\n GIF: 'image/gif',\r\n PNG: 'image/png',\r\n BMP: 'image/bmp',\r\n})\r\n\r\nexport const IMAGE_TYPES = Object.freeze({\r\n '.jpg': SUPPORTED_IMAGE_MIME_TYPES.JPG,\r\n '.jpeg': SUPPORTED_IMAGE_MIME_TYPES.JPEG,\r\n '.gif': SUPPORTED_IMAGE_MIME_TYPES.GIF,\r\n '.png': SUPPORTED_IMAGE_MIME_TYPES.PNG,\r\n '.bmp': SUPPORTED_IMAGE_MIME_TYPES.BMP,\r\n})\r\n\r\nexport const MAX_IMAGE_SIZE = 1920","import { USER_TYPES } from 'dpn-common/utils/AppConstants'\r\nimport { createSelector } from 'reselect'\r\nimport { createMapOfItemsById } from './BaseReselects'\r\n\r\nconst SHOW_LOGS = false\r\n\r\nconst getUserIdentityString = user => {\r\n if (!!user.firstName && !!user.lastName) {\r\n return `${user.firstName} ${user.lastName}`\r\n }\r\n return user.firstName || user.lastName || user.username || ''\r\n}\r\n\r\nexport const studentTeacherDataListSelector = createSelector(\r\n state => state.group.users,\r\n state => state.group.userGroups,\r\n state => state.onlyActive,\r\n (users = [], userGroups = [], onlyActive = true) => {\r\n SHOW_LOGS && console.log('executing reselect: studentTeacherDataListSelector')\r\n let result = users.filter(user => user.role === USER_TYPES.TEACHER && userGroups.some(group => group.userId === user.id))\r\n if (onlyActive) {\r\n result = result.filter(x => x.isActive)\r\n }\r\n return result.sort((a, b) => {\r\n if (a.isActive && b.isActive) {\r\n if (a.isInvited && b.isInvited) {\r\n const name1 = getUserIdentityString(a).toLowerCase()\r\n const name2 = getUserIdentityString(b).toLowerCase()\r\n return name1.localeCompare(name2)\r\n }\r\n else if (!a.isInvited) return -1\r\n else return 1\r\n }\r\n else if (a.isActive) return -1\r\n else return 1\r\n })\r\n }\r\n)\r\n\r\nexport const studentSelectedTeacherDataSelector = createSelector(\r\n state => state.studentId || state.base.auth.userData.id, // studentId\r\n state => state.group.users,\r\n state => state.group.students,\r\n (studentId, users = [], students = []) => {\r\n SHOW_LOGS && console.log('executing reselect: studentSelectedTeacherDataSelector')\r\n const usersMap = createMapOfItemsById({ mapKey: 'users', users })\r\n const studentData = usersMap[studentId]\r\n let student = students.find(x => studentId in x.students)\r\n if (!student) {\r\n return undefined\r\n }\r\n const teacherId = student.teacherId\r\n const teacherStudentData = student.students[studentId]\r\n const teacherData = usersMap[teacherId]\r\n let result = {\r\n ...teacherData,\r\n ...teacherStudentData,\r\n leaderboardParticipation: teacherStudentData.leaderboardParticipation && studentData.leaderboardParticipation &&\r\n teacherData.leaderboardParticipation,\r\n leaderboardParticipationByTeacherStudent: teacherStudentData.leaderboardParticipation,\r\n leaderboardParticipationByStudent: studentData.leaderboardParticipation,\r\n leaderboardParticipationByTeacher: teacherData.leaderboardParticipation,\r\n }\r\n return result \r\n }\r\n)\r\n\r\nexport const studentTeacherGroupsDataListSelector = createSelector(\r\n state => state.studentId || state.base.auth.userData.id, // studentId\r\n state => state.teacherId || (state.student.teacher ? state.student.teacher.id : 0), // teacherId\r\n state => state.group.userGroups,\r\n state => state.groupFilters,\r\n (studentId, teacherId, groups = [], groupFilters = { active: true, own: false }) => {\r\n SHOW_LOGS && console.log('executing reselect: studentTeacherGroupsDataListSelector')\r\n const filteredGroups = groupFilters.own \r\n ? groups.filter(group => group.users.some(x => x.userId === studentId) && group.userId === teacherId)\r\n : groups.filter(group => group.users.some(x => x.userId === studentId) && group.users.some(x => x.userId === teacherId))\r\n let result = filteredGroups.map(group => {\r\n const data = group.users.find(x => x.userId === studentId)\r\n return {\r\n ...group,\r\n role: data.role,\r\n isActive: group.isActive && data.isActive\r\n }\r\n })\r\n if (groupFilters.active) {\r\n result = result.filter(x => x.isActive)\r\n }\r\n return result.sort((a, b) => {\r\n if (a.userId !== b.userId) {\r\n if (a.userId === teacherId) return -1\r\n else if (b.userId === teacherId) return 1\r\n else return a.userId <= b.userId ? -1 : 1\r\n }\r\n else if (a.order > b.order) return 1\r\n else if (a.order < b.order) return -1\r\n else if (a.isActive && b.isActive) {\r\n const name1 = (a.name || '').toLowerCase()\r\n const name2 = (b.name || '').toLowerCase()\r\n return name1.localeCompare(name2)\r\n }\r\n else if (a.isActive) return -1\r\n else return 1\r\n })\r\n }\r\n)\r\n\r\n","import { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\nimport { LayoutIcons } from 'utils/LayoutIcons'\r\nimport { USER_TYPES } from 'dpn-common/utils/AppConstants'\r\n\r\nconst navigationConfig = [\r\n {}\r\n]\r\n\r\nconst setNavigationConfig = role => {\r\n switch (role) {\r\n case USER_TYPES.TEACHER: return teacherNavigationConfig()\r\n case USER_TYPES.STUDENT: return studentBaseNavigationConfig()\r\n default: return navigationConfig\r\n }\r\n}\r\n\r\nconst studentBaseNavigationConfig = () => [\r\n // {\r\n // 'id': 'student-home',\r\n // 'title': texti18n(Messages.HOME),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.HOME,\r\n // 'url': '/student-lessons',\r\n // },\r\n {\r\n 'id': 'piano-interactive-hub',\r\n 'title': texti18n(Messages.INTERACTIVE_HUB),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.HOME,\r\n 'url': '/piano-adventures/student-interactive-hub',\r\n },\r\n {\r\n 'id': 'navigation',\r\n 'title': texti18n(Messages.MY_PIANO_ADVENTURES),\r\n 'type': 'group',\r\n 'children': [\r\n {\r\n 'id': 'student-lessons',\r\n 'title': texti18n(Messages.MY_LESSONS),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.LESSONS,\r\n 'url': '/student-lessons',\r\n 'teacherRequired': true,\r\n },\r\n {\r\n 'id': 'student-my-assignments',\r\n 'title': texti18n(Messages.MY_ASSIGNMENTS),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.PIANO_ADVENTURES,\r\n 'url': '/my-assignments',\r\n 'teacherRequired': true,\r\n },\r\n {\r\n 'id': 'student-dashboard',\r\n 'title': texti18n(Messages.MY_PROFILE),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.MY_PROFILE,\r\n 'url': '/student-profile?componentType=skills',\r\n 'teacherRequired': true,\r\n },\r\n {\r\n 'id': 'student-teachers',\r\n 'title': texti18n(Messages.MY_TEACHER),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.TEACHERS,\r\n 'url': '/student-teachers',\r\n },\r\n ]\r\n },\r\n {\r\n 'id': 'student-piano-adventure',\r\n 'title': texti18n(Messages.PIANO_ADVENTURES),\r\n 'type': 'group',\r\n 'teacherRequired': true,\r\n 'children': [\r\n {\r\n 'id': 'student-assignments',\r\n 'title': texti18n(Messages.LIBRARY),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.PIANO_ADVENTURES,\r\n 'url': '/piano-adventures/assignments',\r\n },\r\n // {\r\n // 'id': 'student-piano-adventures-courses',\r\n // 'title': texti18n(Messages.COURSES),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.COURSES,\r\n // 'url': '/piano-adventures/courses',\r\n // },\r\n ]\r\n },\r\n {\r\n 'id': 'student-communication',\r\n 'title': texti18n(Messages.COMMUNICATION),\r\n 'type': 'group',\r\n 'children': [\r\n {\r\n 'id': 'messages',\r\n 'icon': LayoutIcons.CHATS,\r\n 'title': texti18n(Messages.MESSAGES),\r\n 'type': 'item',\r\n 'url': '/student-communication/chat',\r\n 'teacherRequired': true,\r\n },\r\n {\r\n 'id': 'channels',\r\n 'icon': LayoutIcons.CHANNELS,\r\n 'title': texti18n(Messages.CHANNELS),\r\n 'type': 'item',\r\n 'url': '/student-communication/channels',\r\n },\r\n ]\r\n },\r\n {\r\n 'id': 'more',\r\n 'title': texti18n(Messages.MORE),\r\n 'type': 'group',\r\n 'children': [\r\n // {\r\n // 'id': 'student-settings',\r\n // 'title': texti18n(Messages.SETTINGS),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.SETTINGS,\r\n // 'url': '/student-settings/leaderboard'\r\n // },\r\n {\r\n 'id': 'help',\r\n 'title': texti18n(Messages.SUPPORT),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.HELP_OUTLINE,\r\n 'url': '/support/student-support'\r\n },\r\n ]\r\n },\r\n]\r\n\r\nconst teacherNavigationConfig = () => [\r\n // {\r\n // 'id': 'teacher-home',\r\n // 'title': texti18n(Messages.HOME),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.HOME,\r\n // 'url': '/students',\r\n // },\r\n {\r\n 'id': 'piano-interactive-hub',\r\n 'title': texti18n(Messages.INTERACTIVE_HUB),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.HOME,\r\n 'url': '/piano-adventures/interactive-hub',\r\n },\r\n {\r\n 'id': 'students',\r\n 'title': texti18n(Messages.STUDENTS),\r\n 'type': 'group',\r\n 'children': [\r\n {\r\n 'id': 'students-all-students',\r\n 'title': texti18n(Messages.MY_STUDENTS),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.ALL_STUDENTS,\r\n 'url': '/students',\r\n },\r\n {\r\n 'id': 'students-groups',\r\n 'title': texti18n(Messages.GROUPS),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.ALL_GROUPS,\r\n 'url': '/teacher-groups',\r\n },\r\n ]\r\n },\r\n {\r\n 'id': 'piano-adventures',\r\n 'title': texti18n(Messages.PIANO_ADVENTURES),\r\n 'type': 'group',\r\n 'children': [\r\n {\r\n 'id': 'piano-adventures-assignments',\r\n 'title': texti18n(Messages.LIBRARY),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.PIANO_ADVENTURES,\r\n 'url': '/piano-adventures/assignments',\r\n },\r\n // {\r\n // 'id': 'piano-adventures-courses',\r\n // 'title': texti18n(Messages.COURSES),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.COURSES,\r\n // 'url': '/piano-adventures/courses',\r\n // },\r\n ]\r\n },\r\n {\r\n 'id': 'communication',\r\n 'title': texti18n(Messages.COMMUNICATION),\r\n 'type': 'group',\r\n 'children': [\r\n {\r\n 'id': 'messages',\r\n 'title': texti18n(Messages.MESSAGES),\r\n 'type': 'item',\r\n 'url': '/communication/chat',\r\n 'icon': LayoutIcons.CHATS,\r\n },\r\n {\r\n 'id': 'channels',\r\n 'title': texti18n(Messages.CHANNELS),\r\n 'type': 'item',\r\n 'url': '/communication/channels',\r\n 'icon': LayoutIcons.CHANNELS,\r\n },\r\n ]\r\n },\r\n {\r\n 'id': 'more',\r\n 'title': texti18n(Messages.MORE),\r\n 'type': 'group',\r\n 'children': [\r\n // {\r\n // 'id': 'settings',\r\n // 'title': texti18n(Messages.SETTINGS),\r\n // 'type': 'item',\r\n // 'icon': LayoutIcons.SETTINGS,\r\n // 'url': '/settings/leaderboard'\r\n // },\r\n {\r\n 'id': 'help',\r\n 'title': texti18n(Messages.SUPPORT),\r\n 'type': 'item',\r\n 'icon': LayoutIcons.HELP_OUTLINE,\r\n 'url': '/support/teacher-support'\r\n },\r\n ]\r\n },\r\n]\r\n\r\nexport default navigationConfig\r\n\r\nexport {\r\n setNavigationConfig\r\n}","import SettingsService from '../services/SettingsService'\r\n\r\nexport const GLOBAL_FIELD_KEY = ''\r\n\r\nexport const Messages = Object.freeze({\r\n BACK_TO_LEADERBOARD_SETTINGS: 'Back to Leaderboard Settings',\r\n CLOSE: 'Close',\r\n GROUP_INFO: 'Group info',\r\n NO_UPLOADS_TO_SHOW: 'No uploads to show',\r\n CURRENT_COLOR: 'User Color',\r\n PDF: 'PDF',\r\n BACK_TO_REWARDS_STORE: 'Back to Rewards Store',\r\n BACK_TO_GROUP_SELECTION: 'Back to Group Selection',\r\n GROUP_SELECTION: 'Group Selection',\r\n GROUP_HAS_BEEN_DELETED: 'Group has been deleted',\r\n BACK_TO_STUDENT_INFO: 'Back to Student Info',\r\n CUSTOM: 'Custom',\r\n START_TIME: 'Start Time',\r\n END_TIME: 'End Time',\r\n SCHEDULE: 'Schedule',\r\n FOR_THIS_GROUP: 'For this group',\r\n BACK_TO_GROUP_PROFILE: 'Back to Group Profile',\r\n STUDENT_OR_GROUP: 'Student or Group',\r\n GROUP: 'Group',\r\n GROUPS: 'Groups',\r\n SEARCH: 'Search',\r\n SEARCH_GROUPS: 'Search Groups',\r\n ADD_NEW_GROUP: 'Add New Group',\r\n ADD_GROUP: 'Add Group',\r\n EDIT_GROUP: 'Edit Group',\r\n GROUP_NAME: 'Group Name',\r\n GROUP_MEMBERS: 'Group Members',\r\n BACK_TO_ADD_GROUP: 'Back to Add Group',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_GROUP: 'Are you sure you want to delete group?',\r\n NO_GROUPS_TO_SHOW: 'No groups to show',\r\n BACK_TO_GROUPS: 'Back to Groups',\r\n SELECT_STUDENTS: 'Select Students',\r\n ADD_STUDENTS: 'Add Students',\r\n DAY: 'Day',\r\n TIME: 'Time',\r\n SELECT_DAY: 'Select Day',\r\n SELECT_TIME: 'Select Time',\r\n CUSTOM_ASSIGN_LEVELS_TEXT: 'You can customize assign levels that you can assign to students by clicking Ok or by opening the side menu and going to:',\r\n SUBSCRIPTIONS_ENDPOINT: 'Payment/Purchase',\r\n FULL_ACCESS_GRANTED: 'Activation code applied. Full access granted!',\r\n ACTIVATION_CODE: 'Activation Code',\r\n FOR_MORE_INFORMATION: 'For more information, go to the following link:',\r\n MAX_NUMBER_OF_STUDENTS_REACHED: 'Maximum number of students reached!',\r\n ACTIVATION: 'Activation',\r\n ACTIVATION_CODE_APPLIED: 'Activation Code applied!',\r\n FAILED_TO_GET_IMAGE_SIZE: 'Failed to get image size.',\r\n FAILED_TO_EDIT_THE_IMAGE: 'Failed to edit the image.',\r\n AVATAR_IMAGE_EDITOR_HELP: 'You can zoom the image inside the circle and then center it.',\r\n PREVIEW: 'Preview',\r\n ARE_YOU_SURE_YOU_WANT_TO_REMOVE_SKILL: 'Are you sure you want to remove this skill?',\r\n ARE_YOU_SURE_YOU_WANT_TO_RETURN_REWARD: 'Are you sure you want to return this reward?',\r\n REMOVE_SKILLS: 'Remove Skills',\r\n OPTIONAL: 'Optional',\r\n FOR_YOU: 'For You',\r\n FOR_EVERYONE: 'For Everyone',\r\n SIGN_UP: 'Sign Up',\r\n LOGIN: 'Login',\r\n PIANO_ADVENTURES_INTERACTIVE_PRESETS: 'Piano Adventures Interactive Presets',\r\n CUSTOM_PRESETS: 'Custom Presets',\r\n PIANO_ADVENTURES_INTERACTIVE_HUB: 'Piano Adventures Interactive Hub',\r\n INTERACTIVE_HUB: 'My Hub',\r\n PIANO_ADVENTURES_COURSES: 'Piano Adventures Courses',\r\n COURSES: 'Courses',\r\n PIANO_ADVENTURES_ASSIGNMENTS: 'Piano Adventures Assignments',\r\n ASSIGN_LEVEL_PRESET_HAS_BEEN_DELETED: 'Assign Level Preset has been deleted',\r\n TEXT_PRESET_HAS_BEEN_DELETED: 'Text Preset has been deleted',\r\n NO_TEXT_PRESETS_TO_SHOW: 'No text presets to show',\r\n NO_PRESETS_TO_SHOW: 'No presets to show',\r\n BACK_TO_TEXT_PRESETS: 'Back to Text Presets',\r\n EDIT_TEXT_PRESET: 'Edit Text Preset',\r\n ADD_TEXT_PRESET: 'Add Text Preset',\r\n ADD_NEW_TEXT_PRESET: 'New Text Preset',\r\n TEXT_PRESETS: 'Text Presets',\r\n NO_ASSIGN_LEVEL_PRESETS_TO_SHOW: 'No assign level presets to show',\r\n BACK_TO_ASSIGN_LEVEL_PRESETS: 'Back to Assign Level Presets',\r\n EDIT_ASSIGN_LEVEL_PRESET: 'Edit Assign Level Preset',\r\n ADD_ASSIGN_LEVEL_PRESET: 'Add Assign Level Preset',\r\n ASSIGN_LEVEL_PRESETS: 'Assign Level Presets',\r\n ADD_NEW_ASSIGN_LEVEL_PRESET: 'New Assign Level Preset',\r\n BACK_TO_PRESETS: 'Back to Presets',\r\n STUDENT_PROFILE: 'Student Profile',\r\n MY_DASHBOARD: 'My Dashboard',\r\n MY_TEACHER: 'My Teacher',\r\n LEADERBOARD_CODE: 'L',\r\n SEARCH_STUDENTS: 'Search Students',\r\n SEARCH_MESSAGES: 'Search Messages',\r\n SEARCH_LESSONS: 'Search Lessons',\r\n TEACHER_RESOURCES: 'Tips and Tricks',\r\n REWARDS_STORE: 'Rewards Store',\r\n ADD_NEW_PRESET: 'Add New Preset',\r\n BACK_TO_COMMENT_SENTENCES: 'Back to Comment Sentences',\r\n ENTER_NAME: 'Enter Name',\r\n ADD_SCHOOL_YEAR: 'Add School Year',\r\n EDIT_SCHOOL_YEAR: 'Edit School Year',\r\n ADD_SENTENCE: 'Add Sentence',\r\n EDIT_SENTENCE: 'Edit Sentence',\r\n TEXT: 'Text',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SENTENCE: 'Are you sure you want to delete this sentence?',\r\n ADD_NEW_SENTENCE: 'New Sentence',\r\n COMMENT_SENTENCES: 'Comment Sentences',\r\n SENTENCE_HAS_BEEN_DELETED: 'Sentence has been deleted.',\r\n DO_NOT_SHOW_AGAIN: 'Don\\'t show again',\r\n SHOW_TUTORIALS: 'Show Tutorials?',\r\n INVITATIONS: 'Invitations',\r\n CATEGORY_OR_SUBCATEGORY_COLOR: 'Category or Subcategory color',\r\n CAN_NOT_CREATE_ASSIGNMENT_OR_CATEGORY_HERE: 'A Category or Subcategory can not contain both Assignments and other Categories or Subcategories at the same time.',\r\n DESCRIPTION_TITLE: 'Description Title',\r\n CAN_NOT_DELETE_CHANNEL_MESSAGES: 'Can not delete channel messages.',\r\n STICKER: 'Sticker',\r\n NO_LEVELS_TO_SHOW: 'No Levels to show',\r\n NO_BOOKS_TO_SHOW: 'No Books to show',\r\n NO_UNITS_TO_SHOW: 'No Units to show',\r\n NO_ASSIGNMENTS_TO_SHOW: 'No Assignments to show',\r\n BACK_TO_UNIT: 'Back to Unit',\r\n BACK_TO_UNIT_LIST: 'Back to Unit List',\r\n BACK_TO_BOOK_LIST: 'Back to Book List',\r\n BACK_TO_LEVEL_LIST: 'Back to Level List',\r\n BACK_TO_ASSIGNMENT: 'Back to Assignment',\r\n CLOSE_BUTTON_TITLE: ' Close ',\r\n INFORMATION: 'Information',\r\n DONE: 'Done',\r\n CAN_NOT_DELETE_THIS_SUBCATEGORY: 'Can not delete this Subcategory while it contains other Subcategories or Assignments.',\r\n CAN_NOT_DELETE_THIS_CATEGORY: 'Can not delete this Category while it contains Subcategories or Assignments.',\r\n CAN_NOT_DELETE_ALL_CATEGORIES: 'Can not delete Categories while they contains Subcategories or Assignments.',\r\n COLOR: 'Color',\r\n NEXT: 'Next',\r\n CATEGORIES: 'Categories',\r\n SUBCATEGORIES: 'Subcategories',\r\n NEW_CATEGORY: 'New Category',\r\n NEW_SUBCATEGORY: 'New Subcategory',\r\n NO_CATEGORIES_OR_ASSIGNMENTS_TO_SHOW: 'No Categories or Assignments to show',\r\n NO_SUBCATEGORIES_OR_ASSIGNMENTS_TO_SHOW: 'No Subcategories or Assignments to show',\r\n BACK_TO_CATEGORIES: 'Back to Categories',\r\n BACK_TO_SUBCATEGORIES: 'Back to Subcategories',\r\n EDIT_SUBCATEGORY: 'Edit Subcategory',\r\n EDIT_CATEGORY: 'Edit Category',\r\n ADD_SUBCATEGORY: 'Add Subcategory',\r\n ADD_CATEGORY: 'Add Category',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_TEXT_PRESET: 'Are you sure you want to delete this Text Preset?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGN_LEVEL_PRESET: 'Are you sure you want to delete this Assign Level Preset?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_SUBCATEGORY: 'Are you sure you want to delete this Subcategory?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_CATEGORY: 'Are you sure you want to delete this Category?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_ITEMS: 'Are you sure you want to delete selected items?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_CATEGORIES: 'Are you sure you want to delete selected Categories?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_ASSIGNMENTS: 'Are you sure you want to delete selected Assignments?',\r\n SUBCATEGORY_DELETED_SUCCESSFULLY: 'Subcategory deleted successfully',\r\n NUMBER_OF_CATEGORIES_DELETED_SUCCESSFULLY: 'Number of Categories deleted: {0}',\r\n CATEGORIES_DELETED_SUCCESSFULLY_FAILED: 'Number of Categories deleted: {0}. Number of Categories failed to deleted: {1}.',\r\n NUMBER_OF_ASSIGNMENTS_DELETED_SUCCESSFULLY: 'Number of Assignments deleted: {0}',\r\n ASSIGNMENTS_DELETED_SUCCESSFULLY_FAILED: 'Number of Assignments deleted: {0}. Number of Assignments failed to deleted: {1}.',\r\n CATEGORY_DELETED_SUCCESSFULLY: 'Category deleted successfully',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_THIS_MESSAGE: 'Are you sure you want to delete this message?',\r\n COPY: 'Copy',\r\n PIANO_ADVENTURES_LINK: 'https://pianoadventures.com',\r\n PRIVACY_TERMS_LINK: '/docs/privacy-terms.html',\r\n ABOUT_LINK: 'https://pianoadventures.com/about/',\r\n LICENCE_AGREEMENT_LINK: '/docs/licence-agreement.html',\r\n PRIVACY_POLICY_LINK: '/docs/privacy-policy.html',\r\n EDIT_PROFILE: 'Edit Profile',\r\n COULD_NOT_LOAD_CORRECTLY: 'Could not load correctly',\r\n NOT_CONNECTED_TO_INTERNET: 'Not connected to internet',\r\n CONNECTED_TO_INTERNET: 'Connected to internet',\r\n DISCONNECTED_FROM_INTERNET: 'Disconnected from internet',\r\n NO_PRACTICE_STEPS_TO_SHOW: 'No practice steps to show',\r\n NO_COMMENTS_TO_SHOW: 'No comments to show',\r\n LOAD_MORE: 'Load More',\r\n NO_STUDENTS_TO_SHOW: 'No students to show',\r\n NO_LESSONS_TO_SHOW: 'No lessons to show',\r\n NO_SETTINGS_TO_SHOW: 'No settings to show',\r\n NO_NOTIFICATION_SETTINGS_TO_SHOW: 'No notification settings to show',\r\n NO_LANGUAGES_TO_SHOW: 'No languages to show',\r\n NO_SCHOOL_YEARS_TO_SHOW: 'No school years to show',\r\n NO_ITEMS_TO_SHOW: 'No items to show',\r\n NO_USERS_TO_SHOW: 'No users to show',\r\n NO_CONVERSATIONS_TO_SHOW: 'No conversations to show',\r\n NO_MESSAGES_TO_SHOW: 'No messages to show',\r\n NO_SKILLS_TO_SHOW: 'No skills to show',\r\n NO_REWARDS_TO_SHOW: 'No rewards to show',\r\n NO_VIDEO_TUTORIALS_TO_SHOW: 'No video tutorials to show',\r\n NO_TEACHER_RESOURCES_TO_SHOW: 'No teacher resources to show',\r\n NOTHING_TO_SHOW: 'Nothing to show',\r\n ENABLED: 'Enabled',\r\n DISABLED: 'Disabled',\r\n LEADERBOARD_IS_DISABLED: 'Leaderboard is disabled',\r\n IMPORT_DEMO_SKILLS: 'Import Demo Skills',\r\n IMPORT_DEMO_REWARDS: 'Import Demo Rewards',\r\n IMPORT_DEMO_LESSONS: 'Import Demo Lessons',\r\n IMPORT_DEMO_ASSIGNMENTS: 'Import Demo Assignments',\r\n IMPORT_DEMO_STUDENTS: 'Import Demo Student List',\r\n BACK_TO: 'Back to',\r\n ERROR_DATA_NOT_LOADED_CORRECTLY: 'Error retrieving data. Try swiping down to reload.',\r\n ERROR_RETRIEVING_LANG_DEF: 'Error while trying to retrieve language definitions',\r\n TOTAL: 'Total',\r\n AVAILABLE: 'Available',\r\n VIDEOS: 'Videos',\r\n PRACTICE_STEPS: 'Practice Steps',\r\n NOT_ENOUGH_POINTS_TO_BUY_THIS_REWARD: 'Not enough points to buy this reward',\r\n YOU_HAVE: 'You have',\r\n ADD_MORE: 'Add more...',\r\n LESSON_HAS_BEEN_DELETED: 'Lesson has been deleted',\r\n SCHOOL_YEAR_HAS_BEEN_DELETED: 'School Year has been deleted',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_LESSON: 'Are you sure you want to delete this lesson?',\r\n PIANO_LESSON: 'Piano Lesson',\r\n DASHBOARD: 'Dashboard',\r\n DASHBOARDS: 'Dashboards',\r\n CLONE_LAST_LESSON: 'Clone Last Lesson',\r\n CLONE: 'Clone',\r\n NO_PREVIOUS_LESSON_TO_CLONE: 'No previous lesson to clone',\r\n INFO: 'Info',\r\n SUCCESS: 'Success',\r\n ERROR: 'Error',\r\n COULD_NOT_OPEN_THE_LINK: 'Could not open the link',\r\n LESSON: 'Lesson',\r\n COMMENTS: 'Comments',\r\n ASSIGNMENT: 'Assignment',\r\n COMMENT_HAS_BEEN_DELETED: 'Comment has been deleted',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_COMMENT: 'Are you sure you want to delete this comment?',\r\n TO: 'To',\r\n AND: 'and',\r\n OTHERS: 'others',\r\n OTHER: 'other',\r\n SEND_MESSAGE: 'Send Message',\r\n ADMIN: 'admin',\r\n UNKNOWN: 'Unknown',\r\n COMING_SOON: 'Feature not ready yet. Coming soon!',\r\n COMMENT_HAS_BEEN_POSTED: 'Comment has been posted',\r\n CAN_NOT_LOAD_COMMENT_INFO: 'Can not load comment info',\r\n YES: 'Yes',\r\n NO: 'No',\r\n CHOOSE_WHICH_LIBRARY: 'Choose which Library...',\r\n CHOOSE_FROM_LIBRARY: 'Choose from Library...',\r\n TAKE_PHOTO: 'Take Photo...',\r\n CHOOSE_ONE_OF_PRE_MADE_AVATARS: 'Choose one of pre-made Avatars...',\r\n NO_PREMADE_AVATARS_TO_SHOW: 'No pre-made Avatars to show',\r\n CHOOSE_YOUR_AVATAR: 'Choose Your Avatar',\r\n CHOOSE_PICTURE_FROM_COMPUTER: 'Choose a picture from computer',\r\n ASSIGNMENT_HAS_BEEN_DELETED: 'Assignment has been deleted',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGNMENT: 'Are you sure you want to delete this assignment?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_ASSIGNMENT_FROM_LESSON: 'Are you sure you want to delete this assignment from this lesson?',\r\n SORT_ASSIGNMENTS: 'Sort Assignments',\r\n SORT_NOTES: 'Sort Notes',\r\n SORT_CATEGORIES: 'Sort Categories',\r\n SORT_SUBCATEGORIES: 'Sort Subcategories',\r\n EDIT_ASSIGNMENT: 'Edit Assignment',\r\n EDIT_ASSIGNMENTS: 'Edit Assignments',\r\n ADD_ASSIGNMENT: 'Add Assignment',\r\n REMOVE_ASSIGNMENT: 'Remove Assignment',\r\n ADD_NEW_ASSIGNMENT: 'Add Assignment',\r\n IMPORT_ASSIGNMENTS: 'Import Assignments',\r\n EXPORT_ASSIGNMENTS: 'Export Assignments',\r\n EXPORT: 'Export',\r\n DESCRIPTION: 'Description',\r\n LINK: 'Link',\r\n LINKS: 'Links',\r\n ASSIGNMENTS: 'Assignments',\r\n NEW_ASSIGNMENT: 'New Assignment',\r\n NEW_PRIVATE_MESSAGE_RECEIVED: 'New chat message received!',\r\n BACK_TO_LESSON_LIST: 'Back to Lesson List',\r\n BACK_TO_LESSONS: 'Back to Lessons',\r\n BACK_TO_LESSON: 'Back to Lesson',\r\n BACK_TO_COMMUNICATION: 'Back to Communication',\r\n BACK_TO_CUSTOM_PRESET: 'Back to Custom Presets',\r\n BACK_TO_SETTINGS: 'Back to Settings',\r\n BACK_TO_STUDENT_PROFILE: 'Back to Student Profile',\r\n BACK_TO_DASHBOARD: 'Back to Dashboard',\r\n ARE_YOU_SURE_YOU_WANT_TO_ACCEPT_INVITATION: 'Are you sure you want to accept invitation?',\r\n STUDENTS: 'Students',\r\n TEACHERS: 'Teachers',\r\n HOME: 'Home',\r\n LOGOUT: 'Logout',\r\n BACK_TO_MY_SKILLS: 'Back to My Skills',\r\n BACK_TO_MY_POINTS: 'Back to My Points',\r\n BACK_TO_SKILLS: 'Back to Skills',\r\n BACK_TO_SCHOOL_YEAR: 'Back to School Year',\r\n BACK_TO_REWARDS: 'Back to Rewards',\r\n BACK_TO_ASSIGNMENTS: 'Back to Assignments',\r\n ADD: 'Add',\r\n REMOVE: 'Remove',\r\n SKILL_ADD_SUCCESSFUL: 'Skill added successfully',\r\n SKILL_REMOVE_SUCCESSFUL: 'Skill removed successfully',\r\n REWARD_BUY_SUCCESSFUL: 'Reward bought successfully',\r\n REWARD_RETURN_SUCCESSFUL: 'Reward returned successfully',\r\n BUY_REWARD: 'Buy reward',\r\n BUY: 'Buy',\r\n INVALID_FIELD: 'Invalid field',\r\n CLASS_POINTS: 'Class Points',\r\n MY_POINTS: 'My Points',\r\n MY_SKILLS: 'My Skills',\r\n MY_REWARDS: 'My Rewards',\r\n LEADERBOARD: 'Leaderboard',\r\n REWARDS: 'Rewards',\r\n ADD_REWARD: 'Add Reward',\r\n EDIT_REWARD: 'Edit Reward',\r\n SKILLS: 'Skills',\r\n ACTIVE: 'Active',\r\n ACTIVE_STATUS: 'ACTIVE',\r\n POINTS: 'Points',\r\n PERFORMANCE: 'Performance',\r\n EXPERTISE: 'Expertise',\r\n PERSONAL: 'Personal',\r\n PRIVATE_LESSON: 'Private Lesson',\r\n PRIVATE: 'Private',\r\n SELECT_PICTURE: 'Select picture',\r\n PICTURE: 'Picture',\r\n ADD_SKILL: 'Add Skill',\r\n EDIT_SKILL: 'Edit Skill',\r\n CURRENT_FILE_EXPORT_DATE_TIME_FORMAT: 'YYYY-MM-DD HH:mm',\r\n CURRENT_DATE_TIME_FORMAT: 'MM/DD/YY, h:mm a',\r\n CURRENT_DATE_FORMAT: 'MM/DD/YYYY',\r\n CURRENT_TIME_FORMAT: 'h:mm a',\r\n CURRENT_SHORT_DATE_FORMAT: 'MM/DD/YY',\r\n CURRENT_READONLY_DATE_FORMAT: 'MMMM D, YYYY',\r\n CONFIRM: 'Confirm',\r\n SELECT_DATE: 'Select date',\r\n ARCHIVE: 'Archive',\r\n ARCHIVED_STATUS: 'ARCHIVED',\r\n LESSONS: 'Lessons',\r\n ADD_NEW_LESSON: 'Add New Lesson',\r\n EDIT_LESSON: 'Edit Lesson',\r\n NAME: 'Name',\r\n DATE: 'Date',\r\n START_DATE: 'Start Date',\r\n END_DATE: 'End Date',\r\n VIEW_PREVIOUS_YEARS: 'View Previous Years',\r\n CHANGES_HAS_BEEN_SAVED: 'Changes have been saved',\r\n SAVE: 'Save',\r\n CURRENT: 'Current',\r\n PREVIOUS: 'Previous',\r\n COMPLETED: 'Completed',\r\n COMPLETED_LESSONS: 'Completed Lessons',\r\n CANCEL: 'Cancel',\r\n OK: 'Ok',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_STUDENT: 'Are you sure you want to delete student?',\r\n ASK_DIALOG_TITLE: 'Are you sure?',\r\n STUDENT_HAS_BEEN_ACTIVATED: 'Student has been activated',\r\n STUDENT_HAS_BEEN_SUSPENDED: 'Student has been suspended',\r\n STUDENT_HAS_BEEN_DELETED: 'Student has been deleted',\r\n BACK_TO_STUDENT_LIST: 'Back to Student List',\r\n STUDENT_LIST: 'Student List',\r\n ACTIVATE: 'Activate',\r\n SUSPEND: 'Suspend',\r\n DELETE: 'Delete',\r\n RESEND: 'Resend',\r\n NOT_FOUND_404_ERROR: 'Whoops, something went wrong...',\r\n UNKNOWN_ERROR_OCCURRED: 'Whoops, something went wrong...',\r\n LOGIN_HAS_BEEN_EXPIRED: 'Login has expired',\r\n INVITE_STUDENT_EMAIL_ANDROID_TITLE: 'Share details with student',\r\n INVITE_STUDENT_EMAIL_SUBJECT: 'You have new student invitation for DPL!',\r\n ASSIGN_LEVEL: 'Assign Level',\r\n SKILL_TYPE: 'Skill Type',\r\n ACCEPTED: 'Accepted',\r\n INVITED: 'Invited',\r\n SUSPENDED: 'Suspended',\r\n BACK_TO_PREVIOUS_SCREEN: 'Back to previous screen',\r\n BACK_TO_PIANO_ADVENTURES: 'Back to Piano Adventures',\r\n STUDENT: 'Student',\r\n TEACHER: 'Teacher',\r\n LOGIN_FORM_TITLE: 'Login',\r\n REGISTER_STUDENT_FORM_TITLE: 'Register Student',\r\n REGISTER_TEACHER_FORM_TITLE: 'Register Teacher',\r\n REGISTER: 'Register',\r\n ROLE: 'Role',\r\n FORGOT_PASSWORD_FORM_TITLE: 'Recover your password',\r\n SELECT_AVATAR_TITLE: 'Select avatar',\r\n PROFILE_AVATAR_HAS_BEEN_CHANGED: 'Avatar has been changed',\r\n BACK_TO_HOME: 'Back to Home',\r\n PROFILE_HAS_BEEN_CHANGED: 'Profile has been changed',\r\n LEAVE_EMPTY_TO_KEEP_OLD_PASSWORD: 'Empty to keep old password',\r\n EMAIL_HAS_BEEN_RESENT: 'Email has been resent',\r\n EMAIL_ALREADY_EXISTS: 'Email already exists',\r\n USERNAME_ALREADY_EXISTS: 'Username already exists',\r\n INVALID_EMAIL: 'Email is not valid',\r\n INVALID_USERNAME: 'Username is not valid',\r\n FIELD_IS_REQUIRED: 'Field is required',\r\n INVALID_FULL_NAME: 'Required (first and last name)',\r\n START_END_DATE_VALIDATION: 'Start date must be earlier than end date',\r\n CREATE_AN_ACCOUNT_MESSAGE: 'Create an account',\r\n CREATE_NEW_ACCOUNT_MESSAGE: 'Create new Account',\r\n HOME_LOGIN_LINK: 'I Already Have An Account',\r\n FIRST_NAME: 'First Name',\r\n LAST_NAME: 'Last Name',\r\n FULL_NAME: 'Full Name',\r\n USERNAME: 'Username',\r\n WHAT_IS_YOUR_USERNAME: 'What is your username?',\r\n EMAIL_ADDRESS: 'Email Address',\r\n EMAIL: 'Email',\r\n WHAT_IS_YOUR_EMAIL: 'What is your email?',\r\n PASSWORD: 'Password',\r\n BACK_TO_SIGN_UP: 'Back to sign up',\r\n INVALID_PASSWORD: 'Password must be greater than 6 chars',\r\n SUBMIT: 'Submit',\r\n NETWORK_ERROR: 'Network error',\r\n INVALID_EMAIL_LOGIN: 'Invalid email / password',\r\n INVALID_USERNAME_LOGIN: 'Invalid username / password',\r\n BACK_TO_LOG_IN: 'Back to log in',\r\n SIGN_UP_SUCCESSFULLY: 'You have created account. Please log in',\r\n FORGET_PASSWORD_SUCCESSFULLY: 'We have e-mailed your password reset link.\\nPlease check email for more instructions.',\r\n FORGET_PASSWORD: 'Forgot password?',\r\n STUDENT_HAS_BEEN_INVITED: 'Student has been invited',\r\n ADD_STUDENT: 'Add New Student',\r\n ADD_NEW_STUDENT: 'Add New Student',\r\n BACK_TO_PROFILE: 'Back to Profile',\r\n STUDENT_HAS_ALREADY_BEEN_INVITED: 'Student is already invited/accepted',\r\n TEACHER_STUDENTS: 'Students',\r\n PRESETS: 'Presets',\r\n COMMUNICATION: 'Communication',\r\n PIANO_ADVENTURES: 'Piano Adventures',\r\n PIANO_ADVENTURE: 'Piano Adventure',\r\n PIANO_ADVENTURES_KIDS: 'Kids',\r\n PIANO_ADVENTURES_PRIMER_LEVEL_GUIDE: 'Primer Level Guide',\r\n PIANO_ADVENTURES_TECHNIQUE_ARTISTRY: 'Technique & Artistry',\r\n PIANO_ADVENTURES_ADULT: 'Adult',\r\n MY_PROFILE: 'My Profile',\r\n SCHOOL_YEAR: 'School Year',\r\n SCHOOL_YEARS: 'School Years',\r\n BOOK_LIST: 'Book List',\r\n UNIT_LIST: 'Unit List',\r\n LEVEL_LIST: 'Level List',\r\n LEVEL: 'Level',\r\n MESSAGES: 'Messages',\r\n MESSAGE: 'Message',\r\n CHANNELS: 'Channels',\r\n TODAY: 'Today',\r\n YESTERDAY: 'Yesterday',\r\n SELECT_ALL: 'Select All',\r\n DESELECT_ALL: 'Deselect All',\r\n CONVERSATION: 'Conversation',\r\n ADD_COMMENT: 'Add Comment',\r\n SETTINGS: 'Settings',\r\n MORE: 'More',\r\n VIDEO_TUTORIALS: 'Video Tutorials',\r\n HELP: 'Help',\r\n LANGUAGES: 'Languages',\r\n NOTIFICATIONS: 'Notifications',\r\n PRIVACY_TERMS: 'Privacy & Terms',\r\n LEADERBOARD_PARTICIPATION: 'Leaderboard Participation',\r\n SHOW_LEADERBOARD: 'Show Leaderboard',\r\n CUSTOMIZE_PER_STUDENT: 'Customize Per Student',\r\n BY_SIGNING_UP_YOU_AGREE_WITH_OUR: 'By signing up you agree with our',\r\n LICENCE_AGREEMENT: 'Licence agreement',\r\n PRIVACY_POLICY: 'Privacy Policy',\r\n EDIT: 'Edit',\r\n EDIT_STUDENT: 'Edit Student',\r\n MENU: 'Menu',\r\n ABOUT: 'About',\r\n WELCOME_BACK: 'Welcome Back',\r\n SIGN_INTO_YOUR_ACCOUNT: 'Sign into your My Piano Adventures account',\r\n FORGOT_EMAIL: 'Forgot email?',\r\n FORGOT_EMAIL_FORM_TITLE: 'Forgot email',\r\n CREATE_ACCOUNT: 'Create Account',\r\n CREATE_ACCOUNT_FINISH: 'Finish Create Account',\r\n FORGOT_EMAIL_SUCCESSFULLY: 'An email with your account information has been sent to your email address.',\r\n THANK_YOU: 'Thank you.',\r\n SELECT_RECIPIENTS: 'Select Recipients',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SKILL: 'Are you sure you want to delete this skill?',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_REWARD: 'Are you sure you want to delete this reward?',\r\n UNAUTHORIZED_ACCESS: 'Unauthorized access',\r\n NOTES: 'Notes',\r\n NO_NOTES_TO_SHOW: 'No Notes to show',\r\n ADD_NEW_NOTE: 'Add New Note',\r\n ADD_NOTE: 'Add Note',\r\n EDIT_NOTE: 'Edit Note',\r\n EDIT_NOTES: 'Edit Notes',\r\n NOTE_INFO: 'Note Info',\r\n NOTE: 'Note',\r\n UPLOAD_FILE: 'Upload File',\r\n NO_FILES_TO_SHOW: 'No Files to show',\r\n NOTE_HAS_BEEN_DELETED: 'Note has been deleted',\r\n SELECT_IMAGE_OR_PDF: 'Select Image or PDF',\r\n CHOOSE_PDF_FROM_LIBRARY: 'Choose PDF from library...',\r\n CHOOSE_AUDIO_FROM_LIBRARY: 'Choose Audio from library...',\r\n CHOOSE_IMAGE_FROM_LIBRARY: 'Choose Image from library...',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_NOTE: 'Are you sure you want to delete this note?',\r\n SEARCH_NOTES: 'Search Notes',\r\n SEARCH_ASSIGNMENTS: 'Search Assignments',\r\n BACK_TO_GROUP: 'Back to Group',\r\n RELOAD: 'Reload',\r\n NAVIGATION: 'Navigation',\r\n CONTENT: 'Content',\r\n SITE_NAME: 'My Piano Adventures',\r\n GO_BACK: 'Go back',\r\n BACK: 'Back',\r\n COULD_NOT_FIND_THE_PAGE: 'Sorry but we could not find the page you are looking for',\r\n WELCOME_LOGIN_MESSAGE: 'Welcome to the My Piano Adventures!',\r\n LOGIN_TO_YOUR_ACCOUNT: 'LOGIN TO YOUR ACCOUNT',\r\n DONT_HAVE_AN_ACCOUNT: 'Don\\'t have an account?',\r\n CHATS: 'Chats',\r\n SEARCH_OR_START_NEW_CHAT: 'Search or start new chat',\r\n SELECT_CONTACT_TO_START_CONVERSATION: 'Select a contact to start a conversation',\r\n SHOW_CHATS: 'Show Chats',\r\n SHOW_CONTACTS: 'Show Contacts',\r\n CONTACTS: 'Contacts',\r\n CURRENT_DATE_TIME_FORMAT_V2: 'MMMM Do YYYY, h:mm:ss a',\r\n CURRENT_DATE_FORMAT_V2: 'MM/dd/yyyy',\r\n LOADING: 'Loading...',\r\n TYPE_YOUR_MESSAGE: 'Type your message',\r\n FETCH_TIMED_OUT: 'Request timed out',\r\n FETCH_OLD_RESULT_ARRIVED: 'Unknown error',\r\n AVATAR_BADGE_TEACHER: 'T',\r\n FORBIDDEN: 'Whoops, you do not have permission to access this page',\r\n INVITE_STUDENT_UPDATED_SOON: 'Invite operation was successful and data will be updated soon',\r\n ACCEPT_INVITE_UPDATED_SOON: 'Accept invite operation was successful and data will be updated soon',\r\n IMPORT_DEMO_STUDENTS_UPDATED_SOON: 'Import demo students was successful and data will be updated soon',\r\n NO_TEACHERS_FOR_STUDENT: 'There are no teachers for you right now :(',\r\n ALREADY_HAVE_AN_ACCOUNT: 'Already have an account?',\r\n NO_MEMBERS: 'No members',\r\n REGISTRATION_SUCCESS: 'Registration Successful. Please Login',\r\n ONLY_REGISTRATION_SUCCESS: 'Registration Successful.',\r\n SEND_RESET_LINK: 'Send Reset Link',\r\n COULD_NOT_FOUND_YOUR_ACCOUNT: 'Couldn\\'t find your account',\r\n BACK_TO_LOG_IN_WEB_GUEST: 'Login to your My Piano Adventures account',\r\n ALL: 'All',\r\n WELCOME_TO: 'Welcome to',\r\n MONDAY: 'Monday',\r\n TUESDAY: 'Tuesday',\r\n WEDNESDAY: 'Wednesday',\r\n THURSDAY: 'Thursday',\r\n FRIDAY: 'Friday',\r\n SATURDAY: 'Saturday',\r\n SUNDAY: 'Sunday',\r\n OPEN_SHEET_MUSIC: 'Open Sheet Music',\r\n SUPPORT: 'Support',\r\n TERMS_OF_USE: 'Terms of Use',\r\n CONTACT: 'Contact',\r\n SUBJECT: 'Subject',\r\n CONTACT_MESSAGE_SUCCESSFULLY: 'Message has been sent successfully.',\r\n TUTORIALS: 'Tutorials',\r\n MY_PIANO_ADVENTURES: 'My piano adventures',\r\n MY_LESSONS: 'My Lessons',\r\n MY_ASSIGNMENTS: 'My Assignments',\r\n MY_STUDENTS: 'My Students',\r\n ALL_STUDENTS: 'All Students',\r\n GENERAL_INFORMATION: 'General Information',\r\n PA_FLASH_CARDS: 'Open Flash Cards',\r\n PA_PLAYER: 'Open PA Player',\r\n OPEN_SYNTHESIA_APP: 'Open Synthesia',\r\n PIANO_ADVENTURES_NOTE: 'Piano Adventures Note',\r\n TEMPLATE_NOTE: 'Template Note',\r\n CUSTOM_NOTE: 'Custom Note',\r\n BACK_TO_NOTES: 'Back to Notes',\r\n NUMBER_OF_NOTES_DELETED_SUCCESSFULLY: 'Number of Notes deleted: {0}',\r\n NOTES_DELETED_SUCCESSFULLY_FAILED: 'Number of Notes deleted: {0}. Number of Notes failed to deleted: {1}.',\r\n ARE_YOU_SURE_YOU_WANT_TO_DELETE_SELECTED_NOTE: 'Are you sure you want to delete selected Notes?',\r\n CAN_NOT_CREATE_NOTE_OR_CATEGORY_HERE: 'A Category or Subcategory can not contain both Notes and other Categories or Subcategories at the same time.',\r\n CAN_NOT_DELETE_THIS_SUBCATEGORY_NOTES: 'Can not delete this Subcategory while it contains other Subcategories or Notes.',\r\n CAN_NOT_DELETE_THIS_CATEGORY_NOTES: 'Can not delete this Category while it contains Subcategories or Notes.',\r\n CAN_NOT_DELETE_ALL_CATEGORIES_NOTES: 'Can not delete Categories while they contains Subcategories or Notes.',\r\n NEW_NOTE: 'New Note',\r\n NO_CATEGORIES_OR_NOTES_TO_SHOW: 'No Categories or Notes to show',\r\n NO_SUBCATEGORIES_OR_NOTES_TO_SHOW: 'No Subcategories or Notes to show',\r\n TEMPLATE: 'Template',\r\n START_END_TIME_VALIDATION: 'End Time is before Start Time',\r\n STUDENT_INFO: 'Student info',\r\n PROFILE_INFO: 'Profile info',\r\n FACEBOOK_LOGIN: 'Facebook Login',\r\n GOOGLE_LOGIN: 'Sign in with Google',\r\n APPLE_LOGIN: 'Sign in with Apple',\r\n NOT_AUTHORIZED: 'Not authorized for this action',\r\n WRONG_FILE_TYPE_CHOOSEN: 'Choosen file type is not supported',\r\n IMPORT_ASSIGNMENTS_SUCCESSFUL: 'Assignments import is successful',\r\n EXPORT_ASSIGNMENTS_SUCCESSFUL: 'Assignments export is successful',\r\n FILE_NAME_ERROR: 'File name contains illegal character whitespace',\r\n SELECT_CATEGORIES_TO_EXPORT: 'Please select Categories or Subcategories to export',\r\n COULD_NOT_OPEN_SYNTHESIA_LINK: 'Could not open Synthesia link. Please download Synthesia application to your device.',\r\n SYNTHESIA_LINKS: 'Synthesia links',\r\n ADD_FILE_IMAGE_PDF_AUDIO_MIDI: 'Add File (Image, PDF, Audio, MIDI)',\r\n ADD_FILE_IMAGE_PDF_MIDI: 'Add File (Image, PDF, MIDI)',\r\n ADD_FILE_IMAGE_PDF: 'Add File (Image, PDF)',\r\n CLICK: 'Click',\r\n SELECT: 'Select',\r\n TOUR_GUIDE_ADD_ASSIGNMENT: 'to Add Assignment.',\r\n TOUR_GUIDE_CHOOSE_PRESET_OR_CUSTOM: 'Choose Preset or Custom',\r\n TOUR_GUIDE_CHOOSE_LIBRARY: 'Choose Library',\r\n TOUR_GUIDE_BASIC_METHOD: 'Basic Method.',\r\n TOUR_GUIDE_CHOOSE_LEVEL: 'Choose Level',\r\n TOUR_GUIDE_LEVEL_1: 'Level 1.',\r\n TOUR_GUIDE_CHOOSE_BOOK: 'Choose Book',\r\n TOUR_GUIDE_LESSON_BOOK: 'Lesson Book.',\r\n TOUR_GUIDE_CHOOSE_UNIT: 'Choose Unit',\r\n TOUR_GUIDE_UNIT_1: 'Unit 1.',\r\n TOUR_GUIDE_CHOOSE_ASSIGNMENT: 'Choose Assignment',\r\n TOUR_GUIDE_LITTLE_RIVER: 'Little River',\r\n TOUR_GUIDE_CHECKBOX: 'Checkbox.',\r\n TOUR_GUIDE_VIEW_ASSIGNMENT: 'View Assignment',\r\n TOUR_GUIDE_TO_ACCESS_LESSON: 'to access lesson.',\r\n TOUR_GUIDE_TO_ADD_NOTE: 'to Add Note.',\r\n TOUR_GUIDE_CHOOSE_CATEGORY: 'Choose Category',\r\n TOUR_GUIDE_MUSIC_THEORY: 'Music Dictionary.',\r\n TOUR_GUIDE_CHOOSE_NOTE: 'Choose Note',\r\n TOUR_GUIDE_ACCENT_MARK: 'Accent Mark',\r\n TOUR_GUIDE_VIEW_NOTE: 'View Note',\r\n TOUR_GUIDE_TO_ACCESS_NOTE: 'to access note.',\r\n TOUR_GUIDE_CONGRATULATIONS: 'Congratulations!',\r\n TOUR_GUIDE_COMPLETED: 'You Completed the tutorial. Start your',\r\n TOUR_GUIDE_PIANO_ADVENTURE: 'Piano Adventure.',\r\n LEARN_MORE_WITH_ADDITIONAL: 'Or learn more with additional',\r\n VIEW_VIDEOS: 'View Videos',\r\n SKIP_TUTORIAL: 'Skip Tutorial',\r\n VISIT_DASHBOARD: 'Visit Dashboard',\r\n ARE_YOU_SURE_YOU_WANT_TO_ARCHIVE_YEAR: 'Are you sure you want to archive this year?',\r\n ARE_YOU_SURE_YOU_WANT_TO_ACTIVATE_YEAR: 'Are you sure you want to activate this year?',\r\n CLONE_SCHOOL_YEAR_TITLE: 'Clone School Year',\r\n COPY_LESSONS_ON_CLONE_SCHOOL_YEAR: 'Do you want to copy last lessons for each student from this year to the new school year?',\r\n PLEASE_WAIT: 'Please wait...',\r\n OPEN_PA_PLUS: 'Open PA Plus',\r\n OPEN_APP_EXTERNAL_LINK: 'Open External Link',\r\n ARE_YOU_SURE_YOU_WANT_OPEN_THIS_LINK: 'Are you sure you want to open this link?',\r\n COOKIE_CONSENT_TEXT_1: 'This site uses third-party statistic tools that make use of cookies. This is necessary for the purposes outlined in the privacy policy.',\r\n COOKIE_CONSENT_TEXT_2: 'To learn more or opt out, see the privacy policy. By accepting, you consent to the use of these cookies.',\r\n NECESSARY: 'Necessary',\r\n USAGE_STATISTICS: 'Usage Statistics',\r\n ACCEPT: 'Accept',\r\n LIBRARY: 'Library',\r\n PIANO_ADVENTURES_REGISTERED: 'Piano Adventures®',\r\n SELECT_CHANNEL: 'Select Channel',\r\n SELECT_CHAT: 'Select Chat',\r\n PIANO: 'PIANO',\r\n ADVENTURES: 'Adventures',\r\n BACK_TO_MY_HUB: 'Back to My Hub',\r\n REGISTRATION_CODE: 'Registration Code',\r\n WITH_YOU_FIRST_NOTE: 'With you from the very first note',\r\n ALLOW_ALL: 'Allow All',\r\n LANDING_PAGE_TEXT_1: 'My Piano Adventure is a personalized instruction and feedback platform for ',\r\n LANDING_PAGE_TEXT_2: 'teachers and students, supporting the ',\r\n LANDING_PAGE_TEXT_3: ' library.',\r\n GET_STARTED: 'Get Started',\r\n TEACH_LEARN_CONNECT: 'Teach, Learn and Connect',\r\n TEACH_LEARN_CONNECT_TEXT_1: ' provides an easy way for teachers, students and parents to engage with the ',\r\n TEACH_LEARN_CONNECT_TEXT_2: ' library and our digital resources.',\r\n LANDING_PAGE_TEACHERS_TEXT: 'Customized to your teaching style, set lesson length, focus on repetition, and practicing',\r\n LANDING_PAGE_STUDENTS_TEXT: 'Engage with your teacher using our fun and simple learning and communication tools and features',\r\n PARENTS: 'Parents',\r\n LANDING_PAGE_PARENTS_TEXT: 'Encourage your child by monitoring progress, communicate directly with teachers',\r\n QUICK_LOOK: 'Quick look',\r\n FEATURE_OVERVIEW: 'Feature Overview',\r\n PIANO_ADVENTURES_HUB: 'Piano Adventures Hub',\r\n PIANO_ADVENTURES_HUB_TEXT: 'Personal dashboard to access all Faber Piano Adventures digital resources.',\r\n COMMUNICATION_TEXT: 'Access news and updates directly from Faber Piano Institutue Direct communication between teachers, students and parents',\r\n VIDEO_LIBRARY: 'Video Library',\r\n VIDEO_LIBRARY_TEXT: 'Access an ever-growing library (100’s) of full-length videos grouped by book and unit levels as published in the Faber Adult Piano Adventures® books.',\r\n STUDENTS_AND_ASSIGNMENTS: 'Students and Assignments',\r\n STUDENTS_AND_ASSIGNMENTS_TEXT: 'Manage a class and track individual student lesson progress using built-in FPA assignments or create custom assignments and notes.',\r\n LANDING_BECOME_EARLY_ADOPTER_TITLE: 'Become an Early Adopter',\r\n LANDING_BECOME_EARLY_ADOPTER_SUBTITLE: 'Be the first to try a new digital platform from ',\r\n LANDING_BECOME_EARLY_ADOPTER_TEXT_1: 'Do you enjoy trying out new piano teaching products and wish to ',\r\n LANDING_BECOME_EARLY_ADOPTER_TEXT_2: 'shape the digital future of ',\r\n LANDING_BECOME_EARLY_ADOPTER_TEXT_3: 'We’re looking for active piano teachers able to try the platform with their students. We’re hoping to receive honest feedback on myPA’s content and features and any enhancements you believe could benefit your teaching experience.',\r\n PIANO_ADVENTURES_LANDING_LINK_TITLE: 'PianoAdventures.com',\r\n FABER_PIANO_ADVENTURES: 'Faber Piano Adventures',\r\n TRADEMARK: '®',\r\n QUESTION_MARK: '?',\r\n I_HAVE_READ_AND_AGREE: 'I have read and agree to the ',\r\n YOU_MUST_ACCEPT_PRIVACY_POLICY_AND_TOU: 'You must accept our Terms of Use and Privacy Policy',\r\n EARLY_ADOPTER_PAGE_TEXT: 'Become an early adopter and be the first to try a new digital platform from ',\r\n APPLY_NOW: 'Apply Now',\r\n SHAPE_DIGITAL_FUTURE_TEXT: 'Do you wish to shape the digital future of ',\r\n NEW_PIANO_TEACHING_PRODUCTS_TEXT: 'Do you enjoy trying out new piano teaching products?',\r\n INVITED_TO_APPLY_TEXT: 'You’re invited to apply to be a myPA early adopter giving you free exclusive access to My Piano Adventures (myPA), the new ',\r\n INVITED_TO_APPLY_TEXT_2: ' digital platform.',\r\n LOOKING_ACTIVE_PIANO_TEACHERS_TEXT: 'We’re looking for active piano teachers able to try the platform with at least 3+ students. We’re hoping to receive honest feedback on myPA’s content and features and any enhancements you believe could benefit your teaching experience.',\r\n APPLY_NOW_EARLY_ACCESS_TEXT_1: 'Apply now ',\r\n APPLY_NOW_EARLY_ACCESS_TEXT_2: 'for early access to the platform.',\r\n BECOME_EARLY_ADOPTER_TEXT: 'Why Become a ',\r\n BECOME_EARLY_ADOPTER_TEXT_2: ' Early Adopter?',\r\n FIRST_LOOK_UPCOMING_FEATURES_TEXT: 'Get a first look at upcoming features',\r\n SHAPE_THE_FUTURE_TEXT: 'Shape the future of ',\r\n JOIN_COMMUNITY_TEXT: 'Join a growing teacher community',\r\n REQUIREMENTS_TO_BECOME_EARLY_ADOPTER_TEXT: 'What are the requirements to become a myPA early adopter?',\r\n PIANO_TEACHERS: 'Piano Teachers',\r\n REQUIREMENT_TEXT_1: ' with experience teaching using the ',\r\n REQUIREMENT_TEXT_1_METHOD: ' method',\r\n REQUIREMENT_TEXT_2: 'Teachers with a minimum of ',\r\n PIANO_STUDENT_3: '3+ piano students',\r\n REQUIREMENT_TEXT_2_USING: ' using ',\r\n REQUIREMENT_TEXT_3: 'Use the myPA platform for at least 4 consecutive lessons',\r\n EXPECTATIONS_EARLY_ADOPTER_TEXT: 'What are the expectations for myPA early adopters?',\r\n EXPECTATION_TEXT_1_TITLE: 'Commitment to use the myPA platform',\r\n EXPECTATION_TEXT_1: 'Use the myPA platform with a select group of your students (3+) for at least 4 consecutive lessons',\r\n EXPECTATION_TEXT_2_TITLE: 'Honest feedback on your myPA experience',\r\n EXPECTATION_TEXT_2: 'Your opinion matters. Let us know how myPA benefits your teaching method.',\r\n GENERAL: 'General',\r\n BUG_REPORT: 'Bug Report',\r\n FEATURE_SUGGESTION: 'Feature Suggestion',\r\n TECHNICAL_SUPPORT: 'Technical Support',\r\n RETURN: 'Return',\r\n ABBREVIATION: 'Abbreviation (e.g. A, AB)',\r\n FAILED_TO_UPLOAD_THE_IMAGE: 'Failed to upload the image.',\r\n RELATED_ASSIGNMENTS: 'Related Assignments',\r\n ASSIGNMENT_COMMENTS: 'Assignment comments',\r\n STUDENT_CHILDREN: 'Student Profiles',\r\n ADD_NEW_STUDENT_CHILD: 'Add new Student Profile',\r\n NO_STUDENT_CHILDREN_TO_SHOW: 'No Student Profiles to show',\r\n SEARCH_STUDENT_CHILDREN: 'Search Student Profiles',\r\n STUDENT_CHILD_HAS_BEEN_CREATED: 'Student Profile has been created',\r\n STUDENT_CHILD_HAS_BEEN_UPDATED: 'Student Profile has been updated',\r\n ADD_STUDENT_CHILD: 'Add Student Profile',\r\n STUDENT_CHILD_INFO: 'Student Profile',\r\n EDIT_STUDENT_CHILD: 'Edit Student Profile',\r\n STUDENT_CHILD_AVATAR_HAS_BEEN_CHANGED: 'Student Profile avatar has been changed',\r\n AS_STUDENT_CHILD: 'Student Profile',\r\n REGULAR: 'Primary Account',\r\n NONE: 'None',\r\n STUDENT_PARENT_FULL_NAME: 'Primary Account Name',\r\n STUDENT_CHILD_FULLNAME: 'Student Name',\r\n INVITE_STUDENT: 'Invite Student',\r\n INVITE_STUDENT_CHILD: 'Add Student Profile',\r\n TEACHER_INVITE_REQUIRED_CHILD_OR_FULLNAME: 'Student Profile or Student Name is required',\r\n BACK_TO_STUDENT_CHILDREN_LIST: 'Back to Student Profiles List',\r\n EMAIL_OR_USERNAME: 'Email or Username',\r\n INVALID_EMAIL_OR_USERNAME: \"Invalid Email or Username\",\r\n USERNAME_CONTAINS_LETTERS_NUMBERS: 'Username can only contains letters, numbers and \\\".-_\\\" characters.',\r\n ARE_YOU_SURE_YOU_WANT_TO_LOGIN_AS_STUDENT_CHILD: 'Are you sure you want to login as this Student Profile?',\r\n MANAGE_PROFILES: 'Manage Profiles',\r\n ADD_PROFILE: 'Add Profile',\r\n NEW_STUDENT: 'New Student',\r\n SWITCH_PROFILE: 'Switch Profile',\r\n CHOOSE_STUDENT_PROFILE: 'Choose a student profile to use:',\r\n SELECT_STUDENT_PROFILE_OR_ADD_NEW: 'An account with this email already exists. Select student profile (or add new).',\r\n ADD_NEW_STUDENT_PROFILE: 'Add New Student Profile',\r\n CLONE_LAST_LESSONS: 'Clone Last Lessons',\r\n NUMBER_OF_LESSONS_CLONED_SUCCESSFULLY: 'Number of Lessons cloned: {0}',\r\n CAN_NOT_CLONE_LESSONS_FOR_STUDENTS_WITHOUT_LESSONS: 'Can not Clone Lessons for selected students.',\r\n CAN_NOT_CLONE_LESSONS_FOR_GROUPS_WITHOUT_LESSONS: 'Can not Clone Lessons for selected groups.',\r\n NUMBER_OF_LESSONS_SUCCESSFULLY_CLONED_FAILED: 'Number of Lessons cloned: {0}. Number of Lessons failed to clone: {1}.',\r\n LESSON_SETTINGS: 'Lesson Settings',\r\n ADD_LESSON_SETTING: 'Add Lesson Setting',\r\n WEEKLY: 'Weekly',\r\n DAY_OF_WEEK_OR_SPECIFIC_DATE_REQUIRED: 'Only one from Day of a week / specific date is required',\r\n FROM_TIME_REQUIRED: 'From time is not specified',\r\n ASSIGN_TO_STUDENT: 'Assign to Student',\r\n NO_LEVEL_ASSIGNED: 'No Level Assigned',\r\n CONTINUE: 'Continue',\r\n VIEW_LESSONS: 'View Lessons',\r\n PUBLISH: 'Publish',\r\n UNPUBLISH: 'Unpublish',\r\n EDIT_STUDENT_PROFILE: 'Edit Student Profile',\r\n EDIT_GROUP_PROFILE: 'Edit Group Profile',\r\n BIRTHDAY: 'Birthday',\r\n CLASS_LEADERBOARD: 'Class Leaderboard',\r\n REMOVE_SKILL: 'Remove Skill',\r\n ASSIGN_NEW_SKILL: 'Assign New Skill',\r\n CLASS_REWARDS_STORE: 'Class Rewards Store',\r\n ADD_CLASS_REWARD: 'Add Class Reward',\r\n ADD_CUSTOM_REWARD: 'Add Custom Reward',\r\n PAUSE_PROFILE: 'Pause Profile',\r\n ACTIVATE_PROFILE: 'Activate Profile',\r\n DELETE_PROFILE: 'Delete Profile',\r\n DOWNLOADS: 'Downloads',\r\n UNPUBLISHED: 'Unpublished',\r\n CUSTOM_ASSIGNMENTS: 'Custom Assignments',\r\n CUSTOM_NOTES: 'Custom Notes',\r\n CUSTOM_REWARDS: 'Custom Rewards',\r\n CUSTOM_SKILLS: 'Custom Skills',\r\n IMPORT: 'Import',\r\n LEADERBOARD_SETTINGS: 'Leaderboard Settings',\r\n BACK_TO_LEADERBOARD: 'Back to Leaderboard',\r\n FREQUENTLY_ASKED_QUESTIONS: 'Frequently Asked Questions',\r\n WHY: 'Why',\r\n MY_PIANO_ADVENTURES: 'My Piano Adventures',\r\n CONNECT: 'Connect',\r\n LANDING_PAGE_CONNECT: 'Access lessons and learning tools from anywhere.',\r\n LEARN: 'Learn',\r\n LANDING_PAGE_LEARN: 'Unlock new techniques with helpful resources.',\r\n EXPLORE: 'Explore',\r\n CREATE_YOUR_FREE_ACCOUNT: 'Create Your Free Account',\r\n ADDITIONAL_FAQ: 'Additional FAQ',\r\n LADNING_PAGE_TITLE: 'Connect. Learn. Explore.',\r\n LADNING_PAGE_FIRST_SECTION_TEXT: ' is a personalized music platform for every stage of your piano journey from ',\r\n LANDING_PAGE_SECOND_SECTION_TITLE: 'What is My Piano Adventures?',\r\n LANDING_PAGE_SECOND_SECTION_TEXT_1: 'Support for ',\r\n LANDING_PAGE_SECOND_SECTION_TEXT_2: ' through ',\r\n LANDING_PAGE_SECOND_SECTION_TEXT_3: 'each stage of the musical journey',\r\n LANDING_PAGE_EXPLORE: 'Stay up-to-date on Faber’s full library of products.',\r\n LANDING_WHATS_INCLUDED: 'What’s Included',\r\n LANDING_WHATS_INCLUDED_TEXT_1: 'Enhance your Piano Adventures with ',\r\n LANDING_WHATS_INCLUDED_TEXT_2: 'note-worthy resources from Faber',\r\n LANDING_PERSONALIZED_DASHBOARD: 'Personalized Dashboard',\r\n LANDING_PERSONALIZED_DASHBOARD_TEXT: 'The entire Piano Adventures family of resources at your fingertips.',\r\n LANDING_FLEXIBILE_LEARNING: 'Flexible Learning',\r\n LANDING_FLEXIBILE_LEARNING_TEXT: 'Organized lesson-planning and access to myPA video library.',\r\n LANDING_COMPREHENSIVE_SUPPORT: 'Comprehensive Support',\r\n LANDING_COMPREHENSIVE_SUPPORT_TEXT: 'Video tutorials, accessible tips and helpful insights.',\r\n LANDING_DIRECT_ACCESS: 'Direct Access',\r\n LANDING_DIRECT_ACCESS_TEXT: 'Safe and secure online chat between Teachers, Students & Parents.',\r\n LANDING_CUSTOMIZABLE_CONTENT: 'Customizable Content',\r\n LANDING_CUSTOMIZABLE_CONTENT_TEXT: 'Tools to create assignments and incentivize progress.',\r\n LANDING_A_GROWING_PLATFORM: 'A Growing Platform',\r\n LANDING_A_GROWING_PLATFORM_TEXT: 'Stay tuned for more exciting features coming soon!',\r\n LANDING_SLIDE_TEXT_1: 'I love the ease of making assignments with multiple platforms all in one place. The video samples and tutorials are great resources to help students see and hear their pieces played correctly while at home.',\r\n LANDING_SLIDE_TEXT_AUTHOR_1: '-Heidi N., Rexburg, ID',\r\n LANDING_SLIDE_TEXT_2: 'I like the ability to organize my studio and keep track of my students’ progress using a single platform designed for teachers in the digital world.',\r\n LANDING_SLIDE_TEXT_AUTHOR_2: '-Juan G., Brooklyn, NY',\r\n LANDING_SLIDE_TEXT_3: 'You are taking the workload off the teacher so we can simply click a button. A picture is worth a thousand words, but so is a video!',\r\n LANDING_SLIDE_TEXT_AUTHOR_3: '-Lesli M., Seymour, TN',\r\n LANDING_SLIDE_TEXT_4: 'The instructional videos for introducing the piece and the challenge videos are awesome tools to create a fun practice time.',\r\n LANDING_SLIDE_TEXT_AUTHOR_4: '-Julie I., Boise, ID',\r\n LANDING_SLIDE_TEXT_5: 'My favorite aspect of myPA is how easy it is to create assignments from the PA Basic Method, which definitely saves the teacher time. I have been able to create my students’ assignments during their lessons as it is faster than using any other platform.',\r\n LANDING_SLIDE_TEXT_AUTHOR_5: '-Maria M., Mystic, CT',\r\n LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_1: 'Only digital platform to offer',\r\n LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_2: '30 YEARS',\r\n LANDING_HIGHLIGHT_FIRST_BUBBLE_TEXT_3: 'of Piano Adventures Methodology',\r\n LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_1: 'myPA Library includes over',\r\n LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_2: '1,500+',\r\n LANDING_HIGHLIGHT_SECOND_BUBBLE_TEXT_3: 'Piano Adventures Assignments and Videos',\r\n LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_1: 'Built with the assistance of',\r\n LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_2: '125+',\r\n LANDING_HIGHLIGHT_THIRD_BUBBLE_TEXT_3: 'Piano Teachers and over 500+ Students',\r\n LANDING_FAQ_ACCORDION_HEADER_TEXT_1: 'What is myPA?',\r\n LANDING_FAQ_ACCORDION_BODY_TEXT_1: 'myPA is your key to the entire Faber Piano Adventures experience. Supporting teachers and students through every step of the musical journey, myPA provides access to the full range of Piano Adventures resources, including custom assignments, video tutorials and more, as well as secure direct messaging and other features to enhance the learning experience.',\r\n LANDING_FAQ_ACCORDION_HEADER_TEXT_2: 'How much does myPA cost?',\r\n LANDING_FAQ_ACCORDION_BODY_TEXT_2: 'All of the basic functionality of myPA is free to use for both teachers and students (assignments, messaging, and rewards). Future releases of new features may have additional costs associated, which we will announce as those features are released.',\r\n LANDING_FAQ_ACCORDION_HEADER_TEXT_3: 'Is myPA web-based or app-based?',\r\n LANDING_FAQ_ACCORDION_BODY_TEXT_3: 'Currently, My Piano Adventures is a web-based platform, and will work on any modern browser, such as Chrome, Firefox, and Safari. Mobile browsers, such as Chrome for Android, and Mobile Safari are also supported. In the future, myPianoAdventures will offer a dedicated mobile app for iOS and Android devices.',\r\n LANDING_FAQ_ACCORDION_HEADER_TEXT_4: 'How do I sign up?',\r\n LANDING_FAQ_ACCORDION_BODY_TEXT_4: 'Click on the “Create Account” button and follow the prompts. Once you register, you will have access to the basic myPA platform and can begin browsing the product tools and resources.',\r\n LANDING_FAQ_ACCORDION_HEADER_TEXT_5: 'Can I make my own assignments?',\r\n LANDING_FAQ_ACCORDION_BODY_TEXT_5: 'Yes! As a teacher, you can create custom notes and assignments that can include PDF files, video links, and text. These custom assignments and notes are re-assignable to multiple students and lessons.',\r\n LANDING_FOOTER_TITLE: 'Create a free account now to unlock the next chapter of your musical adventure.',\r\n LANDING_FOOTER_TEXT_1: 'Already have an account?',\r\n LANDING_FOOTER_TEXT_2: ' to your myPA account.',\r\n LANDING_FOOTER_APP_INFO: '© 2023 Faber Piano Adventures',\r\n VIEW_STUDENT_PROFILE: 'View Student Profile',\r\n VIEW_GROUP_PROFILE: 'View Group Profile',\r\n RESET_PASSWORD_SUCCESSFULLY: 'Password has been changed.',\r\n CHANGE_PASSWORD: 'Change password',\r\n NEW_PASSWORD: 'New password',\r\n REPEAT_NEW_PASSWORD: 'Repeat new password',\r\n WELCOME: 'Welcome',\r\n TEACHER_ACCOUNT: 'Teacher Account',\r\n STUDENT_ACCOUNT: 'Student Account',\r\n})\r\n\r\nexport const texti18n = code => {\r\n const def = SettingsService.getLanguageDefinition()\r\n const text = def && def.definitions && code in def.definitions ? def.definitions[code] : code\r\n return text\r\n}","import ActionTypes from '../actions/ActionTypes'\r\nimport { \r\n replaceOldItem, updateOldItem, setDictionaryState,\r\n addItemToItemsInDictionary, changeItemInItemsInDictionary,\r\n deleteItem,\r\n} from '../utils/HelperFunctions'\r\n\r\nconst initialState = {\r\n // { groupId: { schoolYearId: [] } }\r\n lessons: {},\r\n // [ { assignment1Id, assignmentFolder1Id }, { assignment1Id, assignmentFolder1Id }, ...]\r\n selectedAssignments: [],\r\n // [ { lessonId, notes }, { lessonId, notes }, ...]\r\n notes: {},\r\n // [ {note1Id, noteFolder1Id }, {note1Id, noteFolder1Id }, ... ]\r\n selectedNotes: []\r\n}\r\n\r\nfunction lessonsReducer(state = initialState, action) {\r\n switch (action.type) {\r\n case ActionTypes.ADD_LESSON_ACTION: {\r\n const groupId = action.lesson.groupId\r\n const schoolYearId = action.lesson.schoolYearId\r\n const tempState = state.lessons[groupId]\r\n ? addItemToItemsInDictionary(state.lessons, groupId, schoolYearId, action.lesson, lessonsCompareFunc)\r\n : setDictionaryState(state.lessons, action.groupId, schoolYearId, [action.lesson])\r\n return setDictionaryState(state, 'lessons', groupId, tempState[groupId])\r\n }\r\n case ActionTypes.UPDATE_LESSON_ACTION: {\r\n const groupId = action.lesson.groupId\r\n const schoolYearId = action.lesson.schoolYearId\r\n const tempState = changeItemInItemsInDictionary(state.lessons, groupId, schoolYearId,\r\n replaceOldLession(action.lesson, lessonsCompareFunc))\r\n return setDictionaryState(state, 'lessons', groupId, tempState[groupId])\r\n }\r\n case ActionTypes.ACTIVATE_LESSON_ACTION: {\r\n const groupId = action.groupId\r\n const schoolYearId = action.schoolYearId\r\n const tempState = changeItemInItemsInDictionary(state.lessons, groupId, schoolYearId,\r\n updateLessonIsActive(action.id, action.isActive))\r\n return setDictionaryState(state, 'lessons', groupId, tempState[groupId])\r\n }\r\n case ActionTypes.PUBLISH_LESSON_ACTION: {\r\n const groupId = action.groupId\r\n const schoolYearId = action.schoolYearId\r\n const tempState = changeItemInItemsInDictionary(state.lessons, groupId, schoolYearId,\r\n updateLessonIsPublished(action.id, action.isPublished))\r\n return setDictionaryState(state, 'lessons', groupId, tempState[groupId])\r\n }\r\n case ActionTypes.SET_LESSONS_ACTION: {\r\n const schoolYearId = action.schoolYearId ? action.schoolYearId : 0\r\n const groupedLessons = groupByGroupId(action.lessons || [], action.groupIds)\r\n let lessons = state.lessons\r\n Object.keys(groupedLessons).forEach(groupId => {\r\n lessons = setDictionaryState(lessons, groupId, schoolYearId, groupedLessons[groupId])\r\n })\r\n return Object.assign({}, state, {\r\n lessons,\r\n })\r\n }\r\n case ActionTypes.SET_SELECTED_ASSIGNMENTS: {\r\n return Object.assign({}, state, {\r\n selectedAssignments: action.selectedAssignments,\r\n })\r\n }\r\n case ActionTypes.SET_SELECTED_NOTES: {\r\n return Object.assign({}, state, {\r\n selectedNotes: action.selectedNotes,\r\n })\r\n }\r\n case ActionTypes.SET_LESSON_NOTES_ACTION: {\r\n return setDictionaryState(state, 'notes', action.lessonId, action.notes)\r\n }\r\n case ActionTypes.ADD_LESSON_NOTE_ACTION: {\r\n return addItemToItemsInDictionary(state, 'notes',\r\n action.lessonId, action.note, noteCompareFunc)\r\n }\r\n case ActionTypes.UPDATE_LESSON_NOTE_ACTION: {\r\n return changeItemInItemsInDictionary(state, 'notes', action.lessonId,\r\n replaceOldItemCreate(action.note, noteCompareFunc))\r\n }\r\n case ActionTypes.DELETE_LESSON_NOTE_ACTION: {\r\n return changeItemInItemsInDictionary(state, 'notes', action.lessonId,\r\n deleteItemCreate(action.noteId))\r\n }\r\n case ActionTypes.DELETE_LESSON_NOTES_ACTION: {\r\n const noteIds = action.noteIds\r\n let tempState = state\r\n noteIds.forEach(id => \r\n tempState = changeItemInItemsInDictionary(tempState, 'notes', action.lessonId,\r\n deleteItemCreate(id)))\r\n return tempState\r\n }\r\n case ActionTypes.DELETE_LESSON_ACTION: {\r\n const groupId = action.groupId\r\n const schoolYearId = action.schoolYearId\r\n const tempState = changeItemInItemsInDictionary(state.lessons, groupId, schoolYearId,\r\n deleteItemCreate(action.id))\r\n return setDictionaryState(state, 'lessons', groupId, tempState[groupId])\r\n }\r\n default:\r\n return state\r\n }\r\n}\r\n\r\nexport default lessonsReducer\r\n\r\n\r\nfunction deleteItemCreate(id) {\r\n return items => deleteItem(items, id)\r\n}\r\n\r\nfunction replaceOldLession(lesson) {\r\n return lessonsByKey => replaceOldItem(lessonsByKey, lesson, lessonsCompareFunc)\r\n}\r\n\r\nfunction updateLessonIsActive(id, value) {\r\n return lessonsByKey => updateOldItem(lessonsByKey, id, \r\n x => x.isActive = value, lessonsCompareFunc)\r\n}\r\n\r\nfunction updateLessonIsPublished(id, value) {\r\n return lessonsByKey => updateOldItem(lessonsByKey, id, \r\n x => x.isPublished = value, lessonsCompareFunc)\r\n}\r\n\r\nexport function lessonsCompareFunc(lesson) {\r\n return x => {\r\n if (x.date !== lesson.date) {\r\n return x.date > lesson.date\r\n }\r\n return x.id > lesson.id\r\n }\r\n}\r\n\r\nfunction groupByGroupId(items, groupIds) {\r\n const itemsReduceFunc = (acc, cv) => {\r\n if (!acc[cv.groupId]) {\r\n acc[cv.groupId] = []\r\n }\r\n acc[cv.groupId].push(cv)\r\n return acc\r\n }\r\n const itemsMap = items.reduce(itemsReduceFunc, {})\r\n const retVal = groupIds && groupIds.length > 0\r\n ?\r\n groupIds.reduce((acc, cv) => {\r\n acc[cv] = itemsMap[cv] || []\r\n return acc\r\n }, {})\r\n :\r\n itemsMap\r\n return retVal\r\n}\r\n\r\nfunction noteCompareFunc(note) {\r\n return x => {\r\n if (x.order !== note.order) {\r\n return x.order > note.order\r\n }\r\n if (x.name != note.name) {\r\n return x.name.toLowerCase() > note.name.toLowerCase()\r\n }\r\n return x.id < note.id\r\n }\r\n}\r\n\r\nfunction replaceOldItemCreate(item, compareFunc) {\r\n return items => replaceOldItem(items, item, compareFunc)\r\n}","/* eslint-disable no-unused-vars */\r\n\r\nexport const ENV_TYPES = Object.freeze({\r\n Development: 'development',\r\n Staging: 'staging',\r\n Production: 'production',\r\n})\r\n\r\nconst DevConfigCrev = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/images',\r\n baseEndPointPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/dpnstaticdev'\r\n },\r\n backendUrls: {\r\n identityService: 'https://192.168.0.28:5001',\r\n baseEndPointUrl: 'https://192.168.0.28:8085',\r\n },\r\n ismUrl: 'https://ism-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app',\r\n environment: ENV_TYPES.Development,\r\n enableNotifications: false,\r\n topicSuffix: 'Crev',\r\n enableSentry: false,\r\n sentryUrl: 'https://3f8ca7aedf7e47789148d5b4851eed57@o310306.ingest.sentry.io/5668793',\r\n enablePianoAdv: true,\r\n contactEmail: ['badboy.solutions.ns@gmail.com'],\r\n wyswygUrl: 'https://mypadpn.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n enableSocialsAuth: true,\r\n ismEnabled: false,\r\n fbAppId: '746793535671413',\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst DevConfigZoltan = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/images',\r\n baseEndPointPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/dpnstaticdev'\r\n },\r\n backendUrls: {\r\n identityService: 'http://192.168.0.11:5000',\r\n baseEndPointUrl: 'http://192.168.0.11:8080',\r\n },\r\n ismUrl: 'https://ism-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app',\r\n environment: ENV_TYPES.Development,\r\n enableNotifications: false,\r\n topicSuffix: 'Zoltan',\r\n enableSentry: false,\r\n enablePianoAdv: true,\r\n contactEmail: ['badboy.solutions.ns@gmail.com'],\r\n wyswygUrl: 'https://mypadpn.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n enableSocialsAuth: true,\r\n ismEnabled: false,\r\n fbAppId: undefined,\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst DevConfigMilos = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/images',\r\n baseEndPointPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/dpnstaticdev'\r\n },\r\n backendUrls: {\r\n identityService: 'http://192.168.0.15:5000',\r\n baseEndPointUrl: 'http://192.168.0.15:8080',\r\n },\r\n ismUrl: 'https://ism-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app',\r\n environment: ENV_TYPES.Development,\r\n enableNotifications: true,\r\n topicSuffix: 'Milos',\r\n enableSentry: false,\r\n enablePianoAdv: true,\r\n contactEmail: ['badboy.solutions.ns@gmail.com'],\r\n wyswygUrl: 'https://mypadpn.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n enableSocialsAuth: true,\r\n ismEnabled: false,\r\n fbAppId: undefined,\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst DevConfigNikola = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/images',\r\n baseEndPointPath: 'https://csbd4551637646bx460exaf0.blob.core.windows.net/dpnstaticdev'\r\n },\r\n backendUrls: {\r\n identityService: 'http://192.168.1.4:5000',\r\n baseEndPointUrl: 'http://192.168.1.4:8080',\r\n },\r\n ismUrl: 'https://ism-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app',\r\n environment: ENV_TYPES.Development,\r\n enableNotifications: true,\r\n topicSuffix: 'Nikola',\r\n enableSentry: false,\r\n enablePianoAdv: true,\r\n contactEmail: ['badboy.solutions.ns@gmail.com'],\r\n wyswygUrl: 'https://mypadpn.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n enableSocialsAuth: true,\r\n ismEnabled: false,\r\n fbAppId: undefined,\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst ProductionConfig = Object.freeze({\r\n staticFilesPath: 'https://digitalpianonotebook.azurewebsites.net',\r\n baseEndPointUrl: 'https://digitalpianonotebook.azurewebsites.net',\r\n environment: ENV_TYPES.Production,\r\n enableNotifications: true,\r\n topicSuffix: '',\r\n enableSentry: true,\r\n sentryUrl: 'https://92837acceb2142dbb3253234418fdb0c@sentry.io/1775795',\r\n enablePianoAdv: false,\r\n fetchTimeout: 60000,\r\n})\r\n\r\nconst MyPaStagingConfig = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://mypastagingstorage.blob.core.windows.net/identitystatic',\r\n baseEndPointPath: 'https://mypastagingstorage.blob.core.windows.net/dpnstatic'\r\n },\r\n backendUrls: {\r\n identityService: 'https://mypaidentitystaging.azurewebsites.net',\r\n baseEndPointUrl: 'https://mypadpnstaging.azurewebsites.net',\r\n },\r\n ismUrl: 'https://ism-staging-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app/',\r\n environment: ENV_TYPES.Staging,\r\n enableNotifications: true,\r\n topicSuffix: 'Staging',\r\n enableSentry: true,\r\n sentryUrl: 'https://92837acceb2142dbb3253234418fdb0c@sentry.io/1775795',\r\n enablePianoAdv: true,\r\n fetchTimeout: 60000,\r\n contactEmail: ['badboy.solutions.ns@gmail.com', 'smicsasa@rogers.com'],\r\n wyswygUrl: 'https://mypadpnstaging.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n enableSocialsAuth: true,\r\n registrationCodeEnabled: true,\r\n ismEnabled: true,\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst MyPaStagingWebConfig = Object.freeze({\r\n ...MyPaStagingConfig,\r\n sentryUrl: 'https://3f8ca7aedf7e47789148d5b4851eed57@o310306.ingest.sentry.io/5668793',\r\n enableNotifications: false,\r\n hotjarEnabled: true,\r\n hotjarSiteID: 2771560,\r\n GoogleAnalyticsEnabled: true,\r\n GoogleAnalyticsSiteID: 'G-Y3C183TFSP',\r\n AmplitudeAnalyticsEnabled: true,\r\n AmplitudeAnalyticsApiKey: '96a7041ed86c3f094f0e18c997c80108' //TODO: change api key\r\n})\r\n\r\nconst MyPaProductionConfig = Object.freeze({\r\n staticFilesPath: {\r\n identityPath: 'https://mypastorage.azureedge.net/identitystatic',\r\n baseEndPointPath: 'https://mypastorage.azureedge.net/dpnstatic'\r\n },\r\n backendUrls: {\r\n identityService: 'https://mypaidentity.azurewebsites.net',\r\n baseEndPointUrl: 'https://mypadpn.azurewebsites.net',\r\n },\r\n ismUrl: 'https://ism-frontend.azurewebsites.net',\r\n paAdultBaseUrl: 'https://adult.mypiano.app',\r\n environment: ENV_TYPES.Production,\r\n enableNotifications: true,\r\n topicSuffix: '',\r\n enableSentry: true,\r\n sentryUrl: 'https://b57c25731ff24e5d8240e13877546aeb@o310306.ingest.sentry.io/5200031',\r\n enablePianoAdv: true,\r\n fetchTimeout: 60000,\r\n contactEmail: ['badboy.solutions.ns@gmail.com', 'smicsasa@rogers.com'],\r\n wyswygUrl: 'https://mypadpn.azurewebsites.net/tinymce/js/tinymce/tinymce.min.js',\r\n registrationCodeEnabled: true,\r\n enableSocialsAuth: true,\r\n ismEnabled: true,\r\n externalLogin: {\r\n 'paplus': 'https://adult.mypiano.app/'\r\n }\r\n})\r\n\r\nconst MyPaProductionWebConfig = Object.freeze({\r\n ...MyPaProductionConfig,\r\n sentryUrl: 'https://3f8ca7aedf7e47789148d5b4851eed57@o310306.ingest.sentry.io/5668793',\r\n enableNotifications: false,\r\n hotjarEnabled: true,\r\n hotjarSiteID: 2770410,\r\n GoogleAnalyticsEnabled: true,\r\n GoogleAnalyticsSiteID: 'G-VP25FDX79R', // prod\r\n AmplitudeAnalyticsEnabled: true,\r\n AmplitudeAnalyticsApiKey: '96a7041ed86c3f094f0e18c997c80108' //TODO: change api key\r\n})\r\n\r\nconst AppConfig = MyPaProductionWebConfig\r\n\r\nexport default AppConfig\r\n","const settingsConfig = {\r\n layout: {\r\n style: 'layout1', // layout-1 layout-2 layout-3\r\n config: {} // checkout layout configs at app/fuse-configs/layout-1/Layout1Config.js\r\n },\r\n customScrollbars: true,\r\n theme: {\r\n main: 'default',\r\n navbar: 'mainThemeLight',\r\n toolbar: 'mainThemeLight',\r\n footer: 'mainThemeLight'\r\n }\r\n}\r\n\r\nexport default settingsConfig\r\n","import { lightBlue, red } from '@material-ui/core/colors'\r\nimport { fuseDark } from '@fuse/fuse-colors'\r\n\r\nconst themesConfig = {\r\n default: {\r\n palette: {\r\n type: 'light',\r\n primary: fuseDark,\r\n secondary: {\r\n light: lightBlue[400],\r\n main: lightBlue[600],\r\n dark: lightBlue[700]\r\n },\r\n error: red\r\n },\r\n status: {\r\n danger: 'orange'\r\n }\r\n },\r\n sunset: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: '#FF908B',\r\n main: '#D0605E',\r\n dark: '#9B3134'\r\n },\r\n secondary: {\r\n light: '#C76A1D',\r\n main: '#FF994C',\r\n dark: '#FFCA7B',\r\n contrastText: '#FFF'\r\n },\r\n error: red\r\n },\r\n status: {\r\n danger: 'orange'\r\n }\r\n },\r\n greeny: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: '#6CABD4',\r\n main: '#387CA3',\r\n dark: '#005074'\r\n },\r\n secondary: {\r\n light: '#89F6CF',\r\n main: '#55C39E',\r\n dark: '#159270',\r\n contrastText: '#FFF'\r\n },\r\n error: red\r\n },\r\n status: {\r\n danger: 'orange'\r\n }\r\n },\r\n beach: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: '#C4D8DD',\r\n main: '#93A7AB',\r\n dark: '#65787C',\r\n contrastText: '#FFF'\r\n },\r\n secondary: {\r\n light: '#FFB281',\r\n main: '#F18153',\r\n dark: '#BA5228',\r\n contrastText: '#FFF'\r\n }\r\n }\r\n },\r\n tech: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: '#87EFFF',\r\n main: '#4DBCE9',\r\n dark: '#008CB7',\r\n contrastText: '#FFF'\r\n },\r\n secondary: {\r\n light: '#FFFF83',\r\n main: '#D1E751',\r\n dark: '#9DB516'\r\n }\r\n }\r\n },\r\n sweetHues: {\r\n palette: {\r\n type: 'light',\r\n primary: {\r\n light: '#D5C1EB',\r\n main: '#A391B9',\r\n dark: '#746389',\r\n contrastText: '#FFF'\r\n },\r\n secondary: {\r\n light: '#90AFD4',\r\n main: '#6080A3',\r\n dark: '#325474'\r\n }\r\n }\r\n },\r\n defaultDark: {\r\n palette: {\r\n type: 'dark',\r\n primary: fuseDark,\r\n secondary: {\r\n light: lightBlue[400],\r\n main: lightBlue[600],\r\n dark: lightBlue[700]\r\n },\r\n error: red\r\n },\r\n status: {\r\n danger: 'orange'\r\n }\r\n },\r\n deepOcean: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n light: '#8F53E7',\r\n main: '#5A24B4',\r\n dark: '#1E0083'\r\n },\r\n secondary: {\r\n light: '#FF61FF',\r\n main: '#FE00E9',\r\n dark: '#C600B6',\r\n contrastText: '#FFF'\r\n }\r\n }\r\n },\r\n slate: {\r\n palette: {\r\n type: 'dark',\r\n primary: {\r\n light: '#86FFF7',\r\n main: '#4ECDC4',\r\n dark: '#009B94'\r\n },\r\n secondary: {\r\n light: '#FF9D99',\r\n main: '#FF6B6B',\r\n dark: '#C73840',\r\n contrastText: '#FFF'\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default themesConfig\r\n","import { createMuiTheme } from '@material-ui/core'\r\nimport * as Actions from 'app/store/actions/fuse'\r\nimport FuseLayoutConfigs from 'app/fuse-layouts/FuseLayoutConfigs'\r\nimport FuseSettingsConfig from 'app/fuse-configs/settingsConfig'\r\nimport FuseThemesConfig from 'app/fuse-configs/themesConfig'\r\nimport _ from '@lodash'\r\nimport {\r\n defaultSettings,\r\n getParsedQuerySettings,\r\n defaultThemes,\r\n defaultThemeOptions,\r\n mustHaveThemeOptions,\r\n extendThemeWithMixins,\r\n mainThemeVariations\r\n} from '@fuse/FuseDefaultSettings'\r\n\r\nconst initialSettings = getInitialSettings()\r\nconst initialThemes = getInitialThemes()\r\n\r\nconst initialState = {\r\n initial: initialSettings,\r\n defaults: _.merge({}, initialSettings),\r\n current: _.merge({}, initialSettings),\r\n themes: initialThemes,\r\n ...getThemeOptions(initialThemes, initialSettings)\r\n}\r\n\r\nconst settings = function (state = initialState, action) {\r\n switch ( action.type ) {\r\n case Actions.SET_SETTINGS:\r\n {\r\n const current = generateSettings(state.defaults, action.value)\r\n const themes = current.theme.main !== state.current.theme.main ? { ...state.themes, ...updateMainThemeVariations(current.theme.main) } : state.themes\r\n return {\r\n ...state,\r\n current,\r\n themes,\r\n ...getThemeOptions(themes, current)\r\n }\r\n }\r\n case Actions.SET_INITIAL_SETTINGS:\r\n {\r\n return _.merge({}, initialState)\r\n }\r\n case Actions.SET_DEFAULT_SETTINGS:\r\n {\r\n const defaults = generateSettings(state.defaults, action.value)\r\n const themes = defaults.theme.main !== state.defaults.theme.main ? { ...state.themes, ...updateMainThemeVariations(defaults.theme.main) } : state.themes\r\n return {\r\n ...state,\r\n defaults: _.merge({}, defaults),\r\n current: _.merge({}, defaults),\r\n themes,\r\n ...getThemeOptions(themes, defaults)\r\n }\r\n }\r\n case Actions.RESET_DEFAULT_SETTINGS:\r\n {\r\n const themes = { ...state.themes, ...updateMainThemeVariations(state.defaults.theme.main) }\r\n return {\r\n ...state,\r\n defaults: _.merge({}, state.defaults),\r\n current: _.merge({}, state.defaults),\r\n themes,\r\n ...getThemeOptions(themes, state.defaults)\r\n }\r\n }\r\n default:\r\n {\r\n return state\r\n }\r\n }\r\n}\r\n\r\nexport default settings\r\n\r\n/**\r\n * SETTINGS\r\n */\r\nfunction getInitialSettings() {\r\n const defaultLayoutStyle = (FuseSettingsConfig.layout && FuseSettingsConfig.layout.style) ? FuseSettingsConfig.layout.style : 'layout1'\r\n const layout = {\r\n style: defaultLayoutStyle,\r\n config: FuseLayoutConfigs[defaultLayoutStyle].defaults\r\n }\r\n return _.merge({}, defaultSettings, { layout }, FuseSettingsConfig, getParsedQuerySettings())\r\n}\r\n\r\n/**\r\n * THEMES\r\n */\r\nfunction getInitialThemes() {\r\n const themesObj = Object.keys(FuseThemesConfig).length !== 0 ? FuseThemesConfig : defaultThemes\r\n\r\n const themes = Object.assign({}, ...Object.entries(themesObj).map(([key, value]) => {\r\n const muiTheme = _.merge({}, defaultThemeOptions, value, mustHaveThemeOptions)\r\n return {\r\n [key]: createMuiTheme(_.merge({}, muiTheme, { mixins: extendThemeWithMixins(muiTheme) }))\r\n }\r\n }\r\n ))\r\n\r\n return {\r\n ...themes,\r\n ...mainThemeVariations(themesObj[initialSettings.theme.main])\r\n }\r\n}\r\n\r\nfunction updateMainThemeVariations(mainTheme) {\r\n const themesObj = Object.keys(FuseThemesConfig).length !== 0 ? FuseThemesConfig : defaultThemes\r\n return mainThemeVariations(themesObj[mainTheme])\r\n}\r\n\r\nfunction getThemeOptions(themes, settings) {\r\n return {\r\n mainTheme: themes[settings.theme.main],\r\n navbarTheme: themes[settings.theme.navbar],\r\n toolbarTheme: themes[settings.theme.toolbar],\r\n footerTheme: themes[settings.theme.footer],\r\n ...updateMainThemeVariations(settings.theme.main)\r\n }\r\n}\r\n\r\nexport function generateSettings(defaultSettings, newSettings) {\r\n return _.merge({}, defaultSettings, newSettings && newSettings.layout && newSettings.layout.style ? { layout: { config: FuseLayoutConfigs[newSettings.layout.style].defaults } } : {}, newSettings)\r\n}\r\n","import ActionTypes from './ActionTypes'\r\nimport { \r\n flashCardsGet, pianoAdventuresBooksGet, videoTutorialsGet,\r\n teacherVideoTutorialsGet\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { showSuccess } from '../services/SharedServices'\r\nimport {\r\n forgotEmailGet, forgotPasswordGet, registerStudentPost, registerTeacherPost, sendEmailPost,\r\n genericTemporaryForJwtTokenPost,\r\n resetPasswordPost\r\n} from 'dpn-common/services/IdentityEndpointsService'\r\n\r\nexport async function loadFlashCardsFetch(groupId, dispatch) {\r\n const fetchPromise = flashCardsGet(groupId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && \r\n dispatch(setFlashCards(groupId, responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function loadPianoAdventuresBooksFetch(groupId, dispatch) {\r\n const fetchPromise = pianoAdventuresBooksGet(groupId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setPianoAdventuresBooks(groupId, responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function getVideoTutorialsFetch(isMobile, dispatch) {\r\n const fetchPromise = videoTutorialsGet(isMobile)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setVideoTutorials(responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function getTeacherVideoTutorialsFetch(dispatch) {\r\n const fetchPromise = teacherVideoTutorialsGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setTeacherVideoTutorials(responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function registerTeacherFetch(data, showSuccessMessage = true) {\r\n const fetchPromise = registerTeacherPost(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n showSuccessMessage && showSuccess(texti18n(Messages.SIGN_UP_SUCCESSFULLY))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function registerStudentFetch(data, showSuccessMessage = true) {\r\n const fetchPromise = registerStudentPost(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n showSuccessMessage && showSuccess(texti18n(Messages.SIGN_UP_SUCCESSFULLY))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function forgotPasswordFetch({ email, username }) {\r\n const fetchPromise = forgotPasswordGet(email, username)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n return responseData\r\n}\r\n\r\nexport async function forgotEmailFetch({ username }) {\r\n const fetchPromise = forgotEmailGet(username)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n return responseData\r\n}\r\n\r\nexport async function resetPasswordFetch(data) {\r\n const fetchPromise = resetPasswordPost(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n return responseData\r\n}\r\n\r\nexport async function sendEmailFetch(params) {\r\n const fetchPromise = sendEmailPost(params)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n return responseData\r\n}\r\n\r\nexport async function getTemporaryForJwtToken() {\r\n const fetchPromise = genericTemporaryForJwtTokenPost()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData\r\n}\r\n\r\nexport function homeScreenAccessTimesIncrement(dispatch) {\r\n dispatch({ type: ActionTypes.HOME_SCREEN_ACCESS_TIMES_INC })\r\n}\r\n\r\nfunction setFlashCards(groupId, flashCards) {\r\n return { type: ActionTypes.SET_FLASH_CARDS_ACTION, flashCards, groupId }\r\n}\r\n\r\nfunction setPianoAdventuresBooks(groupId, pianoAdventuresBooks) {\r\n return { type: ActionTypes.SET_PIANO_ADVENTURES_BOOKS, pianoAdventuresBooks, groupId }\r\n}\r\n\r\nfunction setVideoTutorials(videoTutorials) {\r\n return { type: ActionTypes.SET_VIDEO_TUTORIALS, videoTutorials }\r\n}\r\n\r\nfunction setTeacherVideoTutorials(videoTutorials) {\r\n return { type: ActionTypes.SET_TEACHER_VIDEO_TUTORIALS, videoTutorials }\r\n}","import ActionTypes from './ActionTypes'\r\nimport {\r\n enabledEmailTypesGet,\r\n setEnabledEmailTypesPost,\r\n setEnabledNotificationTypesPost,\r\n setLanguagePost\r\n} from '../services/EndpointsService'\r\nimport SettingsService from '../services/SettingsService'\r\nimport NotificationsHelper from '../utils/NotificationsHelper'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { NOTIFICATION_TYPES, NOTIFICATION_TOPICS } from '../utils/NotificationsConstants'\r\nimport { tryCatchJson, getStringStream } from '../utils/FetchUtils'\r\nimport { USER_TYPES, DUMMY_LANGUAGE_DEFINITION } from '../utils/AppConstants'\r\nimport { languageGet, languagesGet } from 'dpn-common/services/IdentityEndpointsService'\r\n\r\nexport async function initializeSettings(userId, role, settingsData, dispatch) {\r\n let settings = await SettingsService.loadFromStorage(userId)\r\n if (settingsData) {\r\n settings = Object.assign({}, settings, settingsData)\r\n await SettingsService.storeToStorage(settings, userId)\r\n }\r\n\r\n dispatch(setSettingsRedux(settings))\r\n\r\n if (settings && settings.notifications) {\r\n if (role === USER_TYPES.TEACHER) {\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.STUDENT_CHANNEL)\r\n settings.notifications.includes(NOTIFICATION_TYPES.CHANNELS) ?\r\n NotificationsHelper.subscribeToTopic(NOTIFICATION_TOPICS.TEACHER_CHANNEL) :\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.TEACHER_CHANNEL)\r\n }\r\n else if (role === USER_TYPES.STUDENT) {\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.TEACHER_CHANNEL)\r\n settings.notifications.includes(NOTIFICATION_TYPES.CHANNELS) ?\r\n NotificationsHelper.subscribeToTopic(NOTIFICATION_TOPICS.STUDENT_CHANNEL) :\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.STUDENT_CHANNEL)\r\n }\r\n }\r\n\r\n await loadLanguagesFetch(settings.languageCode, dispatch)\r\n}\r\n\r\nexport async function setEnabledEmailTypesFetch(enabledEmailTypes, dispatch) {\r\n const fetchPromise = setEnabledEmailTypesPost(enabledEmailTypes)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setEmailNotificationsRedux(enabledEmailTypes))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function enabledEmailTypesFetch(dispatch) {\r\n const fetchPromise = enabledEmailTypesGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setEmailNotificationsRedux(responseData.value.enabledEmailTypes))\r\n }\r\n return responseData.success && responseData.value || {}\r\n}\r\n\r\nexport async function setEnabledNotificationTypesFetch(enabledNotificationTypes, loggedInUserId, role, dispatch) {\r\n if (!AppConfig.enableNotifications) {\r\n return await setNotifications(loggedInUserId, undefined, enabledNotificationTypes, dispatch)\r\n }\r\n const token = await NotificationsHelper.getCurrentToken()\r\n if (!token) {\r\n return await setNotifications(loggedInUserId, role, enabledNotificationTypes, dispatch)\r\n }\r\n const fetchPromise = setEnabledNotificationTypesPost(enabledNotificationTypes, token)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n await setNotifications(loggedInUserId, role, enabledNotificationTypes, dispatch)\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function setLanguageFetch(languageCode, loggedInUserId, dispatch) {\r\n if (!AppConfig.enableNotifications) {\r\n return await setCurrentLanguage(loggedInUserId, languageCode, dispatch)\r\n }\r\n const token = await NotificationsHelper.getCurrentToken()\r\n if (!token) {\r\n return await setCurrentLanguage(loggedInUserId, languageCode, dispatch)\r\n }\r\n const fetchPromise = setLanguagePost(languageCode, token)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n await setCurrentLanguage(loggedInUserId, languageCode, dispatch)\r\n }\r\n return responseData\r\n}\r\n\r\nasync function loadLanguagesFetch(currentLanguageCode, dispatch) {\r\n const fetchPromise = languagesGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const languages = responseData.items\r\n for (let i = 0; i < languages.length; i++) {\r\n const lang = languages[i]\r\n const isCurrentLanguage = currentLanguageCode === lang.code\r\n // try to read lang definitions from storage\r\n // if not exist in storage or storage version is less than backend, retrieve definitions from server\r\n let langDef = await SettingsService.loadLanguageDefinitionFromStorage(lang.code)\r\n if (!langDef || !langDef.version || langDef.version < lang.version) {\r\n langDef = await fetchLanguageDefinition(lang.code, isCurrentLanguage)\r\n }\r\n // if this is current language we should update redux with lang definition (either from storage or from server)\r\n isCurrentLanguage && dispatch(setLanguageDefinitionRedux(langDef))\r\n }\r\n dispatch(setLanguagesRedux(responseData.items))\r\n }\r\n \r\n return responseData.success && responseData.items || []\r\n}\r\n\r\nasync function setNotifications(loggedInUserId, role, notifications, dispatch) {\r\n const oldSettingsData = SettingsService.getAllSettings()\r\n const settingsData = { ...oldSettingsData, notifications }\r\n SettingsService.storeToStorage(settingsData, loggedInUserId)\r\n dispatch(setNotificationsRedux(notifications))\r\n\r\n if (notifications && role) {\r\n if (notifications.includes(NOTIFICATION_TYPES.CHANNELS)) {\r\n role === USER_TYPES.TEACHER ?\r\n NotificationsHelper.subscribeToTopic(NOTIFICATION_TOPICS.TEACHER_CHANNEL) :\r\n NotificationsHelper.subscribeToTopic(NOTIFICATION_TOPICS.STUDENT_CHANNEL)\r\n }\r\n else {\r\n role === USER_TYPES.TEACHER ?\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.TEACHER_CHANNEL) :\r\n NotificationsHelper.unsubscribeFromTopic(NOTIFICATION_TOPICS.STUDENT_CHANNEL)\r\n } \r\n }\r\n}\r\n\r\nasync function setCurrentLanguage(loggedInUserId, code, dispatch) {\r\n const oldSettingsData = SettingsService.getAllSettings()\r\n let settingsData = { ...oldSettingsData, languageCode: code }\r\n // update new settings in both storage and redux\r\n SettingsService.storeToStorage(settingsData, loggedInUserId)\r\n dispatch(setLanguageCodeRedux(code))\r\n // try to retrieve language def from storage, otherwise from server\r\n // and then update redux with that lang def\r\n let langDef = await SettingsService.loadLanguageDefinitionFromStorage(code) ||\r\n await fetchLanguageDefinition(code, true)\r\n dispatch(setLanguageDefinitionRedux(langDef))\r\n}\r\n\r\nasync function fetchLanguageDefinition(code, shouldParse) {\r\n let result\r\n const langDef = await getStringStream(languageGet(code))\r\n if (langDef) {\r\n await SettingsService.storeLanguageDefinitionToStorage(code, langDef)\r\n result = shouldParse ? JSON.parse(langDef) : langDef\r\n }\r\n return result || DUMMY_LANGUAGE_DEFINITION\r\n} \r\n\r\nfunction setSettingsRedux(settings) {\r\n return { type: ActionTypes.SET_SETTINGS_ACTION, settings }\r\n}\r\n\r\nfunction setLanguagesRedux(languages) {\r\n return { type: ActionTypes.SET_LANGUAGES_ACTION, languages }\r\n}\r\n\r\nfunction setLanguageDefinitionRedux(languageDefinition) {\r\n return { type: ActionTypes.SET_LANGUAGE_DEFINITION_ACTION, languageDefinition }\r\n}\r\n\r\nfunction setNotificationsRedux(notifications) {\r\n return { type: ActionTypes.SET_NOTIFICATIONS_ACTION, notifications }\r\n}\r\n\r\nfunction setEmailNotificationsRedux(emailNotifications) {\r\n return { type: ActionTypes.SET_EMAIL_NOTIFICATIONS_ACTION, emailNotifications }\r\n}\r\n\r\nfunction setLanguageCodeRedux(languageCode) {\r\n return { type: ActionTypes.SET_LANGUAGE_CODE_ACTION, languageCode }\r\n}","import ActionTypes from './ActionTypes'\r\nimport { emoticonsGet } from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\n\r\nexport async function loadEmoticonsFetch(dispatch) {\r\n const fetchPromise = emoticonsGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setEmoticons(responseData.items))\r\n return responseData\r\n}\r\n\r\nfunction setEmoticons(emoticons) {\r\n return { type: ActionTypes.SET_EMOTICONS_ACTION, emoticons }\r\n}","import {\r\n demoSkillsPost,\r\n demoRewardsPost, demoLessonsPost, \r\n} from '../services/EndpointsService'\r\nimport { setLessons } from './LessonActions'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { setSkills } from './SkillAction'\r\nimport { setRewards } from './RewardActions'\r\nimport { demoStudentsPost } from 'dpn-common/services/IdentityEndpointsService'\r\nimport ActionTypes from './ActionTypes'\r\n\r\nexport async function loadDemoStudentsFetch() {\r\n const fetchPromise = demoStudentsPost()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData\r\n}\r\n\r\nexport async function loadDemoSkillsFetch(groupId, dispatch) {\r\n const fetchPromise = demoSkillsPost(groupId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setSkills(responseData.items, [groupId]))\r\n return responseData\r\n}\r\n\r\nexport async function loadDemoRewardsFetch(groupId, dispatch) {\r\n const fetchPromise = demoRewardsPost(groupId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setRewards(responseData.items, [groupId]))\r\n return responseData\r\n}\r\n\r\nexport async function loadDemoLessonsFetch(schoolYearId, groupId, dispatch) {\r\n const fetchPromise = demoLessonsPost(schoolYearId, groupId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && \r\n dispatch(setLessons(schoolYearId, responseData.items, [groupId])) \r\n return responseData\r\n}\r\n\r\nexport function changeImportDemoStudents(isStarted) {\r\n return { type: ActionTypes.IMPORT_DEMO_STUDENTS, isStarted }\r\n}","import { loadAssignmentsFetch } from 'dpn-common/actions/AssignmentActions'\r\nimport { changeImportDemoStudents } from 'dpn-common/actions/DemoActions'\r\nimport { loadGroupsDataForStudentFetchNoDispatch, loadGroupsDataForTeacherFetchNoDispatch, setGroupsData } from 'dpn-common/actions/GroupActions'\r\nimport { chooseTeacher } from 'dpn-common/actions/StudentActions'\r\nimport { studentSelectedTeacherDataSelector } from 'dpn-common/reselects/StudentGroupsDataReselects'\r\nimport { NavigatorService, showSuccess } from 'dpn-common/services/SharedServices'\r\nimport { GROUP_FETCH_PARAMS, StudentChooseTeacherRouteName, USER_TYPES } from './AppConstants'\r\nimport { getTeacherGlobalGroups } from './GroupsDataUtils'\r\nimport { Messages, texti18n } from './MessageConstants'\r\nimport { getUser } from './UserHelper'\r\n\r\nconst INVITE_INTERVAL_TIMEOUT = 5000\r\n\r\nconst DEMO_IMPORT_INTERVAL_TIMEOUT = 10000\r\n\r\nconst ACCEPT_INVITE_INTERVAL_TIMEOUT = 2500\r\n\r\nconst PostponeActionHelper = {\r\n intervalHandlers: [],\r\n addIntervalHandler: function (callback, time) {\r\n const handler = setInterval(callback, time)\r\n this.intervalHandlers.push(handler)\r\n return () => {\r\n clearInterval(handler)\r\n this.intervalHandlers = this.intervalHandlers.filter(x => x != handler)\r\n }\r\n },\r\n onLogout: function() {\r\n this.intervalHandlers.forEach(element => clearInterval(element))\r\n this.intervalHandlers = []\r\n },\r\n teacherInviteStudent: function (userId, userData, dispatch) {\r\n const removeFunc = this.addIntervalHandler(async function () {\r\n const responseData = await loadGroupsDataForTeacherFetchNoDispatch(GROUP_FETCH_PARAMS, userData)\r\n if (responseData.success) {\r\n const isLoaded = responseData.users.find(x => x.id === userId)\r\n if (isLoaded) {\r\n dispatch(setGroupsData(responseData))\r\n showSuccess(texti18n(Messages.STUDENT_HAS_BEEN_INVITED))\r\n removeFunc()\r\n }\r\n }\r\n }, INVITE_INTERVAL_TIMEOUT)\r\n },\r\n demoImport: function (userData, dispatch) {\r\n dispatch(changeImportDemoStudents(true))\r\n const removeFunc = this.addIntervalHandler(async function () {\r\n const responseData = await loadGroupsDataForTeacherFetchNoDispatch(GROUP_FETCH_PARAMS, userData)\r\n if (responseData.success) {\r\n const isLoaded = responseData.users.length > 1\r\n if (isLoaded) {\r\n dispatch(setGroupsData(responseData))\r\n dispatch(changeImportDemoStudents(false))\r\n removeFunc()\r\n }\r\n }\r\n }, DEMO_IMPORT_INTERVAL_TIMEOUT)\r\n },\r\n acceptInvite: function (studentId, teacherId, dispatch) {\r\n const removeFunc = this.addIntervalHandler(async function () {\r\n const responseData = await loadGroupsDataForStudentFetchNoDispatch(GROUP_FETCH_PARAMS, teacherId)\r\n const isLoaded = responseData.users.find(x => x.id === studentId)\r\n if (isLoaded) {\r\n dispatch(setGroupsData(responseData))\r\n const teacher = studentSelectedTeacherDataSelector({\r\n studentId: studentId,\r\n group: responseData,\r\n })\r\n await chooseTeacher(teacher, studentId, dispatch)\r\n const teacherGlobalGroupsIds = [...getTeacherGlobalGroups(responseData.userGroups, teacher.id).map(x => x.id)]\r\n await loadAssignmentsFetch(teacherGlobalGroupsIds[0], true, USER_TYPES.STUDENT, dispatch)\r\n removeFunc()\r\n // jump out from student choose teacher screen if needed\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (currentRoute && currentRoute.name === StudentChooseTeacherRouteName) {\r\n const route = getUser(USER_TYPES.STUDENT).getHomeRoute({ hasTeacher: true })\r\n NavigatorService.navigate(route)\r\n }\r\n }\r\n }, ACCEPT_INVITE_INTERVAL_TIMEOUT)\r\n }\r\n}\r\n\r\nexport default PostponeActionHelper","import ActionTypes from './ActionTypes'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { ORIGINAL_ACCOUNT_TOKEN, IDENTITY_SERVICE } from '../utils/AppConstants'\r\nimport SharedService, { setStorageItem, showError, removeStorageItem, NavigatorService, getStorageItem } from '../services/SharedServices'\r\nimport { userConnectionLoginTokenGet } from 'dpn-common/services/IdentityEndpointsService'\r\nimport { reduxUpdateWait } from 'dpn-common/utils/HelperFunctions'\r\nimport FetchService from 'dpn-common/services/FetchService'\r\n\r\nexport const onAppInitLoggedInForAutomaticLogin = async dispatch => {\r\n const originalAccountAccessToken = await getStorageItem(ORIGINAL_ACCOUNT_TOKEN)\r\n dispatch(setOriginalAccountAccessTokenSimple(originalAccountAccessToken))\r\n}\r\n\r\nexport const onAppInitLoggedOutForAutomaticLogin = async dispatch => {\r\n await removeStorageItem(ORIGINAL_ACCOUNT_TOKEN)\r\n dispatch(setOriginalAccountAccessTokenSimple(undefined))\r\n}\r\n\r\nexport const executeAutomaticLogin = async (userId, loginAction, logoutAction, dispatch) => {\r\n const fetchPromise = userConnectionLoginTokenGet(userId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (!responseData?.success) {\r\n NavigatorService.goBack()\r\n return\r\n }\r\n\r\n const loginToken = responseData.token\r\n\r\n const originalAccountAccessToken = await SharedService.FirebaseService.getAccessToken(undefined, true)\r\n await setStorageItem(ORIGINAL_ACCOUNT_TOKEN, originalAccountAccessToken)\r\n dispatch(setOriginalAccountAccessTokenSimple(originalAccountAccessToken))\r\n dispatch(setAutomaticLoginInProgress(true))\r\n reduxUpdateWait()\r\n\r\n await logoutAction()\r\n\r\n const loginResponseData = await loginAction(loginToken)\r\n if (!loginResponseData.success) {\r\n showError(texti18n(Messages.UNKNOWN_ERROR_OCCURRED))\r\n NavigatorService.goBack()\r\n }\r\n \r\n dispatch(setAutomaticLoginInProgress(false))\r\n}\r\n\r\nexport const executeLogoutFromAutomaticLogin = async (originalAccountAccessToken, loginAction, logoutAction, dispatch) => {\r\n let loginToken\r\n if (originalAccountAccessToken) {\r\n FetchService[IDENTITY_SERVICE].setCustomHeaders({ token: originalAccountAccessToken })\r\n \r\n const fetchPromise = userConnectionLoginTokenGet()\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n loginToken = responseData?.success ? responseData.token : undefined\r\n\r\n FetchService[IDENTITY_SERVICE].setCustomHeaders(undefined)\r\n }\r\n \r\n await removeStorageItem(ORIGINAL_ACCOUNT_TOKEN)\r\n dispatch(setOriginalAccountAccessTokenSimple(undefined))\r\n\r\n if (loginToken) {\r\n dispatch(setAutomaticLoginInProgress(true))\r\n reduxUpdateWait()\r\n \r\n await logoutAction()\r\n \r\n const loginResponseData = await loginAction(loginToken)\r\n if (!loginResponseData.success) {\r\n showError(texti18n(Messages.UNKNOWN_ERROR_OCCURRED))\r\n NavigatorService.goBack()\r\n }\r\n \r\n dispatch(setAutomaticLoginInProgress(false))\r\n }\r\n else {\r\n await logoutAction()\r\n }\r\n}\r\n\r\nfunction setAutomaticLoginInProgress(inProgress) {\r\n return { type: ActionTypes.SET_AUTOMATIC_LOGIN_IN_PROGRESS, inProgress }\r\n}\r\n\r\nfunction setOriginalAccountAccessTokenSimple(originalAccountAccessToken) {\r\n return { type: ActionTypes.SET_ORIGINAL_ACCOUNT_ACCESS_TOKEN, originalAccountAccessToken }\r\n}","import FetchService from './FetchService'\r\nimport { IDENTITY_SERVICE, ROLE_ID } from 'dpn-common/utils/AppConstants'\r\n\r\n\r\nexport const loginExternalGet = (externalId, generateToken = false) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/login/externalUser', { externalId, generateToken })\r\n}\r\n\r\nexport const registerTeacherPost = (data) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/register', data)\r\n}\r\n\r\nexport const registerStudentPost = (data) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/register', data)\r\n}\r\n\r\nexport const loginFbPost = (data) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/login/facebook', data)\r\n}\r\n\r\nexport const forgotPasswordGet = (email, username) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/forgot/password', { email, username })\r\n}\r\n\r\nexport const resetPasswordPost = ({ password, passwordConfirmation, token, userId }) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/forgot/password', { password, passwordConfirmation, token, userId })\r\n}\r\n\r\nexport const forgotEmailGet = (username) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/forgot/email', { username })\r\n}\r\n\r\nexport const checkEmailExistsGet = (email) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/user/exists', { email })\r\n}\r\n\r\nexport const checkUsernameExistsGet = (username, excludeUserId) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/user/exists', { username, excludeUserId })\r\n}\r\n\r\nexport const changeUserProfilePut = (data) => {\r\n if (data.password === undefined || data.password === '') {\r\n data.password = null\r\n }\r\n return FetchService[IDENTITY_SERVICE].executePut(`/api/user/${data.id}`, data)\r\n}\r\n\r\nexport const changeUserPicturePut = (picture, userId) => {\r\n return FetchService[IDENTITY_SERVICE].executePut(`/api/user/${userId}/picture`, { picture })\r\n}\r\n\r\nexport const changeUserPictureToPremadeAvatarPut = (url, userId) => {\r\n return FetchService[IDENTITY_SERVICE].executePut(`/api/user/${userId}/picture`, { avatarUrl: url })\r\n}\r\n\r\nexport const inviteStudentPost = (firstName, lastName, email, parentFirstName, parentLastName, existingChildUserId) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/connection/invite', {\r\n firstName, lastName, email, createAccountIfNotExist: true, roleId: ROLE_ID.STUDENT,\r\n parentFirstName, parentLastName, existingChildUserId\r\n })\r\n}\r\n\r\nexport const reinviteStudentGet = (studentId) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet(`/api/connection/resend/${studentId}`)\r\n}\r\n\r\nexport const deleteStudentPost = (studentId) => {\r\n return FetchService[IDENTITY_SERVICE].executeDelete(`/api/connection/${studentId}`)\r\n}\r\n\r\nexport const acceptStudentInvitationPost = (teacherId, code) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/connection/accept', { senderUserId: teacherId, code })\r\n}\r\n\r\nexport const userConnectionGet = () => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/connection?includeUsers=true')\r\n}\r\n\r\nexport const userConnectionForUserIdGet = (userId) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet(`/api/connection?includeUsers=true&userId=${userId}`)\r\n}\r\n\r\nexport const userConnectionUpdatePut = (studentId, firstName, lastName) => {\r\n return FetchService[IDENTITY_SERVICE].executePut(`/api/connection/${studentId}`, { firstName, lastName })\r\n}\r\n\r\nexport const userConnectionStudentChildrenGet = (email, isActive = true) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/connection/studentChildren', { email, isActive })\r\n}\r\n\r\nexport const userConnectionStudentAddChildPost = (firstName, lastName, password) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/connection/addChild', { firstName, lastName, password })\r\n}\r\n\r\nexport const activateStudentPut = (studentId, isActive, { firstName, lastName }) => {\r\n return FetchService[IDENTITY_SERVICE].executePut(`/api/connection/${studentId}`, { isActive, firstName, lastName })\r\n}\r\n\r\nexport const languagesGet = () => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/language/')\r\n}\r\n\r\nexport const languageGet = (languageCode) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet(`/api/language/${languageCode}`)\r\n}\r\n\r\nexport const userConnectionLoginTokenGet = (userId) => {\r\n return FetchService[IDENTITY_SERVICE].executeGet('/api/userConnectionLoginToken', { userId })\r\n}\r\n\r\nexport const demoStudentsPost = () => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/importUsers/demoStudents')\r\n}\r\n\r\nexport const sendEmailPost = (params) => {\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/email/send', { ...params })\r\n}\r\n\r\nexport const genericTemporaryForJwtTokenPost = apiToken => {\r\n let customHeaders = undefined\r\n if (apiToken) {\r\n customHeaders = { token: apiToken }\r\n }\r\n return FetchService[IDENTITY_SERVICE].executePost('/api/genericToken/temporaryForJwt', undefined, undefined, undefined, customHeaders)\r\n}\r\n","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction TrophyIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nTrophyIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nTrophyIcon.defaultProps = {\r\n color: 'white',\r\n size: 36,\r\n}\r\n\r\nexport default TrophyIcon","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction MedalIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nMedalIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nMedalIcon.defaultProps = {\r\n color: 'white',\r\n size: 36,\r\n}\r\n\r\nexport default MedalIcon\r\n","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction AwardIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nAwardIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nAwardIcon.defaultProps = {\r\n color: 'white',\r\n size: 36,\r\n}\r\n\r\nexport default AwardIcon\r\n","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction MusicIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nMusicIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nMusicIcon.defaultProps = {\r\n color: 'white',\r\n size: 24,\r\n}\r\n\r\nexport default MusicIcon\r\n","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction InfoIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nInfoIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nInfoIcon.defaultProps = {\r\n color: 'white',\r\n size: 36,\r\n}\r\n\r\nexport default InfoIcon\r\n","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction ImportIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nImportIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nImportIcon.defaultProps = {\r\n color: 'white',\r\n size: 24,\r\n}\r\n\r\nexport default ImportIcon","\r\nimport React from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nfunction ExportIcon(props) {\r\n const { color, size, ...otherProps } = props\r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nExportIcon.propTypes = {\r\n color: PropTypes.string,\r\n size: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\r\n}\r\n\r\nExportIcon.defaultProps = {\r\n color: 'white',\r\n size: 24,\r\n}\r\n\r\nexport default ExportIcon","import React from 'react'\r\nimport { Icon } from '@material-ui/core'\r\nimport VisibilityIcon from '@material-ui/icons/Visibility'\r\nimport VisibilityOffIcon from '@material-ui/icons/VisibilityOff'\r\nimport { LocalImages } from 'utils/LocalImages'\r\nimport TrophyIconSvg from 'icons/TrophyIcon'\r\nimport MedalIconSvg from 'icons/MedalIcon'\r\nimport AwardIconSvg from 'icons/AwardIcon'\r\nimport MusicIconSvg from 'icons/MusicIcon'\r\nimport InfoIconSvg from 'icons/InfoIcon'\r\nimport ArrowLeftCircleIcon from 'icons/ArrowLeftCircleIcon'\r\nimport ImportIconSvg from 'icons/ImportIcon'\r\nimport ExportIconSvg from 'icons/ExportIcon'\r\n\r\nexport const LessonIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const LeaderboardIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const InfoIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const SkillsIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const RewardsIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const RevealPasswordIcon = props => (\r\n \r\n)\r\n\r\nexport const HidePasswordIcon = props => (\r\n \r\n)\r\n\r\nexport const ArrowLeftCircle = props => (\r\n \r\n)\r\n\r\nexport const DownloadIcon = props => (\r\n \r\n)\r\n\r\nexport const UploadIcon = props => (\r\n \r\n)\r\n\r\nexport const EmailIcon = props => (\r\n email\r\n)\r\n\r\nexport const PlusCircleIcon = (props) => (\r\n add\r\n)\r\n\r\nexport const PlusButtonIcon = (props) => (\r\n add_circle\r\n)\r\n\r\nexport const CloseIcon = (props) => (\r\n close\r\n)\r\n\r\nexport const ReloadIcon = (props) => (\r\n refresh\r\n)\r\n\r\nexport const ImportIcon = (props) => (\r\n import_export\r\n)\r\n\r\nexport const EditIcon = (props) => (\r\n edit\r\n)\r\n\r\nexport const SearchIcon = ({ className = 'mr-8', color = 'action' }) => {\r\n return search\r\n}\r\n\r\nexport const AssignmentIcon = ({ className = 'mr-8', color = 'action', style }) => {\r\n return assignment\r\n}\r\n\r\nexport const AssignmentFolderIcon = ({ className = 'mr-8', color = 'action' }) => {\r\n return assignment\r\n}\r\n\r\nexport const ImportAssignmentIcon = ({ className = 'mr-8', color = 'action' }) => {\r\n return assignment\r\n}\r\n\r\nexport const ExportAssignmentIcon = ({ className = 'mr-8', color = 'action' }) => {\r\n return assignment\r\n}\r\n\r\nexport const DeleteIcon = (props) => (\r\n delete\r\n)\r\n\r\nexport const ActivateIcon = (props) => (\r\n unarchive\r\n)\r\n\r\nexport const ArchiveIcon = (props) => (\r\n archive\r\n)\r\n\r\nexport const RemoveIcon = (props) => (\r\n remove_circle\r\n)\r\n\r\nexport const BasicRemoveIcon = (props) => (\r\n remove\r\n)\r\n\r\nexport const UnpublishIcon = (props) => (\r\n check_circle_outline\r\n)\r\n\r\nexport const PublishIcon = (props) => (\r\n error_outline\r\n)\r\n\r\nexport const CloneIcon = (props) => file_copy\r\n\r\nexport const RightIcon = props => chevron_right\r\n\r\nexport const CalendarIcon = props => calendar_today\r\n\r\nexport const HamburgerMenuIcon = props => menu\r\n\r\nexport const ChatIcon = props => chat\r\n\r\nexport const InsertEmoticonIcon = props => insert_emoticon\r\n\r\nexport const SendIcon = props => send\r\n\r\nexport const PianoAdvIcon = props => {\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport const TimeIcon = props => access_time\r\n\r\nexport const CheckIcon = props => check_circle_outline\r\n\r\nexport const ThreeDotsIcon = props => more_horiz\r\n\r\nexport const ArrowLeft = props => arrow_back\r\n\r\nexport const SaveIcon = props => save\r\n\r\nexport const SortIcon = props => sort\r\n\r\nexport const DragIcon = props => drag_indicator\r\n\r\nexport const CancelIcon = props => cancel\r\n\r\nexport const AccountBoxIcon = props => account_box\r\n\r\nexport const PersonIcon = props => person\r\n\r\nexport const CakeIcon = props => cake","import {\r\n teacherGlobalGroupsSelector,\r\n teacherCustomGroupsSelector,\r\n studentsMapByTeacherIdSelector,\r\n teacherSingleStudentGroupsSelector,\r\n siteGlobalGroupsSelector,\r\n usersMapByIdSelector,\r\n studentsMapByTeacherIdAndStudentIdSelector,\r\n studentRankingsByGroupIdSelector,\r\n singleStudentGroupMap,\r\n groupStudentList,\r\n globalGroupsMapByIdSelector,\r\n userGroupsMapByIdSelector,\r\n globalGroupOfGroupOwnerSelector,\r\n teacherDataListSelector,\r\n teachersMapById,\r\n teacherCustomAndSingleStudentsGroupsSelector,\r\n siteGlobalTeacherGroupsSelector,\r\n siteGlobalStudentGroupsSelector,\r\n maxLoadedGlobalGroupIdSelector,\r\n maxLoadedUserGroupIdSelector,\r\n} from '../reselects/GroupsDataReselect'\r\nimport { getFromDict } from './HelperFunctions'\r\nimport {\r\n invitedStudentsSelector, suspendedStudentsSelector,\r\n activeStudentsSelector\r\n} from '../reselects/BaseReselects'\r\nimport { GROUP_TYPES, USER_TYPES } from './AppConstants'\r\n\r\n// ========================= GROUPS =========================\r\n\r\nexport const isGroupSiteGlobal = group => !!group && group.groupType === GROUP_TYPES.SITE_GLOBAL\r\nexport const isGroupTeacherSiteGlobal = group => !!group && group.groupType === GROUP_TYPES.SITE_GLOBAL_TEACHERS\r\nexport const isGroupStudentSiteGlobal = group => !!group && group.groupType === GROUP_TYPES.SITE_GLOBAL_STUDENTS\r\nexport const isGroupTeacherGlobal = group => !!group && group.groupType === GROUP_TYPES.TEACHER_GLOBAL\r\nexport const isGroupTeacherCustom = group => !!group && group.groupType === GROUP_TYPES.TEACHER_CUSTOM\r\nexport const isGroupSingleStudent = group => !!group && group.groupType === GROUP_TYPES.TEACHER_SINGLE_STUDENT\r\n\r\nexport const getSiteGlobalGroups = globalGroups => {\r\n return siteGlobalGroupsSelector({ globalGroups })\r\n}\r\n\r\nexport const getTeacherGlobalGroups = (userGroups, teacherId) => {\r\n return teacherGlobalGroupsSelector({ userGroups, teacherId })\r\n}\r\n\r\nexport const getTeacherCustomGroups = (userGroups, teacherId) => {\r\n return teacherCustomGroupsSelector({ userGroups, teacherId })\r\n}\r\n\r\nexport const getTeacherSingleStudentGroups = (userGroups, teacherId) => {\r\n return teacherSingleStudentGroupsSelector({ userGroups, ownerId: teacherId })\r\n}\r\n\r\nexport const getGlobalGroupDataByGroupId = (globalGroups, groupId) => {\r\n return getFromDict(globalGroupsMapByIdSelector({ globalGroups }), groupId)\r\n}\r\n\r\nexport const getUserGroupDataByGroupId = (userGroups, groupId) => {\r\n return getFromDict(userGroupsMapByIdSelector({ userGroups }), groupId)\r\n}\r\n\r\nexport const getTeacherCustomAndSingleStudentsGroups = (userGroups, teacherId, onlyActive) => {\r\n return teacherCustomAndSingleStudentsGroupsSelector({ userGroups, teacherId, onlyActive })\r\n}\r\n\r\nexport const getSiteGlobalTeacherGroups = globalGroups => {\r\n return siteGlobalTeacherGroupsSelector({ globalGroups })\r\n}\r\n\r\nexport const getSiteGlobalStudentGroups = globalGroups => {\r\n return siteGlobalStudentGroupsSelector({ globalGroups })\r\n}\r\n\r\nexport const getShouldReloadGroups = (globalGroups, userGroups, groupIdsToCheck, checkingGlobalGroups) => {\r\n const maxLoadedGroupId = checkingGlobalGroups ? maxLoadedGlobalGroupIdSelector({ globalGroups }) : maxLoadedUserGroupIdSelector({ userGroups })\r\n const getGroupDataByGroupId = checkingGlobalGroups ? getGlobalGroupDataByGroupId : getUserGroupDataByGroupId\r\n const groups = checkingGlobalGroups ? globalGroups : userGroups\r\n\r\n return groupIdsToCheck.reduce((acc, groupId) => {\r\n const groupDataAvailable = !!(getGroupDataByGroupId(groups, groupId))\r\n if (!groupDataAvailable && groupId < maxLoadedGroupId) {\r\n console.log(` - Data unavailable for groupId: ${groupId}, where maxGroupId of loaded groups is: ${maxLoadedGroupId}`)\r\n }\r\n return acc || (!groupDataAvailable && groupId > maxLoadedGroupId)\r\n }, false)\r\n}\r\n\r\nexport const isSingleStudentOrCustomGroupActive = group => {\r\n if (!group || (!isGroupTeacherCustom(group) && !isGroupSingleStudent(group))) {\r\n return false\r\n }\r\n\r\n if (isGroupTeacherCustom(group)) {\r\n return group.isActive\r\n }\r\n else {\r\n let hasStudents = false\r\n let allActive = true\r\n group.users.forEach(user => {\r\n hasStudents = hasStudents || user.role === USER_TYPES.STUDENT\r\n allActive = allActive && user.isActive\r\n })\r\n const isActive = hasStudents && allActive\r\n return isActive\r\n }\r\n}\r\n\r\nexport const getSingleStudentGroupId = (userGroups, teacherId, otherUserId) => {\r\n const teacherSSGroups = getTeacherSingleStudentGroups(userGroups, teacherId)\r\n const group = teacherSSGroups && teacherSSGroups.find(x => x.users.some(y => \r\n y.userId === otherUserId && y.isActive\r\n ))\r\n return group ? group.id : undefined\r\n}\r\n\r\nexport const getGroupIdsForTeacherGroupLessons = (userGroups, selectedGroupId, studentGroupId) => {\r\n if (!selectedGroupId && !studentGroupId) {\r\n return []\r\n }\r\n else if (selectedGroupId && !studentGroupId) {\r\n return [selectedGroupId]\r\n }\r\n else {\r\n const customGroupIds = getCustomGroupsForStudent(userGroups, studentGroupId)\r\n if (!customGroupIds) {\r\n return [studentGroupId]\r\n }\r\n return [...customGroupIds, studentGroupId]\r\n }\r\n}\r\n\r\n// ========================= USERS =========================\r\n\r\nexport const getUserDataByUserId = (users, userId) => {\r\n return getFromDict(usersMapByIdSelector({ users }), userId)\r\n}\r\n\r\nexport const getGlobalGroupOfGroupOwner = (userGroups, customOrStudentGroupId) => {\r\n return globalGroupOfGroupOwnerSelector({ userGroups, groupId: customOrStudentGroupId })\r\n}\r\n\r\n// ========================= STUDENTS =========================\r\n\r\nexport const getCustomGroupStudents = (userGroups, users, students, groupId) => {\r\n return groupStudentList({ userGroups, users, students, groupId, sort: true })\r\n}\r\n\r\nexport const getStudentDataByTeacherAndStudentIds = (users, students, teacherId, studentId) => {\r\n return getFromDict(\r\n getFromDict(\r\n studentsMapByTeacherIdAndStudentIdSelector({ users, students }),\r\n teacherId,\r\n {}\r\n ),\r\n studentId\r\n )\r\n}\r\n\r\nexport const getStudentDataBySingleStudentGroupId = (userGroups, users, students, singleStudentGroupId) => {\r\n const map = singleStudentGroupMap({ userGroups })\r\n const { teacherId, studentId } = getFromDict(map, singleStudentGroupId, {})\r\n if (!teacherId || !studentId) {\r\n return undefined\r\n // throw 'GroupDataUtils - Could not find single student group for id: ' + singleStudentGroupId\r\n }\r\n return getStudentDataByTeacherAndStudentIds(users, students, teacherId, studentId)\r\n}\r\n\r\nexport const getStudentPointsByGroupId = (userGroups, users, students, singleStudentGroupId) => {\r\n // for now points are global, so we don't use groupId\r\n const studentData = getStudentDataBySingleStudentGroupId(userGroups, users, students, singleStudentGroupId)\r\n if (!studentData) {\r\n return {\r\n points: 0,\r\n availablePoints: 0,\r\n }\r\n }\r\n const { points, availablePoints } = studentData\r\n return {\r\n points,\r\n availablePoints,\r\n }\r\n}\r\n\r\nexport const getStudentRankingsByGroupId = (userGroups, users, students, groupId) => studentRankingsByGroupIdSelector({ userGroups, users, students, groupId })\r\n\r\nexport const getTeacherStudentsList = (users, students, teacherId) => getFromDict(studentsMapByTeacherIdSelector({ users, students }), teacherId, [])\r\n\r\nexport const getInvitedTeacherStudents = (users, students, teacherId) => {\r\n return invitedStudentsSelector(getTeacherStudentsList(users, students, teacherId))\r\n}\r\n\r\nexport const getSuspendedTeacherStudents = (users, students, teacherId) => {\r\n return suspendedStudentsSelector(getTeacherStudentsList(users, students, teacherId))\r\n}\r\n\r\nexport const getActiveTeacherStudents = (users, students, teacherId) => {\r\n return activeStudentsSelector(getTeacherStudentsList(users, students, teacherId))\r\n}\r\n\r\nexport const filteredStudents = (students, text) => {\r\n const regex = new RegExp(text, 'i')\r\n return students.filter(x => `${x.firstName} ${x.lastName}`.search(regex) !== -1)\r\n}\r\n\r\nexport const filteredGroups = (groups, text) => {\r\n const regex = new RegExp(text, 'i')\r\n return groups.filter(x => x.name.search(regex) !== -1)\r\n}\r\n\r\nexport const getRawTeacherStudentData = (students, teacherId, studentId) => {\r\n return getFromDict(\r\n getFromDict(students, teacherId, {}),\r\n studentId\r\n )\r\n}\r\n\r\nexport const getCustomGroupsDataByStudentId = (userGroups, singleStudentGroupId) => {\r\n const { teacherId, studentId } = getFromDict(\r\n singleStudentGroupMap({ userGroups }),\r\n singleStudentGroupId,\r\n {}\r\n )\r\n if (!teacherId || !studentId) {\r\n return undefined\r\n // throw 'GroupDataUtils - Could not find single student group for id: ' + singleStudentGroupId\r\n }\r\n \r\n const teacherCustomGroups = getTeacherCustomGroups(userGroups, teacherId)\r\n\r\n return (teacherCustomGroups || []).filter(x => x.users && x.users.some(x => x.userId === studentId))\r\n}\r\n\r\nexport const getCustomGroupsForStudent = (userGroups, singleStudentGroupId) => {\r\n const { teacherId, studentId } = getFromDict(\r\n singleStudentGroupMap({ userGroups }),\r\n singleStudentGroupId,\r\n {}\r\n )\r\n if (!teacherId || !studentId) {\r\n return undefined\r\n // throw 'GroupDataUtils - Could not find single student group for id: ' + singleStudentGroupId\r\n }\r\n const teacherCustomGroups = getTeacherCustomGroups(userGroups, teacherId)\r\n\r\n return !teacherCustomGroups ? [] : teacherCustomGroups.reduce((acc, customGroup) => {\r\n if (customGroup.users && customGroup.users.find(x => x.userId === studentId)) {\r\n acc.push(customGroup.id)\r\n }\r\n return acc\r\n }, [])\r\n}\r\n\r\n// ========================= TEACHERS =========================\r\n\r\nexport const getTeacherDataById = (users, teacherId) => {\r\n return getFromDict(teachersMapById({ users }), teacherId)\r\n}\r\n\r\nexport const getTeacherDataList = (users) => {\r\n return teacherDataListSelector({ users })\r\n}\r\n\r\nexport const getTeacherDataBySingleStudentGroupId = (userGroups, users, singleStudentGroupId) => {\r\n const { teacherId, studentId } = getFromDict(\r\n singleStudentGroupMap({ userGroups }),\r\n singleStudentGroupId,\r\n {}\r\n )\r\n if (!teacherId || !studentId) {\r\n return undefined\r\n // throw 'GroupDataUtils - Could not find single student group for id: ' + singleStudentGroupId\r\n }\r\n return getTeacherDataById(users, teacherId)\r\n}\r\n\r\nexport const getGroupsIdsForStudentItems = ({ studentGroupId, selectedGroupId, groupId, selectedUser }, studentItems) => {\r\n const items = getFromDict(studentItems, selectedUser.id, {})\r\n return getGroupsIdsForItems({ studentGroupId, selectedGroupId, groupId }, items )\r\n}\r\n\r\nexport const getGroupsIdsForItems = ({ studentGroupId, selectedGroupId, groupId }, items, forceStudentGroup) => {\r\n const groupIds = []\r\n const globalGroupItemsLoaded = getFromDict(items, groupId) !== undefined\r\n const studentGroupItemsLoaded = getFromDict(items, studentGroupId) !== undefined\r\n\r\n !globalGroupItemsLoaded && groupIds.push(groupId)\r\n if (selectedGroupId) {\r\n const customGroupItemsLoaded = getFromDict(items, selectedGroupId) !== undefined\r\n !customGroupItemsLoaded && groupIds.push(selectedGroupId)\r\n }\r\n (!studentGroupItemsLoaded || forceStudentGroup) && groupIds.push(studentGroupId)\r\n return groupIds\r\n}","export const appBaseColor = 'rgba(0, 173, 238, 1)'\r\nexport const lightBlueColor = '#DFECF3'\r\nexport const assignmentSubtitleColor = 'rgba(0, 0, 0, 0.54)'\r\nexport const deleteColor = 'red'\r\nexport const lessonUnpublishedColor = '#FF6600'\r\n\r\nexport const blueBubbleBtnStyle = {\r\n height: 80,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n justifyContent: 'flex-start',\r\n alignItems: 'center',\r\n backgroundColor: appBaseColor\r\n}","import { texti18n, Messages } from './MessageConstants'\r\nimport { SUPPORTED_IMAGE_MIME_TYPES } from './ImageConstants'\r\nimport { compareDatesByDay } from './TimeHelperFunctions'\r\nimport { LinksHelper } from './LinkRegexHelper'\r\nimport { SUPPORTED_FILE_TYPES } from './FileConstants'\r\nimport { getFirstLastName } from 'dpn-common/utils/UserHelper'\r\n\r\nexport function isInteger(str, func = () => true) {\r\n const n = Math.floor(Number(str))\r\n return n !== Infinity && String(n) == str && func(n)\r\n}\r\n\r\nexport function isEmail(str) {\r\n // eslint-disable-next-line no-useless-escape\r\n const emailRegex = /^(([^<>()\\[\\]\\.,;:\\s@\\\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i\r\n return emailRegex.test(String(str).toLowerCase())\r\n}\r\n\r\nexport function isUsername(str) {\r\n const usernameRegex = /^[a-zA-Z0-9.\\-_]+$/\r\n return usernameRegex.test(String(str))\r\n}\r\n\r\nexport function isFullName(value) {\r\n const { firstName, lastName } = getFirstLastName(value)\r\n return firstName.length > 0 && lastName.length > 0\r\n}\r\n\r\nlet formValidatorsCache\r\n\r\nexport default function formValidators() {\r\n if (formValidatorsCache) {\r\n return formValidatorsCache\r\n }\r\n\r\n formValidatorsCache = {\r\n email: {\r\n func: value => !value || isEmail(value),\r\n message: texti18n(Messages.INVALID_EMAIL),\r\n },\r\n requiredEmail: {\r\n func: value => !!value && isEmail(value),\r\n message: texti18n(Messages.INVALID_EMAIL),\r\n },\r\n username: {\r\n func: value => !value || isUsername(value),\r\n message: texti18n(Messages.USERNAME_CONTAINS_LETTERS_NUMBERS),\r\n },\r\n requiredUsername: {\r\n func: value => !!value && isUsername(value),\r\n message: texti18n(Messages.USERNAME_CONTAINS_LETTERS_NUMBERS),\r\n },\r\n emailOrUsername: {\r\n func: value => !value || isUsername(value) || isEmail(value),\r\n message: texti18n(Messages.INVALID_EMAIL_OR_USERNAME),\r\n },\r\n required: {\r\n func: value => !!value,\r\n message: texti18n(Messages.FIELD_IS_REQUIRED),\r\n },\r\n any: { func: _ => true, message: '' },\r\n password: {\r\n func: value => !!value && String(value).length >= 6,\r\n message: texti18n(Messages.INVALID_PASSWORD),\r\n },\r\n passwordNotRequired: {\r\n func: value => !value || String(value).length >= 6,\r\n message: texti18n(Messages.INVALID_PASSWORD),\r\n },\r\n videoLink: {\r\n func: value => {\r\n const linkRegex = LinksHelper.getLinkRegex()\r\n const externalAppLinkRegex = LinksHelper.getExternalAppLinkRegex()\r\n return value.every(x => !!x && (x.match(linkRegex) || x.match(externalAppLinkRegex)))\r\n },\r\n message: Messages.INVALID_FIELD,\r\n },\r\n requiredPositiveInt: {\r\n func: value => !!value && isInteger(value, x => x > 0),\r\n message: Messages.INVALID_FIELD,\r\n },\r\n pdfImage: {\r\n func: value => value.newFiles.every(x => x.type == SUPPORTED_FILE_TYPES.PDF || Object.values(SUPPORTED_IMAGE_MIME_TYPES).includes(x.type)),\r\n message: Messages.INVALID_FIELD,\r\n },\r\n pdfImageMid: {\r\n func: value => value.newFiles.every(x => x.type == SUPPORTED_FILE_TYPES.PDF || x.type == SUPPORTED_FILE_TYPES.MID || x.type == SUPPORTED_FILE_TYPES.MIDI || Object.values(SUPPORTED_IMAGE_MIME_TYPES).includes(x.type)),\r\n message: Messages.INVALID_FIELD,\r\n },\r\n pdfImageAudioMid: {\r\n func: value => value.newFiles.every(x => [...(Object.values(SUPPORTED_FILE_TYPES)), ...(Object.values(SUPPORTED_IMAGE_MIME_TYPES))].includes(x.type)),\r\n message: Messages.INVALID_FIELD,\r\n },\r\n endDate: [\r\n {\r\n func: value => !!value,\r\n message: texti18n(Messages.FIELD_IS_REQUIRED),\r\n },\r\n {\r\n message: Messages.START_END_DATE_VALIDATION,\r\n func: (value, values, errors) => {\r\n return !!errors['startDate'] || compareDatesByDay(values['startDate'], value)\r\n }\r\n }\r\n ],\r\n endTime: [\r\n {\r\n func: value => !!value[0].fromTimeInMinutes && !!value[0].toTimeInMinutes,\r\n message: texti18n(Messages.FIELD_IS_REQUIRED),\r\n },\r\n {\r\n func: value => value[0].fromTimeInMinutes < value[0].toTimeInMinutes,\r\n message: Messages.START_END_TIME_VALIDATION,\r\n }\r\n ],\r\n groupSchedules: [\r\n {\r\n func: value => value.every(x => (!x.fromTimeInMinutes && !x.toTimeInMinutes) || (x.fromTimeInMinutes < x.toTimeInMinutes)),\r\n message: Messages.START_END_TIME_VALIDATION,\r\n }\r\n ],\r\n acceptPrivacyPolicyAndToU: {\r\n func: value => !!value,\r\n message: texti18n(Messages.YOU_MUST_ACCEPT_PRIVACY_POLICY_AND_TOU),\r\n },\r\n fullName: {\r\n func: value => isFullName(value),\r\n message: texti18n(Messages.INVALID_FULL_NAME),\r\n },\r\n notRequiredFullName: {\r\n func: value => !value || isFullName(value),\r\n message: texti18n(Messages.INVALID_FULL_NAME),\r\n }\r\n }\r\n\r\n return formValidatorsCache\r\n}","import React from 'react'\r\nimport { Typography } from '@material-ui/core'\r\n\r\nexport default class TextComponent extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n\r\nTextComponent.defaultProps = {\r\n variant: 'body1'\r\n}","import React, { useState } from 'react'\r\nimport { Button, ListItemIcon, ListItemText, Popover, MenuItem } from '@material-ui/core'\r\nimport { texti18n } from 'dpn-common/utils/MessageConstants'\r\n\r\nfunction DropDownButtonComponent({ button, renderButton, items, menuId, atElement, ...otherProps }) {\r\n const [menu, setMenu] = useState(null)\r\n\r\n const onMenuClick = event => setMenu(event.currentTarget)\r\n const onMenuClose = () => setMenu(null)\r\n\r\n return (\r\n \r\n {!!button && \r\n \r\n }\r\n {!!renderButton && renderButton(onMenuClick)}\r\n \r\n {\r\n items && items.map(({ title, action, icon }, index) => (\r\n {\r\n onMenuClose()\r\n action()\r\n }}>\r\n {\r\n !!icon && \r\n \r\n {icon}\r\n \r\n }\r\n \r\n \r\n ))\r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(DropDownButtonComponent)\r\n\r\nconst anchorOriginDefault = {\r\n vertical: 'bottom',\r\n horizontal: 'center'\r\n}\r\n\r\nconst transformOriginDefault = {\r\n vertical: 'top',\r\n horizontal: 'center'\r\n}\r\n\r\nconst anchorOriginAtElement = {\r\n vertical: 'top',\r\n horizontal: 'left'\r\n}\r\n\r\nconst transformOriginAtElement = {\r\n vertical: 'top',\r\n horizontal: 'left'\r\n}\r\n","\r\nimport ActionTypes from './ActionTypes'\r\nimport { \r\n schoolYearsGet, deleteSchoolYearDelete, addSchoolYearPost,\r\n updateSchoolYearPut, activateSchoolYearPost\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { NavigatorService, showSuccess } from '../services/SharedServices'\r\n\r\nexport async function activateSchoolYearFetch(schoolYear, dispatch, goBack) {\r\n const fetchPromise = activateSchoolYearPost(schoolYear.id)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n const isActive = responseData.value\r\n dispatch(setSchoolYearIsActive(schoolYear.id, isActive))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function getSchoolYearsFetch(teacherId, isTeacher, dispatch) {\r\n const fetchPromise = schoolYearsGet(teacherId, null)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setSchoolYears(responseData.items, isTeacher ? 0 : teacherId))\r\n return responseData\r\n}\r\n\r\nexport async function addSchoolYearFetch(data, dispatch, goBack) {\r\n const fetchPromise = addSchoolYearPost(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(addSchoolYear(value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function updateSchoolYearFetch(data, dispatch, goBack) {\r\n const fetchPromise = updateSchoolYearPut(data.id, data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(updateSchoolYear(value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function deleteSchoolYearFetch(schoolYear, dispatch, goBack) {\r\n const fetchPromise = deleteSchoolYearDelete(schoolYear.id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteSchoolYear(schoolYear))\r\n showSuccess(texti18n(Messages.SCHOOL_YEAR_HAS_BEEN_DELETED))\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nfunction setSchoolYearIsActive(id, isActive) {\r\n return { type: ActionTypes.SCHOOL_YEAR_ACTIVATE_ACTION, id, isActive, teacherId: 0 }\r\n}\r\n\r\nfunction setSchoolYears(schoolYears, teacherId) {\r\n return { type: ActionTypes.SCHOOL_YEARS_SET_ACTION, schoolYears, teacherId }\r\n}\r\n\r\nfunction addSchoolYear(schoolYear) {\r\n return { type: ActionTypes.SCHOOL_YEAR_ADD_ACTION, schoolYear, teacherId: 0 }\r\n}\r\n\r\nfunction updateSchoolYear(schoolYear) {\r\n return { type: ActionTypes.SCHOOL_YEAR_UPDATE_ACTION, schoolYear, teacherId: 0 }\r\n}\r\n\r\nfunction deleteSchoolYear(schoolYear) {\r\n return { type: ActionTypes.SCHOOL_YEAR_DELETE_ACTION, schoolYear, teacherId: 0 }\r\n}","import { Messages, texti18n } from 'dpn-common/utils/MessageConstants'\r\nimport { createSelector } from 'reselect'\r\nimport { lessonsCompareFunc } from '../reducers/LessonsReducer'\r\nimport { getFromDict } from '../utils/HelperFunctions'\r\n\r\nconst lessonsSelector = state => state.lessons\r\nconst lessonsKeyIdsSelector = state => state.keyIds\r\nconst lessonsCurrentSchoolYearSelector = state => state.schoolYearId\r\n\r\nexport const lessonsByKeySelector = createSelector(\r\n lessonsSelector,\r\n lessonsKeyIdsSelector,\r\n lessonsCurrentSchoolYearSelector,\r\n (allLessons, keyIds, schoolYearId) => {\r\n const lessons = []\r\n const unloadedGroupIds = []\r\n keyIds.forEach(groupId => {\r\n const lessonsByGroupId = getFromDict(allLessons, groupId)\r\n const lessonsBySchoolYearId = getFromDict(lessonsByGroupId, schoolYearId)\r\n if (lessonsBySchoolYearId === undefined) {\r\n unloadedGroupIds.push(groupId)\r\n }\r\n else {\r\n lessons.push(...lessonsBySchoolYearId)\r\n }\r\n })\r\n lessons.sort((x, y) => lessonsCompareFunc(x)(y) ? -1 : 1)\r\n return { lessons, unloadedGroupIds }\r\n }\r\n)\r\n \r\nexport const currentLessons = createSelector(\r\n lessonsSelector,\r\n lessonsKeyIdsSelector,\r\n lessonsCurrentSchoolYearSelector,\r\n (allLessons, keyIds, schoolYearId) => {\r\n const { lessons } = lessonsByKeySelector({ lessons: allLessons, keyIds, schoolYearId })\r\n return lessons.filter(x => x.isActive)\r\n }\r\n)\r\n\r\nexport const pastLessons = createSelector(\r\n lessonsSelector,\r\n lessonsKeyIdsSelector,\r\n lessonsCurrentSchoolYearSelector,\r\n (allLessons, keyIds, schoolYearId) => {\r\n const { lessons } = lessonsByKeySelector({ lessons: allLessons, keyIds, schoolYearId })\r\n return lessons.filter(x => !x.isActive).reverse()\r\n }\r\n)\r\n\r\n/**\r\n * Selector which receives state (state.lesson.lessons)\r\n * and then converts dictionary of dictionaries from reducer to array\r\n * if state.lessons is undefined or empty object return undefined\r\n */\r\nexport const lessonsAsList = createSelector(\r\n state => state.lesson.lessons,\r\n allLessons => {\r\n const lessonGroupKeys = Object.keys(allLessons || {}) \r\n if (!lessonGroupKeys.length) {\r\n return undefined\r\n }\r\n const result = lessonGroupKeys.reduce((lstFromGroups, groupId) => {\r\n const lessonsByGroupId = allLessons[groupId]\r\n const tmpResult = Object.keys(lessonsByGroupId || {}).reduce((lstFromSchoolYears, schoolYearId) => {\r\n const lessonsBySchoolYearId = lessonsByGroupId[schoolYearId]\r\n return lstFromSchoolYears.concat(lessonsBySchoolYearId || [])\r\n }, lstFromGroups)\r\n return tmpResult\r\n }, [])\r\n return result\r\n }\r\n)\r\n\r\nexport const publishedLessonsSelector = createSelector(\r\n lessons => lessons,\r\n lessons => lessons.filter(x => x.isPublished)\r\n)\r\n\r\nexport const unpublishedLessonsSelector = createSelector(\r\n lessons => lessons,\r\n lessons => lessons.filter(x => !x.isPublished)\r\n)\r\n\r\nexport const mergedLessonsSelector = createSelector(\r\n state => publishedLessonsSelector(state.lessons),\r\n state => unpublishedLessonsSelector(state.lessons),\r\n (publishedLessons, unpublishedLessons) => {\r\n let result = [].concat(publishedLessons)\r\n if (unpublishedLessons.length > 0) {\r\n // we need to mark last item before label with skipSeparator because we do not need separator before label \r\n if (result.length > 0) {\r\n result[result.length - 1] = { ...result[result.length - 1], skipSeparator: true }\r\n }\r\n const label = { id: 'l0', title: texti18n(Messages.UNPUBLISHED), isTextLabel: true, isPublished: false, skipSeparator: true }\r\n result = result.concat(label).concat(unpublishedLessons)\r\n }\r\n if (result.length > 0) {\r\n result[result.length - 1] = { ...result[result.length - 1], skipSeparator: true }\r\n }\r\n return result\r\n }\r\n)","import { createSelector } from 'reselect'\r\n\r\nexport const stickerEmoticonsRegex = createSelector(\r\n state => state || [],\r\n emoticons => {\r\n const codes = emoticons.map(x => x.code)\r\n const codesInRegex = codes.join('|')\r\n const regExp = `(${codesInRegex})`\r\n return new RegExp(regExp, 'gi')\r\n }\r\n)\r\n\r\nexport const emoticonCodesSelector = createSelector(\r\n state => state,\r\n emoticons => {\r\n if (!emoticons || emoticons.length === 0) {\r\n return undefined\r\n }\r\n\r\n const regex = stickerEmoticonsRegex(emoticons)\r\n \r\n let emoticonUrls = {}\r\n emoticons.forEach(x => {\r\n emoticonUrls[x.code] = x.emoticonUrl\r\n })\r\n\r\n return { regex, emoticonUrls }\r\n }\r\n)\r\n\r\nexport const utfEmoticons = createSelector(\r\n state => state || [],\r\n emoticons => {\r\n return emoticons.filter(x => x.emoticonUrl === '')\r\n }\r\n)\r\n\r\nexport const stickerEmoticons = createSelector(\r\n state => state || [],\r\n emoticons => {\r\n return emoticons.filter(x => x.emoticonUrl !== '')\r\n }\r\n)","import React, { useEffect, useMemo, useState } from 'react'\r\nimport { FuseAnimate } from 'app/@fuse'\r\nimport { Typography } from '@material-ui/core'\r\nimport NavigatorService from 'services/common/NavigatorService'\r\nimport { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\nimport ArrowLeftCircleIcon from 'icons/ArrowLeftCircleIcon'\r\nimport { useSelector } from 'react-redux'\r\n\r\n// TODO: hard as f hack. find better solution. There are no such thing as 'slots' in react\r\nlet onBackFunc = undefined\r\n\r\nexport const globalSetOnBackFunc = function (onBackFuncParam) {\r\n onBackFunc = onBackFuncParam\r\n}\r\n\r\nconst onBackPress = () => {\r\n if (onBackFunc) {\r\n return onBackFunc()\r\n }\r\n NavigatorService.goBack()\r\n}\r\n\r\nfunction GoBackComponent() {\r\n const [hidden, setHidden] = useState(true)\r\n const [currentPath, setCurrentPath] = useState(NavigatorService.getCurrentRoute().path)\r\n\r\n const { navigation } = useSelector(({ fuse }) => ({\r\n navigation: fuse.navigation\r\n }))\r\n\r\n const initialPages = useMemo(() => createNavigationMap(navigation), [navigation])\r\n\r\n useEffect(() => {\r\n setHidden(!initialPages || currentPath in initialPages)\r\n }, [initialPages, currentPath])\r\n\r\n useEffect(() => {\r\n const routeChangeListener = NavigatorService.addRouteChangeListener(function (data) {\r\n setCurrentPath(data.currentLocation.pathname + data.currentLocation.search)\r\n })\r\n return () => routeChangeListener.remove()\r\n }, [])\r\n\r\n if (hidden) {\r\n return false\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n {texti18n(Messages.BACK)}\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default GoBackComponent\r\n\r\nfunction createNavigationMap(navigation) {\r\n function oneLevel(items, acc) {\r\n for (let item of items) {\r\n if (item.url) {\r\n acc[item.url] = true\r\n }\r\n if (item.children && item.children.length) {\r\n oneLevel(item.children, acc)\r\n }\r\n }\r\n return acc\r\n }\r\n return oneLevel(navigation, {})\r\n}","import ActionTypes from './ActionTypes'\r\nimport { \r\n changeUserLeaderboardParticipationPut, setFcmTokenPost,\r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { GROUP_FETCH_PARAMS } from '../utils/AppConstants'\r\nimport { Messages, texti18n } from '../utils/MessageConstants'\r\nimport { showSuccess, getOS } from '../services/SharedServices'\r\nimport { loadGroupsDataForStudentFetch, loadGroupsDataForTeacherFetch } from './GroupActions'\r\nimport { \r\n checkEmailExistsGet, checkUsernameExistsGet, \r\n changeUserProfilePut, changeUserPicturePut, changeUserPictureToPremadeAvatarPut \r\n} from 'dpn-common/services/IdentityEndpointsService'\r\n\r\nexport async function changeUserDataFetch(data, dispatch) {\r\n const fetchPromise = changeUserProfilePut(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(changeUserData(responseData.value))\r\n showSuccess(texti18n(Messages.PROFILE_HAS_BEEN_CHANGED))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function changeLeaderboardParticipationForStudentFetch(userId, leaderboardParticipation, dispatch, teacherId) {\r\n const data = { userId, leaderboardParticipation }\r\n const fetchPromise = changeUserLeaderboardParticipationPut(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success && dispatch) {\r\n !!teacherId && await loadGroupsDataForStudentFetch(GROUP_FETCH_PARAMS, dispatch, teacherId)\r\n userId === 0 && dispatch(changeLeaderboardParticipation(leaderboardParticipation))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function changeLeaderboardParticipationForTeacherFetch(userId, leaderboardParticipation, dispatch, userData) {\r\n const data = { userId, leaderboardParticipation }\r\n const fetchPromise = changeUserLeaderboardParticipationPut(data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success && dispatch) {\r\n await loadGroupsDataForTeacherFetch(GROUP_FETCH_PARAMS, dispatch, userData)\r\n userId === 0 && dispatch(changeLeaderboardParticipation(leaderboardParticipation))\r\n } \r\n return responseData\r\n}\r\n\r\n\r\nexport async function changePictureFetch(picture, userId, dispatch, otherUserData) {\r\n const fetchPromise = changeUserPicturePut(picture, userId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n if (!otherUserData) {\r\n dispatch(changeUserData(responseData.value))\r\n }\r\n else {\r\n await loadGroupsDataForTeacherFetch(GROUP_FETCH_PARAMS, dispatch, otherUserData)\r\n }\r\n showSuccess(texti18n(Messages.PROFILE_AVATAR_HAS_BEEN_CHANGED))\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function changePictureToPremadeAvatarFetch(url, userId, dispatch, otherUserData) {\r\n const fetchPromise = changeUserPictureToPremadeAvatarPut(url, userId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n if (!otherUserData) {\r\n dispatch(changeUserData(responseData.value))\r\n }\r\n else {\r\n await loadGroupsDataForTeacherFetch(GROUP_FETCH_PARAMS, dispatch, otherUserData)\r\n }\r\n showSuccess(texti18n(Messages.PROFILE_AVATAR_HAS_BEEN_CHANGED))\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function setFcmTokenFetchNoDispatch(fcmToken, isLoggedIn) {\r\n const fetchPromise = setFcmTokenPost(fcmToken, isLoggedIn, getOS())\r\n const responseData = await tryCatchJson(fetchPromise, false)\r\n return responseData.success && responseData.value\r\n}\r\n\r\nexport async function checkEmailExistsFetch(email) {\r\n const fetchPromise = checkEmailExistsGet(email)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.success && responseData.emailExists\r\n}\r\n\r\nexport async function checkUsernameExistsFetch(username, excludeUserId) {\r\n const fetchPromise = checkUsernameExistsGet(username, excludeUserId)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n return responseData.success && responseData.usernameExists\r\n}\r\n\r\nexport function changeUserData(userData) {\r\n return { type: ActionTypes.CHANGE_USER_DATA_ACTION, userData }\r\n}\r\n\r\nfunction changeLeaderboardParticipation(leaderboardParticipation) {\r\n return { type: ActionTypes.CHANGE_LEADERBOARD_PARTICIPATION, leaderboardParticipation }\r\n}","import * as React from 'react'\r\nimport { isImageLink } from './VideoUtils/VideoLinkUtils'\r\nimport { emoticonCodesSelector } from '../reselects/EmoticonReselect'\r\nimport { isYouTubeLink, isVimeoLink } from './VideoUtils/VideoPlayerHelper'\r\nimport { compareDatesByDay, calculateTimeForChatHistory } from './TimeHelperFunctions'\r\nimport { NOTIFICATION_TYPES } from './NotificationsConstants'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { texti18n, Messages } from './MessageConstants'\r\nimport { showInfo } from '../services/SharedServices'\r\nimport { LinksHelper } from './LinkRegexHelper'\r\nimport {\r\n getTeacherCustomAndSingleStudentsGroups, isGroupSingleStudent,\r\n getStudentDataBySingleStudentGroupId,\r\n} from './GroupsDataUtils'\r\nimport { userHasFullName, getUserIdentityString } from './UserHelper'\r\n\r\nconst NEW_MESSAGE_TIMEOUT = 10000\r\nconst types = {\r\n EMOTICON: 0,\r\n VIDEO_IMAGE: 1,\r\n LINK: 2,\r\n TEXT: 3,\r\n EXTERNAL_APP_LINK: 4\r\n}\r\n\r\nlet RenderHelper = { \r\n getUrlText: (_index, _link, _onPressLink) => <>,\r\n renderLinkWithImage: (_i, _token, _openMenu, _sendMessageDisabled) => <>,\r\n renderStringTokens: (_i, _tokens) => <>,\r\n renderEmoticon: (_index, _url) => <>,\r\n renderTokens: _tokenizer => <>,\r\n renderExternalAppLink: (_i, _link, _onPressLink) => <>\r\n}\r\n\r\nexport const init = function(renderHelper) {\r\n RenderHelper = renderHelper\r\n}\r\n\r\nexport const periodicallyCheck = (sendMessageDisabled, enabledNotificationTypes, getPropsFunc) => {\r\n const getLastMessage = messages => messages && messages.length && messages[messages.length - 1]\r\n const notificationTypeToCheck = sendMessageDisabled ? NOTIFICATION_TYPES.CHANNELS : NOTIFICATION_TYPES.MESSAGES\r\n return setInterval(async () => {\r\n const { messages, groupId, getMessages, userData } = getPropsFunc()\r\n const shouldCheckPeriodically = !AppConfig.enableNotifications || !enabledNotificationTypes.includes(notificationTypeToCheck)\r\n if (shouldCheckPeriodically) {\r\n const lastMessage = getLastMessage(messages)\r\n const lastMessageId = lastMessage && lastMessage.id \r\n const responseData = await getMessages(groupId, messages, false)\r\n if (responseData.success) {\r\n const newLastMessage = getLastMessage(responseData.items)\r\n const newLastMessageId = newLastMessage && newLastMessage.senderId !== userData.id && newLastMessage.id\r\n if (newLastMessageId && newLastMessageId !== lastMessageId) {\r\n showInfo(texti18n(Messages.NEW_PRIVATE_MESSAGE_RECEIVED))\r\n }\r\n }\r\n }\r\n }, NEW_MESSAGE_TIMEOUT)\r\n}\r\n\r\nexport const getTimeForMessage = (message, allMessages, index) => {\r\n if (index == 0 || compareDatesByDay(allMessages[index - 1].createdAt, message.createdAt)) {\r\n return calculateTimeForChatHistory(message.createdAt)\r\n }\r\n return undefined\r\n}\r\n\r\n// options { openMenu: handler, parseVideosAndImages: true, onPressLink: handler }\r\nexport const parseMessage = (message, emoticons, options) => {\r\n const data = emoticonCodesSelector(emoticons)\r\n const emoticonUrls = data.emoticonUrls\r\n const nonTextTokens = getLinkAndEmoticonTokens(message, data)\r\n const allTokens = getAllMergedTokens(nonTextTokens, message)\r\n const retTokenizer = renderTokens(allTokens, emoticonUrls, options)\r\n\r\n return retTokenizer\r\n}\r\n\r\nconst getLinkAndEmoticonTokens = (message, data) => {\r\n let match\r\n let nonTextTokens = []\r\n\r\n if (data) {\r\n while ((match = data.regex.exec(message))) {\r\n const content = match[0]\r\n nonTextTokens.push({\r\n type: types.EMOTICON,\r\n index: match.index,\r\n content\r\n })\r\n }\r\n }\r\n\r\n const linkRegex = LinksHelper.getLinkRegex()\r\n while ((match = linkRegex.exec(message))) {\r\n let content = match[0]\r\n const isTypeImageLink = isYouTubeLink(content) || isVimeoLink(content) || isImageLink(content)\r\n const reducedContent = LinksHelper.toHttp(content)\r\n\r\n nonTextTokens.push({\r\n type: isTypeImageLink ? types.VIDEO_IMAGE : types.LINK,\r\n index: match.index,\r\n content: reducedContent,\r\n originalContent: content\r\n })\r\n }\r\n\r\n const externalAppLinkRegex = LinksHelper.getExternalAppLinkRegex()\r\n while ((match = externalAppLinkRegex.exec(message))) {\r\n let content = match[0]\r\n nonTextTokens.push({\r\n type: types.EXTERNAL_APP_LINK,\r\n index: match.index,\r\n content\r\n })\r\n }\r\n\r\n return nonTextTokens.sort((a, b) => a.index - b.index)\r\n}\r\n\r\nconst getAllMergedTokens = (nonTextTokens, message) => {\r\n let allTokens = []\r\n let startInd = 0\r\n let token\r\n let i = -1\r\n\r\n if (nonTextTokens.length) {\r\n while ((token = nonTextTokens[++i])) {\r\n if (startInd === token.index) {\r\n allTokens.push(token)\r\n }\r\n else {\r\n const text = message.substring(startInd, token.index)\r\n allTokens.push({\r\n type: types.TEXT,\r\n index: startInd,\r\n content: text\r\n })\r\n allTokens.push(token)\r\n }\r\n const contentLength = token.originalContent ? token.originalContent.length : token.content.length\r\n startInd = token.index + contentLength\r\n }\r\n }\r\n\r\n if (startInd < message.length) {\r\n const text = startInd > 0 ? message.substring(startInd) : message\r\n allTokens.push({\r\n type: types.TEXT,\r\n index: startInd,\r\n content: text\r\n })\r\n }\r\n\r\n return allTokens\r\n}\r\n\r\nconst renderTokens = (tokens, emoticonUrls, options) => {\r\n const retTokenizer = []\r\n const openMenuHandler = options && options.openMenu || false\r\n const sendMessageDisabled = options && options.sendMessageDisabled || false\r\n const onPressLink = options !== undefined && options.onPressLink\r\n\r\n for (let i = 0; i < tokens.length; i++) {\r\n const token = tokens[i]\r\n if (token.type === types.EMOTICON) {\r\n retTokenizer.push(RenderHelper.renderEmoticon(i, emoticonUrls[token.content]))\r\n }\r\n else if (token.type === types.LINK) {\r\n retTokenizer.push(RenderHelper.getUrlText(i, token.content, onPressLink))\r\n }\r\n else if (token.type === types.TEXT) {\r\n retTokenizer.push(RenderHelper.renderStringTokens(i, token.content))\r\n }\r\n else if (token.type === types.VIDEO_IMAGE) {\r\n retTokenizer.push(RenderHelper.renderLinkWithImage(i, token.content, openMenuHandler, sendMessageDisabled))\r\n }\r\n else if (token.type === types.EXTERNAL_APP_LINK) {\r\n retTokenizer.push(RenderHelper.renderExternalAppLink(i, token.content, onPressLink))\r\n }\r\n }\r\n\r\n return RenderHelper.renderTokens(retTokenizer)\r\n}\r\n\r\nexport const nonSiteGlobalGroupsMapForTeacherCommunication = (userGroups, users, students, teacherId) =>\r\n getTeacherCustomAndSingleStudentsGroups(userGroups, teacherId, true)\r\n .reduce((acc, x) => {\r\n if (isGroupSingleStudent(x)) {\r\n const studentData = getStudentDataBySingleStudentGroupId(userGroups, users, students, x.id)\r\n if (userHasFullName(studentData)) {\r\n const name = getUserIdentityString(studentData)\r\n const picture = studentData.picture\r\n acc[x.id] = {\r\n ...x,\r\n name,\r\n picture\r\n }\r\n }\r\n }\r\n else {\r\n acc[x.id] = x\r\n }\r\n return acc\r\n }, {})","import React from 'react'\r\nimport { Typography, Link } from '@material-ui/core'\r\n\r\nexport default class LinkComponent extends React.PureComponent {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n}","\r\nimport { fixGroupedItems } from '../utils/HelperFunctions'\r\nimport { \r\n updateRewardPut, addRewardPost, deleteRewardDelete, rewardsGet, studentRewardsGet, activateRewardPost \r\n} from '../services/EndpointsService'\r\nimport { tryCatchJson } from '../utils/FetchUtils'\r\nimport { NavigatorService, showSuccess } from '../services/SharedServices'\r\nimport ActionTypes from './ActionTypes'\r\n\r\n/* Rewards start */\r\n\r\nexport async function addUpdateRewardFetch(reward, dispatch, goBack) {\r\n const fetchPromise = reward.id \r\n ? updateRewardPut(reward) \r\n : addRewardPost(reward)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(reward.id ? updateReward(value) : addReward(value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function deleteRewardFetch(id, dispatch, goBack) {\r\n const fetchPromise = deleteRewardDelete(id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(dispatch(deleteReward(value)))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function changeRewardIsActiveFetch(reward, dispatch, goBack) {\r\n const fetchPromise = activateRewardPost(reward.id)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setRewardIsActive(reward.id, reward.groupId, responseData.value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadRewardsFetch(groupIds, teacherId, isActive, dispatch) {\r\n const fetchPromise = rewardsGet(groupIds, teacherId, isActive)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n responseData.success && dispatch(setRewards(responseData.items, groupIds))\r\n return responseData\r\n}\r\n\r\nexport async function loadStudentRewardsFetch(isTeacher, groupIds, teacherId, studentId, dispatch) {\r\n const fetchPromise = studentRewardsGet(studentId, groupIds, teacherId, true)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n // dispatch(addOrUpdateRewards(responseData.items, groupIds)) TODO: do we need this?\r\n const studentItems = fixGroupedItems(responseData, 'rewardId')\r\n dispatch(setStudentRewards(isTeacher ? studentId : teacherId, studentItems, groupIds))\r\n }\r\n return responseData\r\n}\r\n\r\n/* Rewards end */\r\n\r\n/* Rewards redux start */\r\n\r\nexport function addReward(reward) {\r\n return { type: ActionTypes.TEACHER_ADD_REWARD_ACTION, reward }\r\n}\r\n\r\nexport function updateReward(reward) {\r\n return { type: ActionTypes.TEACHER_UPDATE_REWARD_ACTION, reward }\r\n}\r\n\r\nexport function deleteReward(reward) {\r\n return { type: ActionTypes.TEACHER_DELETE_REWARD_ACTION, reward } \r\n}\r\n\r\nexport function setRewardIsActive(id, groupId, isActive) {\r\n return { type: ActionTypes.TEACHER_REWARD_CHANGE_IS_ACTIVE_ACTION, id, isActive, groupId }\r\n}\r\n\r\nexport function setRewards(rewards, groupIds) {\r\n return { type: ActionTypes.TEACHER_SET_REWARDS_ACTION, rewards, groupIds }\r\n}\r\n\r\nexport function setStudentRewards(userId, rewards, groupIds) {\r\n return { type: ActionTypes.SET_STUDENT_REWARDS, userId, rewards, groupIds }\r\n}\r\n\r\nexport function addOrUpdateRewards(rewards, groupIds) {\r\n return { type: ActionTypes.TEACHER_ADD_OR_UPDATE_REWARDS_ACTION, rewards, groupIds }\r\n}\r\n\r\n/* Rewards redux end */","import React from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { Button } from '@material-ui/core'\r\nimport { texti18n, Messages } from 'dpn-common/utils/MessageConstants'\r\nimport { LinksHelper } from 'dpn-common/utils/LinkRegexHelper'\r\n\r\nfunction ExternalAppLink({ url, onOpenAssignmentLink }) {\r\n const lowerCaseUrl = url.toLowerCase()\r\n const userId = useSelector(({ base }) => base.auth.userData.id)\r\n if (lowerCaseUrl.startsWith(LinksHelper.ExternalAppUrls.ISM)) {\r\n const ismUrl = LinksHelper.toIsmLink(url)\r\n const onIsmPressHandler = () => onOpenAssignmentLink(ismUrl, userId)\r\n return (\r\n \r\n {texti18n(Messages.OPEN_SHEET_MUSIC)}\r\n \r\n )\r\n }\r\n\r\n const onPressHandler = () => onOpenAssignmentLink(url, userId)\r\n const title = LinksHelper.getLinkTitle(lowerCaseUrl)\r\n return (\r\n \r\n {texti18n(title)}\r\n \r\n )\r\n}\r\n\r\nexport const ExternalAppLinkComponent = React.memo(ExternalAppLink)","import ActionTypes from './ActionTypes'\r\nimport { getUser } from '../utils/UserHelper'\r\nimport { initializeSettings } from './SettingsAndLanguagesActions'\r\nimport { createErrorResponse, tryCatchJson } from '../utils/FetchUtils'\r\nimport { USER_TYPES } from '../utils/AppConstants'\r\nimport { Messages, texti18n, GLOBAL_FIELD_KEY } from 'dpn-common/utils/MessageConstants'\r\nimport SharedServices, { getOS } from '../services/SharedServices'\r\nimport NotificationsHelper from 'dpn-common/utils/NotificationsHelper'\r\nimport { loginExternalGet } from 'dpn-common/services/IdentityEndpointsService'\r\nimport { isEmail } from 'dpn-common/utils/FormValidators'\r\nimport { onAppInitLoggedInForAutomaticLogin, onAppInitLoggedOutForAutomaticLogin } from './AutomaticLoginActions'\r\n\r\nexport async function initializeAppAction(dispatch) {\r\n SharedServices.FirebaseService.setOnAuthStateChanged(async firebaseUser => {\r\n SharedServices.FirebaseService.setOnAuthStateChanged(null)\r\n\r\n if (getOS() === 'web') {\r\n await initializeAuth(firebaseUser, dispatch)\r\n }\r\n else {\r\n // fix for: on native this part hangs when inside firebases OnAuthStateChanged\r\n setTimeout(() => initializeAuth(firebaseUser, dispatch), 100)\r\n }\r\n })\r\n}\r\n\r\nconst initializeAuth = async (firebaseUser, dispatch) => {\r\n if (firebaseUser) {\r\n const fetchPromise = loginExternalGet(firebaseUser.uid)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n await loginUser(responseData.user, dispatch)\r\n await onAppInitLoggedInForAutomaticLogin(dispatch)\r\n return\r\n }\r\n }\r\n\r\n await onAppInitLoggedOutForAutomaticLogin(dispatch)\r\n await logoutSimple(dispatch)\r\n}\r\n\r\nexport async function executeLoginWithEmailAndPassword({ email, username, password }, isStudentChildLogin, loginUserInRedux, dispatch) {\r\n const firebaseLoginResponse = await firebaseLoginWithEmailAndPassword(email, username, password, isStudentChildLogin)\r\n if (firebaseLoginResponse.errorData || !firebaseLoginResponse.user) {\r\n return firebaseLoginResponse.errorData || {}\r\n }\r\n\r\n return await appLoginUsingFirebaseUser(firebaseLoginResponse.user, loginUserInRedux, dispatch)\r\n}\r\n\r\nexport async function executeGoogleLogin(loginUserInRedux, dispatch) {\r\n const firebaseLoginResponse = await firebaseGoogleLogin()\r\n if (firebaseLoginResponse.errorData || !firebaseLoginResponse.user) {\r\n return firebaseLoginResponse.errorData || {}\r\n }\r\n\r\n return await appLoginUsingFirebaseUser(firebaseLoginResponse.user, loginUserInRedux, dispatch)\r\n}\r\n\r\nexport async function executeAppleLogin(loginUserInRedux, dispatch) {\r\n const firebaseLoginResponse = await firebaseAppleLogin()\r\n if (firebaseLoginResponse.errorData || !firebaseLoginResponse.user) {\r\n return firebaseLoginResponse.errorData || {}\r\n }\r\n\r\n return await appLoginUsingFirebaseUser(firebaseLoginResponse.user, loginUserInRedux, dispatch)\r\n}\r\n\r\nexport async function executeLoginWithCustomToken(customLoginToken, dispatch) {\r\n const firebaseLoginResponse = await firebaseLoginWithCustomToken(customLoginToken)\r\n if (firebaseLoginResponse.errorData || !firebaseLoginResponse.user) {\r\n return firebaseLoginResponse.errorData || {}\r\n }\r\n\r\n return await appLoginUsingFirebaseUser(firebaseLoginResponse.user, true, dispatch)\r\n}\r\n\r\nasync function firebaseLoginWithEmailAndPassword(email, username, password, isStudentChildLogin) {\r\n const firebaseEmail = getFirebaseEmail(email, username, isStudentChildLogin)\r\n if (!firebaseEmail) {\r\n const errorData = isStudentChildLogin ? createErrorResponse('username', Messages.INVALID_USERNAME) : createErrorResponse('email', Messages.INVALID_EMAIL)\r\n return { errorData }\r\n }\r\n\r\n try {\r\n const user = await SharedServices.FirebaseService.loginWithEmailAndPassword(firebaseEmail, password)\r\n return { user }\r\n }\r\n catch (error) {\r\n const errorData = createErrorResponse(GLOBAL_FIELD_KEY, formatFirebaseLoginError(error, isStudentChildLogin))\r\n return { errorData }\r\n }\r\n}\r\n\r\nasync function firebaseGoogleLogin() {\r\n try {\r\n const user = await SharedServices.FirebaseService.loginWithGoogle()\r\n return { user }\r\n }\r\n catch (error) {\r\n const errorData = createErrorResponse(GLOBAL_FIELD_KEY, formatFirebaseLoginError(error))\r\n return { errorData }\r\n }\r\n}\r\n\r\nasync function firebaseAppleLogin() {\r\n try {\r\n const user = await SharedServices.FirebaseService.loginWithApple()\r\n return { user }\r\n }\r\n catch (error) {\r\n const errorData = createErrorResponse(GLOBAL_FIELD_KEY, formatFirebaseLoginError(error))\r\n return { errorData }\r\n }\r\n}\r\n\r\nasync function firebaseLoginWithCustomToken(customLoginToken) {\r\n try {\r\n const user = await SharedServices.FirebaseService.loginWithCustomToken(customLoginToken)\r\n return { user }\r\n }\r\n catch (error) {\r\n const errorData = createErrorResponse(GLOBAL_FIELD_KEY, formatFirebaseLoginError(error, undefined, true))\r\n return { errorData }\r\n }\r\n}\r\n\r\nexport async function appLoginUsingFirebaseUser(firebaseUser, loginUserInRedux, dispatch) {\r\n const fetchPromise = loginExternalGet(firebaseUser.uid)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n loginUserInRedux && await loginUser(responseData.user, dispatch)\r\n }\r\n\r\n const token = await SharedServices.FirebaseService.getAccessToken(firebaseUser)\r\n\r\n return {\r\n ...responseData,\r\n firebaseUser,\r\n token,\r\n }\r\n}\r\n\r\nexport async function executeLogout(wasLoggedIn, role, dispatch) {\r\n getUser(role).onLogout()\r\n // // Comment line bellow if you want to enable notifications for last logged in (but now logged out) user\r\n wasLoggedIn && await NotificationsHelper.sendTokenToServer(false)\r\n await logoutSimple(dispatch)\r\n}\r\n\r\nasync function logoutSimple(dispatch) {\r\n await initializeSettings(0, USER_TYPES.GUEST, false, dispatch)\r\n SharedServices.SentryService.setUser(null)\r\n SharedServices.AnalyticsService.setUser(null)\r\n dispatch(logoutActionSimple())\r\n await firebaseLogout()\r\n}\r\n\r\nexport async function firebaseLogout() {\r\n return await SharedServices.FirebaseService.logout()\r\n}\r\n\r\nexport async function executeFbLogin(accessToken, { email, username, firstName, lastName, roleId }, dispatch) {\r\n return {}\r\n /*\r\n const fetchPromise = loginFbPost({ email, username, firstName, lastName, roleId, accessToken })\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n if (responseData.refreshToken) {\r\n const { token, refreshToken, user: userData } = responseData\r\n await loginUser(token, refreshToken, userData, dispatch)\r\n }\r\n }\r\n return responseData\r\n */\r\n}\r\n\r\nasync function loginUser(userData, dispatch) {\r\n // execute \"in parallel\" two tasks (settings and languages / user basic data) because they do not depend on each other\r\n // eslint-disable-next-line no-unused-vars\r\n const [_, onLoginResultData] = await Promise.all([\r\n (async () => {\r\n const settingsData = await NotificationsHelper.sendTokenToServer(true)\r\n await initializeSettings(userData.id, userData.role, settingsData, dispatch)\r\n })(),\r\n (async () => {\r\n return await getUser(userData.role).onLogin(userData, dispatch)\r\n })()\r\n ])\r\n\r\n if (!onLoginResultData || !onLoginResultData.success) {\r\n // if groups or some other mandatory data failed to load during login process => execute logout - this will set isInitializing to false\r\n await logoutSimple(dispatch)\r\n }\r\n else {\r\n SharedServices.SentryService.setUser(userData)\r\n SharedServices.AnalyticsService.setUser(userData)\r\n // set login data in redux and initialize sentry\r\n dispatch(loginActionSimple(userData))\r\n }\r\n}\r\n\r\nfunction formatFirebaseLoginError(error, isStudentChildLogin, isCustomTokenLogin) {\r\n const defaultErrorMessage = `${error.code} - ${error.message}`\r\n\r\n if (isCustomTokenLogin) {\r\n return defaultErrorMessage\r\n }\r\n\r\n if (error.code === 'auth/user-not-found' || error.code === 'auth/wrong-password') {\r\n return texti18n(isStudentChildLogin ? Messages.INVALID_USERNAME_LOGIN : Messages.INVALID_EMAIL_LOGIN)\r\n }\r\n\r\n return defaultErrorMessage\r\n}\r\n\r\nconst FIREBASE_DEFAULT_EMAIL_PROVIDER = '@internalpianoadventuresdomain.com'\r\n\r\nfunction getFirebaseEmail(email, username, isStudentChildLogin) {\r\n if ((isStudentChildLogin && !username) || (!isStudentChildLogin && !email)) {\r\n return\r\n }\r\n\r\n const firebaseEmail = isStudentChildLogin ? `${username}${FIREBASE_DEFAULT_EMAIL_PROVIDER}` : email\r\n return isEmail(firebaseEmail) ? firebaseEmail : undefined\r\n}\r\n\r\nfunction loginActionSimple(userData) {\r\n return { type: ActionTypes.LOG_IN_ACTION, userData }\r\n}\r\n\r\nfunction logoutActionSimple() {\r\n return { type: ActionTypes.LOG_OUT_ACTION }\r\n}\r\n\r\n","import React from 'react'\r\nimport { LocalImages } from 'utils/LocalImages'\r\n\r\nexport default function SplashScreenComponent(_props) {\r\n return (\r\n
\r\n\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
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}","import AppConfig from 'dpn-common/config/AppConfig'\r\n\r\nexport const NOTIFICATION_TYPES = Object.freeze({\r\n MESSAGES: 0,\r\n CHANNELS: 1,\r\n LEADERBOARD: 2,\r\n STUDENT_INVITED: 3,\r\n STUDENT_ACCEPTED_INVITATION: 4,\r\n LESSONS: 5,\r\n ASSIGNMENT_COMMENTS: 6,\r\n})\r\n\r\nexport const TEACHER_NOTIFICATION_TYPES = Object.freeze([\r\n NOTIFICATION_TYPES.MESSAGES,\r\n NOTIFICATION_TYPES.CHANNELS,\r\n NOTIFICATION_TYPES.STUDENT_ACCEPTED_INVITATION,\r\n NOTIFICATION_TYPES.ASSIGNMENT_COMMENTS,\r\n])\r\n\r\nexport const STUDENT_NOTIFICATION_TYPES = Object.freeze([\r\n NOTIFICATION_TYPES.MESSAGES,\r\n NOTIFICATION_TYPES.CHANNELS,\r\n NOTIFICATION_TYPES.LEADERBOARD,\r\n NOTIFICATION_TYPES.STUDENT_INVITED,\r\n NOTIFICATION_TYPES.LESSONS,\r\n NOTIFICATION_TYPES.ASSIGNMENT_COMMENTS,\r\n\r\n])\r\n\r\nexport const ACTION_NOTIFICATION_TYPES = Object.freeze({\r\n STUDENT_INVITED: 'STUDENT_INVITED',\r\n NEW_MESSAGE: 'NEW_MESSAGE',\r\n NEW_CHANNEL_MESSAGE: 'NEW_CHANNEL_MESSAGE',\r\n STUDENT_ACCEPTED_INVITATION: 'STUDENT_ACCEPTED_INVITATION',\r\n SKILL_ADDED_TO_STUDENT: 'SKILL_ADDED_TO_STUDENT',\r\n SKILL_REMOVED_FROM_STUDENT: 'SKILL_REMOVED_FROM_STUDENT',\r\n NEW_LESSON: 'NEW_LESSON',\r\n NEW_ASSIGNMENT_COMMENT: 'NEW_ASSIGNMENT_COMMENT',\r\n})\r\n\r\nexport const NOTIFICATION_TOPICS = Object.freeze({\r\n TEACHER_CHANNEL: 'TeacherChannel' + AppConfig.topicSuffix,\r\n STUDENT_CHANNEL: 'StudentChannel' + AppConfig.topicSuffix,\r\n})","import EventListenerService from 'dpn-common/services/EventListenerService'\r\nimport { decodeQueryString, parametersToQueryString } from 'dpn-common/utils/UrlQueryHelperFunctions'\r\n\r\nconst EVENT_TYPE = 'NAVIGATOR_ROUTE_CHANGED'\r\nlet _history\r\nlet stateChangedListener\r\nlet _routeMappings\r\nlet _routeReverseMappings\r\nlet _routes\r\n\r\nfunction init(history, routeMappings, routeReverseMappings, routes) {\r\n _history = history\r\n _routeMappings = routeMappings\r\n _routeReverseMappings = routeReverseMappings\r\n _routes = routes\r\n stateChangedListener = _history.listen(stateChanged)\r\n}\r\n\r\nfunction dispose() {\r\n stateChangedListener && stateChangedListener()\r\n}\r\n\r\nfunction addRouteChangeListener(callback) {\r\n return EventListenerService.subscribe(EVENT_TYPE, callback)\r\n}\r\n\r\nfunction navigate(routeName, params, key) {\r\n _history.push(url(routeName, params, key))\r\n}\r\n\r\nfunction push(routeName, params) {\r\n navigate(routeName, params)\r\n}\r\n\r\nfunction goBack() {\r\n _history.goBack()\r\n}\r\n\r\nfunction pop(number) {\r\n if (number > 0) {\r\n _history.go(-number)\r\n }\r\n else {\r\n _history.goBack()\r\n }\r\n}\r\n\r\nfunction setParams(params) {\r\n const route = getCurrentRoute()\r\n navigate(route.name, params)\r\n}\r\n\r\nfunction reset(routeNames, routeParams, _routeKeys) {\r\n _history.go(-history.length) \r\n routeNames.forEach((rn, index) => {\r\n navigate(rn, routeParams ? routeParams[index] : undefined)\r\n })\r\n}\r\n\r\nfunction navigateAndReset(routeName, params) {\r\n _history.go(-history.length)\r\n navigate(routeName, params)\r\n}\r\n\r\nfunction url(routeName, params, key) {\r\n const route = routeName in _routeMappings ? _routeMappings[routeName] : routeName\r\n if (!!key && !(key in params)) {\r\n params = { ...params, key }\r\n }\r\n const parametersStrings = parametersToQueryString(params, '[]')\r\n return route + parametersStrings\r\n}\r\n\r\nfunction toggleDrawer() {\r\n}\r\n\r\nfunction closeDrawer() {\r\n}\r\n\r\nfunction openDrawer() {\r\n}\r\n\r\n// gets the current screen from navigation state\r\nfunction getRoute(location) {\r\n const params = decodeQueryString(location.search || '')\r\n const path = location.pathname || '/'\r\n const name = path in _routeReverseMappings ? _routeReverseMappings[path] : path\r\n return { name, params, path }\r\n}\r\n\r\nfunction getCurrentRoute() {\r\n return getRoute(_history.location)\r\n}\r\n\r\nfunction stateChanged(location, action) {\r\n const data = { currentLocation: location, action }\r\n EventListenerService.notify(EVENT_TYPE, data)\r\n}\r\n\r\nfunction hasPermission(pathname, role) {\r\n const matched = (_routes || []).find(x => x.path === pathname)\r\n if (matched) {\r\n const auth = matched.auth\r\n if (auth === null || auth === undefined || auth.length === 0) {\r\n return true\r\n }\r\n return auth.includes(role)\r\n }\r\n return false\r\n}\r\n\r\n// add other navigation functions that you need and export them\r\nexport default {\r\n init,\r\n dispose,\r\n navigate,\r\n reset,\r\n push,\r\n goBack,\r\n pop,\r\n setParams,\r\n navigateAndReset,\r\n toggleDrawer,\r\n closeDrawer,\r\n openDrawer,\r\n stateChanged,\r\n getCurrentRoute,\r\n addRouteChangeListener,\r\n url,\r\n getRoute,\r\n hasPermission\r\n}","export * from './fuse'\r\n","import { tryCatchJson } from '../utils/FetchUtils'\r\nimport { texti18n, Messages } from '../utils/MessageConstants'\r\nimport ActionTypes from './ActionTypes'\r\nimport {\r\n groupsGet, updateGroupPut, addGroupPost,\r\n deleteGroupDelete, groupNotesGet, updateGroupNotePut,\r\n addGroupNotePost, deleteGroupNoteDelete, sortGroupNotesPost\r\n} from '../services/EndpointsService'\r\nimport { NavigatorService, showError, showSuccess } from '../services/SharedServices'\r\nimport { userConnectionForUserIdGet, userConnectionGet } from 'dpn-common/services/IdentityEndpointsService'\r\nimport { GROUP_TYPES, ROLE_ID, USER_TYPES } from 'dpn-common/utils/AppConstants'\r\n\r\nexport async function loadGroupsDataForStudentWithProvidedUserConnectionsRequiredFetch( // TODO: make this name not soo f big\r\n { loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate },\r\n userConnections, teacherId, dispatch) {\r\n const fetchPromise = groupsGet({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate })\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n ]\r\n if (teacherId) {\r\n const fetchPromiseGetUsersForTeacher = userConnectionForUserIdGet(teacherId)\r\n calls.push(tryCatchJson(fetchPromiseGetUsersForTeacher, false))\r\n }\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForStudent([responseDatas[0], { items: userConnections }, responseDatas[1]], teacherId)\r\n dispatch(setGroupsData(responseDatas[0]))\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas[0].success = false // we need to mark somehow to called that request failed\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function loadGroupsDataForStudentFetch({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate }, dispatch, teacherId) {\r\n const fetchPromise = groupsGet({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate })\r\n const fetchPromiseGetUsers = userConnectionGet()\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n tryCatchJson(fetchPromiseGetUsers, false)\r\n ]\r\n if (teacherId) {\r\n const fetchPromiseGetUsersForTeacher = userConnectionForUserIdGet(teacherId)\r\n calls.push(tryCatchJson(fetchPromiseGetUsersForTeacher, false))\r\n }\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForStudent([responseDatas[0], responseDatas[1], responseDatas[2]], teacherId)\r\n dispatch(setGroupsData(responseDatas[0]))\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas[0].success = false // we need to mark somehow to called that request failed\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function loadGroupsDataForTeacherFetch({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate }, dispatch, userData) {\r\n const fetchPromise = groupsGet({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate })\r\n const fetchPromiseGetUsers = userConnectionGet()\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n tryCatchJson(fetchPromiseGetUsers, false)\r\n ]\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForTeacher([responseDatas[0], responseDatas[1]], userData)\r\n dispatch(setGroupsData(responseDatas[0]))\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas[0].success = false // we need to mark somehow to called that request failed\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function loadGroupsDataForStudentFetchNoDispatch({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate }, teacherId) {\r\n const fetchPromise = groupsGet({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate })\r\n const fetchPromiseGetUsers = userConnectionGet()\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n tryCatchJson(fetchPromiseGetUsers, false)\r\n ]\r\n if (teacherId) {\r\n const fetchPromiseGetUsersForTeacher = userConnectionForUserIdGet(teacherId)\r\n calls.push(tryCatchJson(fetchPromiseGetUsersForTeacher, false))\r\n }\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForStudent([responseDatas[0], responseDatas[1], responseDatas[2]], teacherId)\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas[0].success = false // we need to mark somehow to called that request failed\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function loadGroupsDataForTeacherFetchNoDispatch({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate }, userData) {\r\n const fetchPromise = groupsGet({ loadGlobalGroups, loadUsers, loadSchedules, loadSingleStudentGroups, schedulesStartDate })\r\n const fetchPromiseGetUsers = userConnectionGet()\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n tryCatchJson(fetchPromiseGetUsers, false)\r\n ]\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForTeacher([responseDatas[0], responseDatas[1]], userData)\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas[0].success = false // we need to mark somehow to called that request failed\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function addUpdateGroupFetch(group, users, schedules, userData, dispatch, goBack) {\r\n const fetchPromise = group.id\r\n ? updateGroupPut(group, users, schedules)\r\n : addGroupPost(group, users, schedules)\r\n const fetchPromiseGetUsers = userConnectionGet()\r\n const calls = [\r\n tryCatchJson(fetchPromise, false),\r\n tryCatchJson(fetchPromiseGetUsers, false)\r\n ] \r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n fixGroupDataForTeacher([responseDatas[0], responseDatas[1]], userData)\r\n dispatch(setGroupsData(responseDatas[0]))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n }\r\n return responseDatas[0]\r\n}\r\n\r\nexport async function deleteGroupFetch(id, dispatch, goBack) {\r\n const fetchPromise = deleteGroupDelete(id)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteGroup(id))\r\n showSuccess(texti18n(Messages.GROUP_HAS_BEEN_DELETED))\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function loadGroupNotesFetch(groupId, dispatch) {\r\n const fetchPromise = groupNotesGet(groupId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n responseData.success && dispatch(setGroupNotes(groupId, responseData.items))\r\n return responseData\r\n}\r\n\r\nexport async function addUpdateGroupNoteFetch(groupId, data, dispatch, goBack) {\r\n const fetchPromise = data.id\r\n ? updateGroupNotePut(groupId, data)\r\n : addGroupNotePost(groupId, data)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n const value = responseData.value\r\n dispatch(data.id ? updateGroupNote(groupId, value) : addGroupNote(groupId, value))\r\n showSuccess()\r\n goBack && NavigatorService.goBack()\r\n } \r\n return responseData\r\n}\r\n\r\nexport async function deleteGroupNoteFetch(groupId, noteId, dispatch, goBack) {\r\n const fetchPromise = deleteGroupNoteDelete(groupId, noteId)\r\n const responseData = await tryCatchJson(fetchPromise)\r\n if (responseData.success) {\r\n dispatch(deleteGroupNote(groupId, noteId))\r\n showSuccess(texti18n(Messages.NOTE_HAS_BEEN_DELETED))\r\n goBack && NavigatorService.goBack()\r\n }\r\n return responseData\r\n}\r\n\r\nexport async function deleteGroupNotesFetch(groupId, noteIds, dispatch, goBack) {\r\n const calls = (noteIds || []).map(x => {\r\n return tryCatchJson(deleteGroupNoteDelete(groupId, x), false)\r\n })\r\n const responseDatas = await Promise.all(calls)\r\n if (responseDatas.every(x => x.success)) {\r\n dispatch(deleteGroupNotes(groupId, noteIds))\r\n responseDatas.success = true\r\n goBack && NavigatorService.goBack()\r\n }\r\n else {\r\n const error = responseDatas.find(x => !x.success)\r\n showError(error.message)\r\n responseDatas.success = false\r\n }\r\n return responseDatas\r\n}\r\n\r\nexport async function sortGroupNotesFetch(groupId, noteIds, dispatch) {\r\n const fetchPromise = sortGroupNotesPost(groupId, noteIds)\r\n const responseData = await tryCatchJson(fetchPromise, true)\r\n if (responseData.success) {\r\n dispatch(setGroupNotes(groupId, responseData.items))\r\n }\r\n return responseData\r\n}\r\n\r\nfunction fixGroupDataForStudent([responseData, users, teacherUsers], teacherId) {\r\n let allUsers\r\n if (teacherUsers && teacherUsers.items) {\r\n // currently its easier to fix this on front\r\n teacherUsers.items.forEach(x => {\r\n if (x.roleId === ROLE_ID.STUDENT) {\r\n x.firstName = x.lastName = undefined\r\n }\r\n })\r\n allUsers = users.items.concat(teacherUsers.items)\r\n }\r\n else {\r\n allUsers = users.items\r\n }\r\n\r\n // user must exist on both dpn and identity in order to be inside users\r\n const dpnUsersMap = responseData.users.reduce((p, x) => {\r\n p[x.id] = x\r\n return p\r\n }, {})\r\n responseData.users = allUsers\r\n .filter(x => x.id in dpnUsersMap)\r\n .map(user => ({\r\n ...user,\r\n leaderboardParticipation: dpnUsersMap[user.id].leaderboardParticipation,\r\n }))\r\n\r\n // TODO: do we need this?!?!? why should we put dpn users who are not in identity list (leaderboard participation only) inside user list?!?!?\r\n // if (!teacherId) {\r\n // responseData.users = responseData.users.concat(dpnUsers.filter(x => !allUsers.some(y => y.id === x.id)))\r\n // }\r\n\r\n const studentIds = teacherUsers && teacherUsers.items.map(x => x.id)\r\n const teachersStudents = []\r\n\r\n if (studentIds) {\r\n\r\n const students = {}\r\n students.students = {}\r\n\r\n studentIds.forEach(id => {\r\n const student = {}\r\n const teacherSingleStudentGroups = responseData.userGroups.filter(x => x.groupType === GROUP_TYPES.TEACHER_SINGLE_STUDENT)\r\n const teacherSingleStudentGroup = teacherSingleStudentGroups.find(x => x.userId === teacherId && x.users.some(y => y.userId === id))\r\n if (teacherSingleStudentGroup) {\r\n const user = teacherSingleStudentGroup.users.find(x => x.role === USER_TYPES.STUDENT)\r\n student.assignLevelId = teacherSingleStudentGroup.assignLevelId\r\n student.availablePoints = user.availablePoints || 0\r\n student.leaderboardParticipation = user.leaderboardParticipation\r\n student.points = user.points || 0\r\n student.isActive = user.isActive\r\n student.defaultUserGroupId = teacherSingleStudentGroup.id\r\n student.isInvited = teacherUsers.items.find(user => user.id === id).isInvited\r\n students.students[id] = student\r\n }\r\n })\r\n students.teacherId = teacherId\r\n teachersStudents.push(students)\r\n }\r\n responseData.students = teachersStudents\r\n}\r\n\r\nfunction fixGroupDataForTeacher([responseData, users], userData) {\r\n const allUsers = users.items.concat(userData)\r\n const dpnUsersMap = responseData.users.reduce((p, x) => {\r\n p[x.id] = x\r\n return p\r\n }, {})\r\n // user must exist on both dpn and identity in order to be inside users\r\n responseData.users = allUsers\r\n .filter(x => x.id in dpnUsersMap)\r\n .map(user => ({\r\n ...user,\r\n leaderboardParticipation: dpnUsersMap[user.id].leaderboardParticipation,\r\n }))\r\n\r\n const studentIds = users.items.map(x => x.id)\r\n const teachersStudents = []\r\n\r\n if (studentIds) {\r\n const students = {}\r\n students.students = {}\r\n\r\n studentIds.forEach(id => {\r\n const student = {}\r\n const teacherSingleStudentGroups = responseData.userGroups.filter(x => x.groupType === GROUP_TYPES.TEACHER_SINGLE_STUDENT)\r\n const teacherSingleStudentGroup = teacherSingleStudentGroups.find(x => x.userId === userData.id && x.users.some(y => y.userId === id))\r\n if (teacherSingleStudentGroup) {\r\n const user = teacherSingleStudentGroup.users.find(x => x.role === USER_TYPES.STUDENT)\r\n student.assignLevelId = teacherSingleStudentGroup.assignLevelId\r\n student.availablePoints = user.availablePoints || 0\r\n student.leaderboardParticipation = user.leaderboardParticipation\r\n student.points = user.points || 0\r\n student.isActive = user.isActive\r\n student.defaultUserGroupId = teacherSingleStudentGroup.id\r\n student.isInvited = users.items.find(user => user.id === id).isInvited\r\n student.schedules = teacherSingleStudentGroup.schedules\r\n students.students[id] = student\r\n }\r\n })\r\n students.teacherId = userData.id\r\n teachersStudents.push(students)\r\n }\r\n responseData.students = teachersStudents\r\n}\r\n\r\nexport function setGroupsData(data) {\r\n return { type: ActionTypes.GROUPS_DATA_SET_ACTION, data }\r\n}\r\n\r\nfunction deleteGroup(groupId) {\r\n return { type: ActionTypes.GROUP_DELETE_ACTION, groupId }\r\n}\r\n\r\nexport function setSelectedGroupStudents(selectedGroupStudentIds) {\r\n return { type: ActionTypes.SELECTED_GROUP_STUDENTS_SET, selectedGroupStudentIds }\r\n}\r\n\r\nfunction setGroupNotes(groupId, notes) {\r\n return { type: ActionTypes.SET_GROUP_NOTES_ACTION, groupId, notes }\r\n}\r\n\r\nfunction addGroupNote(groupId, note) {\r\n return { type: ActionTypes.ADD_GROUP_NOTE_ACTION, groupId, note }\r\n}\r\n\r\nfunction updateGroupNote(groupId, note) {\r\n return { type: ActionTypes.UPDATE_GROUP_NOTE_ACTION, groupId, note }\r\n}\r\n\r\nfunction deleteGroupNote(groupId, noteId) {\r\n return { type: ActionTypes.DELETE_GROUP_NOTE_ACTION, groupId, noteId }\r\n}\r\n\r\nfunction deleteGroupNotes(groupId, noteIds) {\r\n return { type: ActionTypes.DELETE_GROUP_NOTES_ACTION, groupId, noteIds }\r\n}\r\n","import { FuseUtils } from '@fuse'\r\n\r\nexport const GET_NAVIGATION = '[NAVIGATION] GET NAVIGATION'\r\nexport const SET_NAVIGATION = '[NAVIGATION] SET NAVIGATION'\r\nexport const RESET_NAVIGATION = '[NAVIGATION] RESET NAVIGATION'\r\n\r\nexport function getNavigation() {\r\n return {\r\n type: GET_NAVIGATION\r\n }\r\n}\r\n\r\nexport function setNavigation(navigation) {\r\n return {\r\n type: SET_NAVIGATION,\r\n navigation\r\n }\r\n}\r\n\r\nexport function resetNavigation() {\r\n return {\r\n type: RESET_NAVIGATION\r\n }\r\n}\r\n\r\nexport function appendNavigationItem(item, parentId) {\r\n return (dispatch, getState) => {\r\n const { navigation } = getState().fuse\r\n return dispatch({\r\n type: SET_NAVIGATION,\r\n navigation: FuseUtils.appendNavItem(navigation, item, parentId)\r\n })\r\n }\r\n}\r\n\r\nexport function prependNavigationItem(item, parentId) {\r\n return (dispatch, getState) => {\r\n const { navigation } = getState().fuse\r\n return dispatch({\r\n type: SET_NAVIGATION,\r\n navigation: FuseUtils.prependNavItem(navigation, item, parentId)\r\n })\r\n }\r\n}\r\n\r\nexport function updateNavigationItem(id, item) {\r\n return (dispatch, getState) => {\r\n const { navigation } = getState().fuse\r\n return dispatch({\r\n type: SET_NAVIGATION,\r\n navigation: FuseUtils.updateNavItem(navigation, id, item)\r\n })\r\n }\r\n}\r\n\r\nexport function removeNavigationItem(id) {\r\n return (dispatch, getState) => {\r\n const { navigation } = getState().fuse\r\n return dispatch({\r\n type: SET_NAVIGATION,\r\n navigation: FuseUtils.removeNavItem(navigation, id)\r\n })\r\n }\r\n}\r\n","export const SET_SETTINGS = '[SETTINGS] SET SETTINGS'\r\nexport const SET_DEFAULT_SETTINGS = '[SETTINGS] SET DEFAULT SETTINGS'\r\nexport const SET_INITIAL_SETTINGS = '[SETTINGS] SET INITIAL SETTINGS'\r\nexport const RESET_DEFAULT_SETTINGS = '[SETTINGS] RESET DEFAULT SETTINGS'\r\n\r\nexport function setSettings(value) {\r\n return {\r\n type: SET_SETTINGS,\r\n value\r\n }\r\n}\r\n\r\nexport function setDefaultSettings(value) {\r\n return {\r\n type: SET_DEFAULT_SETTINGS,\r\n value\r\n }\r\n}\r\n\r\nexport function setInitialSettings() {\r\n return {\r\n type: SET_INITIAL_SETTINGS\r\n }\r\n}\r\n\r\nexport function resetSettings(value) {\r\n return {\r\n type: RESET_DEFAULT_SETTINGS,\r\n value\r\n }\r\n}\r\n","export const OPEN_FOLDED_NAVBAR = '[NAVBAR] OPEN FOLDED'\r\nexport const CLOSE_FOLDED_NAVBAR = '[NAVBAR] CLOSE FOLDED'\r\nexport const TOGGLE_FOLDED_NAVBAR = '[NAVBAR] TOGGLE FOLDED'\r\nexport const TOGGLE_MOBILE_NAVBAR = '[NAVBAR] TOGGLE MOBILE'\r\nexport const OPEN_MOBILE_NAVBAR = '[NAVBAR] OPEN MOBILE'\r\nexport const CLOSE_MOBILE_NAVBAR = '[NAVBAR] CLOSE MOBILE'\r\n\r\nexport function navbarToggleFolded() {\r\n return {\r\n type: TOGGLE_FOLDED_NAVBAR\r\n }\r\n}\r\n\r\nexport function navbarOpenFolded() {\r\n return {\r\n type: OPEN_FOLDED_NAVBAR\r\n }\r\n}\r\n\r\nexport function navbarCloseFolded() {\r\n return {\r\n type: CLOSE_FOLDED_NAVBAR\r\n }\r\n}\r\n\r\nexport function navbarToggleMobile() {\r\n return {\r\n type: TOGGLE_MOBILE_NAVBAR\r\n }\r\n}\r\n\r\nexport function navbarOpenMobile() {\r\n return {\r\n type: OPEN_MOBILE_NAVBAR\r\n }\r\n}\r\n\r\nexport function navbarCloseMobile() {\r\n return {\r\n type: CLOSE_MOBILE_NAVBAR\r\n }\r\n}\r\n\r\n","export const HIDE_MESSAGE = '[MESSAGE] CLOSE'\r\nexport const SHOW_MESSAGE = '[MESSAGE] SHOW'\r\n\r\nexport function hideMessage() {\r\n return {\r\n type: HIDE_MESSAGE\r\n }\r\n}\r\n\r\nexport function showMessage(options) {\r\n return {\r\n type: SHOW_MESSAGE,\r\n options\r\n }\r\n}\r\n\r\n","export const OPEN_DIALOG = '[DIALOG] OPEN'\r\nexport const CLOSE_DIALOG = '[DIALOG] CLOSE'\r\n\r\n\r\nexport function closeDialog() {\r\n return {\r\n type: CLOSE_DIALOG\r\n }\r\n}\r\n\r\nexport function openDialog(options) {\r\n return {\r\n type: OPEN_DIALOG,\r\n options\r\n }\r\n}\r\n\r\n","export * from './navigation.actions'\r\nexport * from './settings.actions'\r\nexport * from './navbar.actions'\r\nexport * from './message.actions'\r\nexport * from './dialog.actions'\r\n","import { createSelector } from 'reselect'\r\nimport { getFromDict } from '../utils/HelperFunctions'\r\nimport { GROUP_TYPES, USER_TYPES } from '../utils/AppConstants'\r\nimport { sortUsers } from 'dpn-common/utils/UserHelper'\r\nimport { getDayIndexFromDayString, getJSDateFromJson, getMomentDate, getMomentDateFromJson } from 'dpn-common/utils/TimeHelperFunctions'\r\n\r\nconst SHOW_LOGS = false\r\n\r\nconst emptyArray = []\r\nconst emptyObject = {}\r\n\r\n// ========================= GROUPS =========================\r\n\r\nconst userGroupsSelector = groupsData => groupsData.userGroups || emptyArray\r\nconst globalGroupsSelector = groupsData => groupsData.globalGroups || emptyArray\r\n\r\n// { groupType1: [group1, group2], groupType2: [group3, group4] }\r\nconst groupsMapByTypeSelector = createSelector(\r\n userGroupsSelector,\r\n userGroups => {\r\n SHOW_LOGS && console.log('executing reselect: groupsMapByTypeSelector')\r\n const reduceFunc = (acc, group) => {\r\n if (!acc[group.groupType]) {\r\n acc[group.groupType] = []\r\n }\r\n acc[group.groupType].push(group)\r\n return acc\r\n }\r\n return userGroups.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\nexport const siteGlobalGroupsSelector = createSelector(\r\n globalGroupsSelector,\r\n globalGroups => {\r\n SHOW_LOGS && console.log('executing reselect: siteGlobalGroupsSelector')\r\n return globalGroups.filter(x => x.groupType === GROUP_TYPES.SITE_GLOBAL)\r\n }\r\n)\r\n\r\nexport const siteGlobalTeacherGroupsSelector = createSelector(\r\n globalGroupsSelector,\r\n globalGroups => {\r\n SHOW_LOGS && console.log('executing reselect: siteGlobalTeacherGroupsSelector')\r\n return globalGroups.filter(x => x.groupType === GROUP_TYPES.SITE_GLOBAL_TEACHERS)\r\n }\r\n)\r\n\r\nexport const siteGlobalStudentGroupsSelector = createSelector(\r\n globalGroupsSelector,\r\n globalGroups => {\r\n SHOW_LOGS && console.log('executing reselect: siteGlobalStudentGroupsSelector')\r\n return globalGroups.filter(x => x.groupType === GROUP_TYPES.SITE_GLOBAL_STUDENTS)\r\n }\r\n)\r\n\r\n// { group1Id: group1, group2Id: group2 }\r\nexport const globalGroupsMapByIdSelector = createSelector(\r\n globalGroupsSelector,\r\n (globalGroups) => {\r\n SHOW_LOGS && console.log('executing reselect: globalGroupsMapByIdSelector')\r\n const reduceFunc = (acc, group) => {\r\n acc[group.id] = group\r\n return acc\r\n }\r\n return globalGroups.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\n// { group1Id: group1, group2Id: group2 }\r\nexport const userGroupsMapByIdSelector = createSelector(\r\n userGroupsSelector,\r\n (userGroups) => {\r\n SHOW_LOGS && console.log('executing reselect: userGroupsMapByIdSelector')\r\n const reduceFunc = (acc, group) => {\r\n acc[group.id] = group\r\n return acc\r\n }\r\n return userGroups.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\n// return highest groupId for global groups\r\nexport const maxLoadedGlobalGroupIdSelector = createSelector(\r\n globalGroupsSelector,\r\n globalGroups => {\r\n return globalGroups\r\n .map(x => x.id)\r\n .reduce(\r\n (maxGroupId, groupId) => groupId > maxGroupId ? groupId : maxGroupId,\r\n globalGroups.length > 0 ? globalGroups[0].id : -1)\r\n }\r\n)\r\n\r\n// return highest groupId for user groups\r\nexport const maxLoadedUserGroupIdSelector = createSelector(\r\n userGroupsSelector,\r\n userGroups => {\r\n return userGroups\r\n .map(x => x.id)\r\n .reduce(\r\n (maxGroupId, groupId) => groupId > maxGroupId ? groupId : maxGroupId,\r\n userGroups.length > 0 ? userGroups[0].id : -1)\r\n }\r\n)\r\n\r\nconst teacherIdSelector = state => state.teacherId || 0\r\nconst ownerIdSelector = state => state.ownerId || 0\r\n\r\n// { groupType1: { teacherId1: [group1, group2], teacherId2: [group3, group4] }, groupType2: { teacherId3: [group5, group6] } }\r\nconst groupsTeacherMapSelector = createSelector(\r\n userGroupsSelector,\r\n userGroups => {\r\n SHOW_LOGS && console.log('executing reselect: groupsTeacherMapSelector')\r\n const reduceFunc = (acc, group) => {\r\n if (!acc[group.userId]) {\r\n acc[group.userId] = []\r\n }\r\n acc[group.userId].push(group)\r\n return acc\r\n }\r\n\r\n const groupsTeacherMap = {}\r\n groupsTeacherMap[GROUP_TYPES.TEACHER_GLOBAL] = getFromDict(\r\n groupsMapByTypeSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_GLOBAL,\r\n emptyArray\r\n ).reduce(reduceFunc, {})\r\n\r\n groupsTeacherMap[GROUP_TYPES.TEACHER_CUSTOM] = getFromDict(\r\n groupsMapByTypeSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_CUSTOM,\r\n emptyArray\r\n ).reduce(reduceFunc, {})\r\n\r\n groupsTeacherMap[GROUP_TYPES.TEACHER_SINGLE_STUDENT] = getFromDict(\r\n groupsMapByTypeSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_SINGLE_STUDENT,\r\n emptyArray\r\n ).reduce(reduceFunc, {})\r\n\r\n return groupsTeacherMap\r\n }\r\n)\r\n\r\nexport const teacherGlobalGroupsSelector = createSelector(\r\n userGroupsSelector,\r\n teacherIdSelector,\r\n (userGroups, teacherId) => {\r\n SHOW_LOGS && console.log('executing reselect: teacherGlobalGroupsSelector')\r\n return getFromDict(\r\n getFromDict(\r\n groupsTeacherMapSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_GLOBAL,\r\n emptyObject\r\n ),\r\n teacherId,\r\n emptyArray\r\n )\r\n }\r\n)\r\n\r\nexport const teacherCustomGroupsSelector = createSelector(\r\n userGroupsSelector,\r\n teacherIdSelector,\r\n (userGroups, teacherId) => {\r\n SHOW_LOGS && console.log('executing reselect: teacherCustomGroupsSelector')\r\n return getFromDict(\r\n getFromDict(\r\n groupsTeacherMapSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_CUSTOM,\r\n emptyObject\r\n ),\r\n teacherId,\r\n emptyArray\r\n )\r\n }\r\n)\r\n\r\nexport const filterGroupsByDaySelector = createSelector(\r\n state => state.groups,\r\n state => state.perDayMap,\r\n state => state.day,\r\n (groups, perDayMap, day) => {\r\n if (day === '' || day === undefined || day === null) {\r\n return groups\r\n }\r\n const idMap = getFromDict(perDayMap, day, {})\r\n return groups.filter(x => x.id in idMap).map(x => ({\r\n ...x,\r\n fromTimeInMinutes: idMap[x.id],\r\n }))\r\n }\r\n)\r\n\r\nexport const teacherSingleStudentGroupsSelector = createSelector(\r\n userGroupsSelector,\r\n ownerIdSelector,\r\n (userGroups, ownerId) => {\r\n SHOW_LOGS && console.log('executing reselect: teacherSingleStudentGroupsSelector')\r\n return getFromDict(\r\n getFromDict(\r\n groupsTeacherMapSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_SINGLE_STUDENT,\r\n emptyObject\r\n ),\r\n ownerId,\r\n emptyArray\r\n )\r\n }\r\n)\r\n\r\n// { group1Id: { teacherId: 1, studentId: 3 }, group2Id: { teacherId: 2, studentId: 4 } }\r\nexport const singleStudentGroupMap = createSelector(\r\n userGroupsSelector,\r\n userGroups => {\r\n SHOW_LOGS && console.log('executing reselect: singleStudentGroupMap')\r\n const singleStudentGroups = getFromDict(\r\n groupsMapByTypeSelector({ userGroups }),\r\n GROUP_TYPES.TEACHER_SINGLE_STUDENT,\r\n emptyArray\r\n )\r\n const reduceFunc = (acc, group) => {\r\n const student = (group.users || []).find(x => x.role === USER_TYPES.STUDENT)\r\n acc[group.id] = {\r\n teacherId: group.userId,\r\n studentId: student && student.userId,\r\n isActive: student && student.isActive,\r\n }\r\n return acc\r\n }\r\n return singleStudentGroups.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\nconst studentGroupValid = (group, onlyActive) => {\r\n if (onlyActive && !group.isActive) {\r\n return false\r\n }\r\n let hasStudents = false\r\n let allActive = true\r\n group.users.forEach(user => {\r\n hasStudents = hasStudents || user.role === USER_TYPES.STUDENT\r\n allActive = allActive && user.isActive\r\n })\r\n return hasStudents && (!onlyActive || allActive)\r\n}\r\n\r\nconst onlyActiveSelector = state => state.onlyActive\r\n\r\nexport const teacherCustomAndSingleStudentsGroupsSelector = createSelector(\r\n userGroupsSelector,\r\n teacherIdSelector,\r\n onlyActiveSelector,\r\n (userGroups, teacherId, onlyActive) => {\r\n SHOW_LOGS && console.log('executing reselect: teacherCustomAndSingleStudentsGroupsSelector')\r\n const singleStudentGroups = teacherSingleStudentGroupsSelector({ userGroups, ownerId: teacherId }).filter(x => studentGroupValid(x, onlyActive))\r\n const customGroups = teacherCustomGroupsSelector({ userGroups, teacherId })\r\n return singleStudentGroups.concat(onlyActive ? customGroups.filter(x => x.isActive) : customGroups)\r\n }\r\n)\r\n\r\n// ========================= USERS =========================\r\n\r\nconst usersSelector = groupsData => groupsData.users || emptyArray\r\nconst studentsSelector = groupsData => groupsData.students || emptyArray\r\n\r\n// { user1Id: user1, user2Id: user2 }\r\nexport const usersMapByIdSelector = createSelector(\r\n usersSelector,\r\n users => {\r\n SHOW_LOGS && console.log('executing reselect: usersMapByIdSelector')\r\n const reduceFunc = (acc, user) => {\r\n acc[user.id] = user\r\n return acc\r\n }\r\n return users.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\nconst groupIdSelector = state => state.groupId || 0\r\n\r\n// takes custom group id or student group id, finds teacher/owner for that group\r\n// and gets that teachers global group\r\nexport const globalGroupOfGroupOwnerSelector = createSelector(\r\n userGroupsSelector,\r\n groupIdSelector,\r\n (userGroups, groupId) => {\r\n SHOW_LOGS && console.log('executing reselect: globalGroupOfGroupOwnerSelector')\r\n const group = getFromDict(userGroupsMapByIdSelector({ userGroups }), groupId)\r\n return teacherGlobalGroupsSelector({ userGroups, teacherId: group.userId })[0]\r\n }\r\n)\r\n\r\n// ========================= STUDENTS =========================\r\n\r\n// list of { teacherId, students: { student1Id: student1 , student2Id: student2 } }\r\n// where eg student1 is merged data of groupsData['students'][teacher1Id][student1Id]\r\n// and groupsData['users'].find(x => x.id === student1Id)\r\nexport const studentsMapByTeacherIdAndStudentIdSelector = createSelector(\r\n usersSelector,\r\n studentsSelector,\r\n (users, students) => {\r\n SHOW_LOGS && console.log('executing reselect: studentsMapByTeacherIdAndStudentIdSelector')\r\n const newTeacherStudentsMap = students.reduce((teachersMap, x) => {\r\n const teacherId = x.teacherId\r\n const newStudentsMap = Object.keys(x.students || {}).reduce((studentsMap, studentId) => {\r\n const userData = getFromDict(usersMapByIdSelector({ users }), studentId)\r\n if (userData) {\r\n const leaderboardParticipationByUser = userData.leaderboardParticipation\r\n studentsMap[studentId] = {\r\n ...userData,\r\n ...getFromDict(x.students, studentId),\r\n leaderboardParticipationByUser\r\n }\r\n }\r\n return studentsMap\r\n }, {})\r\n teachersMap[teacherId] = newStudentsMap\r\n return teachersMap\r\n }, {})\r\n return newTeacherStudentsMap\r\n }\r\n)\r\n\r\n// { teacher1Id: [student1, student2], teacher2Id: [student3, student4] }\r\n// where eg student1 is merged data of groupsData['students'][teacher1Id][student1Id]\r\n// and groupsData['users'].find(x => x.id === student1Id)\r\nexport const studentsMapByTeacherIdSelector = createSelector(\r\n usersSelector,\r\n studentsSelector,\r\n (users, students) => {\r\n SHOW_LOGS && console.log('executing reselect: studentsMapByTeacherIdSelector')\r\n const reduceFunc = (acc, teacherId) => {\r\n if (!acc[teacherId]) {\r\n acc[teacherId] = []\r\n }\r\n const teacherStudents = students.find(x => x.teacherId === teacherId)\r\n const studentsMap = teacherStudents ? teacherStudents.students : {}\r\n acc[teacherId].push(\r\n ...Object.keys(studentsMap)\r\n .map(studentId =>\r\n getFromDict(\r\n getFromDict(\r\n studentsMapByTeacherIdAndStudentIdSelector({ users, students }),\r\n teacherId,\r\n {}\r\n ),\r\n studentId\r\n )\r\n )\r\n .filter(x => !!x)\r\n )\r\n return acc\r\n }\r\n return students.map(x => x.teacherId).reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\nexport const groupStudentList = createSelector(\r\n userGroupsSelector,\r\n usersSelector,\r\n studentsSelector,\r\n groupIdSelector,\r\n state => state.sort,\r\n (userGroups, users, students, groupId, sort) => {\r\n SHOW_LOGS && console.log('executing reselect: groupStudentList')\r\n const group = getFromDict(userGroupsMapByIdSelector({ userGroups }), groupId)\r\n const groupUsers = getFromDict(group, 'users', [])\r\n .filter(x => x.isActive && x.role === USER_TYPES.STUDENT)\r\n .map(user => getFromDict(\r\n getFromDict(\r\n studentsMapByTeacherIdAndStudentIdSelector({ users, students }),\r\n group.userId,\r\n {}\r\n ),\r\n user.userId,\r\n {}\r\n ))\r\n return !sort ? groupUsers : sortUsers(groupUsers)\r\n }\r\n)\r\n\r\nexport const studentRankingsByGroupIdSelector = createSelector(\r\n userGroupsSelector,\r\n usersSelector,\r\n studentsSelector,\r\n groupIdSelector,\r\n (userGroups, users, students, groupId) => {\r\n SHOW_LOGS && console.log('executing reselect: studentRankingsByGroupIdSelector')\r\n return groupStudentList({ userGroups, users, students, groupId })\r\n .filter(x => x.leaderboardParticipation && x.leaderboardParticipationByUser)\r\n .sort(function(x, y) {\r\n return x.points < y.points ? 1 : -1\r\n })\r\n }\r\n)\r\n\r\n// ========================= TEACHERS =========================\r\n\r\nconst teacherIdsSelector = createSelector(\r\n usersSelector,\r\n (users) => {\r\n SHOW_LOGS && console.log('executing reselect: teacherIdsSelector')\r\n return users.filter(x => x.role === USER_TYPES.TEACHER).map(x => x.id)\r\n }\r\n)\r\n\r\n// { teacher1Id: teacher1 , teacher2Id: teacher2 }\r\nexport const teachersMapById = createSelector(\r\n usersSelector,\r\n (users) => {\r\n SHOW_LOGS && console.log('executing reselect: teachersMapById')\r\n const reduceFunc = (acc, teacherId) => {\r\n acc[teacherId] = getFromDict(usersMapByIdSelector({ users }), teacherId)\r\n return acc\r\n }\r\n const teacherIds = teacherIdsSelector({ users })\r\n return teacherIds.reduce(reduceFunc, {})\r\n }\r\n)\r\n\r\nexport const teacherDataListSelector = createSelector(\r\n usersSelector,\r\n users => {\r\n SHOW_LOGS && console.log('executing reselect: teacherDataListSelector')\r\n const teacherIds = teacherIdsSelector({ users })\r\n return teacherIds.map(x => getFromDict(teachersMapById({ users }), x))\r\n }\r\n)\r\n\r\nexport const groupsByScheduleDaySelector = createSelector(\r\n userGroupsSelector,\r\n userGroups => {\r\n SHOW_LOGS && console.log('executing reselect: groupsByScheduleDaySelector')\r\n const groupsByDay = {}\r\n userGroups.forEach(userGroup => {\r\n userGroup.schedules && userGroup.schedules.forEach(schedule => {\r\n if (schedule.isActive) {\r\n let dayIndex = -1\r\n if (schedule.specificDate) {\r\n const specificDateMoment = getMomentDateFromJson(schedule.specificDate).local()\r\n const today = getMomentDate(new Date()).set({ hour: 23, minute: 59, second: 59, millisecond: 0 })\r\n const endDate = getMomentDate(new Date()).set({ hour: 23, minute: 59, second: 59, millisecond: 0 }).add(6, 'days')\r\n if (specificDateMoment.isSameOrAfter(today) && specificDateMoment.isSameOrBefore(endDate)) {\r\n dayIndex = specificDateMoment.day() + 1\r\n }\r\n }\r\n else {\r\n dayIndex = getDayIndexFromDayString(schedule.dayOfWeek) + 1\r\n }\r\n\r\n if (dayIndex !== -1) {\r\n groupsByDay[dayIndex] = groupsByDay[dayIndex] || {}\r\n groupsByDay[dayIndex][userGroup.id] = schedule.fromTimeInMinutes || -1 // if time is not specificed should be first on list\r\n }\r\n }\r\n })\r\n })\r\n\r\n return groupsByDay\r\n }\r\n)","export const FETCH_OLD_RESPONSE_ARRIVED_STRING_CONST = 'fetch_old_response_arrived'\r\nexport const FETCH_TIMEOUT_ERROR_STRING_CONST = 'fetch_timeout_error'\r\n\r\nexport const SETTINGS_STORAGE_KEY = 'SETTINGS_STORAGE_KEY_x1_'\r\nexport const LANGUAGE_DEF_STORAGE_PREFIX_KEY = 'LANGUAGE_x5_'\r\nexport const LANGUAGES_STORAGE_PREFIX_KEY = 'LANGUAGES_xyz_'\r\n\r\nexport const STUDENT_DETAILS = 'STUDENT_DETAILS_v4_'\r\n\r\nexport const NOT_SHOW_AGAIN = 'NOW_SHOW_AGAIN_x3'\r\nexport const NOT_SHOW_AGAIN_CUSTOM_ASSIGN_LEVELS = 'NOT_SHOW_AGAIN_CUSTOM_ASSIGN_LEVELS_x3'\r\n\r\nexport const ORIGINAL_ACCOUNT_TOKEN = 'ORIGINAL_ACCOUNT_TOKEN_x7'\r\n\r\nexport const STUDENTS_LIMIT_REACHED_MESSAGE_CODE = 'STUDENTS_LIMIT_REACHED'\r\n\r\nexport const ROUTE_LOCATION = 'ROUTE_LOCATION'\r\n\r\nexport const DUMMY_LANGUAGE_DEFINITION = {\r\n version: 0,\r\n code: 'en-US',\r\n definitions: {},\r\n}\r\n\r\nexport const USER_TYPES = Object.freeze({\r\n STUDENT: 'Student',\r\n TEACHER: 'Teacher',\r\n GUEST: 'Guest',\r\n})\r\n\r\nexport const ROLE_ID = Object.freeze({\r\n TEACHER: 3,\r\n STUDENT: 4,\r\n})\r\n\r\nexport const NOTE_TYPE = Object.freeze({\r\n USER: 'User',\r\n GROUP: 'Group',\r\n LESSON: 'Lesson'\r\n})\r\n\r\nexport const IDENTITY_SERVICE = 'identity'\r\n\r\nexport const GROUP_TYPES = Object.freeze({\r\n SITE_GLOBAL: 'SiteGlobal',\r\n SITE_GLOBAL_TEACHERS: 'SiteGlobalTeachers',\r\n SITE_GLOBAL_STUDENTS: 'SiteGlobalStudents',\r\n TEACHER_GLOBAL: 'TeacherGlobal',\r\n TEACHER_CUSTOM: 'TeacherCustom',\r\n TEACHER_SINGLE_STUDENT: 'TeacherSingleStudent',\r\n})\r\n\r\nexport const GROUP_FETCH_PARAMS = Object.freeze({\r\n loadGlobalGroups: false,\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true\r\n})\r\n\r\nexport const FIRST_TIME_GROUP_FETCH_PARAMS = Object.freeze({\r\n loadGlobalGroups: true,\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true\r\n})\r\n\r\nexport const ARE_UTF8_EMOTICONS_AVAILABLE = false\r\n\r\nexport const TABS = Object.freeze({\r\n ACTIVE: 1,\r\n INVITED: 2,\r\n SUSPENDED: 3,\r\n CURRENT: 4,\r\n PREVIOUS: 5,\r\n SKILLS: 6,\r\n REWARDS: 7,\r\n INACTIVE: 8,\r\n CLASS_POINTS: 9,\r\n MY_POINTS: 10,\r\n CHANNELS: 11,\r\n CHAT: 12,\r\n STUDENT_LIST: 13,\r\n GROUPS: 14,\r\n INVITE_STUDENT: 15,\r\n INVITE_STUDENT_CHILD: 16,\r\n})\r\n\r\nexport const COLORS = Object.freeze([\r\n { hexCode: '#1A1818', name: 'Black' },\r\n { hexCode: '#29AAE1', name: 'Blue' },\r\n { hexCode: '#D5AA80', name: 'Bronze' },\r\n { hexCode: '#AE7165', name: 'Brown' },\r\n { hexCode: '#669180', name: 'Forest' },\r\n { hexCode: '#E7B948', name: 'Gold' },\r\n { hexCode: '#808080', name: 'Gray' },\r\n { hexCode: '#4DB297', name: 'Green' },\r\n { hexCode: '#1F324A', name: 'Navy' },\r\n { hexCode: '#DC5536', name: 'Orange' },\r\n { hexCode: '#EC1561', name: 'Pink' },\r\n { hexCode: '#5D52A2', name: 'Purple' },\r\n { hexCode: '#D7242A', name: 'Red' },\r\n { hexCode: '#999999', name: 'Silver' },\r\n { hexCode: '#5BC4C3', name: 'Turquoise' },\r\n { hexCode: '#B093C5', name: 'Violet' },\r\n { hexCode: '#FFFFFF', name: 'White', txtColor: '#000000' },\r\n { hexCode: '#FACF1E', name: 'Yellow' },\r\n])\r\n\r\nexport const SWIPE_DEFINITIONS = Object.freeze({\r\n LEFT_SWIPE_MARGIN_OFFSET: -50,\r\n ANIMATION_DURATION: 300,\r\n VELOCITY_THRESHOLD: 0.3,\r\n DIRECTIONAL_OFFSET_THRESHOLD: 15,\r\n HOLD_BEFORE_SWIPE_DELAY: 300,\r\n})\r\n\r\nexport const StudentChooseTeacherRouteName = 'StudentChooseTeacher'\r\n\r\nexport const CONTACT_TEMPLATE_NAME = 'Contact'\r\n\r\nexport const IMPORT_FILE_CONTENT = true\r\n\r\nexport const REFRESH_TOKEN_INTERVAL_TIMEOUT = 14 * 60 * 1000\r\n\r\nexport const ACCENTS_MAP = {\r\n a: 'à|â|ä|À|Â|Ä',\r\n e: 'é|è|ê|ë|É|È|Ê|Ë',\r\n i: 'ï|î|Ï|Î',\r\n o: 'ô|ö|Ô|Ö',\r\n u: 'ù|û|ü|Ù|Û|Ü',\r\n c: 'ç|Ç',\r\n y: 'ÿ|Ÿ',\r\n ae: 'æ|Æ',\r\n oe: 'œ|Œ',\r\n ss: 'ß|ẞ',\r\n}","let beforePlayCallback\r\nlet onExitCallback\r\nlet VideoPlayerService\r\n\r\nconst vimeoBaseUrl = 'https://player.vimeo.com/video/'\r\nconst youTubeBaseUrl = 'https://www.youtube.com/embed/'\r\n\r\nfunction init(videoPlayerService, beforePlay = null, onExit = null) {\r\n VideoPlayerService = videoPlayerService\r\n if (beforePlayCallback === undefined && onExitCallback === undefined) {\r\n beforePlayCallback = beforePlay\r\n onExitCallback = onExit\r\n }\r\n}\r\n\r\nfunction playVimeoVideo(link) {\r\n const startIndex = link.lastIndexOf('/') + 1\r\n VideoPlayerService.playVimeoVideo(link.substring(startIndex))\r\n}\r\n\r\nfunction playYouTubeVideo(link) {\r\n const videoId = getYouTubeVideoId(link)\r\n VideoPlayerService.playYouTubeVideo(videoId, beforePlayCallback, onExitCallback)\r\n}\r\n\r\nexport function isVimeoLink(link) {\r\n const vimeoSearchString = 'vimeo.com'\r\n return link.includes(vimeoSearchString)\r\n}\r\n\r\nexport function isYouTubeLink(link) {\r\n for (let i = 0; i < searchStrings.length; ++i) {\r\n if (link.indexOf(searchStrings[i].searchString) !== -1) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nexport function getEmbedLink(link) {\r\n if (isYouTubeLink(link)) {\r\n const videoId = getYouTubeVideoId(link)\r\n if (videoId !== '') {\r\n return `${youTubeBaseUrl}${videoId}`\r\n }\r\n }\r\n else if (isVimeoLink(link)) {\r\n const videoId = getVimeoVideoId(link)\r\n return `${vimeoBaseUrl}${videoId}`\r\n }\r\n // if not vimeo and not youTube or its invalid you tube or vimeo link just return it\r\n return link\r\n}\r\n\r\nfunction beforePlay() {\r\n beforePlayCallback && beforePlayCallback()\r\n}\r\n\r\nfunction onExit() {\r\n onExitCallback && onExitCallback()\r\n}\r\n\r\nexport default {\r\n init,\r\n playVimeoVideo,\r\n playYouTubeVideo,\r\n beforePlay,\r\n onExit,\r\n}\r\n\r\nconst searchStrings = Object.freeze([\r\n { searchString: 'youtube.', startSearchString: 'v=', endSearchString: '&' },\r\n { searchString: 'youtu.be', startSearchString: 'youtu.be/', endSearchString: '?' }\r\n])\r\n\r\nfunction extractVideoId(link, start, end) {\r\n let id = link.substring(link.indexOf(start) + start.length)\r\n if (id.indexOf(end) !== -1) {\r\n id = id.substring(0, id.indexOf(end))\r\n }\r\n return id\r\n}\r\n\r\nfunction getYouTubeVideoId(link) {\r\n for (let i = 0; i < searchStrings.length; ++i) {\r\n if (link.indexOf(searchStrings[i].searchString) !== -1) {\r\n return extractVideoId(link, searchStrings[i].startSearchString, searchStrings[i].endSearchString)\r\n }\r\n }\r\n return ''\r\n}\r\n\r\nexport function getVimeoVideoId(link) {\r\n const index = link.lastIndexOf('/')\r\n const videoId = index !== -1 ? link.substring(index + 1) : '0'\r\n return parseInt(videoId, 10)\r\n}","import { NavigatorService } from '../services/SharedServices'\r\nimport { USER_TYPES, GROUP_FETCH_PARAMS, GROUP_TYPES, StudentChooseTeacherRouteName } from './AppConstants'\r\nimport { getFromDict, reduxUpdateWait } from './HelperFunctions'\r\nimport { getMessagesInGroupFetch, getGroupedMessagesFetch } from '../actions/PrivateMessageActions'\r\nimport { chooseTeacher } from '../actions/StudentActions'\r\nimport { ACTION_NOTIFICATION_TYPES } from './NotificationsConstants'\r\nimport { loadGroupsDataForStudentFetch, loadGroupsDataForTeacherFetch } from '../actions/GroupActions'\r\nimport { loadStudentSkillsFetch } from '../actions/SkillAction'\r\nimport {\r\n getTeacherDataList, getUserGroupDataByGroupId,\r\n getGlobalGroupDataByGroupId, isSingleStudentOrCustomGroupActive, getGlobalGroupOfGroupOwner,\r\n} from './GroupsDataUtils'\r\nimport { loadLessonsForGroupsFetch } from 'dpn-common/actions/LessonActions'\r\nimport { Messages } from './MessageConstants'\r\nimport { loadAssignmentsFetch } from 'dpn-common/actions/AssignmentActions'\r\n\r\nconst _getTeacherUserGroupByGroupId = async (userGroups, groupId, userData, dispatch) => {\r\n let group = getUserGroupDataByGroupId(userGroups, groupId)\r\n if (isSingleStudentOrCustomGroupActive(group)) {\r\n return group\r\n }\r\n\r\n await loadGroupsDataForTeacherFetch({\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true,\r\n }, dispatch, userData)\r\n\r\n await reduxUpdateWait()\r\n\r\n group = getUserGroupDataByGroupId(userGroups, groupId)\r\n return isSingleStudentOrCustomGroupActive(group) ? group : undefined\r\n}\r\n\r\nconst _getStudentUserGroupByGroupId = async (userGroups, groupId, teacherId, dispatch) => {\r\n let group = getUserGroupDataByGroupId(userGroups, groupId)\r\n if (isSingleStudentOrCustomGroupActive(group)) {\r\n return group\r\n }\r\n\r\n await loadGroupsDataForStudentFetch({\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true,\r\n }, dispatch, teacherId)\r\n\r\n await reduxUpdateWait()\r\n\r\n group = getUserGroupDataByGroupId(userGroups, groupId)\r\n return isSingleStudentOrCustomGroupActive(group) ? group : undefined\r\n}\r\n\r\nconst _getTeacherGlobalGroupByGroupId = async (globalGroups, groupId, userData, dispatch) => {\r\n let group = getGlobalGroupDataByGroupId(globalGroups, groupId)\r\n if (group && group.isActive) {\r\n return group\r\n }\r\n\r\n await loadGroupsDataForTeacherFetch({\r\n loadGlobalGroups: true,\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true,\r\n }, dispatch, userData)\r\n\r\n await reduxUpdateWait()\r\n\r\n group = getGlobalGroupDataByGroupId(globalGroups, groupId)\r\n return group && group.isActive ? group : undefined\r\n}\r\n\r\nconst _getStudentGlobalGroupByGroupId = async (globalGroups, groupId, teacherId, dispatch) => {\r\n let group = getGlobalGroupDataByGroupId(globalGroups, groupId)\r\n if (group && group.isActive) {\r\n return group\r\n }\r\n\r\n await loadGroupsDataForStudentFetch({\r\n loadGlobalGroups: true,\r\n loadUsers: true,\r\n loadSingleStudentGroups: true,\r\n loadSchedules: true,\r\n }, dispatch, teacherId)\r\n\r\n await reduxUpdateWait()\r\n\r\n group = getGlobalGroupDataByGroupId(globalGroups, groupId)\r\n return group && group.isActive ? group : undefined\r\n}\r\n\r\nconst _studentAcceptedInvitationHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n await loadGroupsDataForTeacherFetch(GROUP_FETCH_PARAMS, dispatch, userData)\r\n return true\r\n },\r\n jumpOnAction: async () => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (!currentRoute || !currentRoute.name) {\r\n console.log(' - Can not resolve current route!')\r\n return false\r\n }\r\n else if (currentRoute.name !== 'TeacherStudentList') {\r\n NavigatorService.navigateAndReset('TeacherStudentList')\r\n return true\r\n }\r\n }\r\n})\r\n\r\nconst _teacherNewMessageHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n return currentRoute.name !== 'TeacherChat' ||\r\n !currentRoute.params || !currentRoute.params.groupIds ||\r\n !actionData.groupId || !currentRoute.params.groupIds.some(x => x == actionData.groupId)\r\n },\r\n processAction: async (actionData, { userGroups, groupMessages, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getTeacherUserGroupByGroupId(userGroups, groupId, userData, dispatch)\r\n if (!group) {\r\n console.log(' Group not found')\r\n return false\r\n }\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (currentRoute.name === 'TeacherCommunicationChat') {\r\n await getGroupedMessagesFetch(undefined, undefined, 0, dispatch)\r\n }\r\n const messages = getFromDict(groupMessages, actionData['groupId'])\r\n await getMessagesInGroupFetch(actionData['groupId'], messages, false, false, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { userGroups, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getTeacherUserGroupByGroupId(userGroups, groupId, userData, dispatch)\r\n if (!group) {\r\n console.log(' Group not found')\r\n return false\r\n }\r\n NavigatorService.navigateAndReset('TeacherChat', {\r\n groupIds: [groupId],\r\n sendMessageDisabled: false,\r\n showSenderData: true,\r\n }, groupId)\r\n return true\r\n }\r\n})\r\n\r\nconst _teacherNewChannelMessageHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n return currentRoute.name !== 'TeacherChat' ||\r\n !currentRoute.params || !currentRoute.params.groupIds ||\r\n !actionData.groupId || !currentRoute.params.groupIds.some(x => x == actionData.groupId)\r\n },\r\n processAction: async (actionData, { globalGroups, groupMessages, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getTeacherGlobalGroupByGroupId(globalGroups, groupId, userData, dispatch)\r\n if (!group) {\r\n console.log(' - New channel message> Group not found')\r\n return false\r\n }\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (currentRoute.name === 'TeacherCommunicationChannels') {\r\n await getGroupedMessagesFetch(undefined, GROUP_TYPES.SITE_GLOBAL_TEACHERS, 0, dispatch)\r\n }\r\n const messages = getFromDict(groupMessages, actionData['groupId'])\r\n await getMessagesInGroupFetch(actionData['groupId'], messages, false, false, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { globalGroups, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getTeacherGlobalGroupByGroupId(globalGroups, groupId, userData, dispatch)\r\n if (!group) {\r\n console.log(' - New channel message> Group not found')\r\n return false\r\n }\r\n NavigatorService.navigateAndReset('TeacherChat', {\r\n groupIds: [groupId],\r\n sendMessageDisabled: true\r\n }, groupId)\r\n return true\r\n }\r\n})\r\n\r\nconst _studentInvitedHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { teacherId, dispatch }) => {\r\n await loadGroupsDataForStudentFetch(GROUP_FETCH_PARAMS, dispatch, teacherId)\r\n return true\r\n },\r\n jumpOnAction: async () => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (!currentRoute || !currentRoute.name) {\r\n console.log(' - Can not resolve current route')\r\n return false\r\n }\r\n const shouldJump = currentRoute.name !== StudentChooseTeacherRouteName\r\n if (shouldJump) {\r\n NavigatorService.navigateAndReset(StudentChooseTeacherRouteName)\r\n }\r\n return shouldJump\r\n }\r\n})\r\n\r\nconst _studentNewMessageHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n return currentRoute.name !== 'StudentChat' ||\r\n !currentRoute.params || !currentRoute.params.groupIds ||\r\n !actionData.groupId || !currentRoute.params.groupIds.some(x => x == actionData.groupId)\r\n },\r\n processAction: async (actionData, { userGroups, groupMessages, teacherId, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getStudentUserGroupByGroupId(userGroups, groupId, teacherId, dispatch)\r\n if (!group) {\r\n console.log(' Group not found')\r\n return false\r\n }\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (currentRoute.name === 'StudentCommunicationChat') {\r\n await getGroupedMessagesFetch(undefined, undefined, 0, dispatch)\r\n }\r\n const messages = getFromDict(groupMessages, actionData['groupId'])\r\n await getMessagesInGroupFetch(actionData['groupId'], messages, false, false, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { userGroups, users, userData, teacherId, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const teachers = getTeacherDataList(users)\r\n const group = await _getStudentUserGroupByGroupId(userGroups, groupId, teacherId, dispatch)\r\n if (!group) {\r\n console.log(' Group not found')\r\n return false\r\n }\r\n const teacher = await getStudentTeacher(teacherId, teachers)\r\n if (!teacher) {\r\n console.log(' - New message> Teacher not found')\r\n return false\r\n }\r\n await chooseTeacher(teacher, userData.id, dispatch)\r\n NavigatorService.navigateAndReset('StudentChat', {\r\n groupIds: [groupId],\r\n sendMessageDisabled: false,\r\n showSenderData: true,\r\n }, actionData['groupId'])\r\n return true\r\n }\r\n})\r\n\r\nconst _studentNewChannelMessageHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n return currentRoute.name !== 'StudentChat' ||\r\n !currentRoute.params || !currentRoute.params.groupIds ||\r\n !actionData.groupId || !currentRoute.params.groupIds.some(x => x == actionData.groupId)\r\n },\r\n processAction: async (actionData, { globalGroups, groupMessages, teacherId, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getStudentGlobalGroupByGroupId(globalGroups, groupId, teacherId, dispatch)\r\n if (!group) {\r\n console.log(' - New channel message> Group not found')\r\n return false\r\n }\r\n const currentRoute = NavigatorService.getCurrentRoute()\r\n if (currentRoute.name === 'StudentCommunicationChannels') {\r\n await getGroupedMessagesFetch(undefined, GROUP_TYPES.SITE_GLOBAL_STUDENTS, 0, dispatch)\r\n }\r\n const messages = getFromDict(groupMessages, actionData['groupId'])\r\n await getMessagesInGroupFetch(actionData['groupId'], messages, false, false, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { globalGroups, teacherId, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = await _getStudentGlobalGroupByGroupId(globalGroups, groupId, teacherId, dispatch)\r\n if (!group) {\r\n console.log(' - New channel message> Group not found')\r\n return false\r\n }\r\n NavigatorService.navigateAndReset('StudentChat', {\r\n groupIds: [groupId],\r\n sendMessageDisabled: true\r\n }, groupId)\r\n return true\r\n }\r\n})\r\n\r\nconst _skillAddedToStudentHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n await loadStudentSkillsFetch(false, [actionData['groupId']], actionData['teacherId'], userData.id, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { users, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n const teachers = getTeacherDataList(users)\r\n const teacherId = parseInt(actionData['teacherId'])\r\n const teacher = await getStudentTeacher(teacherId, teachers)\r\n if (!teacher) {\r\n console.log(' - Student skills Added> Teacher not found')\r\n return false\r\n }\r\n if (teacher.isInvited) {\r\n NavigatorService.navigateAndReset(StudentChooseTeacherRouteName)\r\n }\r\n else {\r\n await chooseTeacher(teacher, userData.id, dispatch)\r\n NavigatorService.navigateAndReset('StudentTeacherSkills', { groupId: parseInt(actionData['groupId']) })\r\n }\r\n return true\r\n }\r\n})\r\n\r\nconst _skillRemovedFromStudentHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n await loadStudentSkillsFetch(false, [actionData['groupId']], actionData['teacherId'], userData.id, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { users, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n const teachers = getTeacherDataList(users)\r\n const teacherId = parseInt(actionData['teacherId'])\r\n const teacher = await getStudentTeacher(teacherId, teachers)\r\n if (!teacher) {\r\n console.log(' - Student skills Removed> Teacher not found')\r\n return false\r\n }\r\n if (teacher.isInvited) {\r\n NavigatorService.navigateAndReset(StudentChooseTeacherRouteName)\r\n }\r\n else {\r\n await chooseTeacher(teacher, userData.id, dispatch)\r\n NavigatorService.navigateAndReset('StudentTeacherSkills', { groupId: parseInt(actionData['groupId']) })\r\n }\r\n return true\r\n }\r\n})\r\n\r\n\r\nconst _lessonAddedToStudentHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n\r\n await loadLessonsForGroupsFetch(parseInt(actionData['schoolYearId']), [parseInt(actionData['groupId'])], dispatch, true)\r\n\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { users, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined ||\r\n actionData['teacherId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n const teachers = getTeacherDataList(users)\r\n const teacherId = parseInt(actionData['teacherId'])\r\n const teacher = await getStudentTeacher(teacherId, teachers)\r\n if (!teacher) {\r\n console.log(' - Student lesson Added> Teacher not found')\r\n return false\r\n }\r\n if (teacher.isInvited) {\r\n NavigatorService.navigateAndReset(StudentChooseTeacherRouteName)\r\n }\r\n else {\r\n await chooseTeacher(teacher, userData.id, dispatch)\r\n NavigatorService.navigateAndReset('StudentTeacherLessonList', { groupId: parseInt(actionData['groupId']) })\r\n }\r\n return true\r\n }\r\n})\r\n\r\nconst _studentNewAssignmentCommentHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n await loadAssignmentsFetch(parseInt(actionData['assignmentGroupId']), true, USER_TYPES.STUDENT, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { users, userGroups, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n\r\n const groupId = parseInt(actionData['groupId'])\r\n const teachers = getTeacherDataList(users)\r\n const group = userGroups.find(x => x.id === groupId)\r\n const teacherId = group.users.find(x => x.role === USER_TYPES.TEACHER).userId\r\n\r\n const teacher = await getStudentTeacher(teacherId, teachers)\r\n\r\n if (!teacher) {\r\n console.log(' - Student assignment comment Added> Teacher not found')\r\n return false\r\n }\r\n if (teacher.isInvited) {\r\n NavigatorService.navigateAndReset(StudentChooseTeacherRouteName)\r\n }\r\n else {\r\n await chooseTeacher(teacher, userData.id, dispatch)\r\n\r\n const assignmentId = parseInt(actionData['assignmentId'])\r\n const globalTeacherGroup = getGlobalGroupOfGroupOwner(userGroups, groupId)\r\n const commentGroupId = globalTeacherGroup.id \r\n \r\n NavigatorService.navigate('AssignmentInfo', {\r\n itemId: assignmentId,\r\n commentGroupId: commentGroupId,\r\n studentGroupId: groupId,\r\n backMessageTitle: Messages.BACK_TO_HOME,\r\n })\r\n }\r\n return true\r\n }\r\n})\r\n\r\nconst _teacherNewAssignmentCommentHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => {\r\n return true\r\n },\r\n processAction: async (actionData, { userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n await loadAssignmentsFetch(parseInt(actionData['assignmentGroupId']), true, USER_TYPES.TEACHER, dispatch)\r\n return true\r\n },\r\n jumpOnAction: async (actionData, { users, userGroups, userData, dispatch }) => {\r\n if (actionData['groupId'] === undefined) {\r\n console.log(' - Invalid notification action data')\r\n return false\r\n }\r\n if (!users) {\r\n return\r\n }\r\n\r\n const groupId = parseInt(actionData['groupId'])\r\n const assignmentId = parseInt(actionData['assignmentId'])\r\n const globalTeacherGroup = getGlobalGroupOfGroupOwner(userGroups, groupId)\r\n const commentGroupId = globalTeacherGroup.id \r\n \r\n NavigatorService.navigate('AssignmentInfo', {\r\n itemId: assignmentId,\r\n commentGroupId: commentGroupId,\r\n studentGroupId: groupId,\r\n backMessageTitle: Messages.BACK_TO_HOME,\r\n })\r\n return true\r\n }\r\n})\r\n\r\nconst _guestActionHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => true,\r\n processAction: async (actionData, reduxParams) => true,\r\n jumpOnAction: async (actionData, reduxParams) => {\r\n NavigatorService.navigateAndReset('Login')\r\n return true\r\n }\r\n})\r\n\r\nconst _dummyActionHandler = Object.freeze({\r\n shouldDisplayLocalNotification: (actionData, reduxParams) => true,\r\n processAction: async (actionData, reduxParams) => false,\r\n jumpOnAction: async (actionData, reduxParams) => false\r\n})\r\n\r\nconst _studentActionHandlers = Object.freeze({\r\n [ACTION_NOTIFICATION_TYPES.STUDENT_INVITED]: _studentInvitedHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_MESSAGE]: _studentNewMessageHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_CHANNEL_MESSAGE]: _studentNewChannelMessageHandler,\r\n [ACTION_NOTIFICATION_TYPES.SKILL_ADDED_TO_STUDENT]: _skillAddedToStudentHandler,\r\n [ACTION_NOTIFICATION_TYPES.SKILL_REMOVED_FROM_STUDENT]: _skillRemovedFromStudentHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_LESSON]: _lessonAddedToStudentHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_ASSIGNMENT_COMMENT]: _studentNewAssignmentCommentHandler,\r\n})\r\n\r\nconst _teacherActionHandlers = Object.freeze({\r\n [ACTION_NOTIFICATION_TYPES.STUDENT_ACCEPTED_INVITATION]: _studentAcceptedInvitationHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_MESSAGE]: _teacherNewMessageHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_CHANNEL_MESSAGE]: _teacherNewChannelMessageHandler,\r\n [ACTION_NOTIFICATION_TYPES.NEW_ASSIGNMENT_COMMENT]: _teacherNewAssignmentCommentHandler,\r\n})\r\n\r\nconst _userActionHandlersMap = Object.freeze({\r\n [USER_TYPES.TEACHER]: _teacherActionHandlers,\r\n [USER_TYPES.STUDENT]: _studentActionHandlers,\r\n})\r\n\r\nfunction getActionHandler(role, notificationActionType) {\r\n let result = false\r\n if (role == USER_TYPES.GUEST) {\r\n result = _guestActionHandler\r\n }\r\n else if (role in _userActionHandlersMap) {\r\n const handlers = _userActionHandlersMap[role]\r\n if (notificationActionType in handlers) {\r\n result = handlers[notificationActionType]\r\n }\r\n else {\r\n console.log(' Invalid notification action type: ' + notificationActionType)\r\n }\r\n }\r\n else if (role !== USER_TYPES.GUEST) {\r\n console.log(' Invalid user type: ' + role)\r\n }\r\n return result || _dummyActionHandler\r\n}\r\n\r\nexport default {\r\n getActionHandler,\r\n}\r\n\r\nasync function getStudentTeacher(teacherId, teachers) {\r\n let teacher = undefined\r\n if (teachers) {\r\n teacher = teachers.find(x => x.id === teacherId)\r\n }\r\n return teacher\r\n}","import { setFcmTokenFetchNoDispatch } from '../actions/UserActions'\r\nimport NotificationActionHandler from '../utils/NotificationActionHandler'\r\nimport AppConfig from 'dpn-common/config/AppConfig'\r\nimport { ACTION_NOTIFICATION_TYPES, NOTIFICATION_TOPICS } from './NotificationsConstants'\r\nimport { USER_TYPES } from './AppConstants'\r\nimport { getUserGroupDataByGroupId } from './GroupsDataUtils'\r\n\r\nlet pendingActionData\r\nlet NotificationsService = {\r\n getCurrentToken: async () => undefined,\r\n removeNotification: _notification => undefined,\r\n subscribeToTopic: _topic => undefined,\r\n unsubscribeToTopic: _topic => undefined,\r\n}\r\n\r\nfunction init(notificationsService) {\r\n NotificationsService = notificationsService\r\n}\r\n\r\nasync function sendTokenToServer(isLoggedIn, token) {\r\n let result = false\r\n if (!token) {\r\n token = await getCurrentToken()\r\n }\r\n if (!token) {\r\n console.log('Firebase could not retrieve token')\r\n }\r\n else {\r\n result = await setFcmTokenFetchNoDispatch(token, isLoggedIn)\r\n }\r\n return result\r\n}\r\n\r\nfunction isValidNotification(notification) {\r\n const result = !!notification && notification.data !== undefined && notification.data !== null &&\r\n notification.data['receiverId'] !== undefined &&\r\n notification.data['receiverId'] !== null &&\r\n notification.data['receiverId'] !== '' &&\r\n notification.data['actionType'] !== undefined &&\r\n notification.data['actionType'] !== null &&\r\n notification.data['actionType'] !== ''\r\n if (!result) {\r\n console.log(' invalid notification', notification)\r\n }\r\n return result\r\n}\r\n\r\nfunction isUserNotification(actionData, loggedInUserId, loggedInUserType) {\r\n let result = false\r\n if (actionData['actionType'] !== ACTION_NOTIFICATION_TYPES.NEW_CHANNEL_MESSAGE) {\r\n result = loggedInUserId == actionData['receiverId']\r\n }\r\n else {\r\n result = loggedInUserType === actionData['receiverUserType']\r\n }\r\n return result\r\n}\r\n\r\nfunction addPendingActionData(notification, removeNotification) {\r\n if (isValidNotification(notification)) {\r\n pendingActionData = notification.data\r\n removeNotification && NotificationsService.removeNotification(notification)\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nasync function processOnNotificationOpened(notificationOpen, loggedInUserId, loggedInUserType, reduxParams) {\r\n let result = false\r\n if (notificationOpen) {\r\n const notification = notificationOpen\r\n NotificationsService.removeNotification(notification)\r\n if (_isValidAndUserOrGuestNotificationForJump(notification, loggedInUserId, loggedInUserType, reduxParams)) {\r\n result = await _jumpOnAction(loggedInUserType, notification.data, reduxParams)\r\n // hack because can not put addPendingActionData in action handlers\r\n if (result && loggedInUserType === USER_TYPES.GUEST) {\r\n pendingActionData = notification.data\r\n }\r\n }\r\n }\r\n return result\r\n}\r\n\r\nasync function processOnNotificationReceived(notification, loggedInUserId, loggedInUserType, reduxParams) {\r\n let result = false\r\n if (_isValidAndUserOrGuestNotification(notification, loggedInUserId, loggedInUserType, reduxParams)) {\r\n const handler = NotificationActionHandler.getActionHandler(loggedInUserType, notification.data['actionType'])\r\n result = await handler.processAction(notification.data, reduxParams)\r\n }\r\n return result\r\n}\r\n\r\nfunction shouldDisplayLocalNotification(notification, loggedInUserId, loggedInUserType, reduxParams) {\r\n let result = false\r\n if (_isValidAndUserOrGuestNotification(notification, loggedInUserId, loggedInUserType, reduxParams)) {\r\n const handler = NotificationActionHandler.getActionHandler(loggedInUserType, notification.data['actionType'])\r\n result = handler.shouldDisplayLocalNotification(notification.data, reduxParams)\r\n }\r\n return result\r\n}\r\n\r\nasync function executePendingAction(loggedInUserId, loggedInUserType, reduxParams) {\r\n let result = false\r\n if (pendingActionData !== undefined && \r\n (USER_TYPES.GUEST === loggedInUserType || isUserNotification(pendingActionData, loggedInUserId, loggedInUserType, reduxParams))) {\r\n result = await _jumpOnAction(loggedInUserType, pendingActionData, reduxParams)\r\n // clear pending action data only if data is processed and if user type is not guest\r\n if (result && USER_TYPES.GUEST !== loggedInUserType) {\r\n pendingActionData = undefined\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction unsubscribeFromAllTopics() {\r\n Object.values(NOTIFICATION_TOPICS).forEach(x => unsubscribeFromTopic(x))\r\n}\r\n\r\nfunction subscribeToTopic(topic) {\r\n NotificationsService.subscribeToTopic(topic)\r\n}\r\n\r\nfunction unsubscribeFromTopic(topic) {\r\n NotificationsService.unsubscribeFromTopic(topic)\r\n}\r\n\r\nfunction getCurrentToken() {\r\n return NotificationsService.getCurrentToken()\r\n}\r\n\r\nasync function _jumpOnAction(loggedInUserType, actionData, reduxParams) {\r\n const handler = NotificationActionHandler.getActionHandler(loggedInUserType, actionData['actionType'])\r\n return await handler.jumpOnAction(actionData, reduxParams)\r\n}\r\n\r\nfunction _isValidAndUserOrGuestNotification(notification, loggedInUserId, loggedInUserType, reduxParams) {\r\n const result = isValidNotification(notification) && \r\n (USER_TYPES.GUEST === loggedInUserType || isUserNotification(notification.data, loggedInUserId, loggedInUserType, reduxParams))\r\n return result\r\n}\r\n\r\nfunction _isUserNotificationForJump(actionData, loggedInUserId, loggedInUserType, { userGroups }) {\r\n let result = false\r\n if (actionData['actionType'] === ACTION_NOTIFICATION_TYPES.NEW_MESSAGE) {\r\n if (actionData['groupId'] !== undefined) {\r\n const groupId = parseInt(actionData['groupId'])\r\n const group = getUserGroupDataByGroupId(userGroups, groupId)\r\n result = !!group && !!group['users'] && group['users'].length > 0 && (group.userId === loggedInUserId || group['users'].some(x => x.userId === loggedInUserId))\r\n }\r\n }\r\n else {\r\n result = isUserNotification(actionData, loggedInUserId, loggedInUserType, { userGroups })\r\n }\r\n return result\r\n}\r\n\r\nfunction _isValidAndUserOrGuestNotificationForJump(notification, loggedInUserId, loggedInUserType, reduxParams) {\r\n const result = isValidNotification(notification) && \r\n (USER_TYPES.GUEST === loggedInUserType || _isUserNotificationForJump(notification.data, loggedInUserId, loggedInUserType, reduxParams))\r\n return result\r\n}\r\n\r\nconst dummy = () => false\r\nconst dummyAsync = async () => false\r\nexport default AppConfig.enableNotifications ? {\r\n init,\r\n sendTokenToServer,\r\n processOnNotificationOpened,\r\n processOnNotificationReceived,\r\n executePendingAction,\r\n isUserNotification,\r\n isValidNotification,\r\n shouldDisplayLocalNotification,\r\n subscribeToTopic,\r\n unsubscribeFromTopic,\r\n unsubscribeFromAllTopics,\r\n addPendingActionData,\r\n getCurrentToken,\r\n} : {\r\n init,\r\n sendTokenToServer: dummy,\r\n processOnNotificationOpened: dummyAsync,\r\n processOnNotificationReceived: dummyAsync,\r\n executePendingAction: dummyAsync,\r\n isUserNotification: dummy,\r\n isValidNotification: dummy,\r\n shouldDisplayLocalNotification: dummy,\r\n subscribeToTopic: dummy,\r\n unsubscribeFromTopic: dummy,\r\n unsubscribeFromAllTopics: dummy,\r\n addPendingActionData: dummy,\r\n getCurrentToken: dummy,\r\n}","import { USER_TYPES, FIRST_TIME_GROUP_FETCH_PARAMS, IDENTITY_SERVICE, StudentChooseTeacherRouteName, ROLE_ID } from './AppConstants'\r\nimport { getUserConnectionsFetchNoDispatch, loadSavedTeacher, setStudentChosenTeacher } from '../actions/StudentActions'\r\nimport { loadGroupsDataForStudentWithProvidedUserConnectionsRequiredFetch, loadGroupsDataForTeacherFetch } from '../actions/GroupActions'\r\nimport { getSiteGlobalGroups, getTeacherGlobalGroups, getTeacherCustomGroups } from './GroupsDataUtils'\r\nimport { loadEmoticonsFetch } from '../actions/EmoticonActions'\r\nimport { studentSelectedTeacherDataSelector } from 'dpn-common/reselects/StudentGroupsDataReselects'\r\nimport SharedService from 'dpn-common/services/SharedServices'\r\nimport FetchService from 'dpn-common/services/FetchService'\r\nimport PostponeActionHelper from './PostponeActionHelper'\r\nimport { loadAssignmentsFetch } from 'dpn-common/actions/AssignmentActions'\r\n\r\nconst guestUser = Object.freeze({\r\n getHomeRoute: () => 'GuestHome',\r\n onLogin: async (_userData, _dispatch) => ({}),\r\n onLogout: () => undefined,\r\n})\r\n\r\nconst teacherUser = Object.freeze({\r\n getHomeRoute: () => 'TeacherHome',\r\n onLogin: async (userData, dispatch) => {\r\n await loadEmoticonsFetch(dispatch)\r\n const groupData = await loadGroupsDataForTeacherFetch(FIRST_TIME_GROUP_FETCH_PARAMS, dispatch, userData)\r\n if (groupData.success) {\r\n const teacher = groupData.users.find(x => x.id === userData.id)\r\n if (teacher) {\r\n userData.leaderboardParticipation = teacher.leaderboardParticipation\r\n }\r\n else {\r\n console.error('onLogin teacher in users not found. ', userData.id, groupData.users)\r\n }\r\n await loadPAAssignments(USER_TYPES.TEACHER, groupData.globalGroups, dispatch)\r\n await loadCustomAssignments(USER_TYPES.TEACHER, groupData.userGroups, userData.id, dispatch)\r\n }\r\n return groupData\r\n },\r\n onLogout: () => PostponeActionHelper.onLogout()\r\n})\r\n\r\nconst studentUser = Object.freeze({\r\n getHomeRoute: (additionalData) => {\r\n if (SharedService.PlatformService.getOS() !== 'web') {\r\n return 'StudentHome'\r\n }\r\n return (!additionalData || additionalData.hasTeacher) ? 'StudentHome' : StudentChooseTeacherRouteName\r\n },\r\n onLogin: async (userData, dispatch) => {\r\n await loadEmoticonsFetch(dispatch)\r\n const userConnections = await getUserConnectionsFetchNoDispatch()\r\n if (!userConnections) {\r\n return undefined\r\n }\r\n const teacherConnections = userConnections.filter(x => x.roleId === ROLE_ID.TEACHER)\r\n const studentDetails = await loadSavedTeacher(userData.id)\r\n // first: try to pick saved teacher from connections. second: try to pick first if there is only one active and not invited\r\n let teacherId = undefined\r\n if (studentDetails && teacherConnections.some(x => x.id === studentDetails.currentTeacherId && !x.isInvited && x.isActive)) {\r\n teacherId = studentDetails.currentTeacherId\r\n }\r\n if (!teacherId && teacherConnections.length === 1 &&\r\n !teacherConnections[0].isInvited && teacherConnections[0].isActive) {\r\n teacherId = teacherConnections[0].id\r\n }\r\n\r\n const groupData = await loadGroupsDataForStudentWithProvidedUserConnectionsRequiredFetch(\r\n FIRST_TIME_GROUP_FETCH_PARAMS, userConnections, teacherId, dispatch)\r\n if (groupData.success) {\r\n const student = groupData.users.find(x => x.id === userData.id)\r\n userData.leaderboardParticipation = student?.leaderboardParticipation\r\n if (teacherId) {\r\n const teacherData = studentSelectedTeacherDataSelector({\r\n studentId: userData.id,\r\n group: groupData,\r\n })\r\n dispatch(setStudentChosenTeacher(teacherData))\r\n await loadCustomAssignments(USER_TYPES.STUDENT, groupData.userGroups, teacherId, dispatch)\r\n }\r\n await loadPAAssignments(USER_TYPES.STUDENT, groupData.globalGroups, dispatch)\r\n }\r\n return groupData\r\n },\r\n onLogout: () => PostponeActionHelper.onLogout()\r\n})\r\n\r\nconst loadPAAssignments = async (role, globalGroups, dispatch) => {\r\n const siteGlobalGroupsIds = [...getSiteGlobalGroups(globalGroups).map(x => x.id)]\r\n const siteGlobalGroupId = siteGlobalGroupsIds[0]\r\n await loadAssignmentsFetch(siteGlobalGroupId, true, role, dispatch)\r\n}\r\n\r\nconst loadCustomAssignments = async (role, userGroups, teacherId, dispatch) => {\r\n const teacherGlobalGroupsIds = [...getTeacherGlobalGroups(userGroups, teacherId).map(x => x.id)]\r\n const teacherGlobalGroupId = teacherGlobalGroupsIds[0]\r\n await loadAssignmentsFetch(teacherGlobalGroupId, true, role, dispatch)\r\n}\r\n\r\nexport const getUser = (role = USER_TYPES.GUEST) => {\r\n switch (role) {\r\n case USER_TYPES.STUDENT:\r\n return studentUser\r\n case USER_TYPES.TEACHER:\r\n return teacherUser\r\n default:\r\n return guestUser\r\n }\r\n}\r\n\r\nexport const isTeacher = userData => userData.role === USER_TYPES.TEACHER\r\n\r\nexport const isStudent = userData => userData.role === USER_TYPES.STUDENT\r\n\r\nexport const getUserIdentityString = user => {\r\n if (!user) {\r\n return ''\r\n }\r\n else if (!!user.firstName && !!user.lastName) {\r\n return `${user.firstName} ${user.lastName}`\r\n }\r\n return user.firstName || user.lastName || user.username || ''\r\n}\r\n\r\nexport const userHasFullName = user => !!user && user.firstName !== undefined && user.firstName !== null &&\r\n !user.lastName !== undefined && user.lastName !== null\r\n\r\nexport const getTeacherBaseDataFromState = state => {\r\n const isUserStudent = isStudent(state.base.auth.userData)\r\n const userId = state.base.auth.userData.id\r\n const teacherId = isUserStudent && !!state.student.teacher ? state.student.teacher.id : userId\r\n const siteGlobalGroups = getSiteGlobalGroups(state.group.globalGroups)\r\n const teacherGlobalGroups = getTeacherGlobalGroups(state.group.userGroups, teacherId)\r\n const teacherCustomGroups = getTeacherCustomGroups(state.group.userGroups, teacherId)\r\n return {\r\n siteGlobalGroups,\r\n teacherGlobalGroups,\r\n teacherCustomGroups,\r\n userId,\r\n teacherId\r\n }\r\n}\r\n\r\nexport const getTeacherStudentFromProps = ({ userData, selectedUser }) => {\r\n const result = {}\r\n if (userData) {\r\n if (isStudent(userData)) {\r\n result.student = Object.freeze(userData)\r\n }\r\n else if (isTeacher(userData)) {\r\n result.teacher = Object.freeze(userData)\r\n }\r\n }\r\n\r\n if (selectedUser) {\r\n if (isStudent(selectedUser)) {\r\n result.student = Object.freeze(selectedUser)\r\n }\r\n else if (isTeacher(selectedUser)) {\r\n result.teacher = Object.freeze(selectedUser)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nexport const getUserPictureStaticUrl = (picture, defaultImageUrl) => {\r\n if (!picture) {\r\n return defaultImageUrl\r\n }\r\n else if (picture.startsWith('premadeAvatars/')) {\r\n return FetchService.staticUrl(picture, defaultImageUrl)\r\n }\r\n else {\r\n return FetchService[IDENTITY_SERVICE].staticUrl(picture, defaultImageUrl)\r\n }\r\n}\r\n\r\nexport const getUserPictureUrl = (picture, defaultImageUrl) => {\r\n if (!picture) {\r\n return defaultImageUrl\r\n }\r\n else if (picture.startsWith('premadeAvatars/')) {\r\n return FetchService.imageUrl(picture, defaultImageUrl)\r\n }\r\n else {\r\n return FetchService[IDENTITY_SERVICE].imageUrl(picture, defaultImageUrl)\r\n }\r\n}\r\n\r\nexport const getFirstLastName = function (fullName) {\r\n const value = (fullName || '').trim()\r\n const spaceIndex = value.indexOf(' ')\r\n if (spaceIndex === -1) {\r\n return {\r\n firstName: value,\r\n lastName: '',\r\n }\r\n }\r\n\r\n return {\r\n firstName: value.substring(0, spaceIndex).trim(),\r\n lastName: value.substring(spaceIndex + 1).trim(),\r\n }\r\n}\r\n\r\nexport const getUsersSortBase = function (a, b) {\r\n const name1 = getUserIdentityString(a).toLowerCase()\r\n const name2 = getUserIdentityString(b).toLowerCase()\r\n return name1.localeCompare(name2)\r\n}\r\n\r\nexport const getUsersSortTime = function (a, b) {\r\n const cmp = a.fromTimeInMinutes - b.fromTimeInMinutes\r\n if (cmp !== 0) {\r\n return cmp\r\n }\r\n return getUsersSortBase(a, b)\r\n}\r\n\r\nexport const getGroupsSortBase = function (a, b) {\r\n return a.name.localeCompare(b.name)\r\n}\r\n\r\nexport const getGroupsSortTime = function (a, b) {\r\n const cmp = a.fromTimeInMinutes - b.fromTimeInMinutes\r\n if (cmp !== 0) {\r\n return cmp\r\n }\r\n return a.name.localeCompare(b.name)\r\n}\r\n\r\nexport const sortUsers = function(users) {\r\n return users.sort(getUsersSortBase)\r\n}\r\n\r\nexport const isPremiumUser = userData => true","export const LayoutIcons = Object.freeze({\r\n LESSONS: 'assignment_ind',\r\n STUDENTS: 'people',\r\n GROUPS: 'group_work',\r\n COMMUNICATION: 'message',\r\n CHATS: 'chat',\r\n CHANNELS: 'chat_bubble_outline',\r\n SCHOOL_YEAR: 'school',\r\n VIDEO_TUTORIALS: 'video_library',\r\n TEACHER_RESOURCES: 'videocam',\r\n PRESETS: 'tune',\r\n TEXT_PRESETS: 'text_fields',\r\n ASSIGN_LEVEL_PRESETS: 'assignment_ind',\r\n LEADERBOARD: 'score',\r\n LANGUAGES: 'translate',\r\n NOTIFICATIONS: 'notifications',\r\n PRIVACY_TERMS: 'security',\r\n SKILLS: 'cast_for_education',\r\n REWARDS: 'sentiment_satisfied',\r\n ASSIGNMENTS: 'assignment',\r\n PIANO_ADVENTURES: 'music_note',\r\n TEACHERS: 'school',\r\n DASHBOARD: 'library_music',\r\n HOME: 'home',\r\n HELP: 'help',\r\n CONTACT: 'contact_mail',\r\n TUTORIALS: 'videocam',\r\n NOTE: 'note',\r\n ALL_STUDENTS: 'person',\r\n ALL_GROUPS: 'groups',\r\n COURSES: 'subject',\r\n SETTINGS: 'settings',\r\n HELP_OUTLINE: 'help_outline',\r\n VIDEO_LIBRARY: 'play_circle_outline',\r\n MY_PROFILE: 'account_circle',\r\n})","import React from 'react';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {FuseScrollbars} from '@fuse';\r\nimport clsx from 'clsx';\r\nimport {useSelector} from 'react-redux';\r\n\r\nfunction FusePageSimpleSidebarContent(props)\r\n{\r\n const mainThemeDark = useSelector(({fuse}) => fuse.settings.mainThemeDark);\r\n\r\n const classes = props.classes;\r\n\r\n return (\r\n \r\n {props.header && (\r\n \r\n
\r\n {props.header}\r\n
\r\n
\r\n )}\r\n\r\n {props.content && (\r\n
\r\n {props.content}\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default FusePageSimpleSidebarContent;\r\n","import React, {useImperativeHandle, useState} from 'react';\r\nimport {Hidden, Drawer} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport FusePageSimpleSidebarContent from './FusePageSimpleSidebarContent';\r\n\r\nfunction FusePageSimpleSidebar(props, ref)\r\n{\r\n const [isOpen, setIsOpen] = useState(false);\r\n const classes = props.classes;\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggleSidebar: handleToggleDrawer\r\n }));\r\n\r\n const handleToggleDrawer = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n return (\r\n \r\n \r\n handleToggleDrawer()}\r\n classes={{\r\n root : clsx(classes.sidebarWrapper, props.variant),\r\n paper: clsx(classes.sidebar, props.variant, props.position === 'left' ? classes.leftSidebar : classes.rightSidebar)\r\n }}\r\n ModalProps={{\r\n keepMounted: true, // Better open performance on mobile.\r\n }}\r\n container={props.rootRef.current}\r\n BackdropProps={{\r\n classes: {\r\n root: classes.backdrop\r\n }\r\n }}\r\n style={{position: 'absolute'}}\r\n // onClick={(ev) => handleToggleDrawer()}\r\n >\r\n \r\n \r\n \r\n {props.variant === 'permanent' && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default React.forwardRef(FusePageSimpleSidebar);\r\n","import React from 'react';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {useSelector} from 'react-redux';\r\n\r\nfunction FusePageSimpleHeader(props)\r\n{\r\n const mainThemeDark = useSelector(({fuse}) => fuse.settings.mainThemeDark);\r\n\r\n return (\r\n
\r\n {props.header && (\r\n \r\n {props.header}\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nexport default FusePageSimpleHeader;\r\n","import React, {useRef} from 'react';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseScrollbars} from '@fuse';\r\nimport clsx from 'clsx';\r\nimport FusePageSimpleSidebar from './FusePageSimpleSidebar';\r\nimport FusePageSimpleHeader from './FusePageSimpleHeader';\r\nimport * as PropTypes from 'prop-types';\r\n\r\nconst headerHeight = 120;\r\nconst toolbarHeight = 64;\r\nconst minDrawerWidth = 240;\r\nconst maxDrawerWidth = 450;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root : {\r\n display : 'flex',\r\n flexDirection : 'column',\r\n minHeight : '100%',\r\n position : 'relative',\r\n flex : '1 0 auto',\r\n height : 'auto',\r\n backgroundColor: theme.palette.background.default\r\n },\r\n innerScroll : {\r\n flex : '1 1 auto',\r\n height: '100%'\r\n },\r\n wrapper : {\r\n display : 'flex',\r\n flexDirection : 'row',\r\n flex : '1 1 auto',\r\n zIndex : 2,\r\n maxWidth : '100%',\r\n minWidth : 0,\r\n height : '100%',\r\n backgroundColor: theme.palette.background.default\r\n },\r\n header : {\r\n height : headerHeight,\r\n minHeight : headerHeight,\r\n display : 'flex',\r\n background : 'linear-gradient(to right, ' + theme.palette.primary.dark + ' 0%, ' + theme.palette.primary.main + ' 100%)',\r\n color : theme.palette.primary.contrastText,\r\n backgroundSize : 'cover',\r\n backgroundColor: theme.palette.primary.dark\r\n },\r\n topBg : {\r\n position : 'absolute',\r\n left : 0,\r\n right : 0,\r\n top : 0,\r\n height : headerHeight,\r\n pointerEvents: 'none'\r\n },\r\n /* contentCardWrapper : {\r\n display : 'flex ',\r\n flex : '1 1 auto',\r\n overflow: 'visible!important',\r\n minWidth: 0,\r\n '&.ps' : {\r\n overflow: 'visible!important'\r\n }\r\n },\r\n contentCardWrapperInnerSidebar: {\r\n display : 'block',\r\n overflow : 'auto!important',\r\n '-webkit-overflow-scrolling': 'touch',\r\n '&.ps' : {\r\n overflow: 'hidden!important'\r\n },\r\n '& $contentCard' : {\r\n borderRadius: 8\r\n }\r\n },*/\r\n contentWrapper : {\r\n display : 'flex',\r\n flexDirection : 'column',\r\n flex : '1 1 auto',\r\n overflow : 'auto',\r\n '-webkit-overflow-scrolling': 'touch',\r\n zIndex : 9999\r\n },\r\n toolbar : {\r\n height : toolbarHeight,\r\n minHeight : toolbarHeight,\r\n display : 'flex',\r\n alignItems: 'center'\r\n },\r\n content : {\r\n flex: '1 0 auto'\r\n },\r\n sidebarWrapper : {\r\n overflow : 'hidden',\r\n backgroundColor: 'transparent',\r\n position : 'absolute',\r\n '&.permanent' : {\r\n [theme.breakpoints.up('lg')]: {\r\n position: 'relative'\r\n }\r\n }\r\n },\r\n sidebar : {\r\n position : 'absolute',\r\n '&.permanent': {\r\n [theme.breakpoints.up('lg')]: {\r\n backgroundColor: theme.palette.background.default,\r\n color : theme.palette.text.primary,\r\n position : 'relative'\r\n }\r\n },\r\n minWidth : minDrawerWidth,\r\n maxWidth : maxDrawerWidth,\r\n height : '100%'\r\n },\r\n leftSidebar : {\r\n [theme.breakpoints.up('lg')]: {\r\n borderRight: '1px solid ' + theme.palette.divider,\r\n borderLeft : 0\r\n }\r\n },\r\n rightSidebar : {\r\n [theme.breakpoints.up('lg')]: {\r\n borderLeft : '1px solid ' + theme.palette.divider,\r\n borderRight: 0\r\n }\r\n },\r\n sidebarHeader : {\r\n // height : headerHeight,\r\n minHeight : headerHeight,\r\n backgroundColor: theme.palette.primary.dark,\r\n color : theme.palette.primary.contrastText\r\n },\r\n sidebarHeaderInnerSidebar: {\r\n backgroundColor: 'transparent',\r\n color : 'inherit',\r\n height : 'auto',\r\n minHeight : 'auto'\r\n },\r\n sidebarContent : {},\r\n backdrop : {\r\n position: 'absolute'\r\n }\r\n}));\r\n\r\nconst FusePageSimple = React.forwardRef(function (props, ref) {\r\n // console.info(\"render::FusePageSimple\");\r\n const leftSidebarRef = useRef(null);\r\n const rightSidebarRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const classes = useStyles(props);\r\n\r\n React.useImperativeHandle(ref, () => {\r\n return {\r\n rootRef : rootRef,\r\n toggleLeftSidebar : () => {\r\n leftSidebarRef.current.toggleSidebar()\r\n },\r\n toggleRightSidebar: () => {\r\n rightSidebarRef.current.toggleSidebar()\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 {props.header && props.sidebarInner && (\r\n \r\n )}\r\n\r\n
\r\n\r\n {(props.leftSidebarHeader || props.leftSidebarContent) && (\r\n \r\n )}\r\n\r\n {/**/}\r\n {\r\n props.noContentScrollbar\r\n ?\r\n props.noExtraContainer ?\r\n props.content && props.content\r\n :\r\n
\r\n {props.header && !props.sidebarInner && (\r\n \r\n )}\r\n\r\n {props.contentToolbar && (\r\n
\r\n {props.contentToolbar}\r\n
\r\n )}\r\n {props.content && (\r\n
\r\n {props.content}\r\n
\r\n )}\r\n
\r\n :\r\n \r\n\r\n {props.header && !props.sidebarInner && (\r\n \r\n )}\r\n\r\n {props.contentToolbar && (\r\n
\r\n {props.contentToolbar}\r\n
\r\n )}\r\n {props.content && (\r\n
\r\n {props.content}\r\n
\r\n )}\r\n
\r\n }\r\n {/**/}\r\n\r\n {(props.rightSidebarHeader || props.rightSidebarContent) && (\r\n \r\n )}\r\n\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nFusePageSimple.propTypes = {\r\n leftSidebarHeader : PropTypes.node,\r\n leftSidebarContent : PropTypes.node,\r\n leftSidebarVariant : PropTypes.node,\r\n rightSidebarHeader : PropTypes.node,\r\n rightSidebarContent: PropTypes.node,\r\n rightSidebarVariant: PropTypes.node,\r\n header : PropTypes.node,\r\n content : PropTypes.node,\r\n contentToolbar : PropTypes.node,\r\n sidebarInner : PropTypes.bool,\r\n innerScroll : PropTypes.bool,\r\n noContentScrollbar : PropTypes.bool\r\n};\r\n\r\nFusePageSimple.defaultProps = {};\r\n\r\nexport default React.memo(FusePageSimple);\r\n","import React from 'react';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {FuseScrollbars} from '@fuse';\r\nimport clsx from 'clsx';\r\nimport {useSelector} from 'react-redux';\r\n\r\nfunction FusePageCardedSidebarContent(props)\r\n{\r\n const mainThemeDark = useSelector(({fuse}) => fuse.settings.mainThemeDark);\r\n\r\n const classes = props.classes;\r\n\r\n return (\r\n \r\n {props.header && (\r\n \r\n
\r\n {props.header}\r\n
\r\n
\r\n )}\r\n\r\n {props.content && (\r\n \r\n {props.content}\r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default FusePageCardedSidebarContent;\r\n","import React, {useImperativeHandle, useState} from 'react';\r\nimport {Hidden, Drawer} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport FusePageCardedSidebarContent from './FusePageCardedSidebarContent';\r\n\r\nfunction FusePageCardedSidebar(props, ref)\r\n{\r\n const [isOpen, setIsOpen] = useState(false);\r\n const classes = props.classes;\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggleSidebar: handleToggleDrawer\r\n }));\r\n\r\n const handleToggleDrawer = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n return (\r\n \r\n \r\n handleToggleDrawer()}\r\n classes={{\r\n root : clsx(classes.sidebarWrapper, props.variant),\r\n paper: clsx(classes.sidebar, props.variant, props.position === 'left' ? classes.leftSidebar : classes.rightSidebar)\r\n }}\r\n ModalProps={{\r\n keepMounted: true // Better open performance on mobile.\r\n }}\r\n container={props.rootRef.current}\r\n BackdropProps={{\r\n classes: {\r\n root: classes.backdrop\r\n }\r\n }}\r\n style={{position: 'absolute'}}\r\n onClick={(ev) => handleToggleDrawer()}\r\n >\r\n \r\n \r\n \r\n {props.variant === 'permanent' && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default React.forwardRef(FusePageCardedSidebar);\r\n","import React from 'react';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {useSelector} from 'react-redux';\r\n\r\nfunction FusePageCardedHeader(props)\r\n{\r\n const mainThemeDark = useSelector(({fuse}) => fuse.settings.mainThemeDark);\r\n\r\n return (\r\n
\r\n {props.header && (\r\n \r\n {props.header}\r\n \r\n )}\r\n
\r\n )\r\n}\r\n\r\nexport default FusePageCardedHeader;\r\n","import React, {useRef} from 'react';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseScrollbars} from '@fuse';\r\nimport clsx from 'clsx';\r\nimport FusePageCardedSidebar from './FusePageCardedSidebar';\r\nimport FusePageCardedHeader from './FusePageCardedHeader';\r\nimport * as PropTypes from 'prop-types';\r\n\r\nconst drawerWidth = 240;\r\nconst headerHeight = 171;\r\nconst toolbarHeight = 64;\r\nconst headerContentHeight = headerHeight - toolbarHeight;\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root : {\r\n display : 'flex',\r\n flexDirection : 'row',\r\n minHeight : '100%',\r\n position : 'relative',\r\n flex : '1 0 auto',\r\n height : 'auto',\r\n backgroundColor: theme.palette.background.default\r\n },\r\n innerScroll : {\r\n flex : '1 1 auto',\r\n height: '100%'\r\n },\r\n topBg : {\r\n position : 'absolute',\r\n left : 0,\r\n right : 0,\r\n top : 0,\r\n height : headerHeight,\r\n background : 'linear-gradient(to right, ' + theme.palette.primary.dark + ' 0%, ' + theme.palette.primary.main + ' 100%)',\r\n backgroundSize: 'cover',\r\n pointerEvents : 'none'\r\n },\r\n contentWrapper : {\r\n display : 'flex',\r\n flexDirection : 'column',\r\n padding : '0 3.2rem',\r\n flex : '1 1 100%',\r\n zIndex : 2,\r\n maxWidth : '100%',\r\n minWidth : 0,\r\n minHeight : 0,\r\n [theme.breakpoints.down('xs')]: {\r\n padding: '0 1.6rem'\r\n }\r\n },\r\n header : {\r\n height : headerContentHeight,\r\n minHeight: headerContentHeight,\r\n maxHeight: headerContentHeight,\r\n display : 'flex',\r\n color : theme.palette.primary.contrastText\r\n },\r\n headerSidebarToggleButton: {\r\n color: theme.palette.primary.contrastText\r\n },\r\n contentCard : {\r\n display : 'flex',\r\n flex : '1 1 100%',\r\n flexDirection : 'column',\r\n backgroundColor: theme.palette.background.paper,\r\n minHeight : 0,\r\n borderRadius : '8px 8px 0 0',\r\n border : '1px solid ' + theme.palette.divider\r\n },\r\n toolbar : {\r\n height : toolbarHeight,\r\n minHeight : toolbarHeight,\r\n display : 'flex',\r\n alignItems : 'center',\r\n borderBottom: '1px solid ' + theme.palette.divider\r\n },\r\n content : {\r\n flex : '1 1 auto',\r\n height : '100%',\r\n overflow : 'auto',\r\n '-webkit-overflow-scrolling': 'touch'\r\n },\r\n sidebarWrapper : {\r\n position : 'absolute',\r\n backgroundColor: 'transparent',\r\n zIndex : 5,\r\n overflow : 'hidden',\r\n '&.permanent' : {\r\n [theme.breakpoints.up('lg')]: {\r\n zIndex : 1,\r\n position: 'relative'\r\n }\r\n }\r\n },\r\n sidebar : {\r\n position : 'absolute',\r\n '&.permanent': {\r\n [theme.breakpoints.up('lg')]: {\r\n backgroundColor: 'transparent',\r\n position : 'relative',\r\n border : 'none',\r\n overflow : 'hidden'\r\n }\r\n },\r\n width : drawerWidth,\r\n height : '100%'\r\n\r\n },\r\n leftSidebar : {},\r\n rightSidebar : {},\r\n sidebarHeader : {\r\n height : headerHeight,\r\n minHeight : headerHeight,\r\n color : theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.dark,\r\n '&.permanent' : {\r\n [theme.breakpoints.up('lg')]: {\r\n backgroundColor: 'transparent'\r\n }\r\n }\r\n },\r\n sidebarContent : {\r\n display : 'flex',\r\n flex : '1 1 auto',\r\n flexDirection : 'column',\r\n backgroundColor : theme.palette.background.default,\r\n color : theme.palette.text.primary,\r\n [theme.breakpoints.up('lg')]: {\r\n overflow : 'auto',\r\n '-webkit-overflow-scrolling': 'touch'\r\n }\r\n },\r\n backdrop : {\r\n position: 'absolute'\r\n }\r\n}));\r\n\r\nconst FusePageCarded = React.forwardRef(function (props, ref) {\r\n const leftSidebarRef = useRef(null);\r\n const rightSidebarRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const classes = useStyles(props);\r\n const isRightSidebar = props.rightSidebarHeader || props.rightSidebarContent;\r\n const isLeftSidebar = props.leftSidebarHeader || props.leftSidebarContent;\r\n\r\n React.useImperativeHandle(ref, () => {\r\n return {\r\n rootRef : rootRef,\r\n toggleLeftSidebar : () => {\r\n leftSidebarRef.current.toggleSidebar()\r\n },\r\n toggleRightSidebar: () => {\r\n rightSidebarRef.current.toggleSidebar()\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 {isLeftSidebar && (\r\n \r\n )}\r\n\r\n \r\n\r\n \r\n\r\n
\r\n\r\n {props.contentToolbar && (\r\n
\r\n {props.contentToolbar}\r\n
\r\n )}\r\n\r\n {props.content && props.noContentScrollbar\r\n ?\r\n
\r\n {props.content}\r\n
\r\n :\r\n \r\n {props.content}\r\n \r\n }\r\n
\r\n
\r\n\r\n {isRightSidebar && (\r\n \r\n )}\r\n
\r\n
\r\n );\r\n});\r\n\r\nFusePageCarded.propTypes = {\r\n rightSidebarHeader : PropTypes.node,\r\n rightSidebarContent: PropTypes.node,\r\n rightSidebarVariant: PropTypes.node,\r\n leftSidebarHeader : PropTypes.node,\r\n leftSidebarContent : PropTypes.node,\r\n leftSidebarVariant : PropTypes.node,\r\n header : PropTypes.node,\r\n content : PropTypes.node,\r\n contentToolbar : PropTypes.node,\r\n innerScroll : PropTypes.bool,\r\n noContentScrollbar : PropTypes.bool\r\n};\r\n\r\nFusePageCarded.defaultProps = {};\r\n\r\nexport default React.memo(FusePageCarded);\r\n","import React from 'react';\r\nimport {List, ListItem, ListItemText} from '@material-ui/core';\r\nimport _ from '@lodash';\r\n\r\nfunction DemoSidebarContent()\r\n{\r\n function generate(element)\r\n {\r\n return _(30).times(value =>\r\n React.cloneElement(element, {\r\n key: value\r\n })\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {generate(\r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(DemoSidebarContent);\r\n","import React from 'react';\r\n\r\nfunction DemoContent()\r\n{\r\n return (\r\n
\r\n\r\n \r\n\r\n

Early Sunrise

\r\n

Demo Content

\r\n\r\n

\r\n One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a\r\n horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his\r\n brown belly, slightly domed and divided by arches into stiff sections.\r\n

\r\n\r\n
\r\n

\r\n The bedding was hardly able to cover it and seemed ready to slide off any moment. His many legs,\r\n pitifully thin compared with the size of the rest of him, waved about helplessly as he looked. \"What's\r\n happened to me? \" he thought. It wasn't a dream.\r\n

\r\n
\r\n John Doe\r\n
\r\n
\r\n\r\n

\r\n His room, a proper human room although a little too small, lay peacefully between its four familiar\r\n walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman -\r\n and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in\r\n a nice, gilded frame.\r\n

\r\n\r\n

\r\n It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that\r\n covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the\r\n dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad.\r\n

\r\n\r\n

\r\n \"How about if I sleep a little bit longer and forget all this nonsense\", he thought, but that was\r\n something he was unable to do because he was used to sleeping on his right, and in his present state\r\n couldn't get into that position. However hard he threw himself onto his right, he always rolled back to\r\n where he was.\r\n

\r\n\r\n

\r\n He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering\r\n legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. \"Oh,\r\n God\", he thought, \"what a strenuous career it is that I've chosen!\r\n

\r\n\r\n

\r\n Travelling day in and day out. Doing business like this takes much more effort than doing your own\r\n business at home, and on top of that there's the curse of travelling, worries about making train\r\n connections, bad and irregular food, contact with different people all the time so that you can never\r\n get to know anyone or become friendly with them.\r\n

\r\n\r\n

\r\n \"He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so\r\n that he could lift his head better; found where the itch was, and saw that it was covered with lots of\r\n little white spots which he didn't know what to make of; and when he tried to feel the place with one of\r\n his legs he drew it quickly back because as soon as he touched it he was overcome by a cold shudder. He\r\n slid back into his former position.\r\n

\r\n\r\n

\r\n \"Getting up early all the time\", he thought, \"it makes you stupid. You've got to get enough sleep. Other\r\n travelling salesmen live a life of luxury. For instance, whenever I go back to the guest house during\r\n the morning to copy out the contract, these gentlemen are always still sitting there eating their\r\n breakfasts. I ought to just try that with my boss; I'd get kicked out on the spot. But who knows, maybe\r\n that would be the best thing for me...\r\n

\r\n His room, a proper human room although a little too small, lay peacefully between its four familiar\r\n walls. A collection of textile samples lay spread out on the table - Samsa was a travelling salesman -\r\n and above it there hung a picture that he had recently cut out of an illustrated magazine and housed in\r\n a nice, gilded frame.\r\n

\r\n\r\n

\r\n It showed a lady fitted out with a fur hat and fur boa who sat upright, raising a heavy fur muff that\r\n covered the whole of her lower arm towards the viewer. Gregor then turned to look out the window at the\r\n dull weather. Drops of rain could be heard hitting the pane, which made him feel quite sad.\r\n

\r\n\r\n

\r\n \"How about if I sleep a little bit longer and forget all this nonsense\", he thought, but that was\r\n something he was unable to do because he was used to sleeping on his right, and in his present state\r\n couldn't get into that position. However hard he threw himself onto his right, he always rolled back to\r\n where he was.\r\n

\r\n\r\n

\r\n He must have tried it a hundred times, shut his eyes so that he wouldn't have to look at the floundering\r\n legs, and only stopped when he began to feel a mild, dull pain there that he had never felt before. \"Oh,\r\n God\", he thought, \"what a strenuous career it is that I've chosen!\r\n

\r\n\r\n

\r\n Travelling day in and day out. Doing business like this takes much more effort than doing your own\r\n business at home, and on top of that there's the curse of travelling, worries about making train\r\n connections, bad and irregular food, contact with different people all the time so that you can never\r\n get to know anyone or become friendly with them.\r\n

\r\n\r\n

\r\n \"He felt a slight itch up on his belly; pushed himself slowly up on his back towards the headboard so\r\n that he could lift his head better; found where the itch was, and saw that it was covered with lots of\r\n little white spots which he didn't know what to make of; and when he tried to feel the place with one of\r\n his legs he drew it quickly back because as soon as he touched it he was overcome by a cold shudder. He\r\n slid back into his former position.\r\n

\r\n\r\n

\r\n \"Getting up early all the time\", he thought, \"it makes you stupid. You've got to get enough sleep. Other\r\n travelling salesmen live a life of luxury. For instance, whenever I go back to the guest house during\r\n the morning to copy out the contract, these gentlemen are always still sitting there eating their\r\n breakfasts. I ought to just try that with my boss; I'd get kicked out on the spot. But who knows, maybe\r\n that would be the best thing for me...\r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(DemoContent);\r\n","import React from 'react'\r\nimport { Checkbox } from '@material-ui/core'\r\nimport Box from '@material-ui/core/Box'\r\n\r\nfunction FuseNavBadge(props) {\r\n const checked = props.badge.props.checked\r\n \r\n return (\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default React.memo(FuseNavBadge)","import React from 'react';\r\nimport {Icon, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {NavLinkAdapter, FuseUtils} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { useDispatch, useSelector} from 'react-redux';\r\nimport * as Actions from 'app/store/actions';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n item: {\r\n height : 40,\r\n width : 'calc(100% - 16px)',\r\n borderRadius : '0 20px 20px 0',\r\n paddingRight : 12,\r\n '&.active' : {\r\n backgroundColor : theme.palette.secondary.main,\r\n color : theme.palette.secondary.contrastText + '!important',\r\n pointerEvents : 'none',\r\n transition : 'border-radius .15s cubic-bezier(0.4,0.0,0.2,1)',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '&.square, &.active.square': {\r\n width : '100%',\r\n borderRadius: '0'\r\n },\r\n '& .list-item-icon' : {},\r\n '& .list-item-text' : {},\r\n color : theme.palette.text.primary,\r\n cursor : 'pointer',\r\n textDecoration : 'none!important'\r\n }\r\n}));\r\n\r\nfunction FuseNavVerticalItem(props)\r\n{\r\n const dispatch = useDispatch();\r\n const { userRole, fuseSettings, hasTeacher } = useSelector(({ base, fuse, student }) => ({\r\n userRole: base.auth.role,\r\n hasTeacher: !!(student && student.teacher),\r\n fuseSettings: fuse.settings\r\n }));\r\n\r\n const classes = useStyles(props);\r\n const {item, nestedLevel, active, location} = props;\r\n let paddingValue = 40 + (nestedLevel * 16);\r\n const listItemPadding = nestedLevel > 0 ? 'pl-' + (paddingValue > 80 ? 80 : paddingValue) : 'pl-24';\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) || item.teacherRequired && !hasTeacher )\r\n {\r\n return null;\r\n }\r\n\r\n function getItemIcon(icon, active) {\r\n if (!icon) {\r\n return null\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0 mr-16'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n // use action color specified in current fuse theme\r\n const color = !active ? fuseSettings.navbarTheme.palette.action.active : fuseSettings.navbarTheme.palette.common.white\r\n return \r\n }\r\n }\r\n\r\n const className = clsx(classes.item, listItemPadding, 'list-item', active);\r\n return (\r\n dispatch(Actions.navbarCloseMobile())}\r\n exact={item.exact}\r\n >\r\n {item.icon && getItemIcon(item.icon, !!location.pathname && location.pathname.includes(item.url))}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavVerticalItem.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title: PropTypes.string,\r\n icon : PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\r\n url : PropTypes.string\r\n })\r\n};\r\n\r\nFuseNavVerticalItem.defaultProps = {};\r\n\r\nconst NavVerticalItem = withRouter(React.memo(FuseNavVerticalItem));\r\n\r\nexport default NavVerticalItem;\r\n","import React from 'react';\r\nimport {Icon, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport * as Actions from 'app/store/actions';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n item: {\r\n height : 40,\r\n width : 'calc(100% - 16px)',\r\n borderRadius : '0 20px 20px 0',\r\n paddingRight : 12,\r\n '&.active' : {\r\n backgroundColor : theme.palette.secondary.main,\r\n color : theme.palette.secondary.contrastText + '!important',\r\n pointerEvents : 'none',\r\n transition : 'border-radius .15s cubic-bezier(0.4,0.0,0.2,1)',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '&.square, &.active.square': {\r\n width : '100%',\r\n borderRadius: '0'\r\n },\r\n '& .list-item-icon' : {},\r\n '& .list-item-text' : {},\r\n color : theme.palette.text.primary,\r\n textDecoration : 'none!important'\r\n }\r\n}));\r\n\r\nfunction FuseNavVerticalLink(props)\r\n{\r\n const dispatch = useDispatch();\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const {item, nestedLevel, active} = props;\r\n let paddingValue = 40 + (nestedLevel * 16);\r\n const listItemPadding = nestedLevel > 0 ? 'pl-' + (paddingValue > 80 ? 80 : paddingValue) : 'pl-24';\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0 mr-16'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n dispatch(Actions.navbarCloseMobile())}\r\n role='button'\r\n >\r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavVerticalLink.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n icon : PropTypes.string,\r\n url : PropTypes.string,\r\n target: PropTypes.string\r\n })\r\n};\r\nFuseNavVerticalLink.defaultProps = {};\r\n\r\nconst NavVerticalLink = withRouter(React.memo(FuseNavVerticalLink));\r\n\r\nexport default NavVerticalLink;\r\n","import React, {useEffect, useState} from 'react';\r\nimport {Collapse, Icon, IconButton, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useSelector} from 'react-redux';\r\nimport FuseNavVerticalGroup from './FuseNavVerticalGroup';\r\nimport FuseNavVerticalItem from './FuseNavVerticalItem';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\nimport FuseNavVerticalLink from './FuseNavVerticalLink';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding : 0,\r\n '&.open': {\r\n backgroundColor: 'rgba(0,0,0,.08)'\r\n }\r\n },\r\n item: {\r\n height : 40,\r\n width : 'calc(100% - 16px)',\r\n borderRadius: '0 20px 20px 0',\r\n paddingRight: 12,\r\n color : theme.palette.text.primary,\r\n '&.square' : {\r\n width : '100%',\r\n borderRadius: '0'\r\n }\r\n }\r\n}));\r\n\r\nfunction needsToBeOpened(location, item)\r\n{\r\n return location && isUrlInChildren(item, location.pathname)\r\n}\r\n\r\nfunction isUrlInChildren(parent, url)\r\n{\r\n if ( !parent.children )\r\n {\r\n return false;\r\n }\r\n\r\n for ( let i = 0; i < parent.children.length; i++ )\r\n {\r\n if ( parent.children[i].children )\r\n {\r\n if ( isUrlInChildren(parent.children[i], url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n if ( parent.children[i].url === url || url.includes(parent.children[i].url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nfunction FuseNavVerticalCollapse(props)\r\n{\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const [open, setOpen] = useState(() => needsToBeOpened(props.location, props.item));\r\n const {item, nestedLevel, active} = props;\r\n let paddingValue = 40 + (nestedLevel * 16);\r\n const listItemPadding = nestedLevel > 0 ? 'pl-' + (paddingValue > 80 ? 80 : paddingValue) : 'pl-24';\r\n\r\n useEffect(() => {\r\n if ( needsToBeOpened(props.location, props.item) )\r\n {\r\n setOpen(true);\r\n }\r\n }, [props.location, props.item]);\r\n\r\n function handleClick()\r\n {\r\n setOpen(!open);\r\n }\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'text-16 flex-shrink-0 mr-16'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n
    \r\n\r\n \r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n \r\n {open ? 'expand_less' : 'expand_more'}\r\n \r\n \r\n \r\n\r\n {item.children && (\r\n \r\n {\r\n item.children.map((item) => (\r\n\r\n \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n\r\n \r\n ))\r\n }\r\n \r\n )}\r\n
\r\n );\r\n}\r\n\r\nFuseNavVerticalCollapse.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n icon : PropTypes.string,\r\n children: PropTypes.array\r\n })\r\n};\r\nFuseNavVerticalCollapse.defaultProps = {};\r\n\r\nconst NavVerticalCollapse = withRouter(React.memo(FuseNavVerticalCollapse));\r\n\r\nexport default NavVerticalCollapse;\r\n","import React from 'react';\r\nimport {ListSubheader} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useSelector} from 'react-redux';\r\nimport FuseNavVerticalCollapse from './FuseNavVerticalCollapse';\r\nimport FuseNavVerticalItem from './FuseNavVerticalItem';\r\nimport FuseNavVerticalLink from './FuseNavVerticalLink';\r\n\r\nconst useStyles = makeStyles({\r\n item: {\r\n height : 40,\r\n width : 'calc(100% - 16px)',\r\n borderRadius: '0 20px 20px 0',\r\n paddingRight: 12\r\n }\r\n});\r\n\r\nfunction FuseNavVerticalGroup(props)\r\n{\r\n const { userRole, hasTeacher } = useSelector(({ base, student }) => ({\r\n userRole: base.auth.role,\r\n hasTeacher: !!(student && student.teacher),\r\n }));\r\n\r\n const classes = useStyles(props);\r\n const {item, nestedLevel, active} = props;\r\n let paddingValue = 40 + (nestedLevel * 16);\r\n const listItemPadding = nestedLevel > 0 ? 'pl-' + (paddingValue > 80 ? 80 : paddingValue) : 'pl-24';\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) || item.teacherRequired && !hasTeacher )\r\n {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {item.title}\r\n \r\n \r\n\r\n {item.children && (\r\n \r\n {\r\n item.children.map((item) => (\r\n\r\n \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n\r\n \r\n ))\r\n }\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavVerticalGroup.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n children: PropTypes.array\r\n })\r\n};\r\n\r\nFuseNavVerticalGroup.defaultProps = {};\r\n\r\nconst NavVerticalGroup = withRouter(React.memo(FuseNavVerticalGroup));\r\n\r\nexport default NavVerticalGroup;\r\n","import {useCallback, useState} from 'react';\r\nimport _ from '@lodash';\r\n\r\nfunction useForm(initialState, onSubmit)\r\n{\r\n const [form, setForm] = useState(initialState);\r\n\r\n const handleChange = useCallback((event) => {\r\n event.persist();\r\n setForm(form => _.setIn({...form}, event.target.name, event.target.type === 'checkbox' ? event.target.checked : event.target.value));\r\n }, []);\r\n\r\n const resetForm = useCallback(() => {\r\n if ( !_.isEqual(initialState, form) )\r\n {\r\n setForm(initialState);\r\n }\r\n }, [form, initialState]);\r\n\r\n const setInForm = useCallback((name, value) => {\r\n setForm(form => _.setIn(form, name, value));\r\n }, []);\r\n\r\n const handleSubmit = useCallback((event) => {\r\n if ( event )\r\n {\r\n event.preventDefault();\r\n }\r\n if ( onSubmit )\r\n {\r\n onSubmit();\r\n }\r\n }, [onSubmit]);\r\n\r\n return {\r\n form,\r\n handleChange,\r\n handleSubmit,\r\n resetForm,\r\n setForm,\r\n setInForm\r\n }\r\n}\r\n\r\nexport default useForm;\r\n","import {useRef} from 'react';\r\nimport _ from '@lodash';\r\n\r\nfunction useDebounce(func, wait, options)\r\n{\r\n return useRef(_.debounce(func, wait, options)).current;\r\n}\r\n\r\nexport default useDebounce;\r\n","import {useEffect, useRef} from 'react'\r\n\r\nfunction useTimeout(callback, delay)\r\n{\r\n const callbackRef = useRef(callback);\r\n\r\n useEffect(() => {\r\n callbackRef.current = callback;\r\n }, [callback]);\r\n\r\n useEffect(() => {\r\n if ( delay && callback && typeof callback === 'function' )\r\n {\r\n let timer = setTimeout(callbackRef.current, delay || 0);\r\n return () => {\r\n if ( timer )\r\n {\r\n clearTimeout(timer);\r\n }\r\n };\r\n }\r\n }, [callback, delay]);\r\n}\r\n\r\nexport default useTimeout;\r\n","import {useEffect, useRef} from 'react';\r\n\r\nfunction usePrevious(value)\r\n{\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = useRef();\r\n\r\n // Store current value in ref\r\n useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n}\r\n\r\nexport default usePrevious;\r\n","import {useEffect, useRef} from 'react';\r\n\r\nconst useUpdateEffect = (effect, deps) => {\r\n const isInitialMount = useRef(true);\r\n\r\n useEffect(isInitialMount.current ? () => {\r\n isInitialMount.current = false;\r\n } : effect, deps);\r\n};\r\n\r\nexport default useUpdateEffect;\r\n","export {default as useForm} from './useForm';\r\nexport {default as useDebounce} from './useDebounce';\r\nexport {default as useTimeout} from './useTimeout';\r\nexport {default as usePrevious} from './usePrevious';\r\nexport {default as useUpdateEffect} from './useUpdateEffect';\r\n","import React from 'react';\r\nimport {Icon, ListItem, ListItemText} from '@material-ui/core';\r\nimport {FuseUtils, NavLinkAdapter} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport * as Actions from 'app/store/actions';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\nimport {makeStyles} from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n minHeight : 48,\r\n '&.active' : {\r\n backgroundColor : theme.palette.secondary.main,\r\n color : theme.palette.secondary.contrastText + '!important',\r\n pointerEvents : 'none',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '& .list-item-icon': {},\r\n '& .list-item-text': {\r\n padding: '0 0 0 16px'\r\n },\r\n color : theme.palette.text.primary,\r\n textDecoration : 'none!important',\r\n '&.dense' : {\r\n padding : '8px 12px 8px 12px',\r\n minHeight : 40,\r\n '& .list-item-text': {\r\n padding: '0 0 0 8px'\r\n }\r\n }\r\n }\r\n}));\r\n\r\nfunction FuseNavHorizontalItem(props)\r\n{\r\n const dispatch = useDispatch();\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const {item, dense} = props;\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n dispatch(Actions.navbarCloseMobile())}\r\n exact={item.exact}\r\n >\r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavHorizontalItem.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title: PropTypes.string,\r\n icon : PropTypes.string,\r\n url : PropTypes.string\r\n })\r\n};\r\n\r\nFuseNavHorizontalItem.defaultProps = {};\r\n\r\nconst NavHorizontalItem = withRouter(React.memo(FuseNavHorizontalItem));\r\n\r\nexport default NavHorizontalItem;\r\n","import React from 'react';\r\nimport {Icon, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useDispatch, useSelector} from 'react-redux';\r\nimport * as Actions from 'app/store/actions';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n minHeight : 48,\r\n '&.active' : {\r\n backgroundColor : theme.palette.secondary.main,\r\n color : theme.palette.secondary.contrastText + '!important',\r\n pointerEvents : 'none',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '& .list-item-icon': {},\r\n '& .list-item-text': {\r\n padding: '0 0 0 16px'\r\n },\r\n color : theme.palette.text.primary,\r\n textDecoration : 'none!important',\r\n '&.dense' : {\r\n padding : '8px 12px 8px 12px',\r\n minHeight : 40,\r\n '& .list-item-text': {\r\n padding: '0 0 0 8px'\r\n }\r\n }\r\n }\r\n}));\r\n\r\nfunction FuseNavHorizontalLink(props)\r\n{\r\n const dispatch = useDispatch();\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const {item, dense} = props;\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n dispatch(Actions.navbarCloseMobile())}\r\n >\r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavHorizontalLink.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n icon : PropTypes.string,\r\n url : PropTypes.string,\r\n target: PropTypes.string\r\n })\r\n};\r\n\r\nFuseNavHorizontalLink.defaultProps = {};\r\n\r\nconst NavHorizontalLink = withRouter(React.memo(FuseNavHorizontalLink));\r\n\r\nexport default NavHorizontalLink;\r\n","import React, {useState} from 'react';\r\nimport {Grow, Paper, Icon, IconButton, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {useDebounce} from '@fuse/hooks';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useSelector} from 'react-redux';\r\nimport {Manager, Reference, Popper} from 'react-popper';\r\nimport * as ReactDOM from 'react-dom';\r\nimport FuseNavHorizontalGroup from './FuseNavHorizontalGroup';\r\nimport FuseNavHorizontalItem from './FuseNavHorizontalItem';\r\nimport FuseNavHorizontalLink from './FuseNavHorizontalLink';\r\nimport FuseNavBadge from './../FuseNavBadge';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root : {\r\n '& .list-item-text': {\r\n padding: '0 0 0 16px'\r\n }\r\n },\r\n button : {\r\n color : theme.palette.text.primary,\r\n minHeight : 48,\r\n '&.active, &.active:hover, &.active:focus': {\r\n backgroundColor : theme.palette.secondary.main + '!important',\r\n color : theme.palette.secondary.contrastText + '!important',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '&.open' : {\r\n backgroundColor: 'rgba(0,0,0,.08)'\r\n },\r\n '&.dense' : {\r\n padding : '8px 12px 8px 12px',\r\n minHeight : 40,\r\n '& .list-item-text': {\r\n padding: '0 0 0 8px'\r\n }\r\n }\r\n },\r\n popper : {\r\n zIndex: 999\r\n },\r\n popperClose: {\r\n pointerEvents: 'none'\r\n }\r\n}));\r\n\r\nfunction FuseNavHorizontalCollapse(props)\r\n{\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const [opened, setOpened] = useState(false);\r\n const {item, nestedLevel, dense} = props;\r\n\r\n const handleToggle = useDebounce((open) => {\r\n setOpened(open);\r\n }, 150);\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function isUrlInChildren(parent, url)\r\n {\r\n if ( !parent.children )\r\n {\r\n return false;\r\n }\r\n\r\n for ( let i = 0; i < parent.children.length; i++ )\r\n {\r\n if ( parent.children[i].children )\r\n {\r\n if ( isUrlInChildren(parent.children[i], url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n if ( parent.children[i].url === url || url.includes(parent.children[i].url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {({ref}) => (\r\n
    \r\n handleToggle(true)}\r\n onMouseLeave={() => handleToggle(false)}\r\n aria-owns={opened ? 'menu-list-grow' : null}\r\n aria-haspopup=\"true\"\r\n >\r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {item.badge && (\r\n \r\n )}\r\n \r\n keyboard_arrow_right\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n {ReactDOM.createPortal(\r\n \r\n {({ref, style, placement, arrowProps}) => (\r\n opened && (\r\n \r\n \r\n handleToggle(true)}\r\n onMouseLeave={() => handleToggle(false)}\r\n >\r\n {item.children && (\r\n
      \r\n {\r\n item.children.map((item) => (\r\n\r\n \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n\r\n \r\n ))\r\n }\r\n
    \r\n )}\r\n \r\n
    \r\n
\r\n )\r\n )}\r\n ,\r\n document.querySelector('#root')\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nFuseNavHorizontalCollapse.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n icon : PropTypes.string,\r\n children: PropTypes.array\r\n })\r\n};\r\n\r\nFuseNavHorizontalCollapse.defaultProps = {};\r\n\r\nconst NavHorizontalCollapse = withRouter(React.memo(FuseNavHorizontalCollapse));\r\n\r\nexport default NavHorizontalCollapse;\r\n","import React, {useState} from 'react';\r\nimport {Grow, Paper, Icon, IconButton, ListItem, ListItemText} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport {FuseUtils} from '@fuse';\r\nimport {useDebounce} from '@fuse/hooks';\r\nimport {withRouter} from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport {useSelector} from 'react-redux';\r\nimport {Manager, Reference, Popper} from 'react-popper';\r\nimport * as ReactDOM from 'react-dom';\r\nimport FuseNavHorizontalCollapse from './FuseNavHorizontalCollapse';\r\nimport FuseNavHorizontalItem from './FuseNavHorizontalItem';\r\nimport FuseNavHorizontalLink from './FuseNavHorizontalLink';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root : {\r\n color : theme.palette.text.primary,\r\n '&.active, &.active:hover, &.active:focus': {\r\n backgroundColor: theme.palette.secondary.main + '!important',\r\n color : theme.palette.secondary.contrastText + '!important',\r\n '& .list-item-text-primary': {\r\n color: 'inherit'\r\n },\r\n '& .list-item-icon' : {\r\n color: 'inherit'\r\n }\r\n },\r\n '& .list-item-text' : {\r\n padding: '0 0 0 16px'\r\n },\r\n '&.level-0' : {\r\n height : 48,\r\n borderRadius: 4,\r\n '&:hover' : {\r\n background: 'transparent'\r\n },\r\n },\r\n '&.dense' : {\r\n padding : '8px 12px 8px 12px',\r\n minHeight : 40,\r\n '&.level-0' : {\r\n height: 44\r\n },\r\n '& .list-item-text': {\r\n padding: '0 0 0 8px'\r\n }\r\n }\r\n },\r\n children : {},\r\n popper : {\r\n zIndex: 999\r\n },\r\n popperClose: {\r\n pointerEvents: 'none'\r\n }\r\n}));\r\n\r\nfunction FuseNavHorizontalGroup(props)\r\n{\r\n const userRole = useSelector(({base}) => base.auth.role);\r\n\r\n const classes = useStyles(props);\r\n const [opened, setOpened] = useState(false);\r\n const {item, nestedLevel, dense} = props;\r\n\r\n const handleToggle = useDebounce((open) => {\r\n setOpened(open);\r\n }, 150);\r\n\r\n if ( !FuseUtils.hasPermission(item.auth, userRole) )\r\n {\r\n return null;\r\n }\r\n\r\n function isUrlInChildren(parent, url)\r\n {\r\n if ( !parent.children )\r\n {\r\n return false;\r\n }\r\n\r\n for ( let i = 0; i < parent.children.length; i++ )\r\n {\r\n if ( parent.children[i].children )\r\n {\r\n if ( isUrlInChildren(parent.children[i], url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n if ( parent.children[i].url === url || url.includes(parent.children[i].url) )\r\n {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n function getItemIcon(icon) {\r\n if (!icon) {\r\n return\r\n }\r\n\r\n const className = 'list-item-icon text-16 flex-shrink-0'\r\n if (typeof icon === 'string') {\r\n return {icon}\r\n }\r\n else {\r\n const ItemIcon = icon\r\n return \r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {({ref}) => (\r\n
\r\n handleToggle(true)}\r\n onMouseLeave={() => handleToggle(false)}\r\n aria-owns={opened ? 'menu-list-grow' : null}\r\n aria-haspopup=\"true\"\r\n >\r\n {item.icon && getItemIcon(item.icon)}\r\n \r\n {nestedLevel > 0 && (\r\n \r\n keyboard_arrow_right\r\n \r\n )}\r\n \r\n
\r\n )}\r\n
\r\n {ReactDOM.createPortal(\r\n \r\n {({ref, style, placement, arrowProps}) => (\r\n opened && (\r\n \r\n \r\n handleToggle(true)}\r\n onMouseLeave={() => handleToggle(false)}\r\n >\r\n {item.children && (\r\n
    \r\n {\r\n item.children.map((item) => (\r\n \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n \r\n ))\r\n }\r\n
\r\n )}\r\n \r\n
\r\n
\r\n )\r\n )}\r\n ,\r\n document.querySelector('#root')\r\n )}\r\n \r\n );\r\n}\r\n\r\nFuseNavHorizontalGroup.propTypes = {\r\n item: PropTypes.shape(\r\n {\r\n id : PropTypes.string.isRequired,\r\n title : PropTypes.string,\r\n children: PropTypes.array\r\n })\r\n};\r\n\r\nFuseNavHorizontalGroup.defaultProps = {};\r\n\r\nconst NavHorizontalGroup = withRouter(React.memo(FuseNavHorizontalGroup));\r\n\r\nexport default NavHorizontalGroup;\r\n","import React from 'react';\r\nimport {Divider, List} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport FuseNavVerticalGroup from './vertical/FuseNavVerticalGroup';\r\nimport FuseNavVerticalCollapse from './vertical/FuseNavVerticalCollapse';\r\nimport FuseNavVerticalItem from './vertical/FuseNavVerticalItem';\r\nimport FuseNavVerticalLink from './vertical/FuseNavVerticalLink';\r\nimport FuseNavHorizontalGroup from './horizontal/FuseNavHorizontalGroup';\r\nimport FuseNavHorizontalCollapse from './horizontal/FuseNavHorizontalCollapse';\r\nimport FuseNavHorizontalItem from './horizontal/FuseNavHorizontalItem';\r\nimport FuseNavHorizontalLink from './horizontal/FuseNavHorizontalLink';\r\n\r\nfunction FuseNavigation(props)\r\n{\r\n const {navigation, layout, active, dense, className} = props;\r\n\r\n const verticalNav = (\r\n \r\n {\r\n navigation.map((item) => (\r\n\r\n item.id && \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n\r\n {item.type === 'divider' && (\r\n \r\n )}\r\n \r\n ))\r\n }\r\n \r\n );\r\n\r\n const horizontalNav = (\r\n \r\n {\r\n navigation.map((item) => (\r\n\r\n item.id && \r\n\r\n {item.type === 'group' && (\r\n \r\n )}\r\n\r\n {item.type === 'collapse' && (\r\n \r\n )}\r\n\r\n {item.type === 'item' && (\r\n \r\n )}\r\n\r\n {item.type === 'link' && (\r\n \r\n )}\r\n\r\n {item.type === 'divider' && (\r\n \r\n )}\r\n \r\n ))\r\n }\r\n \r\n );\r\n\r\n if ( navigation.length > 0 )\r\n {\r\n switch ( layout )\r\n {\r\n case 'horizontal':\r\n {\r\n return horizontalNav;\r\n }\r\n case 'vertical':\r\n default:\r\n {\r\n return verticalNav;\r\n }\r\n }\r\n }\r\n else\r\n {\r\n return null;\r\n }\r\n}\r\n\r\nFuseNavigation.propTypes = {\r\n navigation: PropTypes.array.isRequired\r\n};\r\n\r\nFuseNavigation.defaultProps = {\r\n layout: \"vertical\"\r\n};\r\n\r\nexport default React.memo(FuseNavigation);\r\n","import React from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\nconst withRouterAndRef = (WrappedComponent) => {\r\n class InnerComponentWithRef extends React.Component {\r\n render()\r\n {\r\n const {forwardRef, ...rest} = this.props;\r\n return ;\r\n }\r\n }\r\n\r\n const ComponentWithRouter = withRouter(InnerComponentWithRef, {withRef: true});\r\n return React.forwardRef((props, ref) => {\r\n return ;\r\n });\r\n}\r\n\r\nexport default withRouterAndRef;\r\n","import React, {createRef, useEffect, useRef, useCallback} from 'react';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport PerfectScrollbar from 'perfect-scrollbar';\r\nimport 'perfect-scrollbar/css/perfect-scrollbar.css';\r\nimport {connect} from 'react-redux';\r\nimport MobileDetect from 'mobile-detect';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport withRouterAndRef from '../withRouterAndRef/withRouterAndRef';\r\n\r\nconst md = new MobileDetect(window.navigator.userAgent);\r\nconst isMobile = md.mobile();\r\n\r\nconst handlerNameByEvent = {\r\n 'ps-scroll-y' : 'onScrollY',\r\n 'ps-scroll-x' : 'onScrollX',\r\n 'ps-scroll-up' : 'onScrollUp',\r\n 'ps-scroll-down' : 'onScrollDown',\r\n 'ps-scroll-left' : 'onScrollLeft',\r\n 'ps-scroll-right' : 'onScrollRight',\r\n 'ps-y-reach-start': 'onYReachStart',\r\n 'ps-y-reach-end' : 'onYReachEnd',\r\n 'ps-x-reach-start': 'onXReachStart',\r\n 'ps-x-reach-end' : 'onXReachEnd'\r\n};\r\nObject.freeze(handlerNameByEvent);\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {}\r\n}));\r\n\r\nconst FuseScrollbars = React.forwardRef(function FuseScrollbars(props, ref) {\r\n ref = ref || createRef();\r\n const ps = useRef(null);\r\n const handlerByEvent = useRef(new Map());\r\n const classes = useStyles();\r\n const {customScrollbars} = props;\r\n\r\n const hookUpEvents = useCallback(() => {\r\n Object.keys(handlerNameByEvent).forEach((key) => {\r\n const callback = props[handlerNameByEvent[key]];\r\n if ( callback )\r\n {\r\n const handler = () => callback(ref.current);\r\n handlerByEvent.current.set(key, handler);\r\n ref.current.addEventListener(key, handler, false);\r\n }\r\n });\r\n // eslint-disable-next-line\r\n }, [ref]);\r\n\r\n const unHookUpEvents = useCallback(() => {\r\n handlerByEvent.current.forEach((value, key) => {\r\n if ( ref.current )\r\n {\r\n ref.current.removeEventListener(key, value, false);\r\n }\r\n });\r\n handlerByEvent.current.clear();\r\n }, [ref]);\r\n\r\n const destroyPs = useCallback(() => {\r\n // console.info(\"destroy::ps\");\r\n\r\n unHookUpEvents();\r\n\r\n if ( !ps.current )\r\n {\r\n return;\r\n }\r\n ps.current.destroy();\r\n ps.current = null;\r\n }, [unHookUpEvents]);\r\n\r\n const createPs = useCallback(() => {\r\n // console.info(\"create::ps\");\r\n\r\n if ( isMobile || !ref || ps.current )\r\n {\r\n return;\r\n }\r\n\r\n ps.current = new PerfectScrollbar(ref.current, props.option);\r\n\r\n hookUpEvents();\r\n }, [hookUpEvents, props.option, ref]);\r\n\r\n useEffect(() => {\r\n\r\n function updatePs()\r\n {\r\n if ( !ps.current )\r\n {\r\n return;\r\n }\r\n ps.current.update();\r\n }\r\n\r\n updatePs();\r\n });\r\n\r\n useEffect(() => {\r\n customScrollbars ? createPs() : destroyPs();\r\n }, [createPs, customScrollbars, destroyPs]);\r\n\r\n const scrollToTop = useCallback(() => {\r\n if ( ref && ref.current )\r\n {\r\n ref.current.scrollTop = 0;\r\n }\r\n }, [ref]);\r\n\r\n useEffect(() => {\r\n\r\n if ( props.scrollToTopOnChildChange )\r\n {\r\n scrollToTop();\r\n }\r\n\r\n }, [scrollToTop, props.children, props.scrollToTopOnChildChange]);\r\n\r\n useEffect(() => props.history.listen(() => {\r\n\r\n if ( props.scrollToTopOnRouteChange )\r\n {\r\n scrollToTop();\r\n }\r\n\r\n }), [scrollToTop, props.history, props.scrollToTopOnRouteChange])\r\n\r\n useEffect(() => {\r\n return () => {\r\n destroyPs();\r\n }\r\n }, [destroyPs]);\r\n\r\n // console.info('render::ps');\r\n return (\r\n \r\n {props.children}\r\n
\r\n );\r\n});\r\n\r\nfunction mapStateToProps({fuse})\r\n{\r\n return {\r\n customScrollbars: fuse.settings.current.customScrollbars\r\n }\r\n}\r\n\r\nFuseScrollbars.propTypes = {\r\n onScrollY : PropTypes.func,\r\n onScrollX : PropTypes.func,\r\n onScrollUp : PropTypes.func,\r\n onScrollDown : PropTypes.func,\r\n onScrollLeft : PropTypes.func,\r\n onScrollRight : PropTypes.func,\r\n onYReachStart : PropTypes.func,\r\n onYReachEnd : PropTypes.func,\r\n onXReachStart : PropTypes.func,\r\n onXReachEnd : PropTypes.func,\r\n scrollToTopOnRouteChange: PropTypes.bool,\r\n scrollToTopOnChildChange: PropTypes.bool,\r\n};\r\n\r\nFuseScrollbars.defaultProps = {\r\n className : '',\r\n enable : true,\r\n scrollToTopOnChildChange: false,\r\n scrollToTopOnRouteChange: false,\r\n option : {\r\n wheelPropagation: true\r\n },\r\n ref : undefined,\r\n onScrollY : undefined,\r\n onScrollX : undefined,\r\n onScrollUp : undefined,\r\n onScrollDown : undefined,\r\n onScrollLeft : undefined,\r\n onScrollRight : undefined,\r\n onYReachStart : undefined,\r\n onYReachEnd : undefined,\r\n onXReachStart : undefined,\r\n onXReachEnd : undefined\r\n};\r\n\r\nexport default connect(mapStateToProps, null, null, {forwardRef: true})(withRouterAndRef(FuseScrollbars));\r\n","import React, {Component} from 'react';\r\nimport {FuseUtils} from '@fuse';\r\nimport {matchRoutes} from 'react-router-config';\r\nimport {withRouter} from 'react-router-dom';\r\nimport {connect} from 'react-redux';\r\nimport AppContext from 'app/AppContext';\r\n\r\nclass FuseAuthorization extends Component {\r\n\r\n constructor(props, context)\r\n {\r\n super(props);\r\n const {routes} = context;\r\n this.state = {\r\n accessGranted: true,\r\n routes\r\n };\r\n }\r\n\r\n componentDidMount()\r\n {\r\n if ( !this.state.accessGranted )\r\n {\r\n this.redirectRoute();\r\n }\r\n }\r\n\r\n componentDidUpdate()\r\n {\r\n if ( !this.state.accessGranted )\r\n {\r\n this.redirectRoute();\r\n }\r\n }\r\n\r\n static getDerivedStateFromProps(props, state)\r\n {\r\n const {location, userRole} = props;\r\n const {pathname} = location;\r\n\r\n const matched = matchRoutes(state.routes, pathname)[0];\r\n\r\n return {\r\n accessGranted: matched ? FuseUtils.hasPermission(matched.route.auth, userRole) : true\r\n }\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState)\r\n {\r\n return nextState.accessGranted !== this.state.accessGranted;\r\n }\r\n\r\n redirectRoute()\r\n {\r\n const {location, userRole, history} = this.props;\r\n const {pathname, state} = location;\r\n const redirectUrl = state && state.redirectUrl ? state.redirectUrl : '/';\r\n\r\n /*\r\n User is guest\r\n Redirect to Login Page\r\n */\r\n if ( !userRole || userRole.length === 0 )\r\n {\r\n history.push({\r\n pathname: '/login',\r\n state : {redirectUrl: pathname}\r\n });\r\n }\r\n /*\r\n User is member\r\n User must be on unAuthorized page or just logged in\r\n Redirect to dashboard or redirectUrl\r\n */\r\n else\r\n {\r\n history.push({\r\n pathname: redirectUrl\r\n });\r\n }\r\n }\r\n\r\n render()\r\n {\r\n // console.info('Fuse Authorization rendered', accessGranted);\r\n return this.state.accessGranted ? {this.props.children} : null;\r\n }\r\n}\r\n\r\nfunction mapStateToProps({base})\r\n{\r\n return {\r\n userRole: base.auth.role\r\n }\r\n}\r\n\r\nFuseAuthorization.contextType = AppContext;\r\n\r\nexport default withRouter(connect(mapStateToProps)(FuseAuthorization));\r\n","import React from 'react';\r\nimport {ThemeProvider} from '@material-ui/styles';\r\nimport {useSelector} from 'react-redux';\r\n\r\nfunction FuseTheme(props)\r\n{\r\n const mainTheme = useSelector(({fuse}) => fuse.settings.mainTheme);\r\n\r\n // console.warn('FuseTheme:: rendered',mainTheme);\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n\r\nexport default React.memo(FuseTheme);\r\n","import React, {Component} from 'react';\r\nimport {withStyles} from '@material-ui/core';\r\nimport {FuseLayouts} from '@fuse';\r\nimport _ from '@lodash';\r\nimport {withRouter} from 'react-router-dom';\r\nimport {matchRoutes} from 'react-router-config'\r\nimport {bindActionCreators} from 'redux';\r\nimport {connect} from 'react-redux';\r\nimport * as Actions from 'app/store/actions';\r\nimport AppContext from 'app/AppContext';\r\nimport {generateSettings} from 'app/store/reducers/fuse/settings.reducer';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor : theme.palette.background.default,\r\n color : theme.palette.text.primary,\r\n '& code:not([class*=\"language-\"])': {\r\n color : theme.palette.secondary.dark,\r\n backgroundColor: '#F5F5F5',\r\n padding : '2px 3px',\r\n borderRadius : 2,\r\n lineHeight : 1.7\r\n },\r\n '& table.simple tbody tr td' : {\r\n borderColor: theme.palette.divider\r\n },\r\n '& table.simple thead tr th' : {\r\n borderColor: theme.palette.divider\r\n },\r\n '& a:not([role=button])' : {\r\n color : theme.palette.secondary.main,\r\n textDecoration: 'none',\r\n '&:hover' : {\r\n textDecoration: 'underline'\r\n }\r\n },\r\n '& [class^=\"border-\"]' : {\r\n borderColor: theme.palette.divider\r\n },\r\n '& [class*=\"border-\"]' : {\r\n borderColor: theme.palette.divider\r\n }\r\n }\r\n});\r\n\r\nclass FuseLayout extends Component {\r\n\r\n constructor(props, context)\r\n {\r\n super(props);\r\n const {routes} = context;\r\n\r\n this.state = {\r\n awaitRender: false,\r\n routes\r\n };\r\n }\r\n\r\n static getDerivedStateFromProps(props, state)\r\n {\r\n const {pathname} = props.location;\r\n const matched = matchRoutes(state.routes, pathname)[0];\r\n let newSettings = props.settings;\r\n\r\n if ( state.pathname !== pathname )\r\n {\r\n if ( matched && matched.route.settings )\r\n {\r\n const routeSettings = matched.route.settings;\r\n\r\n newSettings = generateSettings(props.defaultSettings, routeSettings);\r\n\r\n if ( !_.isEqual(props.settings, newSettings) )\r\n {\r\n props.setSettings(newSettings);\r\n }\r\n }\r\n else\r\n {\r\n if ( !_.isEqual(props.settings, props.defaultSettings) )\r\n {\r\n newSettings = _.merge({}, props.defaultSettings);\r\n\r\n props.resetSettings();\r\n }\r\n }\r\n }\r\n\r\n return {\r\n awaitRender: !_.isEqual(props.settings, newSettings),\r\n pathname\r\n }\r\n }\r\n\r\n render()\r\n {\r\n const {settings, classes} = this.props;\r\n // console.warn('FuseLayout:: rendered');\r\n\r\n const Layout = FuseLayouts[settings.layout.style];\r\n\r\n return !this.state.awaitRender ? : null;\r\n }\r\n}\r\n\r\nfunction mapDispatchToProps(dispatch)\r\n{\r\n return bindActionCreators({\r\n setSettings : Actions.setSettings,\r\n resetSettings: Actions.resetSettings\r\n }, dispatch);\r\n}\r\n\r\nfunction mapStateToProps({fuse})\r\n{\r\n return {\r\n defaultSettings: fuse.settings.defaults,\r\n settings : fuse.settings.current\r\n }\r\n}\r\n\r\nFuseLayout.contextType = AppContext;\r\n\r\nexport default withStyles(styles, {withTheme: true})(withRouter(connect(mapStateToProps, mapDispatchToProps)(React.memo(FuseLayout))));\r\n","import React from 'react';\r\nimport {Typography, FormControl, FormControlLabel, FormLabel, MenuItem, Radio, RadioGroup, Select, Switch} from '@material-ui/core';\r\nimport {makeStyles} from '@material-ui/styles';\r\nimport * as Actions from 'app/store/actions';\r\n// import * as AuthActions from 'app/auth/store/actions';\r\nimport {useSelector, useDispatch} from 'react-redux';\r\nimport {FuseLayoutConfigs} from '@fuse';\r\nimport clsx from 'clsx';\r\nimport _ from '@lodash';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root : {},\r\n formControl : {\r\n margin : '6px 0',\r\n width : '100%',\r\n '&:last-child': {\r\n marginBottom: 0\r\n }\r\n },\r\n group : {},\r\n formGroupTitle: {\r\n position : 'absolute',\r\n top : -10,\r\n left : 8,\r\n fontWeight : 600,\r\n padding : '0 4px',\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n formGroup : {\r\n position : 'relative',\r\n border : '1px solid ' + theme.palette.divider,\r\n borderRadius : 2,\r\n padding : '12px 12px 0 12px',\r\n margin : '24px 0 16px 0',\r\n '&:first-of-type': {\r\n marginTop: 16\r\n }\r\n }\r\n}));\r\n\r\nfunction FuseSettings(props)\r\n{\r\n const dispatch = useDispatch();\r\n const user = useSelector(({base}) => base.auth.userData);\r\n const themes = useSelector(({fuse}) => fuse.settings.themes);\r\n const settings = useSelector(({fuse}) => fuse.settings.current);\r\n\r\n const classes = useStyles(props);\r\n\r\n function handleChange(event)\r\n {\r\n\r\n const newSettings = _.set(_.merge({}, settings), event.target.name, event.target.type === 'checkbox' ? event.target.checked : event.target.value);\r\n\r\n /**\r\n * If layout style changes,\r\n * Reset Layout Configuration\r\n */\r\n if ( event.target.name === 'layout.style' && event.target.value !== settings.layout.style )\r\n {\r\n newSettings.layout.config = {};\r\n }\r\n\r\n if ( user.role === 'guest' )\r\n {\r\n dispatch(Actions.setDefaultSettings(newSettings));\r\n }\r\n // else\r\n // {\r\n // dispatch(AuthActions.updateUserSettings(newSettings));\r\n // }\r\n }\r\n\r\n function ThemeSelect({value, name, handleChange})\r\n {\r\n return (\r\n \r\n {Object.entries(themes).map(([key, val]) => (\r\n \r\n {_.startCase(key)}\r\n \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 LayoutSelect = () => {\r\n return (\r\n \r\n\r\n Style\r\n\r\n \r\n {Object.entries(FuseLayoutConfigs).map(([key, layout]) => (\r\n } label={layout.title}/>\r\n )\r\n )}\r\n \r\n \r\n );\r\n };\r\n\r\n const getForm = (form, prefix) => {\r\n return Object.entries(form).map(([key, formControl]) => {\r\n const target = prefix ? prefix + '.' + key : key;\r\n switch ( formControl.type )\r\n {\r\n case 'radio':\r\n {\r\n return (\r\n \r\n {formControl.title}\r\n \r\n {formControl.options.map((opt) => (\r\n } label={opt.name}/>\r\n ))}\r\n \r\n \r\n );\r\n }\r\n case 'switch':\r\n {\r\n return (\r\n \r\n \r\n }\r\n label={{formControl.title}}\r\n />\r\n \r\n )\r\n }\r\n case 'group':\r\n {\r\n return (\r\n
\r\n\r\n \r\n {formControl.title}\r\n \r\n\r\n {\r\n getForm(formControl.children, key)\r\n }\r\n
\r\n );\r\n }\r\n default:\r\n {\r\n return ''\r\n }\r\n }\r\n });\r\n };\r\n\r\n function LayoutConfig()\r\n {\r\n const form = FuseLayoutConfigs[settings.layout.style].form;\r\n return getForm(form);\r\n }\r\n\r\n return (\r\n
\r\n\r\n
\r\n\r\n \r\n Layout\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n *Not all option combinations are available\r\n \r\n\r\n
\r\n\r\n
\r\n\r\n \r\n Theme\r\n \r\n\r\n \r\n Main\r\n \r\n \r\n \r\n Navbar\r\n \r\n \r\n \r\n Toolbar\r\n \r\n \r\n \r\n Footer\r\n \r\n \r\n
\r\n\r\n \r\n Custom Scrollbars\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(FuseSettings);\r\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\r\nimport {Typography} from '@material-ui/core';\r\nimport PropTypes from 'prop-types';\r\nimport moment from 'moment';\r\nimport clsx from 'clsx';\r\n\r\nfunction FuseCountdown(props)\r\n{\r\n const {onComplete} = props;\r\n const [endDate] = useState(moment.isMoment(props.endDate) ? props.endDate : moment(props.endDate));\r\n const [countdown, setCountdown] = useState({\r\n days : '',\r\n hours : '',\r\n minutes: '',\r\n seconds: ''\r\n });\r\n const intervalRef = useRef();\r\n\r\n const complete = useCallback(() => {\r\n window.clearInterval(intervalRef.current);\r\n if ( onComplete )\r\n {\r\n onComplete();\r\n }\r\n }, [onComplete]);\r\n\r\n const tick = useCallback(() => {\r\n const currDate = moment();\r\n const diff = endDate.diff(currDate, 'seconds');\r\n if ( diff < 0 )\r\n {\r\n complete();\r\n return;\r\n }\r\n const timeLeft = moment.duration(diff, 'seconds');\r\n setCountdown({\r\n days : timeLeft.asDays().toFixed(0),\r\n hours : timeLeft.hours(),\r\n minutes: timeLeft.minutes(),\r\n seconds: timeLeft.seconds()\r\n });\r\n }, [complete, endDate]);\r\n\r\n useEffect(() => {\r\n intervalRef.current = setInterval(tick, 1000);\r\n return () => {\r\n clearInterval(intervalRef.current);\r\n };\r\n }, [tick]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n {countdown.days}\r\n \r\n \r\n days\r\n \r\n
\r\n
\r\n \r\n {countdown.hours}\r\n \r\n \r\n hours\r\n \r\n
\r\n
\r\n \r\n {countdown.minutes}\r\n \r\n \r\n minutes\r\n \r\n
\r\n
\r\n \r\n {countdown.seconds}\r\n \r\n \r\n seconds\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nFuseCountdown.propTypes = {\r\n endDate : PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\r\n onComplete: PropTypes.func\r\n};\r\n\r\nFuseCountdown.defaultProps = {\r\n endDate: moment().add(15, 'days')\r\n};\r\n\r\nexport default React.memo(FuseCountdown);\r\n","import 'prismjs/prism';\r\nimport 'prismjs/components/prism-c';\r\nimport 'prismjs/components/prism-cpp';\r\nimport 'prismjs/components/prism-csharp';\r\nimport 'prismjs/components/prism-css';\r\nimport 'prismjs/components/prism-diff';\r\nimport 'prismjs/components/prism-markup';\r\nimport 'prismjs/components/prism-java';\r\nimport 'prismjs/components/prism-javascript';\r\nimport 'prismjs/components/prism-json';\r\nimport 'prismjs/components/prism-perl';\r\nimport 'prismjs/components/prism-markup-templating';\r\nimport 'prismjs/components/prism-php';\r\nimport 'prismjs/components/prism-python';\r\nimport 'prismjs/components/prism-sass';\r\nimport 'prismjs/components/prism-scss';\r\nimport 'prismjs/components/prism-typescript';\r\nimport 'prismjs/components/prism-jsx';\r\n","import React, {useEffect, useRef} from 'react';\r\nimport * as Prism from 'prismjs';\r\nimport './prism-languages';\r\nimport PropTypes from 'prop-types';\r\n\r\nfunction FuseHighlight(props)\r\n{\r\n const domNode = useRef(null);\r\n const source = useRef(trimCode());\r\n\r\n useEffect(() => {\r\n function highlight()\r\n {\r\n Prism.highlightElement(domNode.current, props.async)\r\n }\r\n\r\n highlight();\r\n }, [props.async]);\r\n\r\n function trimCode()\r\n {\r\n // Split the source into lines\r\n const sourceLines = props.children.split('\\n');\r\n\r\n // Remove the first and the last line of the source\r\n // code if they are blank lines. This way, the html\r\n // can be formatted properly while using fuse-highlight\r\n // component\r\n if ( !sourceLines[0].trim() )\r\n {\r\n sourceLines.shift();\r\n }\r\n\r\n if ( !sourceLines[sourceLines.length - 1].trim() )\r\n {\r\n sourceLines.pop();\r\n }\r\n\r\n // Find the first non-whitespace char index in\r\n // the first line of the source code\r\n const indexOfFirstChar = sourceLines[0].search(/\\S|$/);\r\n\r\n // Generate the trimmed source\r\n let sourceRaw = '';\r\n\r\n // Iterate through all the lines\r\n sourceLines.forEach((line, index) => {\r\n\r\n // Trim the beginning white space depending on the index\r\n // and concat the source code\r\n sourceRaw = sourceRaw + line.substr(indexOfFirstChar, line.length);\r\n\r\n // If it's not the last line...\r\n if ( index !== sourceLines.length - 1 )\r\n {\r\n // Add a line break at the end\r\n sourceRaw = sourceRaw + '\\n';\r\n }\r\n });\r\n return sourceRaw;\r\n }\r\n\r\n const {className, component: Wrapper} = props;\r\n\r\n return (\r\n \r\n {source.current}\r\n \r\n )\r\n}\r\n\r\nFuseHighlight.propTypes = {\r\n component: PropTypes.node\r\n};\r\nFuseHighlight.defaultProps = {\r\n component: `code`\r\n};\r\n\r\nexport default React.memo(FuseHighlight);\r\n","import React from 'react';\r\nimport {create} from 'jss';\r\nimport jssExtend from 'jss-extend';\r\nimport Frame from 'react-frame-component';\r\nimport PropTypes from 'prop-types';\r\nimport {StylesProvider, jssPreset, ThemeProvider, createGenerateClassName} from '@material-ui/styles';\r\nimport {withStyles} from '@material-ui/core';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n flexGrow : 1,\r\n height : 400,\r\n border : 'none',\r\n boxShadow : theme.shadows[1]\r\n }\r\n});\r\n\r\nconst generateClassName = createGenerateClassName({\r\n productionPrefix: 'iframe-'\r\n});\r\n\r\nclass DemoFrame extends React.Component {\r\n\r\n state = {\r\n ready: false\r\n };\r\n\r\n handleRef = ref => {\r\n this.contentDocument = ref ? ref.node.contentDocument : null;\r\n };\r\n\r\n onContentDidMount = () => {\r\n this.setState({\r\n ready : true,\r\n jss : create({\r\n ...jssPreset(),\r\n plugins : [...jssPreset().plugins, jssExtend()],\r\n insertionPoint: this.contentDocument.querySelector('#jss-demo-insertion-point')\r\n }),\r\n sheetsManager: new Map(),\r\n container : this.contentDocument.body\r\n });\r\n };\r\n\r\n onContentDidUpdate = () => {\r\n this.contentDocument.body.dir = this.props.theme.direction;\r\n };\r\n\r\n renderHead = () => {\r\n return (\r\n \r\n