{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/Alert.vue?4766","webpack:///./src/views/GameDay/ChangeGameFormat.vue?ecbe","webpack:///./src/views/GameDay/GameDayGameCountList.vue?d427","webpack:///./src/views/Account/Impersonate/Impersonate.vue?ea7a","webpack:///./src/assets/star-orange.png","webpack:///./src/assets sync ^\\.\\/.*$","webpack:///./src/assets/star-white.png","webpack:///./src/views/GameDay/GameDayGameList.vue?12e1","webpack:///./src/elements/Alert/Alert.vue?dfde","webpack:///./src/components/MessageRecipient/MessageRecipient.vue?9541","webpack:///./src/singletons/TheHeader.vue?776c","webpack:///./src/singletons/TheSidebar.vue?ff44","webpack:///./src/views/GameDay/Recognition.vue?cb77","webpack:///./src/assets/star-red.png","webpack:///./src/singletons/TheFooter.vue?f747","webpack:///./src/elements/DateInput.vue?4367","webpack:///./src/views/Account/Impersonate/PartnerSearchPanel.vue?2015","webpack:///./src/components/MessagePreview.vue?e925","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/elements/StylableSelectInput.vue?ae47","webpack:///./src/components/StartingSideToggle.vue?6c97","webpack:///./src/elements/SelectStylable.vue?3dae","webpack:///./src/singletons/TheAuthWall.vue?92c2","webpack:///./src/components/GameDayPlayer.vue?1920","webpack:///./src/elements/Incrementor.vue?6646","webpack:///./src/components/AnchorListItem.vue?ce17","webpack:///./src/components/Modal.vue?a520","webpack:///./src/views/Home.vue?cc18","webpack:///./src/elements/FileInput.vue?c9c2","webpack:///./src/components/ListPaging.vue?0b44","webpack:///./src/components/Toggle.vue?266b","webpack:///./src/singletons/TheErrorRenderer.vue?4cf9","webpack:///./src/elements/DateInput.vue?3466","webpack:///./src/App.vue?122a","webpack:///./src/elements/VueSmartGrid/VueSmartGrid.vue?8572","webpack:///./src/components/JerseyIcon.vue?62e2","webpack:///./src/components/PartnerList.vue?1ed6","webpack:///./src/components/CoachResourceList.vue?05bf","webpack:///./src/views/TeamAlertList.vue?83be","webpack:///./src/components/TeamPageWidget.vue?98b9","webpack:///./src/elements/BackLink.vue?1140","webpack:///./src/components/MessageRecipient/MessageProgramSelector.vue?ee00","webpack:///./src/elements/PrimaryHeading.vue?4f94","webpack:///./src/elements/TextInput.vue?3391","webpack:///./src/components/Listing.vue?42ef","webpack:///./src/components/GameDayLineup.vue?72ae","webpack:///./src/components/PlayerList.vue?5e90","webpack:///./src/elements/HtmlEditor2.vue?cb04","webpack:///./src/components/PageStateToggle.vue?dfd4","webpack:///./src/components/CoachResourceCategoryList.vue?2f77","webpack:///./src/assets/star-gold.png","webpack:///./src/views/PracticeResources/CoachResource.vue?c026","webpack:///./src/components/Toaster.vue?cbb1","webpack:///./src/components/MessageContent.vue?4943","webpack:///./src/store/errors.ts","webpack:///./src/store/sidebar.ts","webpack:///./src/services/localStorageService.ts","webpack:///./src/services/credientialService.ts","webpack:///./src/services/jwtService.ts","webpack:///./src/services/restService.ts","webpack:///./src/clients/programsClient.ts","webpack:///./src/store/programs.ts","webpack:///./src/clients/teamClient.ts","webpack:///./src/common/typeConverstions/team.ts","webpack:///./src/store/team.ts","webpack:///./src/clients/partnerClient.ts","webpack:///./src/store/partner.ts","webpack:///./src/clients/communicationsClient.ts","webpack:///./src/modelHelpers/PreviewMessage.ts","webpack:///./src/store/message.ts","webpack:///./src/common/GeneralError.ts","webpack:///./src/common/Authentication/LoginException.ts","webpack:///./src/common/Authentication/LockedAccountException.ts","webpack:///./src/clients/authorizationClient.ts","webpack:///./src/clients/userClient.ts","webpack:///./src/common/Authentication/TwoFactorAuthRequiredException.ts","webpack:///./src/store/authentication.ts","webpack:///./src/store/authorization.ts","webpack:///./src/store/search.ts","webpack:///./src/clients/upwardTypesClient.ts","webpack:///./src/store/upwardTypes.ts","webpack:///./src/common/CoachAPIResources.ts","webpack:///./src/clients/contentManagementClient.ts","webpack:///./src/store/resources.ts","webpack:///./src/store/cheerResources.ts","webpack:///./src/store/lineup.ts","webpack:///./src/clients/gameClient.ts","webpack:///./src/store/game.ts","webpack:///./src/clients/divisionsClient.ts","webpack:///./src/store/divisions.ts","webpack:///./src/store/index.ts","webpack:///./src/App.vue","webpack:///./src/elements/Loading.vue","webpack:///./src/elements/Loading.vue?5a84","webpack:///./src/components/Toaster.vue?d62e","webpack:///./src/elements/Loading.vue?a8f5","webpack:///./src/elements/Loading.vue?d5e0","webpack:///./src/components/Toaster.vue","webpack:///./src/components/Toaster.vue?01b6","webpack:///./src/components/Toaster.vue?4c24","webpack:///./src/singletons/TheErrorRenderer.vue","webpack:///./src/singletons/TheErrorRenderer.vue?d1ee","webpack:///./src/singletons/TheErrorRenderer.vue?4e54","webpack:///./src/singletons/TheErrorRenderer.vue?3b1e","webpack:///./src/singletons/TheSidebar.vue","webpack:///./src/components/Logout.vue","webpack:///./src/common/Authentication/logoutUser.ts","webpack:///./src/components/Logout.vue?e6a3","webpack:///./src/common/Authorization/RoleUnion.ts","webpack:///./src/common/Authorization/VolunteerRoles.ts","webpack:///./src/components/Logout.vue?e1d4","webpack:///./src/components/Logout.vue?72fe","webpack:///./src/common/Authorization/AccountRoles.ts","webpack:///./src/common/Authorization/PermissionGroups.ts","webpack:///./src/models/MenuItem.ts","webpack:///./src/common/MainMenuItems.ts","webpack:///./src/common/iOSTestMixin.ts","webpack:///./src/common/MainMenuMixin.ts","webpack:///./src/common/Authorization/ApplicationRoles.ts","webpack:///./src/formatters/maxStringLength.ts","webpack:///./src/components/Impersonating.vue","webpack:///./src/elements/PrimaryHeading.vue","webpack:///./src/elements/BackLink.vue","webpack:///./src/elements/BackLink.vue?b693","webpack:///./src/elements/BackLink.vue?0c82","webpack:///./src/elements/BackLink.vue?72ee","webpack:///./src/elements/PrimaryHeading.vue?7fa2","webpack:///./src/elements/PrimaryHeading.vue?6ab2","webpack:///./src/elements/PrimaryHeading.vue?440d","webpack:///./src/components/Impersonating.vue?9126","webpack:///./src/components/Impersonating.vue?f5c0","webpack:///./src/components/Impersonating.vue?6def","webpack:///./src/components/SidebarItem.vue","webpack:///./src/common/IsCheerMixin.ts","webpack:///./src/common/MenuItemValidProgramMixin.ts","webpack:///./src/common/ExcludedLeagueTypesMixin.ts","webpack:///./src/components/SidebarItem.vue?5492","webpack:///./src/components/SidebarItem.vue?d3f8","webpack:///./src/components/SidebarItem.vue?25c8","webpack:///./src/singletons/TheSidebar.vue?7f9f","webpack:///./src/singletons/TheSidebar.vue?97a1","webpack:///./src/singletons/TheSidebar.vue?2ef5","webpack:///./src/singletons/TheHeader.vue","webpack:///./src/modelHelpers/LeagueInfoCondensed.ts","webpack:///./src/components/ProgramSelect.vue","webpack:///./src/elements/StylableSelectInput.vue","webpack:///./src/elements/InputLabel.vue","webpack:///./src/elements/InputLabel.vue?5592","webpack:///./src/elements/InputLabel.vue?962b","webpack:///./src/elements/InputLabel.vue?c495","webpack:///./src/common/RuntimeException.ts","webpack:///./src/elements/common/ComponentArgumentRuntimeException.ts","webpack:///./src/elements/StylableSelectInput.vue?7631","webpack:///./src/elements/StylableSelectInput.vue?dbee","webpack:///./src/elements/StylableSelectInput.vue?8a27","webpack:///./src/components/ProgramSelect.vue?41fe","webpack:///./src/components/ProgramSelect.vue?f329","webpack:///./src/components/ProgramSelect.vue?36f4","webpack:///./src/components/RoleSelect.vue","webpack:///./src/components/RoleSelect.vue?9791","webpack:///./src/components/RoleSelect.vue?6e88","webpack:///./src/components/RoleSelect.vue?18de","webpack:///./src/common/Authorization/RoleMixin.ts","webpack:///./src/singletons/TheHeader.vue?1729","webpack:///./src/singletons/TheHeader.vue?a6ad","webpack:///./src/singletons/TheHeader.vue?f34c","webpack:///./src/singletons/TheFooter.vue","webpack:///./src/singletons/TheFooter.vue?6aea","webpack:///./src/singletons/TheFooter.vue?242c","webpack:///./src/singletons/TheFooter.vue?0965","webpack:///./src/components/FullBody.vue","webpack:///./src/components/FullBody.vue?4d95","webpack:///./src/components/Alert.vue?36cf","webpack:///./src/components/FullBody.vue?59ac","webpack:///./src/components/FullBody.vue?a3ca","webpack:///./src/singletons/TheAuthWall.vue","webpack:///./src/components/Alert.vue","webpack:///./src/components/Alert.vue?2171","webpack:///./src/components/Alert.vue?0545","webpack:///./src/elements/TextInput.vue","webpack:///./src/elements/TextLikeWrapper/TextLikeWrapper.vue","webpack:///./src/elements/BaseInputWrapper/BaseInputWrapper.vue","webpack:///./src/elements/BaseInputWrapper/BaseInputWrapperProps.ts","webpack:///./src/elements/BaseInputWrapper/BaseInputWrapper.vue?6e1d","webpack:///./src/elements/BaseInputWrapper/BaseInputWrapper.vue?e32f","webpack:///./src/elements/BaseInputWrapper/BaseInputWrapper.vue?3ae3","webpack:///./src/elements/TextLikeWrapper/TextLikeWrapperProps.ts","webpack:///./src/elements/TextLikeWrapper/TextLikeWrapper.vue?6141","webpack:///./src/elements/TextLikeWrapper/TextLikeWrapper.vue?6269","webpack:///./src/elements/TextLikeWrapper/TextLikeWrapper.vue?b752","webpack:///./src/elements/TextLikeWrapper/TextLikeEvents.ts","webpack:///./src/elements/TextInput.vue?5b96","webpack:///./src/elements/TextInput.vue?ab79","webpack:///./src/elements/TextInput.vue?3ded","webpack:///./src/elements/PasswordInput.vue","webpack:///./src/elements/PasswordInput.vue?5fde","webpack:///./src/elements/PasswordInput.vue?818f","webpack:///./src/elements/PasswordInput.vue?c127","webpack:///./src/components/PartnerList.vue","webpack:///./src/components/PartnerList.vue?5e53","webpack:///./src/components/PartnerList.vue?5728","webpack:///./src/components/PartnerList.vue?a6cd","webpack:///./src/singletons/TheAuthWall.vue?1062","webpack:///./src/singletons/TheAuthWall.vue?4350","webpack:///./src/singletons/TheAuthWall.vue?8310","webpack:///./src/components/PwaInstallPrompt.vue","webpack:///./src/components/PwaInstallInfo.vue","webpack:///./src/components/PwaInstallInfo.vue?8120","webpack:///./src/components/PwaInstallInfo.vue?e295","webpack:///./src/components/PwaInstallInfo.vue?b959","webpack:///./src/common/PwaInstallMixin.ts","webpack:///./src/components/PwaInstallPrompt.vue?70df","webpack:///./src/components/PwaInstallPrompt.vue?c9c9","webpack:///./src/components/PwaInstallPrompt.vue?609a","webpack:///./src/views/Home.vue","webpack:///./src/components/MenuItem.vue","webpack:///./src/components/MenuItem.vue?cfeb","webpack:///./src/components/MenuItem.vue?c644","webpack:///./src/components/MenuItem.vue?8082","webpack:///./src/elements/SelectStylable.vue","webpack:///./src/elements/SelectStylable.vue?01a8","webpack:///./src/elements/SelectStylable.vue?c9a5","webpack:///./src/elements/SelectStylable.vue?b0bd","webpack:///./src/components/CurrentTeamSelect.vue","webpack:///./src/components/CurrentTeamSelect.vue?5d31","webpack:///./src/components/CurrentTeamSelect.vue?e316","webpack:///./src/components/CurrentTeamSelect.vue?8834","webpack:///./src/views/Home.vue?88c7","webpack:///./src/views/Home.vue?7b01","webpack:///./src/views/Home.vue?f957","webpack:///./src/views/Communication.vue","webpack:///./src/components/PageStateToggle.vue","webpack:///./src/components/PageStateToggle.vue?0dc0","webpack:///./src/components/PageStateToggle.vue?3ff5","webpack:///./src/components/PageStateToggle.vue?0a3f","webpack:///./src/elements/Breadcrumbs.vue","webpack:///./src/elements/Breadcrumbs.vue?f235","webpack:///./src/elements/Breadcrumbs.vue?b099","webpack:///./src/elements/Breadcrumbs.vue?c98b","webpack:///./src/common/RouterItems.ts","webpack:///./src/plugins/Authorization/permissionChecks.ts","webpack:///./src/views/GameDay/GamePlay.vue","webpack:///./src/models/Lineup.ts","webpack:///./src/components/LineupWithRotation.vue","webpack:///./src/common/players.ts","webpack:///./src/common/PlayersPerSegmentConversion.ts","webpack:///./src/modelHelpers/TeamPlayerInfo.ts","webpack:///./src/utils/addDays.ts","webpack:///./src/common/CurrentGameLineupWithRotationMixin.ts","webpack:///./src/common/CurrentGameLineupCommonMixin.ts","webpack:///./src/common/programEnum.ts","webpack:///./src/services/lineupService.ts","webpack:///./src/elements/SimpleMenu.vue","webpack:///./src/elements/SimpleMenu.vue?0610","webpack:///./src/elements/SimpleMenu.vue?6c66","webpack:///./src/elements/SimpleMenu.vue?1ca9","webpack:///./src/components/StartingSideToggle.vue","webpack:///./src/components/StartingSideToggle.vue?baf9","webpack:///./src/components/StartingSideToggle.vue?642e","webpack:///./src/components/StartingSideToggle.vue?803e","webpack:///./src/components/ConfirmationModal.vue","webpack:///./src/components/Modal.vue","webpack:///./src/components/Modal.vue?c3bc","webpack:///./src/components/Modal.vue?e81f","webpack:///./src/components/Modal.vue?d30e","webpack:///./src/components/ConfirmationModal.vue?1137","webpack:///./src/components/ConfirmationModal.vue?e78f","webpack:///./src/components/ConfirmationModal.vue?fd9e","webpack:///./src/components/GameDayLineup.vue","webpack:///./src/components/GameDayPlayer.vue","webpack:///./src/components/PlayerRankable.vue","webpack:///./src/components/PlayerRankable.vue?fd13","webpack:///./src/components/PlayerRankable.vue?c63b","webpack:///./src/components/PlayerRankable.vue?2f2b","webpack:///./src/components/Star.vue","webpack:///./src/components/Star.vue?d682","webpack:///./src/components/Star.vue?3481","webpack:///./src/components/Star.vue?d127","webpack:///./src/components/GameDayPlayer.vue?b71e","webpack:///./src/components/GameDayPlayer.vue?bae2","webpack:///./src/components/GameDayPlayer.vue?76ad","webpack:///./src/common/RecalculateLineupMixin.ts","webpack:///./src/components/GameDayLineup.vue?4d1f","webpack:///./src/components/GameDayLineup.vue?0779","webpack:///./src/components/GameDayLineup.vue?db65","webpack:///./src/components/ListPaging.vue","webpack:///./src/components/ListPaging.vue?2589","webpack:///./src/components/ListPaging.vue?4c52","webpack:///./src/components/ListPaging.vue?0c4f","webpack:///./src/components/RegenerateLineup.vue","webpack:///./src/components/RegenerateLineup.vue?69cc","webpack:///./src/components/RegenerateLineup.vue?f3c8","webpack:///./src/components/RegenerateLineup.vue?a54f","webpack:///./src/components/LineupWithRotation.vue?b787","webpack:///./src/components/LineupWithRotation.vue?9021","webpack:///./src/components/LineupWithRotation.vue?df69","webpack:///./src/components/Lineup.vue","webpack:///./src/common/CurrentGameLineupMixin.ts","webpack:///./src/elements/Incrementor.vue","webpack:///./src/elements/Incrementor.vue?1167","webpack:///./src/elements/Incrementor.vue?2d9b","webpack:///./src/elements/Incrementor.vue?e15d","webpack:///./src/elements/CheckboxInput.vue","webpack:///./src/elements/CheckboxInput.vue?f4a1","webpack:///./src/elements/CheckboxInput.vue?9586","webpack:///./src/elements/CheckboxInput.vue?6891","webpack:///./src/components/Lineup.vue?8346","webpack:///./src/components/Lineup.vue?dcc0","webpack:///./src/components/Lineup.vue?c940","webpack:///./src/views/GameDay/GamePlay.vue?ca5d","webpack:///./src/views/GameDay/GamePlay.vue?12aa","webpack:///./src/views/GameDay/GamePlay.vue?cd2c","webpack:///./src/views/GameDay/ReactivatePlayer.vue","webpack:///./src/views/GameDay/ReactivatePlayer.vue?abc1","webpack:///./src/views/GameDay/ReactivatePlayer.vue?47b1","webpack:///./src/views/GameDay/ReactivatePlayer.vue?7d76","webpack:///./src/views/GameDay/ChangeGameFormat.vue","webpack:///./src/views/GameDay/ChangeGameFormat.vue?be43","webpack:///./src/views/GameDay/ChangeGameFormat.vue?f7e3","webpack:///./src/views/GameDay/ChangeGameFormat.vue?a56c","webpack:///./src/router/gameDay.ts","webpack:///./src/views/GameDay/GameDayGames.vue","webpack:///./src/components/LinkingListItem.vue","webpack:///./src/components/LinkingListItem.vue?5047","webpack:///./src/components/LinkingListItem.vue?c751","webpack:///./src/components/LinkingListItem.vue?5a39","webpack:///./src/views/GameDay/UnrankedWarning.vue","webpack:///./src/views/GameDay/UnrankedWarning.vue?2ba3","webpack:///./src/views/GameDay/UnrankedWarning.vue?f19a","webpack:///./src/views/GameDay/UnrankedWarning.vue?b836","webpack:///./src/views/GameDay/GameDayGameList.vue","webpack:///./src/views/GameDay/GameDayGameList.vue?8ba9","webpack:///./src/views/GameDay/GameDayGameList.vue?589f","webpack:///./src/views/GameDay/GameDayGameList.vue?9d04","webpack:///./src/views/GameDay/GameDayGameCountList.vue","webpack:///./src/views/GameDay/GameDayGameCountList.vue?d6ef","webpack:///./src/views/GameDay/GameDayGameCountList.vue?06a3","webpack:///./src/views/GameDay/GameDayGameCountList.vue?0b8e","webpack:///./src/views/GameDay/GameDayGames.vue?77b7","webpack:///./src/views/GameDay/GameDayGames.vue?7a13","webpack:///./src/views/GameDay/GameDayGames.vue?a302","webpack:///./src/router/game.ts","webpack:///./src/views/GameDay/Recognition.vue","webpack:///./src/elements/MemoInput.vue","webpack:///./src/elements/MemoInput.vue?66ba","webpack:///./src/elements/MemoInput.vue?1cfc","webpack:///./src/elements/MemoInput.vue?e7d3","webpack:///./src/modelHelpers/DivisionGamePlayer.ts","webpack:///./src/modelHelpers/CheerSquadRecognition.ts","webpack:///./src/views/GameDay/Recognition.vue?7d05","webpack:///./src/views/GameDay/Recognition.vue?b202","webpack:///./src/views/GameDay/Recognition.vue?6c74","webpack:///./src/views/GameDay/GameRecognition.vue","webpack:///./src/views/GameDay/GameRecognition.vue?50ed","webpack:///./src/views/GameDay/GameRecognition.vue?161b","webpack:///./src/views/GameDay/GameRecognition.vue?67ce","webpack:///./src/router/startDistribution.ts","webpack:///./src/common/Crumbs.ts","webpack:///./src/views/Communication.vue?a44c","webpack:///./src/views/Communication.vue?fc5d","webpack:///./src/views/Communication.vue?793f","webpack:///./src/views/Player.vue","webpack:///./src/modelHelpers/LeaguePlayerInfo.ts","webpack:///./src/modelHelpers/LeaguePlayerInfoExt.ts","webpack:///./src/components/PlayerInformation.vue","webpack:///./src/components/PlayerInformation.vue?a2b3","webpack:///./src/components/PlayerInformation.vue?ebde","webpack:///./src/components/PlayerInformation.vue?0565","webpack:///./src/components/PlayerTeamInformation.vue","webpack:///./src/components/PracticeList.vue","webpack:///./src/modelHelpers/DivisionTeamPracticeAppointmentInfo.ts","webpack:///./src/components/Practice.vue","webpack:///./src/components/DateCard.vue","webpack:///./src/components/DateCard.vue?16cd","webpack:///./src/components/DateCard.vue?d736","webpack:///./src/components/DateCard.vue?14bc","webpack:///./src/components/Practice.vue?93da","webpack:///./src/components/Practice.vue?df86","webpack:///./src/components/Practice.vue?63aa","webpack:///./src/components/Toggle.vue","webpack:///./src/components/Toggle.vue?fdf1","webpack:///./src/components/Toggle.vue?f6ea","webpack:///./src/components/Toggle.vue?f2e6","webpack:///./src/components/PracticeList.vue?7400","webpack:///./src/components/PracticeList.vue?82a2","webpack:///./src/components/PracticeList.vue?35a4","webpack:///./src/modelHelpers/DivisionTeamInfo.ts","webpack:///./src/components/PlayerTeamInformation.vue?44c8","webpack:///./src/components/PlayerTeamInformation.vue?c6d7","webpack:///./src/components/PlayerTeamInformation.vue?1eb0","webpack:///./src/components/ContactList.vue","webpack:///./src/modelHelpers/PlayerContactInfo.ts","webpack:///./src/components/Contact.vue","webpack:///./src/formatters/phoneFmt.ts","webpack:///./src/components/Contact.vue?1a4d","webpack:///./src/components/Contact.vue?b378","webpack:///./src/components/Contact.vue?6dfe","webpack:///./src/components/ContactList.vue?8276","webpack:///./src/components/ContactList.vue?d90f","webpack:///./src/components/ContactList.vue?8f26","webpack:///./src/clients/participantClient.ts","webpack:///./src/views/Player.vue?a33a","webpack:///./src/views/Player.vue?7f2f","webpack:///./src/views/Player.vue?20f0","webpack:///./src/views/Team.vue","webpack:///./src/modelHelpers/DivisionTeamInfoExt.ts","webpack:///./src/components/PlayerList.vue","webpack:///./src/components/PlayerList.vue?2199","webpack:///./src/components/PlayerList.vue?3f1a","webpack:///./src/components/PlayerList.vue?60f7","webpack:///./src/components/GameList.vue","webpack:///./src/modelHelpers/DivisionGameInfo.ts","webpack:///./src/components/Game.vue","webpack:///./src/components/JerseyIcon.vue","webpack:///./src/components/JerseyIcon.vue?ca67","webpack:///./src/components/JerseyIcon.vue?da02","webpack:///./src/components/JerseyIcon.vue?34f8","webpack:///./src/components/Game.vue?3a37","webpack:///./src/components/Game.vue?fbfc","webpack:///./src/components/Game.vue?33d3","webpack:///./src/modelHelpers/CheerSquadGameAppointmentInfo.ts","webpack:///./src/modelHelpers/DisplayableGame.ts","webpack:///./src/components/GameList.vue?5a8c","webpack:///./src/components/GameList.vue?13d9","webpack:///./src/components/GameList.vue?a36d","webpack:///./src/views/Team.vue?f092","webpack:///./src/views/Team.vue?11f8","webpack:///./src/views/Team.vue?ff3a","webpack:///./src/views/TeamManage.vue","webpack:///./src/components/SpecialEventList.vue","webpack:///./src/components/SpecialEvent.vue","webpack:///./src/modelHelpers/LeagueSpecialEventInfo.ts","webpack:///./src/components/SpecialEvent.vue?1493","webpack:///./src/components/SpecialEvent.vue?4e22","webpack:///./src/components/SpecialEvent.vue?b347","webpack:///./src/components/SpecialEventList.vue?eedc","webpack:///./src/components/SpecialEventList.vue?66fa","webpack:///./src/components/SpecialEventList.vue?c2ff","webpack:///./src/views/TeamManage.vue?2c53","webpack:///./src/modelHelpers/IndividualAddress.ts","webpack:///./src/modelHelpers/LeagueVolunteer.ts","webpack:///./src/views/TeamManage.vue?c7b3","webpack:///./src/views/TeamManage.vue?62d8","webpack:///./src/views/Coach.vue","webpack:///./src/modelHelpers/VolunteerSearchInfo.ts","webpack:///./src/clients/volunteerClient.ts","webpack:///./src/views/Coach.vue?bb17","webpack:///./src/views/Coach.vue?1476","webpack:///./src/views/Coach.vue?fb32","webpack:///./src/views/InstallOption.vue","webpack:///./src/views/InstallOption.vue?8a07","webpack:///./src/views/InstallOption.vue?a743","webpack:///./src/views/InstallOption.vue?a08a","webpack:///./src/views/DefaultError.vue","webpack:///./src/views/DefaultError.vue?dc2b","webpack:///./src/elements/Alert/data.ts","webpack:///./src/views/DefaultError.vue?8b63","webpack:///./src/views/DefaultError.vue?7a95","webpack:///./src/views/ForgotPassword.vue","webpack:///./src/elements/Alert/Alert.vue","webpack:///./src/elements/Alert/Alert.vue?480f","webpack:///./src/elements/Alert/Alert.vue?26c7","webpack:///./src/elements/Alert/Alert.vue?9615","webpack:///./src/views/ForgotPassword.vue?7dcc","webpack:///./src/views/ForgotPassword.vue?6d29","webpack:///./src/views/ForgotPassword.vue?b11c","webpack:///./src/views/Resources.vue","webpack:///./src/clients/resourceUsageClient.ts","webpack:///./src/components/Accordion.vue","webpack:///./src/components/Accordion.vue?c4fe","webpack:///./src/components/Accordion.vue?3813","webpack:///./src/components/Accordion.vue?ba0f","webpack:///./src/components/AccordionItem.vue","webpack:///./src/components/AccordionItem.vue?1680","webpack:///./src/components/AccordionItem.vue?e3d7","webpack:///./src/components/AccordionItem.vue?1a23","webpack:///./src/views/Resources.vue?7aef","webpack:///./src/views/Resources.vue?4d09","webpack:///./src/views/Resources.vue?b443","webpack:///./src/views/PracticeResources/PracticeResources.vue","webpack:///./src/views/PracticeResources/ResourceList.vue","webpack:///./src/components/CoachResourceList.vue","webpack:///./src/components/CoachResourceList.vue?ab09","webpack:///./src/components/CoachResourceList.vue?250c","webpack:///./src/components/CoachResourceList.vue?f4f1","webpack:///./src/components/CoachResourceCategoryList.vue","webpack:///./src/components/CoachResourceCategoryList.vue?cec5","webpack:///./src/components/CoachResourceCategoryList.vue?7259","webpack:///./src/components/CoachResourceCategoryList.vue?c28d","webpack:///./src/views/PracticeResources/ResourceList.vue?d466","webpack:///./src/views/PracticeResources/ResourceList.vue?8ed7","webpack:///./src/views/PracticeResources/ResourceList.vue?97a3","webpack:///./src/components/CoachSkillsList.vue","webpack:///./src/components/CoachSkillsList.vue?010d","webpack:///./src/components/CoachSkillsList.vue?5314","webpack:///./src/components/CoachSkillsList.vue?d099","webpack:///./src/views/PracticeResources/CoachResource.vue","webpack:///./src/views/PracticeResources/CoachResource.vue?8409","webpack:///./src/views/PracticeResources/CoachResource.vue?19a7","webpack:///./src/views/PracticeResources/CoachResource.vue?4b60","webpack:///./src/router/practiceResources.ts","webpack:///./src/views/PracticeResources/PracticeResources.vue?dc96","webpack:///./src/views/PracticeResources/PracticeResources.vue?ea4f","webpack:///./src/views/PracticeResources/PracticeResources.vue?2c6c","webpack:///./src/views/PracticeResources/MinistryResources.vue","webpack:///./src/router/ministryResources.ts","webpack:///./src/views/PracticeResources/MinistryResources.vue?6abe","webpack:///./src/views/PracticeResources/MinistryResources.vue?d142","webpack:///./src/views/PracticeResources/MinistryResources.vue?5fd5","webpack:///./src/views/PracticeResources/CheerResources.vue","webpack:///./src/views/PracticeResources/CheerResourceList.vue","webpack:///./src/components/AnchorListItem.vue","webpack:///./src/components/AnchorListItem.vue?e7eb","webpack:///./src/components/AnchorListItem.vue?b0ff","webpack:///./src/components/AnchorListItem.vue?20af","webpack:///./src/common/CheerAPIResources.ts","webpack:///./src/views/PracticeResources/CheerResourceList.vue?add7","webpack:///./src/views/PracticeResources/CheerResourceList.vue?2baf","webpack:///./src/views/PracticeResources/CheerResourceList.vue?b1ae","webpack:///./src/router/cheerResources.ts","webpack:///./src/views/PracticeResources/CheerResources.vue?4798","webpack:///./src/views/PracticeResources/CheerResources.vue?8f29","webpack:///./src/views/PracticeResources/CheerResources.vue?49c0","webpack:///./src/views/PracticeResources/SelectResources.vue","webpack:///./src/router/selectResources.ts","webpack:///./src/views/PracticeResources/SelectResources.vue?aadc","webpack:///./src/views/PracticeResources/SelectResources.vue?1992","webpack:///./src/views/PracticeResources/SelectResources.vue?e7f5","webpack:///./src/views/Search.vue","webpack:///./src/elements/VueSmartGrid/VueSmartGrid.vue","webpack:///./src/elements/VueSmartGrid/SmartGridRow.vue","webpack:///src/elements/VueSmartGrid/SmartGridRow.vue","webpack:///./src/elements/VueSmartGrid/SmartGridRow.vue?ae47","webpack:///./src/elements/VueSmartGrid/SmartGridRow.vue?0965","webpack:///./src/elements/VueSmartGrid/VueSmartGrid.vue?c815","webpack:///./src/modelHelpers/SearchResult.ts","webpack:///./src/elements/VueSmartGrid/VueSmartGrid.vue?b641","webpack:///./src/elements/VueSmartGrid/VueSmartGrid.vue?105d","webpack:///./src/views/Search.vue?ddac","webpack:///./src/views/Search.vue?a341","webpack:///./src/views/Search.vue?c36e","webpack:///./src/views/Programs.vue","webpack:///./src/components/ProgramList.vue","webpack:///./src/components/ProgramIcon.vue","webpack:///./src/components/ProgramIcon.vue?6aad","webpack:///./src/components/ProgramIcon.vue?5f2b","webpack:///./src/components/ProgramIcon.vue?3c48","webpack:///./src/components/ProgramList.vue?a3bf","webpack:///./src/components/ProgramList.vue?5b7b","webpack:///./src/components/ProgramList.vue?d618","webpack:///./src/views/Programs.vue?6d8b","webpack:///./src/common/LeagueTypes.ts","webpack:///./src/views/Programs.vue?1c04","webpack:///./src/views/Programs.vue?5437","webpack:///./src/views/GettingStarted.vue","webpack:///./src/models/Resources/GettingStartedResource.ts","webpack:///./src/views/GettingStarted.vue?20ea","webpack:///./src/views/GettingStarted.vue?fca4","webpack:///./src/views/GettingStarted.vue?72f4","webpack:///./src/views/GameDay.vue","webpack:///./src/views/GameDay.vue?bf9e","webpack:///./src/views/GameDay.vue?ac92","webpack:///./src/views/GameDay.vue?72aa","webpack:///./src/views/Account/Impersonate/Impersonate.vue","webpack:///./src/views/Account/Impersonate/PartnerSearchPanel.vue","webpack:///./src/elements/SearchInput.vue","webpack:///./src/elements/SearchInput.vue?6a6d","webpack:///./src/elements/SearchInput.vue?0310","webpack:///./src/elements/SearchInput.vue?5e63","webpack:///./src/views/Account/Impersonate/PartnerSearchPanel.vue?2418","webpack:///./src/views/Account/Impersonate/PartnerSearchPanel.vue?b294","webpack:///./src/views/Account/Impersonate/PartnerSearchPanel.vue?40c2","webpack:///./src/views/Account/Impersonate/Impersonate.vue?ce91","webpack:///./src/views/Account/Impersonate/Impersonate.vue?dc8a","webpack:///./src/views/Account/Impersonate/Impersonate.vue?ac86","webpack:///./src/views/RefereeSchedule.vue","webpack:///./src/components/GameReferee.vue","webpack:///./src/components/GameReferee.vue?3aa9","webpack:///./src/components/GameReferee.vue?763a","webpack:///./src/components/GameReferee.vue?eb10","webpack:///./src/views/RefereeSchedule.vue?cf3f","webpack:///./src/views/RefereeSchedule.vue?5ee0","webpack:///./src/views/RefereeSchedule.vue?1b22","webpack:///./src/views/Account/Profile.vue","webpack:///./src/views/Account/VerificationCode.vue","webpack:///./src/views/Account/VerificationCode.vue?6854","webpack:///./src/views/Account/VerificationCode.vue?11d5","webpack:///./src/views/Account/VerificationCode.vue?ba09","webpack:///./src/views/Account/Profile.vue?bfdb","webpack:///./src/views/Account/Profile.vue?0a71","webpack:///./src/views/Account/Profile.vue?6b1d","webpack:///./src/views/Account/Password.vue","webpack:///./src/views/Account/Password.vue?dc58","webpack:///./src/views/Account/Password.vue?30fa","webpack:///./src/views/Account/Password.vue?5e16","webpack:///./src/views/Account/Account.vue","webpack:///./src/views/Account/Account.vue?0ba6","webpack:///./src/views/Account/Account.vue?bc57","webpack:///./src/views/Account/Account.vue?34b4","webpack:///./src/views/Message/Message.vue","webpack:///./src/elements/VeeValidateForm.vue","webpack:///./src/utils/phoneValidation.ts","webpack:///./src/elements/VeeValidateForm.vue?ac5d","webpack:///./src/elements/VeeValidateForm.vue?1093","webpack:///./src/elements/VeeValidateForm.vue?95f3","webpack:///./src/elements/InputlessStringValidator.vue","webpack:///./src/elements/InputlessStringValidator.vue?ddb4","webpack:///./src/elements/InputlessStringValidator.vue?dde6","webpack:///./src/elements/InputlessStringValidator.vue?e90d","webpack:///./src/components/MessageContent.vue","webpack:///./src/modelHelpers/Attachment.ts","webpack:///./src/components/TeamPageWidget.vue","webpack:///./src/components/TeamPageWidget.vue?6338","webpack:///./src/components/TeamPageWidget.vue?d3d6","webpack:///./src/components/TeamPageWidget.vue?0b53","webpack:///./src/utils/smsCount.ts","webpack:///./src/elements/FileInput.vue","webpack:///./src/elements/FileInput.vue?9bfb","webpack:///./src/elements/FileInput.vue?7d1d","webpack:///./src/elements/FileInput.vue?3c23","webpack:///./src/elements/HtmlEditor2.vue","webpack:///./src/LetterList.ts","webpack:///./src/elements/DivWrapper.vue","webpack:///./src/elements/DivWrapper.vue?27bb","webpack:///./src/elements/DivWrapper.vue?eeec","webpack:///./src/elements/DivWrapper.vue?2bbf","webpack:///./src/elements/HtmlEditor2.vue?c29d","webpack:///./src/elements/HtmlEditor2.vue?1647","webpack:///./src/elements/HtmlEditor2.vue?5802","webpack:///./src/components/MessageContent.vue?803f","webpack:///./src/components/MessageContent.vue?f95f","webpack:///./src/components/MessageContent.vue?2263","webpack:///./src/components/MessageRecipient/MessageRecipient.vue","webpack:///./src/elements/ToggleSlot.vue","webpack:///./src/elements/ToggleSlot.vue?e43c","webpack:///./src/elements/ToggleSlot.vue?a08b","webpack:///./src/elements/ToggleSlot.vue?a910","webpack:///./src/elements/SelectInput.vue","webpack:///./src/elements/SelectInput.vue?d5fd","webpack:///./src/elements/SelectInput.vue?aefb","webpack:///./src/elements/SelectInput.vue?bce2","webpack:///./src/components/MessageRecipient/MessageProgramSelector.vue","webpack:///./src/elements/RadioGroupInput.vue","webpack:///./src/elements/RadioGroupInput.vue?b4d8","webpack:///./src/elements/RadioGroupInput.vue?f7db","webpack:///./src/elements/RadioGroupInput.vue?800a","webpack:///./src/components/MessageRecipient/MessageProgramSelector.vue?47de","webpack:///./src/components/MessageRecipient/MessageProgramSelector.vue?5b8c","webpack:///./src/components/MessageRecipient/MessageProgramSelector.vue?afeb","webpack:///./src/models/Communication/ContactBuilder.ts","webpack:///./src/components/MessageRecipient/data.ts","webpack:///./src/components/MessageRecipient/MessageRecipient.vue?55f5","webpack:///./src/components/MessageRecipient/MessageRecipient.vue?054b","webpack:///./src/components/MessageRecipient/MessageRecipient.vue?6c6b","webpack:///./src/components/MessageFilters/MessageFilters.vue","webpack:///./src/components/MessageFilters/data.ts","webpack:///./src/elements/SwitchSlot.vue","webpack:///./src/elements/ButtonGroup.vue","webpack:///./src/elements/ButtonGroup.vue?4087","webpack:///./src/elements/ButtonGroup.vue?5c70","webpack:///./src/elements/ButtonGroup.vue?d6d4","webpack:///./src/elements/SwitchSlot.vue?6a97","webpack:///./src/elements/SwitchSlot.vue?3c5b","webpack:///./src/elements/SwitchSlot.vue?a0d9","webpack:///./src/elements/DayOfWeekSelect.vue","webpack:///./src/elements/DayOfWeekSelect.vue?8963","webpack:///./src/elements/DayOfWeekSelect.vue?a436","webpack:///./src/elements/DayOfWeekSelect.vue?a2d1","webpack:///./src/elements/MultiselectInput.vue","webpack:///./src/elements/MultiselectInput.vue?96f6","webpack:///./src/elements/MultiselectInput.vue?f57f","webpack:///./src/elements/MultiselectInput.vue?277a","webpack:///./src/elements/GradeDropdownInput.vue","webpack:///./src/elements/GradeDropdownInput.vue?4c7b","webpack:///./src/elements/GradeDropdownInput.vue?b6f1","webpack:///./src/elements/GradeDropdownInput.vue?d364","webpack:///./src/components/MessageFilters/MessageFilters.vue?6ef6","webpack:///./src/components/MessageFilters/MessageFilters.vue?5692","webpack:///./src/components/MessageFilters/MessageFilters.vue?d45b","webpack:///./src/components/MessagePreview.vue","webpack:///./src/components/MessagePreview.vue?afee","webpack:///./src/components/MessagePreview.vue?6046","webpack:///./src/components/MessagePreview.vue?a477","webpack:///./src/components/ParentRecipientPicker.vue","webpack:///./src/components/ListItem.vue","webpack:///./src/components/ListItem.vue?3f80","webpack:///./src/components/ListItem.vue?d95f","webpack:///./src/components/ListItem.vue?7891","webpack:///./src/components/Listing.vue","webpack:///./src/components/Listing.vue?4aaa","webpack:///./src/components/Listing.vue?4bdc","webpack:///./src/components/Listing.vue?8588","webpack:///./src/components/ParentRecipientPicker.vue?0b84","webpack:///./src/components/ParentRecipientPicker.vue?2c3a","webpack:///./src/components/ParentRecipientPicker.vue?5513","webpack:///./src/components/CoachRecipientPicker.vue","webpack:///./src/components/CoachRecipientPicker.vue?ae65","webpack:///./src/components/CoachRecipientPicker.vue?2993","webpack:///./src/components/CoachRecipientPicker.vue?1f3a","webpack:///./src/components/CopyPhoneRecipientsToClipboard.vue","webpack:///./src/components/CopyPhoneRecipientsToClipboard.vue?e565","webpack:///./src/views/Message/data.ts","webpack:///./src/components/CopyPhoneRecipientsToClipboard.vue?fb91","webpack:///./src/components/CopyPhoneRecipientsToClipboard.vue?d81a","webpack:///./src/models/Communication/EmailMessageImpl.ts","webpack:///./src/views/Message/Message.vue?b040","webpack:///./src/views/Message/Message.vue?808b","webpack:///./src/views/Message/Message.vue?2260","webpack:///./src/views/TeamAlertList.vue","webpack:///./src/modelHelpers/AlertInfo.ts","webpack:///./src/clients/alertClient.ts","webpack:///./src/views/TeamAlert.vue","webpack:///./src/elements/DateInput.vue","webpack:///./src/utils/time/time.ts","webpack:///./src/elements/DateInput.vue?306f","webpack:///./src/elements/DateInput.vue?945d","webpack:///./src/elements/DateInput.vue?4cc0","webpack:///./src/utils/convertToOldFashionDateTime.ts","webpack:///./src/views/TeamAlert.vue?0483","webpack:///./src/views/TeamAlert.vue?346b","webpack:///./src/views/TeamAlert.vue?535d","webpack:///./src/views/TeamAlertList.vue?94b8","webpack:///./src/views/TeamAlertList.vue?ac22","webpack:///./src/views/TeamAlertList.vue?d054","webpack:///./src/router/communication.ts","webpack:///./src/router/index.ts","webpack:///./src/common/SWRefreshMixin.ts","webpack:///./src/App.vue?dad8","webpack:///./src/App.vue?0083","webpack:///./src/App.vue?315a","webpack:///./src/plugins/Authorization/authorization.ts","webpack:///./src/registerServiceWorker.ts","webpack:///./src/services/roles.ts","webpack:///./src/main.ts","webpack:///./src/components/RegenerateLineup.vue?d0b9","webpack:///./src/assets/star-blue.png","webpack:///./src/assets/star-grey.png","webpack:///./src/elements/SimpleMenu.vue?a202","webpack:///./src/components/LinkingListItem.vue?c890","webpack:///./src/components/LineupWithRotation.vue?f01f","webpack:///./src/components/PlayerRankable.vue?d1df","webpack:///./src/components/CoachSkillsList.vue?46de","webpack:///./src/views/PracticeResources/CheerResourceList.vue?8a72","webpack:///./src/assets/star-blank.png","webpack:///./src/views/Resources.vue?49bf"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","errorsState","errorItems","validationItems","getterNames","getters","allErrors","state","allValidationErrors","currentError","_state$errorItems","currentValidationError","_state$validationItem","KEEP_ERROR_HISTORY_FEATURE","mutationNames","mutations","addError","item","error","timestamp","Date","clearCurrentError","pop","addValidationError","clearCurrentValidationError","clearAll","namespace","errors","namespaced","sidebarStatus","sidebarState","isOpen","open","close","toggle","actions","sidebar","keyPrefix","getRaw","fullKey","getFullKey","localStorage","getItem","getParsed","json","JSON","parse","set","stringify","setItem","remove","removeItem","getPrimaryAccountFromCredentials","credentials","accountNumbers","hasValidCredentials","isImpersonating","impersonatedAccount","impersonationActive","localStorageKey","oldLocalStorageKey","getAuthToken","localStorageService","backupToken","token","getCredentialsFromToken","credentialsService","getCredentialsFromNewAuthToken","authToken","restService","setToken","upwardJWToken","setHTTPHeaderAndLocalStorage","getCredentialsFromStoredAuthToken","clearStoredAuthToken","getCsvFromPayload","payload","propertyName","raw","split","getTokenFromStorage","retrieveOldToken","async","oldtoken","decodedJwt","jsonwebtoken","decode","complete","jwtPayload","claimAccountNumber","rootAccountNumber","rolesByLeague","rootIsImpersonating","accountName","activities","fullName","email","userData","roles","expiration","exp","daysUntilPasswordExpiration","Number","leagueRoles","totpInfo","conf","baseURL","process","axiosInstance","axios","interceptors","request","use","config","jwtService","url","endsWith","headers","Authorization","Promise","reject","defaults","common","convertToRestServiceResult","instance","implementsInterface","convertToVerificationDetails","response","status","store","authentication","isTokenExpired","console","log","commit","reset","isUpwardInvalidResult","getRestServiceResult","axiosResponse","isSuccessCode","Math","floor","isErrorObject","isSuccess","errorObject","message","statusText","wrapApiCall","callback","then","catch","post","resource","put","params","deleteMethod","delete","patch","baseUrl","retrieveAll","includeHistorical","results","retrieveAllCondensed","retrieve","leagueID","programState","programs","currentProgram","usersPrograms","getterTree","defineGetters","currentProgramId","_state$currentProgram","upwardLeagueID","defineMutations","setPrograms","setCurrentProgram","upwId","_program$typeLeagueID","program","find","x","leagueTypeID","typeLeagueID","leagueType","upwardTypes","leagueTypes","upwardTypeID","setCurrentLeagueType","updateGradeDescriptionsFromLeague","descriptions","gradeDescriptions","actionNames","defineActions","fetchPrograms","isCoach","programsClient","_result","filter","moment","subtract","isBefore","seasonEndDate","retrieveTeamList","programTypeId","_result$data","retrieveLeagueTeamList","_result$data2","retrieveCoachTeamList","_result$data3","retrieveTeam","divisionId","teamId","retrieveByIndividualId","upwardId","individualId","individualID","updateTeam","upwardLeagueId","team","typeProgramID","divisionID","teamID","rerankPlayers","setCurrentGame","gameId","saveRosterChanges","players","toDivisionTeam","teamIn","clone","cloneDeep","leagueDirectorPartnerID","divisionName","teamPageUrl","coachCount","playerCount","headCoachName","games","partnerName","divisionContact","appointments","divisionGenderGradeRange","coaches","toTeamCoach","toTeamPlayer","toDivisionTeamPracticeAppointment","coach","coachIndividualID","headCoach","player","playerIndividualID","typePositionID","typeTapeDownReasonID","manualAssignment","draftNumber","rosterRanking","coachAssignedJerseyNumber","draftExceptions","apts","facilityName","initState","teams","currentTeam","teamsForCurrentUser","currentTeamNumberOfSegments","_typeID$numberOfSegme","overrideNumberOfSegments","typeID","programTypes","numberOfSegments","currentTeamPlayers","_state$currentTeam","hasScheduledGames","_state$currentTeam2","_state$currentTeam3","hasScheduledAppointments","_state$currentTeam4","_state$currentTeam5","setTeams","setCurrentTeam","setTeamsForCurrentUser","setCurrentTeamPlayers","assign","fetchTeamsByProgram","force","teamClient","fetchLeagueTeams","fetchTeamsForACoach","fetchAndSetCurrentTeam","saveCurrentTeam","searchPartners","searchFilter","term","useStartsWith","retreivePartnerInfo","accountId","retreivePartners","accountNumber","partnerState","partners","currentPartner","setPartners","setCurrentPartner","partner","fetchPartners","partnerClient","MessageTypes","PreviewMessageTypes","retrieveProviderInfo","upwID","retrieveMessagePreview","preview","retrieveLeagueSettings","account","providerInfo","emailSmsAccountID","updateLeagueSettings","setting","retrieveMessages","emailSMSAccountID","messageType","showArchived","messages","Email","retrieveMessage","emailSmsMessageID","sendEmailMessage","sendSMSMessage","sendMessage","type","getContactBuilder","playerPaymentStatus","playerEvalStatus","coachTeamStatus","programTypeID","coachApprovalStatus","headCoachOnly","approvalStatus","getEmptyPreviewMessage","selectedGroups","individualContactInfo","practiceNight","startGrade","endGrade","communicationType","displayName","replyTo","emailSubject","messageBody","to","toDelimited","paymentStatus","evalStatus","MessageState","previewMessage","setPreviewMessage","retrievePreviewMessage","communicationsClient","GeneralError","constructor","exception","super","innerException","this","LoginException","LockedAccountException","appId","AuthClientException","login","username","password","appID","newPassword","refreshToken","impersonate","userName","_r$errorObject","passwordChange","getSystemToken","getPasswordResetLink","systemToken","resetPassword","getFirstAccount","_credentials$accountN","tokenLogin","userToken","updateProfile","newUsername","usernameChangeCode","newFullName","validateTOTP","totpCode","_t$errorObject","TwoFactorAuthRequiredException","accountToImpersonateAfterAuth","authState","timeSet","userProfile","isMultiAccountUser","isAuthenticated","rootState","now","firstAccountNumber","refreshTime","msPerMinute","getTime","accountRoles","leagueRolesByProgram","UpwardLeagueID","impersonationAccountNumber","dayjs","isAfter","setCurrentCredentials","setUserProfile","setIsMultiAccountUser","restResult","authorizationClient","_restResult$data$acco","_restResult$data","numberOfAccounts","fetchProfile","userClient","loginByTokenWithImpersonate","chit","impersonatingAccountNumber","who","undefined","usersAuthToken","_err$errorObject","err","ex","passthoughImpersonation","tryLoadSavedToken","unimpersonate","_restResult$data$acco2","_restResult$data2","hasMultipleAccounts","incompleteToken","impersonatedAuthToken","currentRole","applicationRoles","authorizationState","setCurrentRole","currentLeagueRole","resetApplicationRoles","addApplicationRole","role","Set","removeApplicationRole","_state$applicationRol","authorization","searchState","searchTerms","setSearchTerms","search","retrieveLeagueTypes","retrieveProgramTypes","retrieveRecognitionTypes","retrievePositionTypes","retrieveGradeTypes","upwardTypesState","playerRecognitionTypes","positionTypes","currentLeagueType","currentProgramType","gradeTypes","recognitionTypes","setleagueTypes","items","setProgramTypes","setRecognitionTypes","setPositionTypes","setCurrentProgramType","setGradeTypes","grades","forEach","grade","g","description","alternateDescription","fetchLeagueTypes","upwardTypesClient","fetchRecognitionTypes","fetchProgramTypes","fetchPositionTypes","fetchGradeTypes","CoachAPIResources","Map","getVolunteerResources","programType","productYear","getVolunteerResourcesByUPW","upw","getCheerResources","getCheerResourcesByUPW","getCoachResources","ruleLevel","week","devoTrack","getCoachResourcesByUPW","getLegalResource","documentID","version","getPageContentDocument","getMarketingResources","leagueTypeAbreviation","getGettingStartedResource","resources","currentResourceType","resourceState","setResources","setCurrentResourceType","fetchCoachResource","contentManagementClient","fetchCoachResourceByUPW","cheerResources","cheerResourceState","fetchCheerResourceByUPW","lineupState","allLineups","allLineupsWithRotation","substitutionPreference","upsertLineup","lineup","filtered","uniqueArrayId","uniqueLineupId","deleteLineup","upsertLineupWithRotation","deleteLineupWithRotation","clearOldLineups","cleanLineupsWithRotation","removeYearOld","cleanLineups","clearAllLineups","setSubstitutionPreference","preference","preferenceString","today","createDate","lineupCreateDt","days","parseInt","lineupsWithRotation","lineups","loadSubstitutionPreference","expiry","retreiveGameRecognitions","retrieveByLeague","retreivePlayerRecognitions","retreiveCheerleaderRecognitions","_result$data4","retreiveCheerGameRecognitions","aptId","_result$data5","updateSportRecognition","dgp","gameID","updateCheerRecognition","csr","cheerSquadGameAppointmentID","retrievePlayerRecognitionTypes","_result$data6","gameState","currentGameRecognitions","currentCheerRecognitions","skipPlayerRanking","setCurrentGameRecognitions","recognitions","setCurrentCheerGameRecognitions","setSkipPlayerRanking","skipRanking","currentCheerGameRecognitions","fetchCurrentGameRecognitions","gameClient","fetchCurrentCheerGameRecognitions","game","gameFormats","divisionsState","allItems","setAll","fetchAll","divisionsClient","divisions","Vue","Vuex","startTimekeeping","setInterval","initialState","userLastSeen","userInactiveMS","updateTime","updateUserLastSeen","rootActionContext","moduleActionContext","rootGetterContext","moduleGetterContext","createDirectStore","strict","plugins","createPersistedState","paths","render","_vm","_c","_self","_setupProxy","staticClass","isLoading","_e","isCurrentRoutePublic","staticStyle","attrs","slot","alertTypeEnum","HAPPYDAYS","model","updateExists","$$v","expression","_v","on","refreshApp","staticRenderFns","class","isSmall","Loading","__decorate","Prop","Boolean","required","default","Component","AlertTypeEnum","component","classNames","dismissable","dismiss","_t","Toaster","$emit","DANGER","NOTICE","typeClass","onValueChanged","String","Watch","onAlertIsVisibleChange","alertIsVisible","_s","currentItem","_l","index","messageID","highestTimeStamp","brokenRules","brokenRule","itemCount","TheErrorRenderer","highWaterTimeStamp","onRouteChange","onCurrentItemChange","Getter","Mutation","components","toggleSidebar","adminUsers","allVolunteerRoles","impersonateLink","show","menu","superUsers","fullSiteLink","logout","_m","logoutUser","Logout","$route","$router","auth","RoleUnionTypes","VolunteerRoles","getEmtpyRoleUnion","roleId","roleType","NONE","roleDescription","getEmtpyRoleUnionList","commissionerGroup","COACH_COMMISSIONER","REFEREE_COMMISSIONER","HOST_COMMISSIONER","PRAYER_COMMISSIONER","ADVERTISING_COMMISSIONER","HALFTIME_COMMISSIONER","MINISTRY_COORDINATOR","refereeRoleMap","REFEREE","_store$state$programs","_store$state$programs2","refLabel","refereeCommisionerRoleMap","_store$state$programs3","_store$state$programs4","BuiltInVolunteerRoles","COACH","CHEER_DIRECTOR","coachGroup","values","allVolunteerRolesAsRoleUnion","hasCheer","volRole","_BuiltInVolunteerRole","_BuiltInVolunteerRole2","VOLUNTEER","AccountRoles","PARTNER_SUPPORT","DIRECTOR","SUPER_ADMIN","SYS_AND_SUPPORT","UPWARD_STAFF","BuiltInAccountRoles","convertSuperUserToDirector","includes","forbidSettingProgramForEmail","communicationVolunteerRoles","localSMSClientGroup","bulkEmailerGroup","forbidBulkEmailerGroup","denyMessaging","mainMenuItemConfigEmpty","text","icon","route","defaultChildRoute","allowIfAnyRoles","displayLocation","sportOrCheer","DisplayLocation","SportOrCheer","LeagueType","home","SIDEBAR","communication","denyIfAnyRoles","HOME","coachCommunication","excludedLeagueTypes","CAMP","coachResources","STANDARD","practiceResources","SPORT_ONLY","cheerPracticeResources","CHEER_ONLY","selectPracticeResources","SELECT_ONLY","ministryResources","gameDay","starDistribution","selectStarDistribution","manageTeam","install","gettingStarted","refereeSchedule","toLocaleLowerCase","MainMenuEnum","MainMenu","ACCOUNT","STARTED","MANAGE_TEAM","PRACTICE_RESOURCES","COACH_RESOURCES","MINISTRY_RESOURCES","CHEER_PRACTICE_RESOURCES","SELECT_PRACTICE_RESOURCES","SEARCH","RESOURCES","COMMUNICATION","COACH_COMMUNICATION","GAMEDAY","INSTALL","STAR_DISTRIBUTION","SELECT_STAR_DISTRIBUTION","REFEREE_SCHEDULE","iOSTestMixin","isIosOnBrowser","isIos","isInStandaloneMode","userAgent","navigator","toLowerCase","test","standalone","MainMenuMixin","Mixins","entries","ApplicationRoles","maxStringLength","val","maxLength","substring","stop","showBackLink","title","handleClick","BackButton","go","PrimaryHeading","BackLink","Impersonating","authorizationReset","programReset","teamReset","authStore","Action","programStore","teamStore","authorizationStore","IsCheerMixin","allprograms","allProgramTypes","isCheer","upwardTypesStore","MenuItemValidProgramMixin","isSelect","ExcludedLeagueTypesMixin","_this$config$excluded","excludedTypes","excludeCamp","isCamp","excludeClinic","CLINIC","isClinic","excludeStandard","SidebarItem","impersonationIsInValidState","$hasAtLeastOne","validLocation","validProgramType","leagueTypeExcluded","TheSidebar","maxStringLen","upwardUrl","encodeURIComponent","$hasAllOf","USER_WITH_LEAGUE","COACH_WITH_TEAM","showPrograms","programChanged","selectedProgram","showRoles","roleChanged","selectedRole","getEmptyLeagueInfoCondensedList","getEmptyLeagueInfoCondensed","typeProductGroupID","programTypeDescription","iconLabel","leagueName","publicDisplayName","registrationBeginDate","registrationEndDate","onlineRegistrationBeginDate","onlineRegistrationEndDate","firstEvalDate","firstPracticeDate","firstGameDate","lateDate","awardsOrderDate","typeSystemsAccessID","isPrivate","bailedReason","allowCarpoolLinks","allowCoachLinks","allowPracticeNightExclusions","isMailIn","isOPRLeague","otherRegistrationVendorName","leagueRegistrationURL","typeCountryID","expectedToPay","totalPaid","totalUnpaid","donations","isHistorical","seasonYear","schoolYear","participantCount","participantSportCount","participantCheerCount","orderCount","canDelete","canDeleteReason","lastPossibleGameDate","upwardDevotionTrackTypeID","jerseyOptionSelected","primaryColorHex","secondaryColorHex","isByAge","selectConfig","VeeValidateRules","scopedSlots","_u","fn","classes","label","subLabel","subLabelInline","prependIcon","style","cssVars","elementId","enabled","itemsList","valuePropertyName","textPropertyName","tabIndex","internalValue","showBlankItem","domProps","blankItemValue","blankItemText","appendIcon","labelClass","inputId","showHelp","$event","InputLabel","RuntimeException","isRuntime","ComponentArgumentRuntimeException","defaultConfig","bgColor","color","borderColor","placeholderColor","highlightBgColor","highlightColor","SelectInput","guid","uuid","v4","getOptionValue","valueAndTextTheSame","toString","getOptionKey","getOptionText","handleChange","assertItemListType","Array","isArray","itemsListChanged","created","ValidationProvider","Multiselect","ProgramSelect","StylableSelectInput","RoleSelect","RoleMixin","convertVolunteerRoleToRoleUnion","RoleID","roleUnion","volunteerRoles","vRoles","aRoles","convertAccountRoleToRoleUnion","_BuiltInAccountRoles$","_BuiltInAccountRoles$2","TheHeader","setRole","_this$currentProgram$","res","searchReset","resetTeams","resetResources","goHome","currentProgramChanged","resourcesStore","getFullYear","TheFooter","FullBody","errorMessage","show2FAPrompt","loginWithPartner","preventDefault","directives","rawName","doRememberEmail","_i","$$a","$$el","target","$$c","checked","$$i","concat","ref","Alert","timeoutHandle","clearTimeout","timeout","setTimeout","subText","loadingData","underlineOnly","inputType","placeholder","size","maxlength","handleInput","handleBlur","veeValidateMode","hasIcon","failedRules","BaseInputWrapperProps","BaseInputWrapper","TextLikeWrapperProps","iconClick","Emit","TextLikeWrapper","TextLikeEvents","change","blur","input","TextInput","setInternalValue","mounted","localAppendIcon","eyeClicked","PasswordInput","checkAutoFillBug","HTMLInputElement","iconChange","immediate","accountID","selectPartner","address1_Line1","address1_Line2","address1_City","address1_StateOrProvince","PartnerList","localStorageEmailKey","rememberedEmail","Login","validateTOTPAction","dispatch","currentYear","accountToImpersonateAfter2FA","lastValidTotp","isReplaying","query","tfaEx","$nextTick","accountNo","replayTOTPCode","loginAction","$allowIfAny","multiAccountCheck","path","replace","_err$errorObject2","onshow2FAPromptChanged","verficatioCode","$refs","verificationCodeReturning","verficatioCodeTextbox","inputField","focus","dismissInstall","showInstallPrompt","PwaInstall","PwaInstallMixin","reminderDelay","deferredPrompt","installPrompt","addEventListener","timeToPrompt","showIosInstall","toasterChange","prompt","dismissDate","threshold","add","HundredYearsFromNow","setFullYear","PwaInstallPrompt","PwaInstallInfo","setTeamLoadingStatus","isLoadingTeam","hideMenu","allVolunteers","searchTerm","MenuItem","options","SelectStylable","language","selectedTeam","setTeam","CurrentTeamSelect","loadTeamList","upwardTeamID","setCurrentTeamInStore","teamExistsInList","fetchAndSetCompleteTeamData","hasTeam","fetchTeam","setApplicationRoles","_team$upwardLeagueID","_team$typeProgramID","_team$divisionID","_team$teamID","list","sort","a","b","_a$teamName","_b$teamName","_a$teamName2","_b$teamName2","teamName","loadTeamsForSuperUsers","loadTeamsForCoaches","setDefaultTeamID","forceReload","isLoadingTeamChange","isLoadingChange","authorizeStore","Home","colors","isActiveCoach","breadcrumbs","pageStates","stateChanged","currentToggle","fullPath","states","isActive","toggleState","PageStateToggle","currentState","crumbs","crumb","routeName","active","clickable","Breadcrumbs","routeParams","routeObj","profile","RouterItemsEnum","RouterItems","PLAYER","TEAM","START","PROFILE","PASSWORD","PermissionChecks","isPermitted","usersRoles","all","trim","intersection","getIntersection","isDenied","reduce","intersect","perm","defaultRanking","DENY_IF_ANY","ALLOW_IF_ANY","DENY_IF_ALL","ALLOW_IF_ALL","allowFirstRanking","denyIfAnyOnly","allowIfAnyOnly","SidesEnum","tag","allowSubstitutionPreference","defaultSubstitution","loadingRecognitions","createLineup","showLineup","pagingMaxLength","upperLimit","currentSegment","showStartingSideSelector","footballStartingSide","showSideToggle","sides","currentSide","isBaseballOrSoftball","localCurrentPlayers","playerRemoved","showConfirmation","completeGame","completingGame","rankPlayers","useRosterRanking","rankByRosterRank","rankByEvalScore","aRank","bRank","evaluationScore","arr","every","setRosterRanking","numberToLetters","num","letters","gameFormatToPlayersPerSeg","typeGameFormat","fmt","getEmptyTeamPlayerInfo","positionScore","athleticScore","extraScore","contacts","firstName","lastName","middleInitial","gender","birthDate","churchName","addresses","phoneNumbers","emailAddresses","thirdPartyClientIDs","formattedNameFirstLast","formattedNameLastFirst","formattedNamePrivate","addDays","date","setDate","getDate","getEmptyGameLineupWithRotation","startingSide","upwardTypeId","completed","isScheduledGame","round","playersPerSegment","getEmptyGameLineup","getEmptyVolleyballPlayer","foul","starts","volleyballStarts","getEmptyBasketballPlayer","basketballStarts","getEmptyGameLineupPositionPlayer","positionText","started","SubstitutionType","SubstitutionPreferenceImpl","CurrentGameLineupWithRotationMixin","maintainDataModel","dirty","currentGameLineupById","lineupStore","CurrentGameLineupCommonMixin","ProgramEnum","isFootball","FOOTBALL","BASEBALL","SOFTBALL","inactivatePlayer","gameLineup","segment","inactivePlayers","isExistingInactivePlayer","some","inactivePlayersFromAllSegments","uniquePlayerIds","uniqueInactivePlayers","activatePlayer","playerId","_gameLineupClone$line","gameLineupClone","adjustLineup","originalLineup","lgPlayerPool","generateLineupPool","gamePlayerPool","getGamePlayerPool","newLineup","seg","lastPlayerPreviousSegment","getLastPlayerFromPreviousSegment","newPlayerList","playerListAdjusted","_originalLineup$lineu","_originalLineup$lineu2","op","gameNumberInTheSeason","playerPool","naturalGameLineupStart","prevSegmentPlayers","startIndex","activePlayers","ip","getNextPlayerIndex","endIndex","nextPlayerIndex","idx","findIndex","getPlayerIdByOffest","offset","getRound","currentGame","roundNumber","getIsScheduled","generateLineup","isScheduleGame","toISOString","BASKETBALL","basketballPlayers","VOLLEYBALL","volleyballPlayers","lineupPlayer","generateLineupWithRotation","generateSegments","lineupPool","playerList","adjustSegments","ceil","localPlayers","sortPlayers","fullSize","clonePlayers","_a$rosterRanking","_b$rosterRanking","start","end","segmentPlayers","_","gameStore","xOffsetEnum","yOffsetEnum","SimpleMenu","left","top","right","bottom","parent","parentHeight","clientHeight","parentWidth","clientWidth","yOffset","BELOW","ABOVE","xOffset","RIGHT","LEFT","elem","menuContent","nextTick","onClickaway","showChoices","option","selectedValue","_q","editable","StartingSideToggle","OFFFENSE","DEFENSE","selectedValueChanged","valueChanged","onYes","onNo","isVisible","stopPropagation","headerClass","headerIcon","showClose","hide","closeIconClass","$slots","footer","Modal","focustrap","_this$dialog$querySel","_ifc$","ifc","tabbable","dialog","querySelector","initialFocus","activate","deactivate","beforeDestroy","Ref","ConfirmationModal","modalIsVisible","onProgramChange","newValue","sortedPlayers","showPositionEdit","removePlayer","showComment","showRecognitionName","enableRecognition","playerRecognition","recognitionId","showRosterRanking","showRemove","confirmRemoval","comment","playerNameFormatted","positionDescription","showJerseyEdit","$set","showRank","Player","_posType$description","posType","_this$player$formatte","_this$player$coachAss","require","starImg","starsMap","Star","file","GameDayPlayer","cheerPlayer","sportPlayer","gameRecognitions","_p$typePlayerRecognit","_p$recognitionNote","typePlayerRecognitionID","recognitionNote","cheer","cheerGameRecognitions","_c$typePlayerRecognit","_c$note","note","matched","PlayerRankable","RecalculateLineupMixin","recalculateLineup","GameLineup","currentLineup","GameDayLineup","currentGameLineupWithRotation","MSSSELECT","BATTING","previous","segmentTitle","segmentSubTitle","next","ListPaging","current","footballQuarterMap","localeData","ordinal","half","RegenerateLinup","LineupWithRotation","getCrumbs","CrumbsEnum","GAMES_GAMEDAY","GAME","lineupCheck","getRecognitions","currentPlayers","localCurrentPlayersChange","side","fetchRecognitions","_this$programType","_this$programType2","FIELDING","_this$currentTeam$pla","differenceWith","o1","o2","setSegmentSides","otherSide","overrideAlternation","overrideSide","alternatingSide","lineupSegment","_this$currentTeam$pla2","playersPerSeg","nextGameId","_nextGame$gameID","nextGame","noLineups","typeGameFormatID","startSide","createNew","Default","_this$currentTeam$typ","useLevelFourSub","deep","RegenerateLineup","traditionalSubstitution","localCurrentLineup","save","showFouls","CurrentGameLineupMixin","decrement","min","max","increment","Incrementor","v","isValid","emit","inline","CheckboxInput","Lineup","currentGameLineup","currentGameLineupChange","Tranditional","GamePlay","SOCCER","_this$components$get2","_this$substitutionPre","_this$substitutionPre2","_this$components$get","substitutionType","reactivate","ReactivatePlayer","REACTIVATE_PLAYER","back","loading","formats","format","isSelected","ChangeGameFormat","CHANGE_GAME_FORMAT","retrieveFormats","divisionClient","_inactivePlayers$leng","_inactivePlayers","inactiveCount","availablePlayers","sortOrder","f","meta","guard","allowIfAny","denyIfAny","ranking","unrankedPlayers","noGames","gameCount","disable","LinkingListItem","click","defineComponent","props","setup","GameDayGameList","composeCheer","composeSport","GameDayGameCountList","GameDayGames","loadDivision","setPlayers","division","UnrankedWarning","isloadingPlayerHistory","recognitionHistory","removeStar","saving","recognition","starClicked","selectedRecognitionId","longDescription","rows","isReadOnly","composing","canInput","MemoInput","event","haltInput","getEmptyDivisionGamePlayerInfo","isPlaying","playedQuarter1","playedQuarter2","playedQuarter3","playedQuarter4","foulCount","getEmptyCheerSquadRecognition","Recognition","localCrumbs","RECOGNITION","retreiveStars","retreivePlayerRecognitionHistory","setRecognitionForThisPlayerAndThisGame","configBreadcrumbForCheer","_this$playerRecogniti","_this$playerRecogniti2","star","teamRecognitionList","composeDisplayableFromCheer","composeDisplayableFromPlayer","gameOrAptId","saveCheer","savePlayer","composePlayer","_this$currentTeam$typ2","loadCheerHistory","loadPlayerHistory","currentGameID","enableRecognitions","CompleteGame","makeBreadcrumbs","loadGameRecognitions","GAMES_STAR_DIST","COMPLETE_GAME","GameRecognition","_active","gameRoute","gameDayRoutes","_gameRoute$meta$title","_gameRoute$meta","gamesGameDayRoute","gamesListRoute","gamesGameDay","_gamesGameDayRoute$me","_gamesGameDayRoute$me2","gamesStartDistributionRoute","gamesStarDistribution","_gamesStartDistributi","_gamesStartDistributi2","gameRecognitionRoute","startDistributionRoutes","gameRecognition","_gameRecognitionRoute","playerReactivateRoute","playerReactivate","_playerReactivateRout","formatRoute","_formatRoute$meta","Crumbs","CHEER_RESOURCES","Communication","participant","getEmptyLeaguePlayerInfoList","getEmptyLeaguePlayerInfo","typeGradeID","medicalNotes","generalNotes","registrationTransactionID","isImported","yearsExperience","adminNotes","pendingCoachLinkIndividualID","pendingCoachLinkFirstName","pendingCoachLinkLastName","amountExpectedToPay","amountPaid","isPlayerSizingComplete","registrationCompletionInformation","hasBrokenCarpoolLink","hasBrokenCoachLink","actualCoachLinkIndividualID","actualCoachLinkFirstName","actualCoachLinkLastName","actualCarpoolLinkIndividualID","actualCarpoolLinkFirstName","actualCarpoolLinkLastName","practiceNightExclusions","getEmptyLeaguePlayerInfoExt","empty","mmt","PlayerInformation","practices","scheduledPracticesCount","filteredPracticesCount","filteredPractices","practice","getEmptyDivisionTeamPracticeAppointmentInfo","practiceStart","practiceEnd","facilityID","getEmptyDivisionTeamPracticeAppointmentInfoList","time","dateInfo","month","day","DateCard","cardDate","dt","LabelInput","Practice","Toggle","PracticeList","scheduledPractices","sortPractices","utc","diff","getEmptyDivisionTeamInfo","typeColorID","currentPracticeNumber","currentGameOffenseFirst","overrideTypeGameFormatID","hideTeamPageRoster","hideCoachEmailOnTeamPage","hideCoachPhoneOnTeamPage","hideAssistantCoachEmailOnTeamPage","hideAssistantCoachPhoneOnTeamPage","hideScheduleOnTeamPage","hideHeadCoachLabel","typePracticePlanID","typeLeagueScoringID","showStandingsTeamPage","getEmptyDivisionTeamInfoList","PlayerTeamInformation","contact","getEmptyPlayerContactInfo","typeRelationshipID","isEmergencyContact","priority","getEmptyPlayerContactInfoList","phone","phoneNumber","fmtPhone","typePhoneID","emailID","emailAddress","typeEmailID","formatPhone","Contact","ContactList","currentLeagueID","currentUpwardLeagueID","historyLimit","includeCurrentLeague","includePastLeagues","endpointURI","_x$data","retrieveLeaguePlayerInfoExt","pageCrumbs","loadParticipant","loadTeam","setBreadcrumbs","participantClient","PlayerTeam","getEmptyDivisionTeamInfoExt","ext","specialEvents","divisionTeamInfo","initialRankingPerformed","rankable","_b","drag","reorder","dragOptions","Roster","animation","group","disabled","ghostClass","playersChanged","draggable","scheduledGamesCount","filteredGamesCount","filteredGames","getEmptyDivisionGameInfo","homeTeamID","awayTeamID","gameStart","gameEnd","serverGameStart","serverGameEnd","volunteers","homeTeamName","awayTeamName","getEmptyDivisionGameInfoList","isHomeGame","hexColor","isColorWhite","JerseyIcon","Game","homeTeamId","_this$currentProgram$2","getEmptyCheerSquadGameAppointmentInfo","getEmptyCheerSquadGameAppointmentInfoList","getEmptyDisplableGame","referees","GameList","composeCheerGames","composeSportGames","gameList","sortedGames","isAfterNextDay","nextDay","setHours","Team","programId","_this$team$games$0$di","PlayerList","filteredSpecialEventCount","filteredSpecialEvents","specialEvent","eventStart","eventLabel","eventInfo","eventTime","getEmptyLeagueSpecialEventInfo","eventID","eventEnd","eventDescription","divisionAccountNumber","facilityAccountNumber","street1","street2","subdivision1","subdivision2","postalCode","_e$eventDescription","_e$eventEnd","startJS","endJS","retval","_e$facilityName","startOf","isSame","evt","SpecialEvent","TeamManage","_this$currentTeam$spe","_this$currentTeam","SpecialEventList","AddressType","RolesEnum","getEmptyVolunteerSearchInfo","individualCreateDate","firstAddress","firstEmailAddress","getEmptyVolunteerSearchArgs","roleID","retrieveByRoles","roleIds","retrieveVolunteer","Coach","loadCoach","volunteerClient","InstallOption","DefaultError","AlertStatusEnum","onSubmit","arguments","allowSubmit","successIsVisible","bootstrapClass","dflt","past","warning","info","TeamAlertOptions","danger","ForgotPassword","isExpiredPassword","isLockedAccount","rsr","authClient","taxonomies","taxonomyTitles","taxonomyTitle","downloadResource","shortDescriptionContent","postResourceUsage","resourceItem","Accordion","accordionData","currentGuid","Provide","isExpanded","AccordionItem","Inject","SlideUpDown","Resources","marketingResources","fetchResources","fetchMarketingResources","fetchVolunteerResources","resourcesResult","currentLeagueAbbreviation","expirationDate","devoTrackFilter","devotionTrack","volunteerTaxonomies","leagueDirectoryTaxonomy","marketingTaxonomies","abbreviation","resourceID","resourceTitle","userID","pageAccessedFrom","location","href","resourceUsageClient","mediaUrl","resourceUrl","childComponent","childRoute","weekNumber","showCompleted","CouchResourceList","_this$$route$meta","resourceStore","cat","CouchResourceCategoryList","categories","category","PracticePlans","loadResource","_this$currentRole$rol","autho","CoachResourceList","CoachResourceCategoryList","CoachResource","_resource$htmlCode","resourceId","htmlCode","level","ResourceList","CoachSkillsList","PracticeResrouces","titles","practiceRoutes","_f$meta","_r$meta","nextRoute","_r$meta2","_r$meta3","MinistryResrouces","ministryRoutes","hasResources","AnchorListItem","CheerAPIResources","CheerResourceList","gpProgramAbbreviation","cheerResourceStore","CheerResrouces","cheerResourcesRoutes","SelectResrouces","selectRoutes","localSearchTerms","filteredSet","columns","tableStriped","gridData","currentPage","pageSize","totalPages","displayData","row","allowRowSelection","updateSelections","template","getColumnComponent","customRender","field","showEditButton","editButtonClasses","editButtonInnerHtml","handleEditClicked","showDeleteButton","deleteButtonClasses","deleteButtonInnerHtml","handleDeleteClicked","showHeader","column","headerText","showDeleteButtonHeader","showEditButtonHeader","maxPageLinks","boundaryLinks","directionLinks","rowClass","handleRowSelected","inject","_data","$el","cursor","removeEventListener","computed","canSelectRows","selectedRows","it","selectedClass","customSelection","methods","source","srcElement","tagName","selectRow","SmartTable","SmartGridRow","VueSmartGrid","table","notifyRowClicked","SearchResultTypes","Search","searchableSet","width","VueLib","getRoute","searchResultType","loadData","filterData","mergeDataSets","searchItem","searchableTerm","searchableTeams","convertTeamsToSearchItems","searchableCoaches","convertIndividualToSearchItems","searchablePlayers","searchItems","individuals","individual","searchTermsChange","newVal","hasProgram","iconCssClass","ProgramOverview","defaultIcon","ProgramList","ProgramIcon","Programs","_this$leagueRole$some","_this$leagueRole","_this$accountRole$som","_this$accountRole","leagueRole","isSuperUser","accountRole","join","LeagueTypes","gsResource","documentContent","getEmptyGettingStartedResource","productGroupIDs","content","GettingStarted","FIRST_PRESBYTERIAN_NASHVILLE_OVERRIDES","replacements","documentIdMap","sportMap","_await$contentManagem","applyContentOverrides","router","matchingOverride","override","app","modifiedContent","_this$documentIdMap$g","_this$sportMap$get","_this$currentProgram$3","_this$documentIdMap$g2","nonSportDocumentId","sport","sportDocumentId","GameDay","goImpersonate","searchResults","line","city","searchButtonText","handleButtonInput","SearchInput","searchClick","allowBlankInput","ctx","watch","_x$name$match","_x$name","splitResult","match","_await$partnersClient","_results$value","partnersClient","_e$errorObject","Impersonate","PartnerSearchPanel","refereesGames","leagueGames","leagueVolunteers","ids","refereesIndividualID","_g$volunteers","volunteerIndividualID","_g$volunteers2","volunteer","GameReferee","showDaysUntilExpiration","verify","cancelVerification","localFullName","localEmail","canSave","redirect","verificationComplete","newEmail","cancel","useRouter","saveProfile","VerficationCode","isNewEmail","isNewFullName","_store$getters$authen","currentPassword","onNewPasswordsChange","confirmNewPassword","showConfirmPasswordError","saveIsDisabled","submitPasswordChange","updatePassword","success","useRoute","viewStates","EDITING","invalid","leagueSettingsLoading","attachment","contentMessagePreview","contactBuilder","contactBuilderLoading","loadContactBuilder","recipientMessagePreview","filterOptions","coachAndParentRecipientString","coachRecipients","parentRecipients","showPreview","onPreview","previewLoading","smsViaAPIRule","sendMessageLoading","smsViaLocalClientRule","coachOnlyRoleAccessRanking","copyToClipboard","loadingClipboardData","copyToClipboardClass","smsPhoneListForCoaches","smsPhoneListForCommissioners","CLIPBOARDING","clipboardCopied","backToEditing","PREVIEWING","sendMessageFromPreview","CONFIRMING","recipientCount","nextMessage","handleSubmit","args","isPhoneValid","re","extend","indexOf","submittedDate","validate","valid","beginDate","endDate","VeeValidateForm","observer","silent","ValidationObserver","InputlessStringValidator","emitChange","localMessagePreview","handleAttachmentChange","maxCharactersReached","charactersRemaining","remaining","denyThem","addToMessageBody","getEmptyAttachment","TeamPageWidget","gsm7bitChars","gsm7bitExChar","gsm7bitRegExp","RegExp","gsm7bitExRegExp","gsm7bitExOnlyRegExp","detectEncoding","GSM_7BIT","GSM_7BIT_EX","UTF16","countGsm7bitEx","char","messageLength","multiMessageLength","encoding","perMessage","fileName","fileSize","fileSizeFormatted","FileInput","ev","fileInput","files","fileSelector","parentComponent","focusEditor","openModal","editor","hideLinkMenu","commands","linkMenuIsActive","setLinkUrl","link","linkUrl","_k","keyCode","getMarkAttrs","bold","italic","underline","bullet_list","menuBubbleIsActive","showLinkMenu","heading","LetterList","Node","order","parseDOM","getAttrs","dom","hasAttribute","getAttribute","toDOM","node","schema","toggleList","nodes","list_item","inputRules","wrappingInputRule","childCount","mixins","EditorContent","EditorMenuBar","EditorMenuBubble","DivWrapper","editorElement","menuBubbleElement","menuBarElement","provider","editorAreaElement","_editorElement$value","linkInputElement","_menuBubbleElement$va","_editor$value","_props$value$length","_props$value","_editor$value2","getHTML","limit","setContent","_menuBubbleElement$va2","_menuBubbleElement$va3","_linkInputElement$val","command","onInit","validator","onUpdate","_editorAreaElement$va","_ref","textContent","isEmpty","_getHTML","html","onMounted","Editor","extensions","Bold","Italic","Underline","BulletList","ListItem","OrderedList","Heading","levels","Link","onUnmounted","_editor$value3","destroy","MessageContent","attachmentObject","reader","FileReader","onload","onFileLoad","readAsDataURL","Count","syncToLocalValue","HtmlEditor","allRecipients","recipientFilterChange","sendToParents","recipientTypes","ParentsGuardians","selectionGroups","playerPaymentStatusOptions","playerEvaluationStatusOptions","sendToCoaches","Coaches","coachAssignmentStatusOptions","coachApprovalStatusOptions","sendToReferees","Referees","sendToCommissioners","Commissioners","sendToOtherVolunteers","OtherVolunteers","additionalRecipientConfig","validation","setIndividualContactInfo","emitPreviewMessageChange","removeTrailingComma","SwitchSlot","onInternalValueChange","onValueChange","$$selectedVal","selected","_value","multiple","emitValue","itemClass","RadioGroupInput","MessageProgramSelector","currentOption","clear","getEmptyContactBuilder","divisionTeams","practiceNights","typeDayID","PlayerPaymentStatusOptions","PlayerEvaluationStatusOptions","CoachAssignmentStatusOptions","CoachApprovalStatusOptions","FilterByOptions","RecipientTypes","MessageRecipient","setDefaults","emails","additionalEmails","setSelectionGroup","isChecked","emitRefreshContactBuilder","resetCoachFilter","restParentFilters","setSelectedGroups","groupType","ToggleSlot","ProgramSelector","filterByOptions","filterOptionChanged","localFilterOptions","filterBy","onDivisionChange","teamDivisions","emitFilterOptionsChange","teamDivisionId","getSelectableTeams","onMultiselectChange","selectedTeams","getInitialFilterOptions","slotNames","slotName","showBorder","select","ButtonGroup","onSelectedValueChange","DayOfWeekSelect","tagPlaceholder","showPointer","emitInput","MultiSelectInput","valueChange","labelText","minLabel","maxLabel","allGradeTypes","internalValueMin","internalValueMax","_upwardTypesStore$upw","_upwardTypesStore$upw2","_upwardTypesStore$upw3","_upwardTypesStore$upw4","valueSortOrder","targetSortOrder","GradeDropdownSelect","ageByCutoff","selectedGrades","MessageFilters","initAllData","setDivisions","setTeamDivisionDefault","setGrades","newTeams","selection","clearFilters","MultiselectInput","GradeDropdownInput","summaryMessage","attachmentFileName","sanitizedMessage","send","sendingMessageInProgress","MessagePreview","msg","DOMPurify","ALLOWED_TAGS","plural","messageStore","playerName","keya","parentName","relationship","touchPoints","keyb","fmtContactPoint","touchPoint","Listing","ParentRecipientPicker","localValue","initialize","emailList","setSelected","playerClone","playerContacts","convertToContacts","convertToPlayerContact","convertToPlayerDetail","convertEmailToTouchPoint","convertPhoneToTouchPoint","_e$typeEmailID","_e$typePhoneID","phoneID","_b$touchPoints","_p$typeRelationshipID","emitSelectionChange","recipients","messageTypeChanged","CoachRecipientPicker","coachList","smsList","_c$emailAddresses","_c$phoneNumbers","mobiles","_c$touchPoints","copy","clipboard","writeText","phoneNumberString","ViewStates","EmailMessageImpl","Message","clipboardFull","copyToClipboardString","channel","retrievePrograms","loadLeagueSettings","_result$myLeagueInfo","programClient","_result$myLeagueInfo2","myLeagueInfo","_sportProgram$typePro","_cheerProgram$typePro","cheerProgram","_p$typeProgramID","sportProgram","_p$typeProgramID2","resetAll","isSMS","$denyIfAny","populateMessageObject","emptyAttachment","attachments","form","reportValidity","moveTo","formIsValid","postMessage","body","loadMessagePreview","commRecipients","messageObject","document","getElementById","scrollIntoView","mergeMessagePreview","teamIdArray","teamFilters","leagueSetting","_leagueSetting$emailD","_this$loggedInUserFul","_this$loggedInUserEma","useLeagueReplySetting","emailDisplayName","loggedInUserFullName","emailReplyTo","loggedInUserEmail","$currentRoleIsOneOf","typeProgramIDChanged","recipientsChanged","CopyRecipientsToClipboard","taxonomy","alertID","isPast","subTitle","visibility","alertInfo","onAlertSaved","getEmptyTeamPageAlertInfo","typeAlertMessageID","typeAlertTargetID","typeAlertPriorityID","startDate","expireDate","expireViewCount","registeredViewCount","userCanHide","userDidHide","getEmptyTeamPageAlertInfoList","alertUrl","teamsUrl","alert","alertId","showAlertStatus","alertOption","programOptions","setProgram","selectedDivision","divisionOptions","optionValue","setDivision","teamOptions","internalAlert","isClearing","isSaving","validationProviderName","disabledDates","displayCalendarTop","onIconClick","timeStringSplit","NaN","memoize","secs","getDateWithTime","hours","minutes","seconds","getMonth","DateInput","once","minDate","from","maxDate","datepicker","querySelectorAll","setTime","parts","Datepicker","convertToOldFashionDateTime","fullDate","y","TeamAlert","alertIds","programDivisions","_this$programTypeDesc","_this$alert$divisionN","_this$alert$teamName","blankProgramOption","blankDivisionOption","blankTeamOption","optionText","setAlertOption","currentAlertStatus","alertForm","upsertAlert","dealWithLocalTime","alertClient","newAlert","prog","shortDescription","_this$programTypeDesc2","_this$programTypeDesc3","_this$programs$map","_this$programs","progs","_this$programTypeDesc4","_this$currentTeam$div","_this$programDivision","_this$programDivision2","divs","_p$divisionName","_this$currentTeam$tea","_this$divisionTeams$m","_this$divisionTeams","_p$teamName","_p$upwardTeamID","nullNA","onProgramChanged","_this$selectedProgram2","_this$selectedProgram3","_this$selectedProgram4","allDivisions","_this$selectedProgram","onDivisionChanged","_this$selectedDivisio2","_this$selectedDivisio3","_this$selectedDivisio4","_this$selectedDivisio5","allTeams","_this$selectedProgram5","_this$selectedDivisio","onTeamChanged","_this$selectedTeam$op","_this$selectedTeam","_this$selectedTeam$op2","_this$selectedTeam2","divisionStore","TeamAlertList","alerts","fetchDivisions","fetchTeams","fetchAlerts","_await$alertClient$re","fetchAllDivisions","allAlertTaxonomies","createTaxonomy","coachAlertTaxonomies","_a$message$replace$re","_a$message","_a$message2","isFuture","formattedDate","addNew","Router","RouteMetaMixin","isPublic","base","routes","children","Profile","Password","Account","communicationRoutes","practiceResourcesRoutes","PracticeResources","ministryResourcesRoutes","MinistryResources","CheerResources","selectResourcesRoutes","SelectResources","RefereeSchedule","SWRefreshMixin","refreshing","registration","updateAvailable","serviceWorker","reload","detail","waiting","App","userHasBeenSeenThisTimePeriod","watchForActivity","onActivity","currentRoute","currentRouteMeta","errorCaptured","validationResult","addValidationErrorToStore","genericResult","addErrorToStore","onTimeChange","loadAppWideData","root","TheAuthWall","AuthorizationPlugin","errorRoute","addRouterGuards","authorizationInit","$options","rolesFunction","getPropFromSelfOrAcenstor","currentRoleFunction","$getRoles","$currentRole","$allowIfAll","$denyIfAll","beforeResolve","allowIfAll","denyIfAll","rank","functional","h","slots","rest","userRoles","mixin","beforeCreate","prop","permissionCheck","register","ready","updated","dispatchEvent","CustomEvent","registered","cached","updatefound","offline","getUserRoles","that","getCurrentRoles","getCurrentUserRole","getCurrentRole","currentRoleGetter","$store","applicationRoleGetter","accountRolesGetter","acctRoles","appRoles","allRoles","LogRocket","init","network","requestSanitizer","productionTip","$deferredPrompt","original","$mount"],"mappings":"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","file":"js/app.487678d4.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=style&index=0&id=00b70764&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeGameFormat.vue?vue&type=style&index=0&id=cf08e9b2&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameCountList.vue?vue&type=style&index=0&id=62925ea4&prod&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Impersonate.vue?vue&type=style&index=0&id=133a03d9&prod&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/star-orange.551710d9.png\";","var map = {\n\t\"./star-blank.png\": \"fb32\",\n\t\"./star-blue.png\": \"d068\",\n\t\"./star-gold.png\": \"b526\",\n\t\"./star-grey.png\": \"d085\",\n\t\"./star-orange.png\": \"1263\",\n\t\"./star-red.png\": \"388e\",\n\t\"./star-white.png\": \"1981\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1771\";","module.exports = __webpack_public_path__ + \"img/star-white.f38e961f.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameList.vue?vue&type=style&index=0&id=65fb100a&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=style&index=0&id=3d516a89&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageRecipient.vue?vue&type=style&index=0&id=39ff8fbc&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.vue?vue&type=style&index=0&id=ff736e3a&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSidebar.vue?vue&type=style&index=0&id=5dcf4c04&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Recognition.vue?vue&type=style&index=0&id=78087ed8&prod&scoped=true&lang=scss\"","module.exports = __webpack_public_path__ + \"img/star-red.1b2a0518.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=style&index=0&id=58e9167c&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=style&index=1&id=96bd918a&prod&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerSearchPanel.vue?vue&type=style&index=0&id=6e211b9e&prod&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagePreview.vue?vue&type=style&index=0&id=b86f0590&prod&lang=scss&scoped=true\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e493\",\n\t\"./fr-ch.js\": \"0e493\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840d\",\n\t\"./gl.js\": \"8840d\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StylableSelectInput.vue?vue&type=style&index=0&id=4596c48a&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartingSideToggle.vue?vue&type=style&index=0&id=4448db9a&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectStylable.vue?vue&type=style&index=0&id=699d30ae&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAuthWall.vue?vue&type=style&index=0&id=1d107e48&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayPlayer.vue?vue&type=style&index=0&id=6962e865&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Incrementor.vue?vue&type=style&index=0&id=8b5649b4&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnchorListItem.vue?vue&type=style&index=0&id=3a852b0e&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&id=5897b848&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=style&index=0&id=b5b57548&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileInput.vue?vue&type=style&index=0&id=aaec686c&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListPaging.vue?vue&type=style&index=0&id=afaab0ee&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=style&index=0&id=4021e8b6&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheErrorRenderer.vue?vue&type=style&index=0&id=018150ed&prod&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=style&index=0&id=96bd918a&prod&scoped=true&lang=css\"","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=197fd412&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueSmartGrid.vue?vue&type=style&index=0&id=f312fc92&prod&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JerseyIcon.vue?vue&type=style&index=0&id=adefd1b4&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerList.vue?vue&type=style&index=0&id=28e63136&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceList.vue?vue&type=style&index=0&id=0b541d0e&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAlertList.vue?vue&type=style&index=0&id=44dcf898&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamPageWidget.vue?vue&type=style&index=0&id=11c8e1b6&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackLink.vue?vue&type=style&index=0&id=7e46e628&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageProgramSelector.vue?vue&type=style&index=0&id=324563e0&prod&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrimaryHeading.vue?vue&type=style&index=0&id=2d6f0824&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextInput.vue?vue&type=style&index=0&id=36165718&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Listing.vue?vue&type=style&index=0&id=2db63ef6&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayLineup.vue?vue&type=style&index=0&id=71792678&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerList.vue?vue&type=style&index=0&id=4e49815a&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HtmlEditor2.vue?vue&type=style&index=0&id=6423a5a3&prod&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageStateToggle.vue?vue&type=style&index=0&id=d98c93ca&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceCategoryList.vue?vue&type=style&index=0&id=37099351&prod&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/star-gold.163eabdd.png\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResource.vue?vue&type=style&index=0&id=5e13a6da&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=style&index=0&id=3d0380e6&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageContent.vue?vue&type=style&index=0&id=5731959e&prod&lang=scss&scoped=true\"","import { GetterTree, MutationTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport { UpwardExceptionResult } from '@/models/UpwardExceptionResult'\nimport { UpwardVerificationDetails } from '@/models/UpwardVerificationDetails'\nimport {\n UpwardExceptionResultWithTimestamp,\n UpwardValidationDetailsWithTimestamp,\n} from '@/models/error_timestamp_types'\n\ninterface ErrorsState {\n errorItems: UpwardExceptionResultWithTimestamp[]\n validationItems: UpwardValidationDetailsWithTimestamp[]\n}\n\nconst errorsState: ErrorsState = {\n errorItems: [],\n validationItems: [],\n}\n\nexport enum getterNames {\n allErrors = 'allErrors',\n allValidationErrors = 'allValidationErrors',\n currentError = 'currentError',\n currentValidationError = 'currentValidationError',\n}\n\nconst getters: GetterTree = {\n [getterNames.allErrors]: (state) => state.errorItems,\n [getterNames.allValidationErrors]: (state) => state.validationItems,\n [getterNames.currentError]: (state) =>\n state.errorItems?.length ? state.errorItems[state.errorItems.length - 1] : null,\n [getterNames.currentValidationError]: (state) =>\n state.validationItems?.length ? state.validationItems[state.validationItems.length - 1] : null,\n}\n\n/**\n * Change strategy for if we keep history of errors\n * if false we still track errors vs validation problems but we\n * only hang on to the last validation error and last error\n */\nconst KEEP_ERROR_HISTORY_FEATURE = false\n\nexport enum mutationNames {\n addError = 'addError',\n clearCurrentError = 'clearCurrentError',\n clearAll = 'clearAll',\n addValidationError = 'addValidationError',\n clearCurrentValidationError = 'clearCurrentValidationError',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.addError](state, { item }: { item: UpwardExceptionResult }) {\n if (!KEEP_ERROR_HISTORY_FEATURE) {\n state.errorItems = []\n }\n state.errorItems.push({ error: item, timestamp: new Date() })\n },\n [mutationNames.clearCurrentError](state) {\n if (state.errorItems.length) {\n state.errorItems.pop()\n }\n },\n [mutationNames.addValidationError](state, { item }: { item: UpwardVerificationDetails }) {\n if (!KEEP_ERROR_HISTORY_FEATURE) {\n state.validationItems = []\n }\n state.validationItems.push({ error: item, timestamp: new Date() })\n },\n [mutationNames.clearCurrentValidationError](state) {\n if (state.validationItems.length) {\n state.validationItems.pop()\n }\n },\n [mutationNames.clearAll](state) {\n state.errorItems = []\n state.validationItems = []\n },\n}\n\nexport const namespace = 'errors'\n\nexport const errors = {\n namespaced: true as true,\n state: errorsState,\n getters,\n mutations,\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport { ActionsImpl } from 'direct-vuex'\n\nexport enum sidebarStatus {\n open = 'open',\n closed = 'closed',\n}\n\ninterface SidebarState {\n isOpen: boolean\n}\n\nconst sidebarState: SidebarState = {\n isOpen: false,\n}\n\nexport enum getterNames {\n isOpen = 'isOpen',\n}\n\nconst getters: GetterTree = {\n [getterNames.isOpen]: (state) => state.isOpen,\n}\n\nexport enum mutationNames {\n open = 'open',\n close = 'close',\n toggle = 'toggle',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.open](state) {\n state.isOpen = true\n },\n [mutationNames.close](state) {\n state.isOpen = false\n },\n [mutationNames.toggle](state) {\n state.isOpen = !state.isOpen\n },\n}\nconst actions: ActionTree & ActionsImpl = {}\n\nexport const namespace = 'sidebar'\n\nexport const sidebar = {\n namespaced: true as true,\n state: sidebarState,\n getters,\n actions,\n mutations,\n}\n","const keyPrefix = 'ld_portal_'\n\nconst getRaw = (key: string) => {\n const fullKey = getFullKey(key)\n return localStorage.getItem(fullKey)\n}\n\nconst getParsed = (key: string) => {\n const json = getRaw(key)\n\n if (json === null) {\n return null\n }\n\n return JSON.parse(json) as T | null\n}\n\nconst set = (key: string, value: string | object) => {\n const fullKey = getFullKey(key)\n\n if (typeof value === 'object') {\n value = JSON.stringify(value)\n }\n\n return localStorage.setItem(fullKey, value)\n}\n\nconst remove = (key: string) => {\n const fullKey = getFullKey(key)\n localStorage.removeItem(fullKey)\n}\n\nconst getFullKey = (key: string) => {\n return `${keyPrefix}${key}`\n}\n\nexport default {\n getRaw,\n getParsed,\n set,\n remove,\n}\n","import { Credentials } from '@/models/Credentials'\n\n/**\n * Returns the primary account number (really just indirect the logic for getting primary account number) or null if none\n * @param credentials\n *\n */\nfunction getPrimaryAccountFromCredentials(credentials: Credentials | null) {\n return credentials?.accountNumbers ? credentials.accountNumbers[0] : null\n}\n\n/**\n * Returns if the credentials are valid.\n * @param credentials\n */\nconst hasValidCredentials = (credentials: Credentials | null) => {\n return !!credentials\n}\n\n/**\n * Returns if the credentials are impersonating a user.\n * @param credentials\n * @return boolean\n */\nconst isImpersonating = (credentials: Credentials | null) => {\n return credentials && credentials.impersonatedAccount && credentials.impersonationActive\n}\n\nexport default { getPrimaryAccountFromCredentials, hasValidCredentials, isImpersonating }\n","import localStorageService from '@/services/localStorageService'\nimport jsonwebtoken, { JwtPayload } from 'jsonwebtoken'\nimport { AuthToken } from '@/models/Authorization/AuthToken'\nimport restService from '@/services/restService'\nimport { Credentials } from '@/models/Credentials'\nimport credentialsService from '@/services/credientialService'\n\nconst localStorageKey = 'auth-token'\nconst oldLocalStorageKey = 'old-auth-token'\n\n/**\n * Get stored auth token.\n */\nconst getAuthToken = () => {\n return localStorageService.getParsed(localStorageKey)\n}\n\n/**\n * Backup a token that is not already impersonating a user, otherwise no-op\n */\nconst backupToken = () => {\n const token = getAuthToken()\n if (token) {\n const credentials = getCredentialsFromToken(token)\n\n if (\n credentialsService.hasValidCredentials(credentials) &&\n !credentialsService.isImpersonating(credentials)\n ) {\n localStorageService.set(oldLocalStorageKey, token)\n }\n }\n}\n\nconst getCredentialsFromNewAuthToken = (authToken: AuthToken | null) => {\n if (authToken === null) {\n return null\n }\n\n const credentials = getCredentialsFromToken(authToken)\n\n if (credentials === null) {\n return null\n }\n\n restService.setToken(authToken.upwardJWToken)\n localStorageService.set(localStorageKey, authToken)\n return credentials\n}\n\nconst setHTTPHeaderAndLocalStorage = (authToken: AuthToken | null) => {\n if (!authToken) return null\n\n restService.setToken(authToken.upwardJWToken)\n localStorageService.set(localStorageKey, authToken)\n}\n\nconst getCredentialsFromStoredAuthToken = () => {\n const authToken = localStorageService.getParsed(localStorageKey)\n\n if (authToken !== null) {\n restService.setToken(authToken.upwardJWToken)\n return getCredentialsFromToken(authToken)\n }\n\n return null\n}\n\nconst clearStoredAuthToken = () => {\n localStorageService.remove(localStorageKey)\n restService.setToken(null)\n}\n\nconst getCsvFromPayload = (payload: any, propertyName: string) => {\n const raw = payload[propertyName]\n\n if (!raw || typeof raw !== 'string') {\n return null\n }\n\n return raw.split(',')\n}\n\nconst getTokenFromStorage = () => {\n return localStorageService.getParsed(localStorageKey) as AuthToken\n}\n\nconst retrieveOldToken = async () => {\n const oldtoken = localStorageService.getParsed(oldLocalStorageKey)\n if (oldtoken) {\n return oldtoken\n }\n return getAuthToken()\n}\n\nconst getCredentialsFromToken = (authToken: AuthToken | null) => {\n if (authToken === null || authToken.upwardJWToken === null) {\n return null\n }\n\n const decodedJwt = jsonwebtoken.decode(authToken.upwardJWToken, { complete: true })\n\n if (decodedJwt === null) {\n return null\n } else if (typeof decodedJwt === 'string') {\n return null\n }\n\n interface JwtPayload {\n 'upw-account': string\n 'upw-rootaccount': string\n 'upw-rolesbyleague': string\n 'upw-aname': string\n 'upw-activities': string\n 'upw-name': string\n 'upw-userdata': string\n 'upw-pwdexp': string\n 'upw-totp': string\n exp: number\n 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier': string\n }\n const jwtPayload = decodedJwt.payload as JwtPayload\n\n const claimAccountNumber = jwtPayload['upw-account']\n const rootAccountNumber = jwtPayload['upw-rootaccount']\n const rolesByLeague = jwtPayload['upw-rolesbyleague']\n\n /*\n Impersonation is active if account numbers above do not match\n */\n let rootIsImpersonating = false\n if (claimAccountNumber !== rootAccountNumber) {\n rootIsImpersonating = true\n }\n\n const accountNumbers: string[] = []\n\n if (claimAccountNumber) {\n accountNumbers.push(claimAccountNumber)\n }\n\n if (authToken.accountNumbers && authToken.accountNumbers.length) {\n accountNumbers.push(...authToken.accountNumbers)\n }\n\n return {\n accountNumbers,\n accountName: jwtPayload['upw-aname'],\n activities: jwtPayload['upw-activities'],\n fullName: jwtPayload['upw-name'],\n impersonatedAccount: rootIsImpersonating ? claimAccountNumber : '',\n impersonationActive: rootIsImpersonating,\n email: jwtPayload['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier'],\n userData: jwtPayload['upw-userdata'],\n roles: getCsvFromPayload(decodedJwt.payload, 'upw-roles'),\n expiration: new Date(jwtPayload.exp * 1000),\n daysUntilPasswordExpiration: Number(jwtPayload['upw-pwdexp']) || null,\n leagueRoles: JSON.parse(rolesByLeague),\n totpInfo: jwtPayload['upw-totp'],\n } as Credentials\n}\n\nexport default {\n getCredentialsFromNewAuthToken,\n getTokenFromStorage,\n getCredentialsFromStoredAuthToken,\n clearStoredAuthToken,\n backupToken,\n setHTTPHeaderAndLocalStorage,\n retrieveOldToken,\n}\n","import axios, { AxiosResponse, AxiosRequestConfig, AxiosInstance } from 'axios'\nimport { UpwardExceptionResult } from '@/models/UpwardExceptionResult'\nimport jwtService from '@/services/jwtService'\nimport { UpwardVerificationDetails } from '@/models/UpwardVerificationDetails'\nimport store from '@/store'\n\nconst conf: AxiosRequestConfig = {\n baseURL: process.env.VUE_APP_ROOT_API,\n}\n\nconst axiosInstance: AxiosInstance = axios.create(conf)\n\naxiosInstance.interceptors.request.use(\n (config) => {\n const token = jwtService.getTokenFromStorage()\n const url = config.url ? config.url : ''\n if (token) {\n if (\n url.endsWith('authorization/login/') ||\n url.endsWith('authorization/login') ||\n url.endsWith('authorization/passwordreset/') ||\n url.endsWith('authorization/passwordreset')\n ) {\n return config\n }\n config.headers.Authorization = 'Bearer ' + token.upwardJWToken\n }\n return config\n },\n (error) => {\n Promise.reject(error)\n }\n)\n\nconst setToken = (token: string | null | undefined) => {\n axios.defaults.headers.common = {\n Authorization: token ? `Bearer ${token}` : null,\n }\n}\n\n// Refresh token. Might use this after final authentication pattern is finished\n// axiosInstance.interceptors.response.use(\n// response => {\n// return response\n// },\n// error => {\n// const originalRequest = error.config\n// if (error.response.status === 401 && !originalRequest._retry) {\n// originalRequest._retry = true\n// return authorizationClient.getOprGuestToken().then(res => {\n// if (res.status === 200) {\n// systemTokenService.setOprGuestToken(res.data)\n// axiosInstance.defaults.headers.Authorization = 'Bearer ' + systemTokenService.getOprGuestToken()\n// return axiosInstance(originalRequest)\n// }\n// })\n// }\n// return Promise.reject(error)\n// }\n// )\n\n// send back to login if token is expired\naxiosInstance.interceptors.response.use(\n (response) => {\n return response\n },\n (error) => {\n if (error.response.status === 401 && store.getters.authentication.isTokenExpired) {\n console.log('expired token detected... clearing old token to force re-login')\n store.commit.authentication.reset()\n }\n return Promise.reject(error)\n }\n)\n\nexport interface RestServiceResult {\n errorObject: UpwardExceptionResult | null\n isSuccess: boolean\n status: number\n data: T | null\n}\n\nexport function convertToRestServiceResult(instance: any) {\n const implementsInterface =\n typeof instance === 'object' &&\n instance !== null &&\n 'errorObject' in instance &&\n 'isSuccess' in instance &&\n 'data' in instance\n\n return implementsInterface ? (instance as RestServiceResult) : null\n}\n\nexport function convertToVerificationDetails(instance: any) {\n const implementsInterface =\n typeof instance === 'object' &&\n instance !== null &&\n 'errorObject' in instance &&\n 'isSuccess' in instance &&\n 'data' in instance &&\n instance.data &&\n 'brokenRules' in instance.data &&\n 'model' in instance.data\n\n return implementsInterface ? (instance as RestServiceResult) : null\n}\n\nconst isUpwardInvalidResult = (instance: any) => {\n return (\n typeof instance === 'object' &&\n instance !== null &&\n 'id' in instance &&\n 'message' in instance &&\n 'errors' in instance\n )\n}\n\nconst getRestServiceResult = (axiosResponse: AxiosResponse) => {\n const isSuccessCode = Math.floor(axiosResponse.status / 100) === 2\n const isErrorObject = isUpwardInvalidResult(axiosResponse.data)\n\n return {\n data: isErrorObject ? null : (axiosResponse.data as T),\n isSuccess: isSuccessCode && !isErrorObject,\n status: axiosResponse.status,\n errorObject: isErrorObject\n ? axiosResponse.data\n : ({\n message: axiosResponse.statusText || 'Unknown error',\n } as UpwardExceptionResult),\n } as RestServiceResult\n}\n\nconst wrapApiCall = async (callback: () => Promise>) => {\n return await callback()\n .then((result) => {\n return getRestServiceResult(result)\n })\n .catch((error) => {\n if (error.response) {\n throw getRestServiceResult(error.response)\n }\n\n throw {\n data: null,\n isSuccess: false,\n status: 0,\n errorObject: {\n message: error,\n errors: null,\n id: null,\n },\n } as RestServiceResult\n })\n}\n\nconst post = async (\n resource: string,\n data: object | null,\n config: AxiosRequestConfig | undefined = undefined\n) => {\n return wrapApiCall(() => axiosInstance.post(resource, data, config))\n}\n\nconst put = async (resource: string, data: object | null) => {\n return wrapApiCall(() => axiosInstance.put(resource, data))\n}\n\nconst get = async (resource: string, params = {}) => {\n return wrapApiCall(() => axiosInstance.get(resource, { params }))\n}\n\nconst deleteMethod = async (resource: string) => {\n return wrapApiCall(() => axiosInstance.delete(resource))\n}\n\nconst patch = async (resource: string, data: object | null) => {\n return wrapApiCall(() => axiosInstance.patch(resource, data))\n}\n\nexport default {\n get,\n post,\n put,\n delete: deleteMethod,\n patch,\n setToken,\n}\n","import restService from '@/services/restService'\nimport { LeagueListItem } from '@/models/Program/LeagueListItem'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\n\nconst baseUrl = 'programs/'\n\nconst retrieveAll = async (includeHistorical = false) => {\n const results = await restService.get(`${baseUrl}`, { includeHistorical })\n if (results.isSuccess) {\n return results.data\n } else {\n Promise.reject('Error in programsClient.retrieveAll')\n }\n}\n\nconst retrieveAllCondensed = async () => {\n const results = await restService.get(`${baseUrl}condensedSportsApp`)\n if (results.isSuccess) {\n return results.data\n } else {\n Promise.reject('Error in programsClient.retrieveAllCondensed')\n }\n}\n\nconst retrieve = async (leagueID: string) => {\n const results = await restService.get(`${baseUrl}${leagueID}`)\n if (results.isSuccess) {\n return results.data\n } else {\n Promise.reject('Error in programsClient.retrieve')\n }\n}\n\nexport default {\n retrieveAll,\n retrieve,\n retrieveAllCondensed,\n}\n","import programsClient from '@/clients/programsClient'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport moment from 'moment'\nimport { defineGetters, defineActions, defineMutations } from 'direct-vuex'\nimport store from '@/store'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\ninterface ProgramState {\n programs: LeagueInfoCondensed[]\n currentProgram: LeagueInfoCondensed | null\n usersPrograms: LeagueInfoCondensed[]\n}\n\nconst programState: ProgramState = {\n programs: [] as LeagueInfoCondensed[],\n currentProgram: null,\n usersPrograms: [] as LeagueInfoCondensed[],\n}\n\nexport enum getterNames {\n programs = 'programs',\n currentProgramId = 'currentProgramId',\n currentProgram = 'currentProgram',\n}\n\nconst getterTree = defineGetters()({\n [getterNames.programs]: (state) => state.programs,\n [getterNames.currentProgramId]: (state) => state.currentProgram?.upwardLeagueID,\n [getterNames.currentProgram]: (state) => state.currentProgram,\n})\n\nexport enum mutationNames {\n setPrograms = 'setPrograms',\n setCurrentProgram = 'setCurrentProgram',\n reset = 'reset',\n}\n\nconst mutations = defineMutations()({\n [mutationNames.setPrograms](state, { programs }: { programs: LeagueInfoCondensed[] }) {\n state.programs = programs\n },\n [mutationNames.setCurrentProgram](state, { upwId }: { upwId: string }) {\n const program = state.programs.find((x: LeagueInfoCondensed) => x.upwardLeagueID === upwId)\n const leagueTypeID = program?.typeLeagueID ?? ''\n const leagueType = store.getters.upwardTypes.leagueTypes.find(\n (t: UpwardLeagueTypeID) => t.upwardTypeID === leagueTypeID\n )\n store.commit.upwardTypes.setCurrentLeagueType({ item: leagueType })\n state.currentProgram = program || null\n if (program) {\n store.commit.upwardTypes.updateGradeDescriptionsFromLeague({ descriptions: program.gradeDescriptions })\n }\n },\n [mutationNames.reset](state) {\n state.programs = []\n state.currentProgram = null\n },\n})\n\nexport enum actionNames {\n fetchPrograms = 'fetchPrograms',\n}\n\nconst actions = defineActions({\n async [actionNames.fetchPrograms]({ commit }, { isCoach }: { isCoach: boolean }): Promise {\n let result = await programsClient.retrieveAllCondensed()\n if (isCoach) {\n result = result?.filter((p) => moment().subtract(14, 'd').isBefore(p.seasonEndDate))\n }\n\n if (result) {\n commit(mutationNames.setPrograms, { programs: result })\n return true\n }\n\n return false\n },\n})\n\nexport const namespace = 'programs'\n\nexport const programs = {\n namespaced: true as true,\n state: programState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import restService from '@/services/restService'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\n\nconst baseUrl = 'teams/'\n\n/**\n * Grab a list of teams for a given league and division.\n * @param leagueId\n * @param divisionId\n * @param typeProgramId\n */\nconst retrieveTeamList = async ({\n upwId,\n programTypeId,\n}: {\n upwId: string | null\n programTypeId: string | null\n}): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}/${programTypeId}`)\n if (result.isSuccess) {\n return result.data ?? []\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retrieveLeagueTeamList = async ({ upwId }: { upwId: string | null }): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}`)\n if (result.isSuccess) {\n return result.data ?? []\n } else {\n return Promise.reject(result.errorObject)\n }\n}\nconst retrieveCoachTeamList = async (): Promise => {\n const result = await restService.get(`${baseUrl}myCoachedTeams`)\n if (result.isSuccess) {\n return result.data ?? []\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retrieveTeam = async (\n upwId: string,\n programTypeId: string,\n divisionId: number,\n teamId: number\n): Promise => {\n const result = await restService.get(\n `${baseUrl}${upwId}/${programTypeId}/${divisionId}/${teamId}/sportsAppInfo`\n )\n if (result.isSuccess && result.data) {\n return result.data\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retrieveByIndividualId = async (\n upwardId: string,\n individualId: string\n): Promise => {\n const result = await restService.get(`${baseUrl}${upwardId}`, {\n individualID: individualId,\n })\n if (result.isSuccess && result.data) {\n return result.data\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst updateTeam = async (upwardLeagueId: string, team: DivisionTeam) => {\n const results = await restService.put(\n `${baseUrl}${upwardLeagueId}/${team.typeProgramID}/${team.divisionID}/${team.teamID}`,\n team\n )\n if (!results.isSuccess) {\n throw new Error('Error in team.updateTeam')\n }\n}\n\nconst rerankPlayers = async (team: DivisionTeamInfoExt): Promise => {\n const result = await restService.post(\n `${baseUrl}${team.upwardLeagueID}/${team.typeProgramID}/${team.divisionID}/${team.teamID}/rerankPlayers`,\n null\n )\n\n if (result.isSuccess) {\n return true\n } else {\n return false\n }\n}\n\nconst setCurrentGame = async (team: DivisionTeamInfoExt, gameId: number): Promise => {\n const result = await restService.post(\n `${baseUrl}${team.upwardLeagueID}/${team.typeProgramID}/${team.divisionID}/${team.teamID}/setCurrentGame/${gameId}`,\n null\n )\n\n if (result.isSuccess) {\n return true\n } else {\n return false\n }\n}\n\nconst saveRosterChanges = async (upwardLeagueId: string, team: DivisionTeam) => {\n const results = await restService.post(\n `${baseUrl}${upwardLeagueId}/${team.typeProgramID}/${team.divisionID}/${team.teamID}/rosterChanges`,\n team.players\n )\n if (!results.isSuccess) {\n throw new Error('Error in team.saveRosterChanges')\n }\n}\n\nexport default {\n retrieveTeamList,\n retrieveLeagueTeamList,\n retrieveCoachTeamList,\n retrieveByIndividualId,\n retrieveTeam,\n updateTeam,\n rerankPlayers,\n setCurrentGame,\n saveRosterChanges,\n}\n","import { cloneDeep } from 'lodash'\nimport { TeamCoachInfo } from 'src/GeneratedTypes/ListInfo/TeamCoachInfo'\nimport { TeamCoach } from 'src/GeneratedTypes/TeamCoach'\nimport { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\nimport { TeamPlayer } from 'src/GeneratedTypes/TeamPlayer'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { DraftException } from 'src/GeneratedTypes/DraftException'\nimport { DivisionTeamPracticeAppointment } from 'src/GeneratedTypes/DivisionTeamPracticeAppointment'\nimport { DivisionTeamPracticeAppointmentInfo } from 'src/GeneratedTypes//ListInfo/DivisionTeamPracticeAppointmentInfo'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\n\nexport function toDivisionTeam(teamIn: DivisionTeamInfoExt): DivisionTeam {\n const clone = cloneDeep(teamIn) as any\n delete clone.leagueDirectorPartnerID\n delete clone.divisionName\n delete clone.teamPageUrl\n delete clone.coachCount\n delete clone.playerCount\n delete clone.headCoachName\n delete clone.games\n delete clone.partnerName\n delete clone.divisionContact\n delete clone.games\n delete clone.appointments\n delete clone.divisionGenderGradeRange\n clone.coaches = toTeamCoach(clone.coaches)\n clone.players = toTeamPlayer(clone.players)\n clone.appointments = toDivisionTeamPracticeAppointment(clone.appointments)\n return clone as DivisionTeam\n}\n\nexport function toTeamCoach(coaches: TeamCoachInfo[]): TeamCoach[] | null {\n if (!coaches) return null\n const clone = cloneDeep(coaches)\n return clone.map((coach: TeamCoachInfo) => {\n return {\n coachIndividualID: coach.individualID,\n headCoach: coach.headCoach,\n }\n })\n}\n\nexport function toTeamPlayer(players: TeamPlayerInfo[]): TeamPlayer[] | null {\n if (!players) return null\n const clone = cloneDeep(players)\n return clone.map((player: TeamPlayerInfo) => {\n return {\n playerIndividualID: player.individualID,\n typePositionID: player.typePositionID,\n typeTapeDownReasonID: player.typeTapeDownReasonID,\n manualAssignment: player.manualAssignment,\n draftNumber: player.draftNumber,\n rosterRanking: player.rosterRanking,\n coachAssignedJerseyNumber: player.coachAssignedJerseyNumber,\n draftExceptions: player.draftExceptions as DraftException[],\n }\n })\n}\n\nexport function toDivisionTeamPracticeAppointment(\n apts: DivisionTeamPracticeAppointmentInfo[]\n): DivisionTeamPracticeAppointment | null {\n if (!apts) return null\n const clone = cloneDeep(apts) as any\n delete clone.leagueID\n delete clone.typeProgramID\n delete clone.divisionID\n delete clone.teamID\n delete clone.facilityName\n return clone as DivisionTeamPracticeAppointment\n}\n","import teamClient from '@/clients/teamClient'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { toDivisionTeam } from '@/common/typeConverstions/team'\nimport { defineGetters, defineActions, defineMutations } from 'direct-vuex'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport store from '@/store'\n\ninterface TeamState {\n teams: DivisionTeamInfo[]\n currentTeam: DivisionTeamInfoExt | null\n teamsForCurrentUser: DivisionTeamInfoExt[]\n}\n\nconst initState = (): TeamState => {\n return {\n teams: [] as DivisionTeamInfo[],\n currentTeam: null,\n teamsForCurrentUser: [] as DivisionTeamInfoExt[],\n }\n}\n\nconst programState = initState()\n\nexport enum getterNames {\n teams = 'teams',\n currentTeam = 'currentTeam',\n currentTeamNumberOfSegments = 'currentTeamNumberOfSegments',\n teamsForCurrentUser = 'teamsForCurrentUser',\n currentTeamPlayers = 'currentTeamPlayers',\n hasScheduledGames = 'hasScheduledGames',\n hasScheduledAppointments = 'hasScheduledAppointments',\n}\n\nconst getterTree = defineGetters()({\n [getterNames.teams]: (state) => state.teams,\n [getterNames.currentTeam]: (state) => state.currentTeam,\n [getterNames.currentTeamNumberOfSegments]: (state) => {\n if (state.currentTeam) {\n if (\n state.currentTeam.overrideNumberOfSegments != null &&\n state.currentTeam.overrideNumberOfSegments > 0\n ) {\n return state.currentTeam.overrideNumberOfSegments\n }\n const typeID: UpwardProgramTypeID = store.getters.upwardTypes.programTypes.find(\n (x: UpwardProgramTypeID) => x.upwardTypeID == state.currentTeam!.typeProgramID\n )\n return typeID?.numberOfSegments ?? 0\n } else {\n return 0 //don't think we should ever get here\n }\n },\n [getterNames.teamsForCurrentUser]: (state) => state.teamsForCurrentUser,\n [getterNames.currentTeamPlayers]: (state) => state.currentTeam?.players,\n [getterNames.hasScheduledGames]: (state) => {\n if (!state.currentTeam?.games) return false\n return state.currentTeam?.games.length > 0\n },\n [getterNames.hasScheduledAppointments]: (state) => {\n if (!state.currentTeam?.appointments) return false\n return state.currentTeam?.appointments.length > 0\n },\n})\n\nexport enum mutationNames {\n setTeams = 'setTeams',\n setCurrentTeam = 'setCurrentTeam',\n setCurrentTeamPlayers = 'setCurrentTeamPlayers',\n setTeamsForCurrentUser = 'setTeamsForCurrentUser',\n reset = 'reset',\n}\n\nconst mutations = defineMutations()({\n [mutationNames.setTeams](state, { teams }: { teams: DivisionTeamInfo[] }) {\n state.teams = teams\n },\n [mutationNames.setCurrentTeam](state, { team }: { team: DivisionTeamInfoExt | null }) {\n state.currentTeam = team\n },\n [mutationNames.setTeamsForCurrentUser](state, { teams }: { teams: DivisionTeamInfoExt[] }) {\n state.teamsForCurrentUser = teams\n },\n [mutationNames.setCurrentTeamPlayers](state, { players }: { players: TeamPlayerInfo[] }) {\n if (!state.currentTeam) return\n state.currentTeam.players = players\n },\n [mutationNames.reset](state) {\n Object.assign(state, initState())\n },\n})\n\nexport enum actionNames {\n fetchAndSetCurrentTeam = 'fetchAndSetCurrentTeam',\n saveCurrentTeam = 'saveCurrentTeam',\n fetchTeamsByProgram = 'fetchTeamsByProgram',\n fetchLeagueTeams = 'fetchLeagueTeams',\n fetchTeamsForACoach = 'fetchTeamsForACoach',\n saveRosterChanges = 'saveRosterChanges',\n}\n\nconst actions = defineActions({\n async [actionNames.fetchTeamsByProgram](\n { commit, getters },\n {\n upwId,\n programTypeId,\n force = false,\n }: { upwId: string | null; programTypeId: string | null; force: boolean }\n ): Promise {\n if (getters[getterNames.teamsForCurrentUser].length && !force) return false\n const result = await teamClient.retrieveTeamList({ upwId, programTypeId })\n\n if (result) {\n commit(mutationNames.setTeamsForCurrentUser, { teams: result })\n return true\n }\n\n return false\n },\n\n async [actionNames.fetchLeagueTeams](\n { commit, getters },\n { upwId, force = false }: { upwId: string | null; programTypeId: string | null; force: boolean }\n ): Promise {\n if (getters[getterNames.teamsForCurrentUser].length && !force) return false\n const result = await teamClient.retrieveLeagueTeamList({ upwId })\n\n if (result) {\n commit(mutationNames.setTeamsForCurrentUser, { teams: result })\n return true\n }\n\n return false\n },\n\n async [actionNames.fetchTeamsForACoach](\n { commit, getters },\n { force = false }: { force: boolean }\n ): Promise {\n if (getters[getterNames.teamsForCurrentUser].length && !force) return false\n\n const result = await teamClient.retrieveCoachTeamList()\n\n if (result) {\n commit(mutationNames.setTeamsForCurrentUser, { teams: result })\n return true\n }\n return false\n },\n\n async [actionNames.fetchAndSetCurrentTeam](\n { commit },\n {\n upwId,\n programTypeId,\n divisionId,\n teamId,\n }: { upwId: string; programTypeId: string; divisionId: number; teamId: number }\n ): Promise {\n const result = await teamClient.retrieveTeam(upwId, programTypeId, divisionId, teamId)\n\n if (result) {\n commit(mutationNames.setCurrentTeam, { team: result })\n return true\n }\n\n return false\n },\n\n async [actionNames.saveCurrentTeam]({ state }): Promise {\n if (!state.currentTeam) throw Error('Cannot saveCurrentTeam. CurrentTeam is not set in the store')\n if (!state.currentTeam.upwardLeagueID) throw Error('Cannot saveCurrentTeam. No upwardTypeId')\n await teamClient.updateTeam(state.currentTeam.upwardLeagueID, toDivisionTeam(state.currentTeam))\n },\n\n async [actionNames.saveRosterChanges]({ state }): Promise {\n if (!state.currentTeam) throw Error('Cannot save roster changes. CurrentTeam is not set in the store')\n if (!state.currentTeam.upwardLeagueID) throw Error('Cannot save roster changes. No upwardTypeId')\n await teamClient.saveRosterChanges(state.currentTeam.upwardLeagueID, toDivisionTeam(state.currentTeam))\n },\n})\n\nexport const namespace = 'teams'\n\nexport const teams = {\n namespaced: true as true,\n state: programState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import restService from '@/services/restService'\nimport { AccountInfo } from '@/GeneratedTypes/ListInfo/AccountInfo'\n\nconst baseUrl = 'partners/'\n\nexport interface PartnerSearchResultsType {\n /*** name of church hyphenated with location ***/\n name: string\n accountNumber: number\n // ... other stuff returned, but don't need it yet\n}\n\n/**\n * Searches the list of partners by a prefix term.\n * @param term\n */\nconst searchPartners = async (term: string) => {\n const x = await restService.post(`partners/search`, {\n searchFilter: term,\n useStartsWith: true,\n })\n if (x.isSuccess) {\n return x.data\n }\n\n throw new Error('A problem occurred searching partners.')\n}\n\nconst retreivePartnerInfo = async (accountId: string): Promise => {\n const result = await restService.get(`${baseUrl}${accountId}/info`)\n return result.data\n}\n\nconst retreivePartners = async (accountNumber: string[]): Promise => {\n const result = await restService.post(`${baseUrl}`, accountNumber)\n return result.data\n}\n\nexport default {\n retreivePartnerInfo,\n retreivePartners,\n searchPartners,\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport partnerClient from '@/clients/partnerClient'\nimport { AccountInfo } from '@/GeneratedTypes/ListInfo/AccountInfo'\nimport { ActionsImpl } from 'direct-vuex'\n\ninterface PartnerState {\n partners: AccountInfo[]\n currentPartner: AccountInfo | null\n}\n\nconst partnerState: PartnerState = {\n partners: [],\n currentPartner: null,\n}\n\nexport enum getterNames {\n partners = 'partners',\n currentPartner = 'currentPartner',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.partners]: (state) => state.partners,\n [getterNames.currentPartner]: (state) => state.currentPartner,\n}\n\nexport enum mutationNames {\n setPartners = 'setPartners',\n setCurrentPartner = 'setCurrentPartner',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setPartners](state, { partners }: { partners: AccountInfo[] }) {\n state.partners = partners\n },\n [mutationNames.setCurrentPartner](state, { partner }: { partner: AccountInfo }) {\n state.currentPartner = partner\n },\n}\n\nexport enum actionNames {\n fetchPartners = 'fetchPartners',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.fetchPartners](\n { commit },\n { accountNumbers }: { accountNumbers: string[] }\n ): Promise {\n const result = await partnerClient.retreivePartners(accountNumbers)\n\n if (result) {\n commit(mutationNames.setPartners, { partners: result })\n return true\n }\n\n return false\n },\n}\n\nexport const namespace = 'partners'\n\nexport const partners = {\n namespaced: true as true,\n state: partnerState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import restService from '@/services/restService'\nimport { EmailSMSAccount } from '@/GeneratedTypes/Communication/EmailSMSAccount'\nimport { EmailSMSLeagueSetting } from '@/GeneratedTypes/Communication/EmailSMSLeagueSetting'\nimport { EmailSMSLeagueMessageInfo } from '@/GeneratedTypes/Communication/EmailSMSLeagueMessage'\nimport { EmailMessage } from '@/GeneratedTypes/Communication/EmailMessage'\nimport { SMSMessage } from '@/GeneratedTypes/Communication/SMSMessage'\nimport { ContactBuilder } from '@/models/Communication/ContactBuilder'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\n\nconst baseUrl = 'communications/'\n\nenum MessageTypes {\n Email,\n Sms,\n}\n\nenum PreviewMessageTypes {\n Email = 'email',\n Sms = 'sms',\n}\n\nconst retrieveProviderInfo = async (upwID: string, accountNumber: string) => {\n const results = await restService.get(\n `${baseUrl}management/providerInfo/${accountNumber}/${upwID}`\n )\n\n if (results.isSuccess) {\n return results.data\n } else {\n throw new Error('Error in communicationsClient.retrieveProviderInfo')\n }\n}\n\nconst retrieveMessagePreview = async (preview: PreviewMessage) => {\n const results = await restService.post(`${baseUrl}messagepreview`, preview)\n\n if (!results.isSuccess) {\n throw new Error(`Error in retrieveMessagePreview`)\n }\n\n return results.data\n}\n\nconst retrieveLeagueSettings = async (upwID: string, account: string) => {\n const providerInfo = await retrieveProviderInfo(upwID, account)\n if (providerInfo) {\n const results = await restService.get(\n `${baseUrl}management/leagueSettings/${providerInfo.emailSmsAccountID}/${upwID}`\n )\n if (results.isSuccess) {\n return results.data\n } else {\n throw new Error('Error in communicationsClient.retrieveLeagueSettings')\n }\n } else {\n throw new Error('Cannot retreive providerInfo in communicationClient.retrieveLeagueSettings')\n }\n}\n\nconst updateLeagueSettings = async (setting: EmailSMSLeagueSetting) => {\n const results = await restService.put(`${baseUrl}management/leagueSettings`, setting)\n if (!results.isSuccess) {\n throw new Error('Error in communicationsClient.updateLeagueSettings')\n }\n}\n\nconst retrieveMessages = async (\n upwID: string,\n emailSMSAccountID: number,\n messageType: MessageTypes,\n showArchived = false\n) => {\n const messages = messageType == MessageTypes.Email ? 'emailmessages' : 'smsmessages'\n\n const results = await restService.get(\n `${baseUrl}${messages}/${emailSMSAccountID}/${upwID}?excludeArchive=${!showArchived}`\n )\n\n if (!results.isSuccess) {\n throw new Error('Error in communicationsClient.retrieveEmailMessages')\n }\n\n return results.data\n}\n\nconst retrieveMessage = async (emailSmsMessageID: number, messageType: MessageTypes) => {\n const messages = messageType == MessageTypes.Email ? 'emailmessages' : 'smsmessages'\n\n const results = await restService.get(\n `${baseUrl}${messages}/${emailSmsMessageID}`\n )\n\n if (!results.isSuccess) {\n throw new Error('Error in communicationsClient.retrieveEmailMessages')\n }\n\n return results.data\n}\n\nconst sendEmailMessage = async (message: EmailMessage) => {\n // REMOVE\n const results = await restService.post(`${baseUrl}sendemail`, message)\n\n if (!results.isSuccess) {\n throw new Error(`Error sending email message`)\n }\n\n return results.data\n}\n\nconst sendSMSMessage = async (message: SMSMessage) => {\n // REMOVE\n const results = await restService.post(`${baseUrl}sendsms`, message)\n\n if (!results.isSuccess) {\n throw new Error(`Error sending sms message`)\n }\n\n return results.data\n}\n\nconst sendMessage = async (message: EmailMessage, type: string) => {\n const results = await restService.post(`${baseUrl}${type}`, message)\n\n if (!results.isSuccess) {\n throw new Error(`Error sending message`)\n }\n\n return results.data\n}\n\nconst getContactBuilder = async (\n upwID: string,\n accountNumber: string,\n playerPaymentStatus = '',\n playerEvalStatus = '',\n coachTeamStatus = '',\n programTypeID = '',\n coachApprovalStatus = '',\n headCoachOnly = false\n) => {\n const results = await restService.get(\n `${baseUrl}contactbuilder/${accountNumber}/${upwID}/${programTypeID}`,\n {\n playerPaymentStatus,\n playerEvalStatus,\n coachTeamStatus,\n approvalStatus: coachApprovalStatus,\n headCoachOnly,\n }\n )\n\n if (!results.isSuccess) {\n throw new Error('Error retrieving contact builder: communicationsClient getContactBuilder')\n }\n\n return results.data\n}\n\nexport default {\n MessageTypes,\n PreviewMessageTypes,\n retrieveProviderInfo,\n retrieveLeagueSettings,\n updateLeagueSettings,\n retrieveMessages,\n retrieveMessage,\n sendEmailMessage,\n sendMessage,\n sendSMSMessage,\n getContactBuilder,\n retrieveMessagePreview,\n}\n","import { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport { EmailSMSLeagueMessageInfo } from '@/GeneratedTypes/Communication/EmailSMSLeagueMessage'\n\nexport function getEmptyPreviewMessage(): PreviewMessage {\n return {\n accountNumber: '',\n upwardLeagueID: '',\n selectedGroups: [],\n teams: [],\n individualContactInfo: [],\n practiceNight: null,\n startGrade: null,\n endGrade: null,\n communicationType: '',\n displayName: '',\n replyTo: '',\n emailSubject: '',\n messageBody: '',\n to: [],\n toDelimited: '',\n paymentStatus: '',\n evalStatus: '',\n coachTeamStatus: '',\n typeProgramID: 'ALL',\n headCoachOnly: false,\n approvalStatus: '',\n }\n}\n\nexport interface MessageData {\n recipientTokens: string[]\n individualRecipients: string[]\n recipientCount: number\n subject: string\n attachment: string\n messageBody: string\n sentDate: Date | null\n messageType: string\n}\n\nexport function getEmptyMessageData(): MessageData {\n return {\n recipientTokens: [],\n individualRecipients: [],\n recipientCount: 0,\n subject: '',\n attachment: '',\n messageBody: '',\n sentDate: null,\n messageType: '',\n }\n}\nexport function toMessageDataFromEmailSMSLeagueMessageInfo(message: EmailSMSLeagueMessageInfo | null) {\n const messageData = getEmptyMessageData()\n if (!message) return messageData\n messageData.individualRecipients = message.recipients ? message.recipients : []\n messageData.recipientCount = message.recipients ? message.recipients.length : 0\n messageData.subject = message.emailSubject ? message.emailSubject : ''\n messageData.messageBody = message.messageBody ? message.messageBody : ''\n messageData.sentDate = message.createDateLocal\n messageData.messageType = message.messageType ? message.messageType : ''\n\n if (message.emailAttachments && message.emailAttachments.length > 0) {\n messageData.attachment = message.emailAttachments[0].name || ''\n }\n return messageData\n}\n\nexport function toMessageDataFromPreviewMessage(message: PreviewMessage | null) {\n const messageData = getEmptyMessageData()\n if (!message) return messageData\n messageData.recipientTokens = message.selectedGroups\n messageData.individualRecipients = message.to\n messageData.recipientCount = message.to.length\n messageData.subject = message.emailSubject || ''\n messageData.messageBody = message.messageBody\n messageData.sentDate = null\n messageData.messageType = ''\n return messageData\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport communicationsClient from '@/clients/communicationsClient'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport { getEmptyPreviewMessage } from '@/modelHelpers/PreviewMessage'\nimport { ActionsImpl } from 'direct-vuex'\n\ninterface MessageState {\n previewMessage: PreviewMessage\n}\n\nconst MessageState: MessageState = {\n previewMessage: getEmptyPreviewMessage(),\n}\n\nexport enum mutationNames {\n setPreviewMessage = 'setPreviewMessage',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setPreviewMessage](state, { previewMessage }: { previewMessage: PreviewMessage }) {\n state.previewMessage = previewMessage\n },\n}\n\nexport enum getterNames {\n previewMessage = 'previewMessage',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.previewMessage]: (state) => state.previewMessage,\n}\n\nexport enum actionNames {\n retrievePreviewMessage = 'retrievePreviewMessage',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.retrievePreviewMessage](\n { commit },\n { previewMessage }: { previewMessage: PreviewMessage }\n ): Promise {\n const result = await communicationsClient.retrieveMessagePreview(previewMessage)\n if (result) {\n commit(mutationNames.setPreviewMessage, { previewMessage: result })\n }\n\n return result\n },\n}\n\nexport const namespace = 'message'\n\nexport const message = {\n namespaced: true as true,\n state: MessageState,\n getters: getterTree,\n mutations,\n actions,\n}\n","import { UpwardExceptionResult } from '@/models/UpwardExceptionResult'\n\nexport class GeneralError extends Error {\n public name = 'General Error'\n public innerException: Error | UpwardExceptionResult | null = null\n constructor(message: string, exception?: Error | UpwardExceptionResult | null) {\n super(message)\n this.message = message\n this.innerException = exception ?? null\n }\n}\n","import { GeneralError } from '@/common/GeneralError'\n\nexport class LoginException extends GeneralError {\n name = 'General Login Exception'\n}\n","import { LoginException } from '@/common/Authentication/LoginException'\n\nexport class LockedAccountException extends LoginException {\n name = 'Locked account'\n}\n","import restService from '@/services/restService'\nimport { RestServiceResult } from '@/services/restService'\nimport { AuthToken } from '@/models/Authorization/AuthToken'\nimport { Credentials } from '@/models/Authorization/Credentials'\nimport { RequiredString } from '@/models/RequiredString'\nimport { AxiosRequestConfig } from 'axios'\nimport jwtService from '@/services/jwtService'\nimport { ProfilePayload } from '@/models/Authorization/ProfilePayload'\nimport { LockedAccountException } from '@/common/Authentication/LockedAccountException'\nimport { GeneralError } from '@/common/GeneralError'\n\nconst baseUrl = 'authorization/'\nconst appId = 'Streamline'\n\nclass AuthClientException extends GeneralError {\n name = 'Auth API Exception'\n}\n\nexport interface ImpersonationPayload {\n userName?: string\n accountNumber: string\n}\n\nconst login = async (username: string, password: string, accountNumber = '') => {\n const credentials = {\n username,\n password,\n appID: appId,\n accountNumber: accountNumber,\n newPassword: null,\n } as Credentials\n\n return await restService.post(`${baseUrl}login/`, credentials)\n}\n\nconst refreshToken = async () => {\n return await restService.post(`${baseUrl}tokenrefresh/`, null)\n}\n\nconst impersonate = async ({ userName, accountNumber }: ImpersonationPayload) => {\n if (!userName && !accountNumber) {\n throw new Error('When impersonating an account or username must be present.')\n }\n\n const payload = {\n username: userName ? userName : 'default',\n password: 'default',\n appID: 'default',\n accountNumber: accountNumber,\n }\n\n const r = await restService.post(`${baseUrl}impersonate`, payload)\n if (r.isSuccess) {\n return r.data\n }\n\n throw new Error(`Invalid impersonation attempt ${r.errorObject?.message}`)\n}\n\nconst passwordChange = async (username: string, password: string, newPassword: string) => {\n const credentials = {\n username,\n password,\n appID: appId,\n accountNumber: '',\n newPassword,\n } as Credentials\n\n return await restService.post(`${baseUrl}passwordchange/`, credentials)\n}\n\nconst getSystemToken = async () => {\n jwtService.clearStoredAuthToken()\n return await restService.get(`${baseUrl}systemtoken/`)\n}\n\nconst getPasswordResetLink = async (username: string) => {\n const data = {\n value: username,\n } as RequiredString\n\n const systemToken = await getSystemToken()\n return await restService.post(`${baseUrl}passwordreset`, data, {\n headers: {\n Authorization: `Bearer ${systemToken.data!.upwardJWToken}`,\n },\n } as AxiosRequestConfig)\n}\n\nconst resetPassword = async (code: string, newPassword: string) => {\n const data = {\n value: newPassword,\n } as RequiredString\n\n const systemToken = await getSystemToken()\n return await restService.post(`${baseUrl}passwordreset/${code}`, data, {\n headers: {\n Authorization: `Bearer ${systemToken.data!.upwardJWToken}`,\n },\n } as AxiosRequestConfig)\n}\n\nconst getFirstAccount = () => {\n const credentials = jwtService.getCredentialsFromStoredAuthToken()\n if (credentials && credentials.accountNumbers?.length) {\n return credentials.accountNumbers[0]\n } else {\n return ''\n }\n}\n\n/***\n * Token might come on the URL and this will turn it into a login credential.\n * @param token\n * @return AuthToken\n */\nconst tokenLogin = async (token: string) => {\n const payload = {\n userToken: token,\n }\n\n const t = await restService.post(`${baseUrl}loginbytoken`, payload)\n if (t.isSuccess) {\n return t.data\n }\n throw new Error('User or password combination not found.')\n}\n\nconst updateProfile = async (p: ProfilePayload) => {\n const data: ProfilePayload = {\n username: p.hasOwnProperty('username') ? p.username : '',\n appID: appId,\n }\n\n if (p.hasOwnProperty('newUsername') && p.newUsername) {\n data['newUsername'] = p.newUsername\n data['usernameChangeCode'] =\n p.hasOwnProperty('usernameChangeCode') && p.usernameChangeCode ? p.usernameChangeCode : ''\n }\n\n if ((p.hasOwnProperty('newFullName'), p.newFullName)) {\n data['newFullName'] = p.newFullName\n }\n\n return restService.post('authorization/updateprofile', data)\n}\n\nconst validateTOTP = async (totpCode: string) => {\n try {\n const t = await restService.post(`${baseUrl}validateTOTP/`, { value: totpCode })\n if (t.status == 200) {\n return t.data as AuthToken\n }\n } catch (e) {\n const t = e as RestServiceResult\n\n if (t.status === 401 && t.errorObject?.message == 'locked') {\n throw new LockedAccountException('This account is locked. Please reset your password')\n }\n }\n\n throw new AuthClientException('validating totp')\n}\n\nexport default {\n login,\n refreshToken,\n passwordChange,\n getPasswordResetLink,\n resetPassword,\n getFirstAccount,\n tokenLogin,\n impersonate,\n updateProfile,\n validateTOTP,\n}\n","import restService from '@/services/restService'\nimport { AuthUser } from '@/GeneratedTypes/Authorize/AuthUser'\n\nconst url = 'users/'\n\nconst retrieve = async (userName: string) => {\n const results = await restService.get(`${url}${userName}`)\n if (results.isSuccess) {\n return results.data\n } else {\n throw new Error('Error in user.retrieve')\n }\n}\n\nexport default {\n retrieve,\n}\n","import { LoginException } from '@/common/Authentication/LoginException'\n\nexport class TwoFactorAuthRequiredException extends LoginException {\n name = '2FA Required'\n accountToImpersonateAfterAuth = ''\n}\n","import { Commit } from 'vuex'\nimport { defineGetters, defineActions, defineMutations } from 'direct-vuex'\nimport jwtService from '@/services/jwtService'\nimport { Credentials } from '@/models/Credentials'\nimport authorizationClient, { ImpersonationPayload } from '@/clients/authorizationClient'\nimport userClient from '@/clients/userClient'\nimport { AuthToken } from '@/models/Authorization/AuthToken'\nimport { RestServiceResult } from '@/services/restService'\nimport { LockedAccountException } from '@/common/Authentication/LockedAccountException'\nimport { TwoFactorAuthRequiredException } from '@/common/Authentication/TwoFactorAuthRequiredException'\nimport { AuthUser } from '@/GeneratedTypes/Authorize/AuthUser'\nimport { ProfilePayload } from '@/models/Authorization/ProfilePayload'\nimport dayjs from 'dayjs'\ninterface AuthState extends Credentials {\n timeSet: Date | null\n userProfile: AuthUser | null\n isMultiAccountUser: boolean | null\n}\n\nconst authState: AuthState = {\n accountNumbers: [],\n email: null,\n fullName: null,\n expiration: null,\n timeSet: null,\n accountName: null,\n activities: null,\n roles: null,\n userData: '',\n impersonatedAccount: '',\n impersonationActive: false,\n daysUntilPasswordExpiration: null,\n leagueRoles: [],\n userProfile: null,\n isMultiAccountUser: null,\n totpInfo: 'GOOD',\n}\n\nexport enum getterNames {\n isAuthenticated = 'isAuthenticated',\n fullName = 'fullName',\n accountName = 'accountName',\n firstAccountNumber = 'firstAccountNumber',\n email = 'email',\n refreshTime = 'refreshTime',\n daysUntilPasswordExpiration = 'daysUntilPasswordExpiration',\n accountNumbers = 'accountNumbers',\n leagueRoles = 'leagueRoles',\n accountRoles = 'accountRoles',\n leagueRolesByProgram = 'leagueRolesByProgram',\n impersonationAccountNumber = 'impersonationAccountNumber',\n userData = 'userData',\n impersonationActive = 'impersonationActive',\n userProfile = 'userProfile',\n isMultiAccountUser = 'isMultiAccountUser',\n totpInfo = 'totpInfo',\n isTokenExpired = 'isTokenExpired',\n}\n\nconst getterTree = defineGetters()({\n [getterNames.isAuthenticated]: (state, getters, rootState) => {\n if (state.totpInfo != 'GOOD') return false\n\n if (state.timeSet === null || state.expiration === null) {\n return false\n }\n\n if (state.accountNumbers && state.accountNumbers.length > 1) {\n // if a user is connected to more that one account, they are not fully authenticated\n // until they have picked just one.\n return false\n }\n\n const now = rootState.now\n return now <= state.expiration\n },\n [getterNames.fullName]: (state) => {\n return state.fullName\n },\n [getterNames.userProfile]: (state) => {\n return state.userProfile\n },\n [getterNames.userData]: (state) => {\n return state.userData\n },\n [getterNames.accountNumbers]: (state) => {\n return state.accountNumbers\n },\n [getterNames.isMultiAccountUser]: (state) => {\n return state.isMultiAccountUser\n },\n [getterNames.firstAccountNumber]: (state) => {\n if (state.accountNumbers && state.accountNumbers.length > 0) {\n return state.accountNumbers[0]\n }\n return ''\n },\n [getterNames.email]: (state) => {\n if (state.email) {\n return state.email\n }\n return ''\n },\n [getterNames.accountName]: (state) => {\n return state.accountName\n },\n [getterNames.refreshTime]: (state) => {\n if (state.timeSet === null || state.expiration === null) {\n return null\n }\n\n const msPerMinute = 60 * 1000\n return new Date(state.expiration.getTime() - 10 * msPerMinute) //give us a 10 minute buffer in case there is a time difference to the server\n },\n [getterNames.daysUntilPasswordExpiration]: (state) => {\n return state.daysUntilPasswordExpiration\n },\n [getterNames.leagueRoles]: (state) => {\n return state.leagueRoles\n },\n [getterNames.accountRoles]: (state) => {\n return state.roles\n },\n [getterNames.leagueRolesByProgram]: (state) => (upwId: string) => {\n const roles = state.leagueRoles.filter((item) => item.UpwardLeagueID === upwId)\n if (roles) {\n return roles\n } else {\n return []\n }\n },\n [getterNames.impersonationAccountNumber]: (state) => {\n return state.impersonatedAccount\n },\n [getterNames.impersonationActive]: (state) => {\n return state.impersonationActive\n },\n totpInfo: (state) => {\n return state.totpInfo\n },\n [getterNames.isTokenExpired]: (state) => {\n return dayjs().isAfter(dayjs(state.expiration))\n },\n})\n\nexport enum mutationNames {\n setCurrentCredentials = 'setCurrentCredentials',\n reset = 'reset',\n setUserProfile = 'setUserProfile',\n setIsMultiAccountUser = 'setIsMultiAccountUser',\n}\n\nconst mutations = defineMutations()({\n [mutationNames.setCurrentCredentials](state, { credentials }: { credentials: Credentials }) {\n if (credentials) {\n Object.assign(state, { ...state, ...credentials })\n state.timeSet = new Date()\n }\n },\n\n [mutationNames.setUserProfile](state, { userProfile }: { userProfile: AuthUser }) {\n state.userProfile = userProfile\n },\n\n [mutationNames.setIsMultiAccountUser](\n state,\n { isMultiAccountUser }: { isMultiAccountUser: boolean | null }\n ) {\n state.isMultiAccountUser = isMultiAccountUser\n },\n\n [mutationNames.reset](state) {\n jwtService.clearStoredAuthToken()\n state.accountNumbers = []\n state.email = null\n state.fullName = null\n state.expiration = null\n state.timeSet = null\n state.accountName = null\n state.activities = null\n state.roles = null\n state.leagueRoles = []\n state.userData = ''\n state.isMultiAccountUser = null\n },\n})\n\nexport enum actionNames {\n login = 'login',\n refreshToken = 'refreshToken',\n tryLoadSavedToken = 'tryLoadSavedToken',\n passwordChange = 'passwordChange',\n loginByTokenWithImpersonate = 'loginByTokenWithImpersonate',\n impersonate = 'impersonate',\n unimpersonate = 'unimpersonate',\n fetchProfile = 'fetchProfile',\n updateProfile = 'updateProfile',\n validateTOTP = 'validateTOTP',\n}\n\nconst actions = defineActions({\n /**\n * User login.\n * Initially account number is passed in as null. If the user is affiliated\n * with many acccounts, the login is executed a second time passing in the\n * accountNumber the account the user selected\n */\n async [actionNames.login](\n { commit },\n { email, password, accountNumber }\n ): Promise> {\n const restResult = await authorizationClient.login(email, password, accountNumber)\n\n if (restResult.isSuccess) {\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult.data)\n const numberOfAccounts = restResult.data?.accountNumbers?.length ?? 0\n\n if (!accountNumber && numberOfAccounts > 1) {\n commit(mutationNames.setIsMultiAccountUser, { isMultiAccountUser: true })\n }\n commit(mutationNames.setCurrentCredentials, { credentials })\n }\n\n return restResult\n },\n\n async validateTOTP({ commit }, totpCode: string): Promise {\n const restResult = await authorizationClient.validateTOTP(totpCode)\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult)\n commit(mutationNames.setCurrentCredentials, { credentials })\n\n return restResult\n },\n\n async [actionNames.fetchProfile]({ commit }, { email }: { email: string }): Promise {\n const userProfile = await userClient.retrieve(email)\n if (userProfile) {\n commit(mutationNames.setUserProfile, { userProfile })\n }\n return userProfile\n },\n\n async [actionNames.loginByTokenWithImpersonate]({ commit }, { chit }: { chit: string }) {\n const [token, impersonatingAccountNumber] = chit.split('.')\n const who = { userName: undefined, accountNumber: impersonatingAccountNumber } as ImpersonationPayload\n let usersAuthToken = null\n\n // clear any persisted login information\n commit(mutationNames.reset)\n\n try {\n //login with the user's token\n usersAuthToken = await authorizationClient.tokenLogin(token)\n } catch (e) {\n // logout\n commit(mutationNames.reset)\n const err = e as RestServiceResult\n if (err.status === 401 && err.errorObject?.message) {\n throw new LockedAccountException('This account is locked. Please reset your password')\n }\n }\n\n const credentials = jwtService.getCredentialsFromNewAuthToken(usersAuthToken)\n if (credentials?.totpInfo != 'GOOD') {\n commit(mutationNames.setCurrentCredentials, { credentials })\n const ex = new TwoFactorAuthRequiredException('2FA Required for this login')\n ex.accountToImpersonateAfterAuth = impersonatingAccountNumber\n throw ex\n }\n\n if (usersAuthToken && impersonatingAccountNumber) {\n //Impersonate and persist credentials\n passthoughImpersonation(usersAuthToken, who, commit)\n } else if (usersAuthToken) {\n //persist credentials\n commit(mutationNames.setCurrentCredentials, { credentials })\n }\n },\n\n async [actionNames.passwordChange]({ commit, state }, { password, newPassword }): Promise {\n const email = state.email\n\n if (!email) {\n return false\n }\n\n const restResult = await authorizationClient.passwordChange(email, password, newPassword)\n\n if (restResult.isSuccess) {\n commit(mutationNames.reset)\n return true\n }\n return false\n },\n\n async [actionNames.refreshToken]({ commit }): Promise {\n const restResult = await authorizationClient.refreshToken()\n\n if (restResult.isSuccess) {\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult.data)\n commit(mutationNames.setCurrentCredentials, { credentials })\n return true\n }\n\n return false\n },\n async [actionNames.tryLoadSavedToken]({ commit }): Promise {\n const credentials = jwtService.getCredentialsFromStoredAuthToken()\n\n if (credentials) {\n commit(mutationNames.setCurrentCredentials, { credentials })\n return true\n }\n\n return false\n },\n\n async [actionNames.impersonate]({ commit }, who: { userName?: string; accountNumber: string }) {\n const restResult = await authorizationClient.impersonate(who)\n jwtService.backupToken()\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult)\n commit(mutationNames.setCurrentCredentials, { credentials })\n },\n\n async [actionNames.unimpersonate]({ commit }) {\n const restResult = await jwtService.retrieveOldToken()\n if (restResult) {\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult)\n\n commit(mutationNames.setCurrentCredentials, { credentials })\n }\n },\n async [actionNames.updateProfile](\n { commit, state },\n { payload }: { payload: ProfilePayload }\n ): Promise<{ incompleteToken: boolean }> {\n payload.username = state.email\n\n if (!payload.username) {\n throw new Error('Missing username')\n }\n\n const restResult = await authorizationClient.updateProfile(payload)\n\n if (restResult.isSuccess) {\n const credentials = jwtService.getCredentialsFromNewAuthToken(restResult.data)\n const hasMultipleAccounts = (restResult.data?.accountNumbers?.length ?? 0) > 1\n if (hasMultipleAccounts) {\n return { incompleteToken: true }\n } else {\n commit(mutationNames.setCurrentCredentials, { credentials })\n return { incompleteToken: false }\n }\n }\n throw new Error('Update Profile Failed')\n },\n})\n\nconst passthoughImpersonation = async (\n usersAuthToken: AuthToken,\n who: ImpersonationPayload,\n commit: Commit\n) => {\n jwtService.setHTTPHeaderAndLocalStorage(usersAuthToken)\n\n //Attempt to impersonate. If the user's permissions are insufficient to impersonate, this will fail.\n try {\n const impersonatedAuthToken = await authorizationClient.impersonate(who)\n if (impersonatedAuthToken) {\n const credentials = jwtService.getCredentialsFromNewAuthToken(impersonatedAuthToken)\n commit(mutationNames.setCurrentCredentials, { credentials })\n }\n } catch (e) {\n // logout\n commit(mutationNames.reset)\n }\n}\n\nexport const namespace = 'authentication'\n\nexport const authentication = {\n namespaced: true as true,\n state: authState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\nimport { defineGetters, defineActions, defineMutations } from 'direct-vuex'\n\ninterface AuthorizationState {\n currentRole: RoleUnion | null\n applicationRoles: string[] //Roles assigned to a user based on data retrieve by this application\n}\n\nconst initState = (): AuthorizationState => {\n return {\n currentRole: null,\n applicationRoles: [] as string[],\n }\n}\nconst authorizationState = initState()\n\nexport enum getterNames {\n currentRole = 'currentRole',\n applicationRoles = 'applicationRoles',\n}\n\nconst getterTree = defineGetters()({\n [getterNames.currentRole]: (state): RoleUnion | null => {\n return state.currentRole\n },\n [getterNames.applicationRoles]: (state): string[] => {\n return state.applicationRoles\n },\n})\n\nexport enum mutationNames {\n setCurrentRole = 'setCurrentRole',\n addApplicationRole = 'addApplicationRole',\n removeApplicationRole = 'removeApplicationRole',\n resetApplicationRoles = 'resetApplicationRoles',\n reset = 'reset',\n}\n\nconst mutations = defineMutations()({\n [mutationNames.setCurrentRole](state, { currentLeagueRole }: { currentLeagueRole: RoleUnion | null }) {\n state.currentRole = currentLeagueRole\n },\n [mutationNames.reset](state) {\n Object.assign(state, initState())\n },\n [mutationNames.resetApplicationRoles](state) {\n state.applicationRoles = [] as string[]\n },\n [mutationNames.addApplicationRole](state, { role }: { role: ApplicationRoles }) {\n const roles = [...state.applicationRoles]\n roles.push(role)\n\n state.applicationRoles = [...new Set(roles)]\n },\n [mutationNames.removeApplicationRole](state, { role }: { role: ApplicationRoles }) {\n const roles = state.applicationRoles?.filter((r) => r != role)\n state.applicationRoles = roles ? roles : state.applicationRoles\n },\n})\n\nexport enum actionNames {}\n\nconst actions = defineActions({})\n\nexport const namespace = 'authorization'\n\nexport const authorization = {\n namespaced: true as true,\n state: authorizationState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import { GetterTree, MutationTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\n\nexport interface SearchState {\n searchTerms: string\n}\n\nconst searchState: SearchState = {\n searchTerms: '',\n}\n\nexport enum getterNames {\n searchTerms = 'searchTerms',\n}\n\nconst getters: GetterTree = {\n [getterNames.searchTerms]: (state) => state.searchTerms,\n}\n\nexport enum mutationNames {\n setSearchTerms = 'setSearchTerms',\n reset = 'reset',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setSearchTerms](state, { searchTerms }: { searchTerms: string }) {\n state.searchTerms = searchTerms\n },\n [mutationNames.reset](state) {\n state.searchTerms = ''\n },\n}\n\nexport const namespace = 'search'\n\nexport const search = {\n namespaced: true as true,\n state: searchState,\n getters,\n mutations,\n}\n","import restService from '@/services/restService'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { UpwardPlayerRecognitionTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardPlayerRecognitionTypeID'\nimport { UpwardPositionTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardPositionTypeID'\nimport { UpwardGradeTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardGradeTypeID'\n\nconst baseUrl = 'upwardTypes/'\n\nconst retrieveLeagueTypes = async () => {\n return await restService.get(`${baseUrl}league`)\n}\n\nconst retrieveProgramTypes = async () => {\n return await restService.get(`${baseUrl}program`)\n}\n\nconst retrieveRecognitionTypes = async (program: string) => {\n return await restService.get(`${baseUrl}playerRecognitionTypes/${program}`)\n}\n\nconst retrievePositionTypes = async () => {\n return await restService.get(`${baseUrl}positions`)\n}\n\nconst retrieveGradeTypes = async () => {\n return await restService.get(`${baseUrl}gradeTypes`)\n}\n\nexport default {\n retrieveLeagueTypes,\n retrieveProgramTypes,\n retrieveRecognitionTypes,\n retrievePositionTypes,\n retrieveGradeTypes,\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport upwardTypesClient from '@/clients/upwardTypesClient'\nimport { ActionsImpl } from 'direct-vuex'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { UpwardPlayerRecognitionTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardPlayerRecognitionTypeID'\nimport { UpwardPositionTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardPositionTypeID'\nimport { UpwardGradeTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardGradeTypeID'\nimport { LeagueTypeGradeInfo } from 'src/GeneratedTypes/ListInfo/LeagueTypeGradeInfo'\n\ninterface UpwardTypesState {\n leagueTypes: UpwardLeagueTypeID[]\n programTypes: UpwardProgramTypeID[]\n playerRecognitionTypes: UpwardPlayerRecognitionTypeID[]\n positionTypes: UpwardPositionTypeID[]\n currentLeagueType: UpwardLeagueTypeID | null\n currentProgramType: UpwardProgramTypeID | null\n gradeTypes: UpwardGradeTypeID[]\n}\n\nconst upwardTypesState: UpwardTypesState = {\n leagueTypes: [] as UpwardLeagueTypeID[],\n programTypes: [] as UpwardProgramTypeID[],\n playerRecognitionTypes: [] as UpwardPlayerRecognitionTypeID[],\n positionTypes: [] as UpwardPositionTypeID[],\n currentLeagueType: null,\n currentProgramType: null,\n gradeTypes: [] as UpwardGradeTypeID[],\n}\n\nexport enum getterNames {\n leagueTypes = 'leagueTypes',\n programTypes = 'programTypes',\n recognitionTypes = 'playerRecognitions',\n positionTypes = 'positionTypes',\n currentLeagueType = 'currentLeagueType',\n currentProgramType = 'currentProgramType',\n gradeTypes = 'gradeTypes',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.leagueTypes]: (state) => state.leagueTypes,\n [getterNames.programTypes]: (state) => state.programTypes,\n [getterNames.recognitionTypes]: (state) => state.playerRecognitionTypes,\n [getterNames.positionTypes]: (state) => state.positionTypes,\n [getterNames.currentLeagueType]: (state) => state.currentLeagueType,\n [getterNames.currentProgramType]: (state) => state.currentProgramType,\n [getterNames.gradeTypes]: (state) => state.gradeTypes,\n}\n\nexport enum mutationNames {\n setleagueTypes = 'setLeagueTypes',\n setProgramTypes = 'setProgramTypes',\n setRecognitionTypes = 'setRecognitionTypes',\n setPositionTypes = 'setPositionTypes',\n setCurrentLeagueType = 'setCurrentLeagueType',\n setCurrentProgramType = 'setCurrentProgramType',\n setGradeTypes = 'setGradeTypes',\n updateGradeDescriptionsFromLeague = 'updateGradeDescriptionsFromLeague',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setleagueTypes](state, { items }) {\n state.leagueTypes = items\n },\n [mutationNames.setProgramTypes](state, { items }) {\n state.programTypes = items\n },\n [mutationNames.setRecognitionTypes](state, { items }) {\n state.playerRecognitionTypes = items\n },\n [mutationNames.setPositionTypes](state, { items }) {\n state.positionTypes = items\n },\n [mutationNames.setCurrentLeagueType](state, { item }) {\n state.currentLeagueType = item\n },\n [mutationNames.setCurrentProgramType](state, { item }) {\n state.currentProgramType = item\n },\n [mutationNames.setGradeTypes](state, { items }) {\n state.gradeTypes = items\n },\n [mutationNames.updateGradeDescriptionsFromLeague](\n state,\n { descriptions }: { descriptions: LeagueTypeGradeInfo[] }\n ): void {\n const grades: UpwardGradeTypeID[] = state.gradeTypes\n if (grades.length == descriptions.length) {\n descriptions.forEach((x) => {\n const grade = grades.find((g) => g.upwardTypeID == x.upwardTypeID)\n if (grade) {\n grade.description = x.description\n grade.alternateDescription = x.alternateDescription\n } else {\n throw new Error('League/Grade Description mismatch')\n }\n })\n } else {\n throw new Error('League/Grade Description length mismatch')\n }\n },\n}\n\nexport enum actionNames {\n fetchLeagueTypes = 'fetchLeagueTypes',\n fetchProgramTypes = 'fetchProgramTypes',\n fetchRecognitionTypes = 'fetchRecognitionTypes',\n fetchPositionTypes = 'fetchPositionTypes',\n fetchGradeTypes = 'fetchGradeTypes',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.fetchLeagueTypes]({ commit, getters }, { force = false }): Promise {\n if (getters[getterNames.leagueTypes].length && !force) {\n return false\n }\n\n const result = await upwardTypesClient.retrieveLeagueTypes()\n\n if (result.isSuccess) {\n const items = result.data\n commit(mutationNames.setleagueTypes, { items })\n return true\n }\n\n return false\n },\n async [actionNames.fetchRecognitionTypes](\n { commit, getters },\n { program, force = false }: { program: string; force: boolean }\n ): Promise {\n if (getters[getterNames.recognitionTypes].length && !force) {\n return false\n }\n\n const result = await upwardTypesClient.retrieveRecognitionTypes(program)\n\n if (result.isSuccess) {\n const items = result.data\n commit(mutationNames.setRecognitionTypes, { items })\n return true\n }\n\n return false\n },\n\n async [actionNames.fetchProgramTypes]({ commit, getters }, { force = false }): Promise {\n if (getters[getterNames.programTypes].length && !force) {\n return false\n }\n\n const result = await upwardTypesClient.retrieveProgramTypes()\n\n if (result.isSuccess) {\n const items = result.data\n commit(mutationNames.setProgramTypes, { items })\n return true\n }\n\n return false\n },\n\n async [actionNames.fetchPositionTypes]({ commit, getters }, { force = false }): Promise {\n if (getters[getterNames.positionTypes].length && !force) {\n return false\n }\n\n const result = await upwardTypesClient.retrievePositionTypes()\n\n if (result.isSuccess) {\n const items = result.data\n commit(mutationNames.setPositionTypes, { items })\n return true\n }\n\n return false\n },\n async [actionNames.fetchGradeTypes]({ commit, getters }, { force = false }): Promise {\n if (getters[getterNames.gradeTypes].length && !force) {\n return false\n }\n\n const result = await upwardTypesClient.retrieveGradeTypes()\n\n if (result.isSuccess) {\n const items = result.data\n commit(mutationNames.setGradeTypes, { items })\n return true\n }\n\n return false\n },\n}\n\nexport const namespace = 'upwardTypes'\n\nexport const upwardTypes = {\n namespaced: true as true,\n state: upwardTypesState,\n getters: getterTree,\n actions,\n mutations,\n}\n","export const CoachAPIResources = new Map([\n ['Practice Plans', 'practiceplans'],\n ['Devotions', 'devotions'],\n ['Skills & Drills', 'skillsanddrills'],\n ['Rules', 'rules'],\n])\n","import restService from '@/services/restService'\nimport { Resource } from '@/models/Program/Resource'\nimport { LegalResource } from '@/models/Legal/LegalResource'\nimport { PageContentDocument } from '@/models/PageContent/PageContentDocument'\nimport { CoachAPIResources } from '@/common/CoachAPIResources'\nimport { MarketingResource } from '@/models/Resources/MarketingResource'\nimport { GettingStartedResource } from '@/models/Resources/GettingStartedResource'\n\nconst baseUrl = 'ContentManagement/'\n\nconst getVolunteerResources = async (programType: string, productYear: string, role: string) => {\n const results = await restService.get(`${baseUrl}volunteerresources`, {\n programType,\n productYear,\n role,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getVolunteerResources')\n }\n return results.data || []\n}\n\nconst getVolunteerResourcesByUPW = async (upw: string, typeProgramID: string, role: string) => {\n const results = await restService.get(`${baseUrl}volunteerresources/${upw}`, {\n typeProgramID,\n role,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getVolunteerResources')\n }\n return results.data || []\n}\n\nconst getCheerResources = async (type: string, productYear: string, programType: string) => {\n const results = await restService.get(`${baseUrl}cheerresources`, {\n type,\n productYear,\n programType,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getCheerResources')\n }\n return results.data || []\n}\n\nconst getCheerResourcesByUPW = async (upw: string, typeProgramID: string, type: string) => {\n const results = await restService.get(`${baseUrl}cheerresources/${upw}`, {\n typeProgramID,\n type,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getCheerResourcesByUPW')\n }\n return results.data || []\n}\n\nconst getCoachResources = async (\n resource: string,\n programType: string,\n productYear: string,\n role: string,\n ruleLevel: number | null,\n week: number | null,\n devoTrack: string\n) => {\n //ignore rulesLevel for 'Rule' resouces because the value is set to 0 in the db right now so nothing returns\n if (resource === CoachAPIResources.get('Rules')) ruleLevel = null\n const results = await restService.get(`${baseUrl}volunteerresources/${resource}`, {\n programType,\n productYear,\n role,\n ruleLevel,\n week: week ? week : undefined,\n devoTrack,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getCoachResources')\n }\n return results.data || []\n}\n\nconst getCoachResourcesByUPW = async (\n upw: string,\n typeProgramID: string,\n resource: string,\n role: string,\n ruleLevel: number | null,\n week: number | null\n) => {\n //ignore rulesLevel for 'Rule' resouces because the value is set to 0 in the db right now so nothing returns\n if (resource === CoachAPIResources.get('Rules')) ruleLevel = null\n const results = await restService.get(`${baseUrl}volunteerresources/${resource}/${upw}`, {\n typeProgramID,\n role,\n ruleLevel,\n week: week ? week : undefined,\n })\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getCoachResourcesByUPW')\n }\n return results.data || []\n}\n\nconst getLegalResource = async (documentID: string, version: number) => {\n const results = await restService.get(`${baseUrl}legalresource/${documentID}`, {\n version,\n })\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getLegalResource')\n }\n return results.data\n}\n\nconst getPageContentDocument = async (documentID: string) => {\n const result = await restService.get(`${baseUrl}pagecontent/${documentID}`)\n if (result.isSuccess) {\n return result.data\n } else {\n throw new Error('Error in contentManagementClient.getPageContentDocument')\n }\n}\n\nconst getMarketingResources = async (leagueTypeAbreviation: string) => {\n const result = await restService.get(`${baseUrl}volunteerResources/marketing`, {\n programType: leagueTypeAbreviation,\n })\n\n if (result.isSuccess) {\n return result.data\n } else {\n throw new Error('Error in contentManagementClient.getMarketingResources')\n }\n}\n\nconst getGettingStartedResource = async (upwardLeagueID: string, programType: string, role: string) => {\n const results = await restService.get(\n `${baseUrl}gettingStarted/${upwardLeagueID}`,\n {\n programType,\n role,\n }\n )\n\n if (!results.isSuccess) {\n throw new Error('Error in contentManagementClient.getGettingStartedREsource')\n }\n return results.data\n}\n\nexport default {\n getVolunteerResources,\n getLegalResource,\n getPageContentDocument,\n getCoachResources,\n getCheerResources,\n getMarketingResources,\n getGettingStartedResource,\n getCoachResourcesByUPW,\n getCheerResourcesByUPW,\n getVolunteerResourcesByUPW,\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport contentManagementClient from '@/clients/contentManagementClient'\nimport { ActionsImpl } from 'direct-vuex'\nimport { Resource } from '@/models/Program/Resource'\n\ninterface ResourceState {\n resources: Resource[] | null\n currentResourceType: string | null\n}\n\nconst initState = (): ResourceState => {\n return {\n resources: [] as Resource[],\n currentResourceType: null,\n }\n}\n\nconst resourceState = initState()\n\nexport enum getterNames {\n resources = 'resources',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.resources]: (state) => state.resources,\n}\n\nexport enum mutationNames {\n setResources = 'setResoruces',\n setCurrentResourceType = 'setCurrentResourceType',\n reset = 'reset',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setResources](state, { resources }: { resources: Resource[] | null }) {\n state.resources = resources\n },\n [mutationNames.setCurrentResourceType](state, { resource }: { resource: string | null }) {\n state.currentResourceType = resource\n },\n [mutationNames.reset](state) {\n Object.assign(state, initState())\n },\n}\n\nexport enum actionNames {\n fetchCoachResource = 'fetchCoachResource',\n fetchCoachResourceByUPW = 'fetchCoachResourceByUPW',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.fetchCoachResource](\n { commit },\n { resource, programType, productYear, role, ruleLevel, week, devoTrack }: FetchResource\n ): Promise {\n try {\n const result = await contentManagementClient.getCoachResources(\n resource,\n programType,\n productYear,\n role,\n ruleLevel,\n week,\n devoTrack\n )\n if (result) {\n commit(mutationNames.setResources, { resources: result })\n commit(mutationNames.setCurrentResourceType, { resource })\n return true\n }\n } catch (e) {\n commit(mutationNames.setResources, { resources: null })\n commit(mutationNames.setCurrentResourceType, { resource: null })\n throw e\n }\n\n return false\n },\n async [actionNames.fetchCoachResourceByUPW](\n { commit },\n { upw, typeProgramID, resource, role, ruleLevel, week }: FetchResourceByUPW\n ): Promise {\n try {\n const result = await contentManagementClient.getCoachResourcesByUPW(\n upw,\n typeProgramID,\n resource,\n role,\n ruleLevel,\n week\n )\n if (result) {\n commit(mutationNames.setResources, { resources: result })\n commit(mutationNames.setCurrentResourceType, { resource })\n return true\n }\n } catch (e) {\n commit(mutationNames.setResources, { resources: null })\n commit(mutationNames.setCurrentResourceType, { resource: null })\n throw e\n }\n\n return false\n },\n}\n\nexport const namespace = 'resources'\n\nexport const resources = {\n namespaced: true as true,\n state: resourceState,\n getters: getterTree,\n actions,\n mutations,\n}\n\nexport interface FetchResource {\n resource: string\n programType: string\n productYear: string\n role: string\n ruleLevel: number\n week: number | null\n devoTrack: string\n}\n\nexport interface FetchResourceByUPW {\n upw: string\n typeProgramID: string\n resource: string\n role: string\n ruleLevel: number\n week: number | null\n}\n","import { GetterTree, MutationTree, ActionTree } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport contentManagementClient from '@/clients/contentManagementClient'\nimport { ActionsImpl } from 'direct-vuex'\nimport { Resource } from '@/models/Program/Resource'\n\ninterface CheerResourceState {\n cheerResources: Resource[] | null\n currentResourceType: string | null\n}\n\nconst initState = (): CheerResourceState => {\n return {\n cheerResources: [] as Resource[],\n currentResourceType: null,\n }\n}\n\nconst cheerResourceState = initState()\n\nexport enum getterNames {\n cheerResources = 'cheerResources',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.cheerResources]: (state) => state.cheerResources,\n}\n\nexport enum mutationNames {\n setResources = 'setResoruces',\n setCurrentResourceType = 'setCurrentResourceType',\n reset = 'reset',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setResources](state, { resources }: { resources: Resource[] | null }) {\n state.cheerResources = resources\n },\n [mutationNames.setCurrentResourceType](state, { resource }: { resource: string | null }) {\n state.currentResourceType = resource\n },\n [mutationNames.reset](state) {\n Object.assign(state, initState())\n },\n}\n\nexport enum actionNames {\n fetchCoachResource = 'fetchCheerResource',\n fetchCheerResourceByUPW = 'fetchCheerResourceByUPW',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.fetchCoachResource](\n { commit },\n { type, productYear, programType }: FetchCheerResource\n ): Promise {\n try {\n const result = await contentManagementClient.getCheerResources(type, productYear, programType)\n if (result) {\n commit(mutationNames.setResources, { resources: result })\n commit(mutationNames.setCurrentResourceType, { type })\n return true\n }\n } catch (e) {\n commit(mutationNames.setResources, { resources: null })\n commit(mutationNames.setCurrentResourceType, { resource: null })\n throw e\n }\n\n return false\n },\n async [actionNames.fetchCheerResourceByUPW](\n { commit },\n { upw, typeProgramID, type }: FetchCheerResourceByUPW\n ): Promise {\n try {\n const result = await contentManagementClient.getCheerResourcesByUPW(upw, typeProgramID, type)\n if (result) {\n commit(mutationNames.setResources, { resources: result })\n commit(mutationNames.setCurrentResourceType, { type })\n return true\n }\n } catch (e) {\n commit(mutationNames.setResources, { resources: null })\n commit(mutationNames.setCurrentResourceType, { resource: null })\n throw e\n }\n\n return false\n },\n}\n\nexport const namespace = 'cheerResources'\n\nexport const cheerResources = {\n namespaced: true as true,\n state: cheerResourceState,\n getters: getterTree,\n actions,\n mutations,\n}\n\nexport interface FetchCheerResource {\n type: string\n productYear: string\n programType: string\n}\n\nexport interface FetchCheerResourceByUPW {\n upw: string\n typeProgramID: string\n type: string\n}\n","/* There is a requirment to store and manage game lineup information offline because\n * connectivity in gyms can be very poor. There are no lineup API endpoints, so service\n * workers for offline functionality is not a solution at this time.\n *\n * This module makes no API calls. It uses **vuex-persist** and localstorage\n * to manage and persist game lineups\n *\n * Any lineups in localstorage that are more than one year old are cleared\n * each time the application starts.\n */\n\nimport { GetterTree, MutationTree } from 'vuex'\nimport { defineActions } from 'direct-vuex'\nimport { RootState } from '@/store/rootState'\nimport { cloneDeep } from 'lodash'\nimport { GameLineupWithRotation, GameLineup, SubstitutionPreference } from '@/models/Lineup'\nimport localStorageService from '@/services/localStorageService'\n\ninterface LineupState {\n allLineups: GameLineup[]\n allLineupsWithRotation: GameLineupWithRotation[]\n substitutionPreference: SubstitutionPreference | null\n}\n\nconst lineupState: LineupState = {\n allLineups: [] as GameLineup[],\n allLineupsWithRotation: [] as GameLineupWithRotation[],\n substitutionPreference: null,\n}\n\nexport enum mutationNames {\n upsertLineup = 'upsertLineup',\n deleteLineup = 'deleteLineup',\n upsertLineupWithRotation = 'upsertLineupWithRotation',\n deleteLineupWithRotation = 'deleteLineupWithRotation',\n clearOldLineups = 'clearOldLineups',\n clearAllLineups = 'clearAllLineups',\n setSubstitutionPreference = 'setSubstitutionPreference',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.upsertLineup](state, { lineup }: { lineup: GameLineup }) {\n const clone = cloneDeep(state.allLineups)\n const filtered = clone.filter((l) => {\n const uniqueArrayId = `${l.gameId}${l.divisionId}${l.teamId}`\n const uniqueLineupId = `${lineup.gameId}${lineup.divisionId}${lineup.teamId}`\n return uniqueArrayId != uniqueLineupId\n })\n filtered.push(lineup)\n state.allLineups = filtered\n },\n [mutationNames.deleteLineup](state, { lineup }: { lineup: GameLineup }) {\n const clone = cloneDeep(state.allLineups)\n const filtered = clone.filter((l) => {\n const uniqueArrayId = `${l.gameId}${l.divisionId}${l.teamId}`\n const uniqueLineupId = `${lineup.gameId}${lineup.divisionId}${lineup.teamId}`\n return uniqueArrayId != uniqueLineupId\n })\n state.allLineups = filtered\n },\n [mutationNames.upsertLineupWithRotation](state, { lineup }: { lineup: GameLineupWithRotation }) {\n const clone = cloneDeep(state.allLineupsWithRotation)\n const filtered = clone.filter((l) => {\n const uniqueArrayId = `${l.gameId}${l.divisionId}${l.teamId}`\n const uniqueLineupId = `${lineup.gameId}${lineup.divisionId}${lineup.teamId}`\n return uniqueArrayId != uniqueLineupId\n })\n filtered.push(lineup)\n state.allLineupsWithRotation = filtered\n },\n [mutationNames.deleteLineupWithRotation](state, { lineup }: { lineup: GameLineupWithRotation }) {\n const clone = cloneDeep(state.allLineupsWithRotation)\n const filtered = clone.filter((l) => {\n const uniqueArrayId = `${l.gameId}${l.divisionId}${l.teamId}`\n const uniqueLineupId = `${lineup.gameId}${lineup.divisionId}${lineup.teamId}`\n return uniqueArrayId != uniqueLineupId\n })\n state.allLineupsWithRotation = filtered\n },\n [mutationNames.clearOldLineups](state) {\n const cleanLineupsWithRotation = state.allLineupsWithRotation.filter(removeYearOld)\n state.allLineupsWithRotation = cleanLineupsWithRotation\n\n const cleanLineups = state.allLineups.filter(removeYearOld)\n state.allLineups = cleanLineups\n },\n [mutationNames.clearAllLineups](state) {\n state.allLineupsWithRotation = []\n state.allLineups = []\n },\n [mutationNames.setSubstitutionPreference](state, { preference }: { preference: SubstitutionPreference }) {\n const preferenceString: string = JSON.stringify(preference)\n localStorageService.set(getterNames.substitutionPreference, preferenceString)\n state.substitutionPreference = preference\n },\n}\n\nfunction removeYearOld(l: GameLineupWithRotation | GameLineup) {\n const today = new Date()\n if (!l.createDate) return true\n const lineupCreateDt = new Date(l.createDate)\n //@ts-ignore\n const days = parseInt((today - lineupCreateDt) / (24 * 3600 * 1000))\n return days < 366\n}\n\nexport enum getterNames {\n lineupsWithRotation = ' lineupsWithRotation',\n lineups = ' lineups',\n substitutionPreference = 'substitutionPreference',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.lineupsWithRotation]: (state) => state.allLineupsWithRotation,\n [getterNames.lineups]: (state) => state.allLineups,\n [getterNames.substitutionPreference]: (state) => {\n return state.substitutionPreference\n },\n}\n\nexport enum actionNames {\n setSubstitutionPreference = 'setSubstitutionPreference',\n loadSubstitutionPreference = 'loadSubstitutionPreference',\n}\n\nconst actions = defineActions({\n [actionNames.setSubstitutionPreference](\n { commit },\n { preference }: { preference: SubstitutionPreference }\n ): void {\n commit(mutationNames.setSubstitutionPreference, { preference })\n },\n [actionNames.loadSubstitutionPreference]({ commit }): void {\n let preference = localStorageService.getParsed(getterNames.substitutionPreference)\n if (preference && preference.expiry < new Date()) {\n localStorageService.remove(getterNames.substitutionPreference)\n preference = null\n }\n commit(mutationNames.setSubstitutionPreference, { preference })\n },\n})\n\nexport const namespace = 'lineup'\n\nexport const lineup = {\n namespaced: true as true,\n state: lineupState,\n getters: getterTree,\n mutations,\n actions,\n}\n","import restService from '@/services/restService'\nimport { DivisionGamePlayerInfo } from '@/GeneratedTypes/ListInfo/DivisionGamePlayerInfo'\nimport { CheerSquadRecognition } from '@/GeneratedTypes/CheerSquadRecognition'\nimport { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\nimport { TypeProgramPlayerRecognitionInfo } from '@/GeneratedTypes/ListInfo/TypeProgramPlayerRecognitionInfo'\n\nconst baseUrl = 'games/'\n\nconst retreiveGameRecognitions = async (\n upwId: string | null,\n gameId: number,\n teamId: number\n): Promise => {\n const result = await restService.get(\n `${baseUrl}playerGameDay/listByGame/${upwId}/${gameId}/${teamId}`\n )\n if (result.isSuccess) {\n return result.data ?? ([] as DivisionGamePlayerInfo[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retrieveByLeague = async (upwId: string | null): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}`)\n if (result.isSuccess) {\n return result.data ?? ([] as DivisionGameInfo[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retreivePlayerRecognitions = async (\n upwId: string | null,\n individualId: number,\n teamId: number\n): Promise => {\n const result = await restService.get(\n `${baseUrl}playerGameDay/listByPlayer/${upwId}/${teamId}/${individualId}`\n )\n if (result.isSuccess) {\n return result.data ?? ([] as DivisionGamePlayerInfo[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retreiveCheerleaderRecognitions = async (\n upwId: string | null,\n programType: string | null,\n divisionId: number,\n teamId: number,\n individualId: number\n): Promise => {\n const result = await restService.get(\n `${baseUrl}cheerRecognition/listByPlayer/${upwId}/${programType}/${divisionId}/${teamId}/${individualId}`\n )\n if (result.isSuccess) {\n return result.data ?? ([] as CheerSquadRecognition[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst retreiveCheerGameRecognitions = async (\n upwId: string | null,\n programType: string | null,\n divisionId: number,\n teamId: number,\n aptId: number\n): Promise => {\n const result = await restService.get(\n `${baseUrl}cheerRecognition/listByAppointment/${upwId}/${programType}/${divisionId}/${teamId}/${aptId}`\n )\n if (result.isSuccess) {\n return result.data ?? ([] as CheerSquadRecognition[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nconst updateSportRecognition = async (upwId: string | null, dgp: DivisionGamePlayerInfo) => {\n return await restService.put(\n `${baseUrl}playerGameDay/${upwId}/${dgp.gameID}/${dgp.teamID}/${dgp.playerIndividualID}`,\n dgp\n )\n}\n\nexport const updateCheerRecognition = async (upwId: string | null, csr: CheerSquadRecognition) => {\n return await restService.put(\n `${baseUrl}cheerRecognition/${upwId}/${csr.typeProgramID}/${csr.divisionID}/${csr.teamID}/${csr.playerIndividualID}/${csr.cheerSquadGameAppointmentID}`,\n csr\n )\n}\n\nconst retrievePlayerRecognitionTypes = async (\n typeProgramID: string | null\n): Promise => {\n const result = await restService.get(\n `${baseUrl}playerRecognitionList/${typeProgramID}`\n )\n if (result.isSuccess) {\n return result.data ?? ([] as TypeProgramPlayerRecognitionInfo[])\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nexport default {\n retreiveGameRecognitions,\n retreiveCheerGameRecognitions,\n retreiveCheerleaderRecognitions,\n updateSportRecognition,\n updateCheerRecognition,\n retreivePlayerRecognitions,\n retrieveByLeague,\n retrievePlayerRecognitionTypes,\n}\n","import { DivisionGamePlayer } from '@/GeneratedTypes/DivisionGamePlayer'\nimport gameClient from '@/clients/gameClient'\nimport { CheerSquadRecognition } from '@/GeneratedTypes/CheerSquadRecognition'\nimport { defineGetters, defineActions, defineMutations } from 'direct-vuex'\n\ninterface GameState {\n currentGameRecognitions: DivisionGamePlayer[]\n currentCheerRecognitions: CheerSquadRecognition[]\n skipPlayerRanking: boolean\n}\n\nconst gameState: GameState = {\n currentGameRecognitions: [] as DivisionGamePlayer[],\n currentCheerRecognitions: [] as CheerSquadRecognition[],\n skipPlayerRanking: false,\n}\n\nexport enum mutationNames {\n setCurrentGameRecognitions = 'setCurrentGameRecognitions',\n setCurrentCheerGameRecognitions = 'setCurrentCheerGameRecognitions',\n setSkipPlayerRanking = 'setSkipPlayerRanking',\n}\n\nconst mutations = defineMutations()({\n [mutationNames.setCurrentGameRecognitions](\n state,\n { recognitions }: { recognitions: DivisionGamePlayer[] }\n ) {\n state.currentGameRecognitions = recognitions\n },\n [mutationNames.setCurrentCheerGameRecognitions](\n state,\n { recognitions }: { recognitions: CheerSquadRecognition[] }\n ) {\n state.currentCheerRecognitions = recognitions\n },\n [mutationNames.setSkipPlayerRanking](state, { skipRanking }: { skipRanking: boolean }) {\n state.skipPlayerRanking = skipRanking\n },\n})\n\nexport enum getterNames {\n currentGameRecognitions = ' currentGameRecognitions',\n currentCheerGameRecognitions = ' currentCheerGameRecognitions',\n skipPlayerRanking = 'skipPlayerRanking',\n}\n\nconst getterTree = defineGetters()({\n [getterNames.currentGameRecognitions]: (state) => state.currentGameRecognitions,\n [getterNames.currentCheerGameRecognitions]: (state) => state.currentCheerRecognitions,\n [getterNames.skipPlayerRanking]: (state) => state.skipPlayerRanking,\n})\n\nexport enum actionNames {\n fetchCurrentGameRecognitions = 'fetchCurrentGameRecognitions',\n fetchCurrentCheerGameRecognitions = 'fetchCurrentCheerGameRecognitions',\n}\n\nconst actions = defineActions({\n async [actionNames.fetchCurrentGameRecognitions](\n { commit },\n { upwId, gameId, teamId }: { upwId: string | null; gameId: number; teamId: number }\n ): Promise {\n const result = await gameClient.retreiveGameRecognitions(upwId, gameId, teamId)\n\n if (result) {\n commit(mutationNames.setCurrentGameRecognitions, { recognitions: result })\n return true\n }\n\n return false\n },\n async [actionNames.fetchCurrentCheerGameRecognitions](\n { commit },\n {\n upwId,\n programType,\n divisionId,\n teamId,\n aptId,\n }: { upwId: string | null; programType: string | null; divisionId: number; teamId: number; aptId: number }\n ): Promise {\n const result = await gameClient.retreiveCheerGameRecognitions(\n upwId,\n programType,\n divisionId,\n teamId,\n aptId\n )\n\n if (result) {\n commit(mutationNames.setCurrentCheerGameRecognitions, { recognitions: result })\n return true\n }\n\n return false\n },\n})\n\nexport const namespace = 'game'\n\nexport const game = {\n namespaced: true as true,\n state: gameState,\n actions: actions,\n getters: getterTree,\n mutations,\n}\n","import restService from '@/services/restService'\nimport { LeagueDivision } from '@/GeneratedTypes/LeagueDivision'\nimport { LeagueDivisionInfo } from '@/GeneratedTypes/ListInfo/LeagueDivisionInfo'\nimport { TypeProgramGameFormatInfo } from '@/GeneratedTypes/ListInfo/TypeProgramGameFormatInfo'\n\nconst baseUrl = 'divisions/'\n\nconst retrieve = async (upwId: string | null, programType: string | null, divisionId: number) => {\n const results = await restService.get(`${baseUrl}${upwId}/${programType}/${divisionId}`)\n if (results.isSuccess) {\n return results.data\n }\n}\n\nconst retrieveAll = async (id: string): Promise => {\n const results = await restService.get(`${baseUrl}${id}`)\n\n if (results.isSuccess && results.data) {\n return results.data\n }\n return []\n}\n\nconst gameFormats = async (programType: string | null) => {\n const results = await restService.get(`${baseUrl}gameFormats/${programType}`)\n if (results.isSuccess && results.data) {\n return results.data\n }\n return [] as TypeProgramGameFormatInfo[]\n}\n\nexport default {\n retrieve,\n retrieveAll,\n gameFormats,\n}\n","import { GetterTree, MutationTree, ActionTree, Commit } from 'vuex'\nimport { RootState } from '@/store/rootState'\nimport { LeagueDivisionInfo } from '@/GeneratedTypes/ListInfo/LeagueDivisionInfo'\nimport divisionsClient from '@/clients/divisionsClient'\nimport { ActionsImpl } from 'direct-vuex'\n\ninterface DivisionsState {\n items: LeagueDivisionInfo[]\n}\n\nconst divisionsState: DivisionsState = {\n items: [] as LeagueDivisionInfo[],\n}\n\nexport enum getterNames {\n allItems = 'allItems',\n}\n\nconst getterTree: GetterTree = {\n [getterNames.allItems]: (state) => state.items,\n}\n\nexport enum mutationNames {\n setAll = 'setAll',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.setAll](state, items) {\n state.items = items\n },\n}\n\nexport enum actionNames {\n fetchAll = 'fetchAll',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n async [actionNames.fetchAll](\n { commit }: { commit: Commit },\n { upwardLeagueId }: { upwardLeagueId: string }\n ): Promise {\n const result = await divisionsClient.retrieveAll(upwardLeagueId)\n\n if (result) {\n commit(mutationNames.setAll, result)\n return true\n }\n\n return false\n },\n}\n\nexport const namespace = 'divisions'\n\nexport const divisions = {\n namespaced: true as true,\n state: divisionsState,\n getters: getterTree,\n actions,\n mutations,\n}\n","import Vue from 'vue'\nimport Vuex, { ActionTree, GetterTree, MutationTree } from 'vuex'\nimport { ActionsImpl, createDirectStore } from 'direct-vuex'\nimport createPersistedState from 'vuex-persistedstate'\nimport { RootState } from '@/store/rootState'\nimport { errors } from '@/store/errors'\nimport { sidebar } from '@/store/sidebar'\nimport { programs } from '@/store/programs'\nimport { teams } from '@/store/team'\nimport { partners } from '@/store/partner'\nimport { message } from '@/store/message'\nimport { authentication } from '@/store/authentication'\nimport { authorization } from '@/store/authorization'\nimport { search } from '@/store/search'\nimport { upwardTypes } from '@/store/upwardTypes'\nimport { resources } from '@/store/resources'\nimport { cheerResources } from '@/store/cheerResources'\nimport { lineup } from '@/store/lineup'\nimport { game } from '@/store/game'\nimport { divisions } from '@/store/divisions'\n\nVue.use(Vuex)\n\nexport enum actionNames {\n startTimekeeping = 'startTimekeeping',\n}\n\nconst actions: ActionTree & ActionsImpl = {\n [actionNames.startTimekeeping]: ({ commit }, payload?: boolean) => {\n if (!payload) setInterval(() => commit('updateTime'), 1000 * 30)\n },\n}\nconst initialState: RootState = {\n now: new Date(),\n userLastSeen: new Date(),\n}\n\nexport enum getterNames {\n now = 'now',\n userLastSeen = 'userLastSeen',\n userInactiveMS = 'userInactiveMS',\n}\n\nconst getters: GetterTree = {\n [getterNames.now]: (state) => state.now,\n [getterNames.userLastSeen]: (state) => state.userLastSeen,\n [getterNames.userInactiveMS]: (state) => state.now.getTime() - state.userLastSeen.getTime(),\n}\n\nexport enum mutationNames {\n updateTime = 'updateTime',\n updateUserLastSeen = 'updateUserLastSeen',\n}\n\nconst mutations: MutationTree = {\n [mutationNames.updateTime]: (state) => {\n state.now = new Date()\n },\n [mutationNames.updateUserLastSeen]: (state) => {\n state.userLastSeen = new Date()\n },\n}\n\nconst { store, rootActionContext, moduleActionContext, rootGetterContext, moduleGetterContext } =\n createDirectStore({\n strict: process.env.NODE_ENV !== 'production',\n state: initialState,\n getters,\n actions,\n mutations,\n plugins: [\n createPersistedState({\n paths: ['lineup'],\n }),\n ],\n modules: {\n sidebar,\n programs,\n teams,\n partners,\n message,\n errors,\n authentication,\n authorization,\n search,\n upwardTypes,\n resources,\n lineup,\n game,\n cheerResources,\n divisions,\n },\n })\n\n// The following exports will be used to enable types in the\n// implementation of actions and getters.\nexport { rootActionContext, moduleActionContext, rootGetterContext, moduleGetterContext }\n\n// export the typed store.\nexport default store\n\n// The following lines enable types in the injected store '$store'.\nexport type AppStore = typeof store\n\ndeclare module 'vuex' {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface Store {\n direct: AppStore\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"min-h-100 d-flex flex-column bkgrd\"},[(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(_vm.isCurrentRoutePublic && !_vm.isLoading)?[_c('full-body',[_c('router-view',{staticClass:\"m-auto\",staticStyle:{\"max-width\":\"550px\",\"background-color\":\"white\"}})],1)]:_vm._e(),(!_vm.isLoading && !_vm.isCurrentRoutePublic && !_vm.isAuthenticated)?[_c('full-body',[_c('the-auth-wall',{staticClass:\"m-auto\",staticStyle:{\"max-width\":\"550px\"}})],1)]:_vm._e(),(!_vm.isLoading && !_vm.isCurrentRoutePublic && _vm.isAuthenticated)?[_c('the-header'),_c('the-sidebar'),_c('main',[_c('full-body',{staticClass:\"m-auto\",staticStyle:{\"max-width\":\"550px\",\"background-color\":\"white\"}},[_c('router-view'),_c('the-footer',{attrs:{\"slot\":\"footer\"},slot:\"footer\"})],1)],1)]:_vm._e(),_c('the-error-renderer'),_c('pwa-install-prompt'),_c('toaster',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"type\":_vm.alertTypeEnum.HAPPYDAYS},model:{value:(_vm.updateExists),callback:function ($$v) {_vm.updateExists=$$v},expression:\"updateExists\"}},[[_c('div',{staticClass:\"text-center\"},[_c('p',[_vm._v(\"There is a new version of this application.\")]),_c('button',{staticClass:\"btn btn-success position-static mt-3\",on:{\"click\":_vm.refreshApp}},[_vm._v(\" Get the latest improvements \")])])]],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"spinner-border\",class:{ 'spinner-border-sm': _vm.isSmall },attrs:{\"role\":\"status\"}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Loading...\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class Loading extends Vue {\n @Prop({ type: Boolean, required: false, default: false })\n private readonly isSmall!: boolean\n}\n","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\n\nexport enum AlertTypeEnum {\n DANGER = 'danger',\n NOTICE = 'notice',\n HAPPYDAYS = 'happy-days',\n}\n\n@Component\nexport default class Toaster extends Vue {\n @Prop({ type: Boolean, required: true }) private readonly value!: boolean\n @Prop({ type: Boolean, required: false, default: true }) private readonly dismissable!: boolean\n @Prop({ type: String, required: false, default: AlertTypeEnum.DANGER })\n private readonly type!: AlertTypeEnum\n\n private dismiss() {\n this.$emit('input', false)\n this.$emit('change', false)\n }\n\n get typeClass() {\n switch (this.type) {\n case AlertTypeEnum.DANGER:\n return 'toast-danger'\n case AlertTypeEnum.NOTICE:\n return 'toast-notice'\n case AlertTypeEnum.HAPPYDAYS:\n return 'toast-happy-days'\n }\n }\n get classNames() {\n return `${this.value ? 'show d-block' : ''} ${this.typeClass}`\n }\n\n @Watch('value')\n private onValueChanged() {\n if (!this.value) {\n this.dismiss()\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=9a58c740\"\nimport script from \"./Loading.vue?vue&type=script&lang=ts\"\nexport * from \"./Loading.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:`d-none toast fade shadow-sm ${_vm.classNames}`},[_c('div',{staticClass:\"toast-body\"},[(_vm.dismissable)?_c('button',{staticClass:\"ml-2 mb-1 close\",staticStyle:{\"min-height\":\"0px\",\"color\":\"inherit\",\"opacity\":\"1\"},attrs:{\"type\":\"button\"},on:{\"click\":_vm.dismiss}},[_c('span',[_vm._v(\"×\")])]):_vm._e(),_c('div',{staticClass:\"px-3\"},[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toaster.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Toaster.vue?vue&type=template&id=3d0380e6&scoped=true\"\nimport script from \"./Toaster.vue?vue&type=script&lang=ts\"\nexport * from \"./Toaster.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Toaster.vue?vue&type=style&index=0&id=3d0380e6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d0380e6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('toaster',{attrs:{\"timeout\":0},on:{\"change\":_vm.onAlertIsVisibleChange},model:{value:(_vm.alertIsVisible),callback:function ($$v) {_vm.alertIsVisible=$$v},expression:\"alertIsVisible\"}},[(_vm.currentError && _vm.currentError.error)?[_c('p',{staticClass:\"font-weight-bold m-0\"},[_vm._v(_vm._s(_vm.currentItem.error.message))]),(_vm.currentError.error.errors && _vm.currentError.error.errors.length)?_c('ul',_vm._l((_vm.currentError.error.errors),function(error,index){return _c('li',{key:error.message + index},[_vm._v(\" \"+_vm._s(error.message)+\" \"),(error.messageID)?_c('em',[_vm._v(\" \"+_vm._s(error.messageID)+\" \")]):_vm._e()])}),0):_vm._e(),(_vm.currentError.timestamp != this.highestTimeStamp)?_c('div',{staticClass:\"alert-info\"},[_vm._v(\" This is an older error that had not been acknowledged yet. \")]):_vm._e()]:_vm._e(),(_vm.currentValidationError && _vm.currentValidationError.error)?[_c('p',{staticClass:\"font-weight-bold m-0\"},[_vm._v(\"Please correct the following:\")]),(_vm.currentValidationError.error.brokenRules && _vm.currentValidationError.error.brokenRules.length)?_c('ul',_vm._l((_vm.currentValidationError.error.brokenRules),function(brokenRule){return _c('li',{key:brokenRule.message},[_vm._v(\" \"+_vm._s(brokenRule.message)+\" \"),(brokenRule.messageID)?_c('em',[_c('small',{staticClass:\"text-muted\"},[_vm._v(_vm._s(brokenRule.messageID))])]):_vm._e()])}),0):_vm._e(),(_vm.currentValidationError.timestamp != this.highestTimeStamp)?_c('div',{staticClass:\"alert-info\"},[_vm._v(\" This is an older error that had not been acknowledged yet. \")]):_vm._e()]:_vm._e(),(_vm.itemCount > 1)?_c('div',{staticClass:\"alert-info\"},[_vm._v(\" There \"+_vm._s(_vm.itemCount === 2 ? 'is' : 'are')+\" \"+_vm._s(_vm.itemCount - 1)+\" \"+_vm._s(_vm.itemCount === 2 ? 'error' : 'errors')+\" \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Toaster from '@/components/Toaster.vue'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { Mutation, Getter } from 'vuex-class'\nimport { getterNames, mutationNames, namespace } from '@/store/errors'\nimport {\n UpwardExceptionResultWithTimestamp,\n UpwardValidationDetailsWithTimestamp,\n} from '@/models/error_timestamp_types'\n\n@Component({\n components: {\n Toaster,\n },\n})\nexport default class TheErrorRenderer extends Vue {\n @Getter(getterNames.currentError, { namespace })\n private currentError!: UpwardExceptionResultWithTimestamp | null\n\n @Getter(getterNames.allErrors, { namespace })\n private allErrors!: UpwardExceptionResultWithTimestamp[]\n\n @Mutation(mutationNames.clearCurrentError, { namespace })\n private clearCurrentError!: () => void\n\n @Getter(getterNames.currentValidationError, { namespace })\n private currentValidationError!: UpwardValidationDetailsWithTimestamp | null\n\n @Getter(getterNames.allValidationErrors, { namespace })\n private allValidationErrors!: UpwardValidationDetailsWithTimestamp[]\n\n @Mutation(mutationNames.clearCurrentValidationError, { namespace })\n private clearCurrentValidationError!: () => void\n\n @Mutation(mutationNames.clearAll, { namespace })\n private clearAll!: () => void\n\n private alertIsVisible = !!this.currentError\n\n private highWaterTimeStamp = new Date()\n private get highestTimeStamp() {\n if (this.currentError && this.currentError.timestamp > this.highWaterTimeStamp) {\n this.highWaterTimeStamp = this.currentError.timestamp\n }\n if (this.currentValidationError && this.currentValidationError.timestamp > this.highWaterTimeStamp) {\n this.highWaterTimeStamp = this.currentValidationError.timestamp\n }\n return this.highWaterTimeStamp\n }\n\n /**\n * Grab the error with the newest timestamp as \"current\"\n */\n private get currentItem() {\n if (this.currentError && this.currentValidationError) {\n if (this.currentError.timestamp > this.currentValidationError.timestamp) {\n return this.currentError\n }\n return this.currentValidationError\n }\n return this.currentError || this.currentValidationError\n }\n\n private get itemCount() {\n return this.allErrors.length + this.allValidationErrors.length\n }\n\n @Watch('$route')\n private onRouteChange() {\n this.clearAll()\n }\n\n @Watch('currentItem')\n private onCurrentItemChange() {\n this.alertIsVisible = !!this.currentItem\n }\n\n private onAlertIsVisibleChange() {\n if (!this.alertIsVisible && this.currentItem) {\n this.clearCurrentValidationError()\n this.clearCurrentError()\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheErrorRenderer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheErrorRenderer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TheErrorRenderer.vue?vue&type=template&id=018150ed&scoped=true\"\nimport script from \"./TheErrorRenderer.vue?vue&type=script&lang=ts\"\nexport * from \"./TheErrorRenderer.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TheErrorRenderer.vue?vue&type=style&index=0&id=018150ed&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"018150ed\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"bg-dark\",class:{ open: _vm.isOpen },attrs:{\"id\":\"sidebar\"},on:{\"click\":_vm.toggleSidebar}},[_c('role-access',{attrs:{\"allow-if-any\":_vm.adminUsers,\"deny-if-any\":_vm.allVolunteerRoles}},[(_vm.impersonationActive)?_c('div',{staticClass:\"p-2 text-white border m-1\"},[_c('label',[_vm._v(\"Impersonating\")]),_c('impersonating',{staticClass:\"mt-2\"})],1):_vm._e(),_c('sidebar-item',{staticClass:\"nav-link py-3 px-0\",attrs:{\"config\":_vm.impersonateLink,\"showDescription\":false,\"textColorClass\":'white'}})],1),(_vm.show && _vm.currentProgramId)?_vm._l((_vm.menu),function(item,index){return _c('sidebar-item',{key:index,staticClass:\"nav-link py-3 px-0\",attrs:{\"config\":item,\"showDescription\":false,\"textColorClass\":'white'}})}):_vm._e(),_c('role-access',{attrs:{\"allow-if-any\":_vm.superUsers,\"deny-if-any\":_vm.allVolunteerRoles}},[(_vm.fullSiteLink)?_c('a',{staticClass:\"nav-link py-3 px-0\",attrs:{\"href\":_vm.fullSiteLink}},[_c('i',{staticClass:\"fas fa-external-link-alt\"}),_vm._v(\"Full Site\")]):_vm._e()]),_c('logout',{staticClass:\"nav-link py-3 px-0\"})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{on:{\"click\":_vm.logout}},[_vm._m(0),_c('div',{staticClass:\"nav-text\"},[_vm._v(\"Logout\")])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"nav-icon\",attrs:{\"title\":\"clearCurrentCredentials\"}},[_c('i',{staticClass:\"fa-lg pr-2 fa fa-sign-out-alt\"})])\n}]\n\nexport { render, staticRenderFns }","import store from '@/store'\nexport function logoutUser() {\n store.commit.authorization.reset()\n store.commit.programs.reset()\n store.commit.authentication.reset()\n store.commit.teams.reset()\n}\n","\nimport { Component, Vue } from 'vue-property-decorator'\nimport * as auth from '@/store/authentication'\nimport * as authorization from '@/store/authorization'\nimport * as programs from '@/store/programs'\nimport * as team from '@/store/team'\nimport { Mutation } from 'vuex-class'\nimport { logoutUser } from '@/common/Authentication/logoutUser'\n\n@Component\nexport default class Logout extends Vue {\n @Mutation(auth.mutationNames.reset, { namespace: auth.namespace })\n private authReset!: () => void\n\n @Mutation(programs.mutationNames.reset, { namespace: programs.namespace })\n private programReset!: () => void\n\n @Mutation(authorization.mutationNames.reset, { namespace: authorization.namespace })\n private authorizationReset!: () => void\n\n @Mutation(team.mutationNames.reset, { namespace: team.namespace })\n private teamReset!: () => void\n\n private logout() {\n logoutUser()\n if (this.$route.name !== 'Root') this.$router.push('/')\n }\n}\n","//Type used to create a union of all leagueVolunteer and upwardAccount types\nexport interface RoleUnion {\n roleId: string\n roleType: RoleUnionTypes\n roleDescription: string\n}\n\nexport enum RoleUnionTypes {\n VOLUNTEER = 'volunteer',\n ACCOUNT = 'account',\n APPLICATION = 'application',\n NONE = 'NONE',\n}\n\nexport function getEmtpyRoleUnion(): RoleUnion {\n return {\n roleId: '',\n roleType: RoleUnionTypes.NONE,\n roleDescription: '',\n }\n}\n\nexport function getEmtpyRoleUnionList(): RoleUnion[] {\n return [getEmtpyRoleUnion()]\n}\n","import { RoleUnion, RoleUnionTypes } from '@/common/Authorization/RoleUnion'\nimport store from '@/store'\n\nexport enum VolunteerRoles {\n COACH = 'Coach',\n COACH_COMMISSIONER = 'CoachCommissioner',\n CHEER_DIRECTOR = 'CheerDirector',\n REFEREE = 'Referee',\n REFEREE_COMMISSIONER = 'RefereeCommissioner',\n HOST_COMMISSIONER = 'HostCommissioner',\n PRAYER_COMMISSIONER = 'PrayerCommissioner',\n ADVERTISING_COMMISSIONER = 'AdCommissioner',\n HALFTIME_COMMISSIONER = 'GamedayCommissioner',\n MINISTRY_COORDINATOR = 'MinistryCoordinator',\n}\n\nexport const commissionerGroup = [\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n VolunteerRoles.HOST_COMMISSIONER,\n VolunteerRoles.PRAYER_COMMISSIONER,\n VolunteerRoles.ADVERTISING_COMMISSIONER,\n VolunteerRoles.HALFTIME_COMMISSIONER,\n VolunteerRoles.MINISTRY_COORDINATOR,\n]\ninterface VolunteerRoleMap {\n role: VolunteerRoles\n description: string\n}\n\nclass refereeRoleMap implements VolunteerRoleMap {\n public get role() {\n return VolunteerRoles.REFEREE\n }\n\n public get description() {\n return store.state.programs.currentProgram?.refLabel ?? 'Referee'\n }\n}\n\nclass refereeCommisionerRoleMap implements VolunteerRoleMap {\n public get role() {\n return VolunteerRoles.REFEREE_COMMISSIONER\n }\n\n public get description() {\n return `${store.state.programs.currentProgram?.refLabel ?? 'Referee'} Commissioner`\n }\n}\n\n//this really should be data driven\nexport const BuiltInVolunteerRoles: VolunteerRoleMap[] = [\n { role: VolunteerRoles.COACH, description: 'Coach' },\n { role: VolunteerRoles.COACH_COMMISSIONER, description: 'Coach Commissioner' },\n { role: VolunteerRoles.CHEER_DIRECTOR, description: 'Cheer Director' },\n new refereeRoleMap(),\n new refereeCommisionerRoleMap(),\n { role: VolunteerRoles.HOST_COMMISSIONER, description: 'Host Commissioner' },\n { role: VolunteerRoles.PRAYER_COMMISSIONER, description: 'Prayer Commissioner' },\n { role: VolunteerRoles.ADVERTISING_COMMISSIONER, description: 'Ad Commissioner' },\n { role: VolunteerRoles.HALFTIME_COMMISSIONER, description: 'Gameday Commissioner' },\n { role: VolunteerRoles.MINISTRY_COORDINATOR, description: 'Ministry Coordinator' },\n]\n\nexport const coachGroup = [VolunteerRoles.COACH]\n\nexport const allVolunteerRoles: string[] = Object.values(VolunteerRoles)\n\nexport function allVolunteerRolesAsRoleUnion(hasCheer: boolean): RoleUnion[] {\n const roles: RoleUnion[] = []\n allVolunteerRoles.forEach((volRole: string) => {\n //If this league doesn't have a cheer program, don't add the cheer director\n if (!hasCheer && volRole == VolunteerRoles.CHEER_DIRECTOR) return\n\n //add role\n roles.push({\n roleId: volRole,\n roleType: RoleUnionTypes.VOLUNTEER,\n roleDescription: BuiltInVolunteerRoles.find((x) => x.role == volRole)?.description ?? volRole,\n })\n })\n return roles\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logout.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Logout.vue?vue&type=template&id=717d2216\"\nimport script from \"./Logout.vue?vue&type=script&lang=ts\"\nexport * from \"./Logout.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export enum AccountRoles {\n SUPER_ADMIN = 'SuperAdmin',\n DIRECTOR = 'Director',\n PARTNER_SUPPORT = 'PartnerSupport',\n SYS_AND_SUPPORT = 'SystemsAndSupport',\n UPWARD_STAFF = 'UpwardStaff',\n}\n\nexport const superUsers: string[] = [\n AccountRoles.PARTNER_SUPPORT,\n AccountRoles.DIRECTOR,\n AccountRoles.SUPER_ADMIN,\n AccountRoles.SYS_AND_SUPPORT,\n AccountRoles.UPWARD_STAFF,\n]\n\ninterface AccountRoleMap {\n role: AccountRoles\n description: string\n}\n\n//this really should be data driven\nexport const BuiltInAccountRoles: AccountRoleMap[] = [\n { role: AccountRoles.PARTNER_SUPPORT, description: 'Partner Support' },\n { role: AccountRoles.DIRECTOR, description: 'Director' },\n { role: AccountRoles.SUPER_ADMIN, description: 'Super Admin' },\n { role: AccountRoles.SYS_AND_SUPPORT, description: 'Systems And Support' },\n { role: AccountRoles.UPWARD_STAFF, description: 'Upward Staff' },\n]\n\nexport const adminUsers: string[] = [\n AccountRoles.SUPER_ADMIN,\n AccountRoles.SYS_AND_SUPPORT,\n AccountRoles.UPWARD_STAFF,\n]\n\nexport const allRoles: string[] = Object.values(AccountRoles)\n\nexport function convertSuperUserToDirector(roleId: string) {\n if (superUsers.includes(roleId)) {\n return AccountRoles.DIRECTOR\n }\n return roleId\n}\n","import { superUsers } from './AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nexport const forbidSettingProgramForEmail = [\n VolunteerRoles.CHEER_DIRECTOR,\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n]\n\nexport const communicationVolunteerRoles = [\n VolunteerRoles.COACH,\n VolunteerRoles.CHEER_DIRECTOR,\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n]\n\nexport const localSMSClientGroup = [\n VolunteerRoles.COACH,\n VolunteerRoles.REFEREE_COMMISSIONER,\n VolunteerRoles.HOST_COMMISSIONER,\n VolunteerRoles.PRAYER_COMMISSIONER,\n VolunteerRoles.ADVERTISING_COMMISSIONER,\n VolunteerRoles.HALFTIME_COMMISSIONER,\n VolunteerRoles.MINISTRY_COORDINATOR,\n VolunteerRoles.REFEREE,\n VolunteerRoles.COACH_COMMISSIONER,\n]\n\nexport const bulkEmailerGroup = [\n ...superUsers,\n VolunteerRoles.CHEER_DIRECTOR,\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n]\n\nexport const forbidBulkEmailerGroup = [\n VolunteerRoles.COACH,\n VolunteerRoles.HOST_COMMISSIONER,\n VolunteerRoles.PRAYER_COMMISSIONER,\n VolunteerRoles.ADVERTISING_COMMISSIONER,\n VolunteerRoles.HALFTIME_COMMISSIONER,\n VolunteerRoles.MINISTRY_COORDINATOR,\n VolunteerRoles.REFEREE,\n]\n\nexport const denyMessaging = [\n VolunteerRoles.HOST_COMMISSIONER,\n VolunteerRoles.PRAYER_COMMISSIONER,\n VolunteerRoles.ADVERTISING_COMMISSIONER,\n VolunteerRoles.HALFTIME_COMMISSIONER,\n VolunteerRoles.MINISTRY_COORDINATOR,\n VolunteerRoles.REFEREE,\n]\n","export interface MenuItemConfig {\n text: string\n route: string\n name: string // route name\n defaultChildRoute?: string\n denyIfAnyRoles?: string[] | null\n allowIfAnyRoles?: string[] | null\n denyIfAllRoles?: string[] | null\n allowIfAllRoles?: string[] | null\n ranking?: string[] | null\n}\n\nexport interface MainMenuItemConfig extends MenuItemConfig {\n description: string\n icon: string\n displayLocation: DisplayLocation[]\n sportOrCheer?: SportOrCheer | null //leave bank or null to display for both sport and cheer\n excludedLeagueTypes?: LeagueType[] | null\n}\n\nexport function mainMenuItemConfigEmpty(): MainMenuItemConfig {\n return {\n text: '',\n icon: '',\n route: '',\n description: '',\n name: '',\n defaultChildRoute: '',\n allowIfAnyRoles: null,\n displayLocation: [],\n sportOrCheer: null,\n }\n}\n\nexport enum DisplayLocation {\n HOME = 'Home',\n SIDEBAR = 'Sidebar',\n}\n\nexport enum SportOrCheer {\n SPORT_ONLY = 'sportOnly',\n CHEER_ONLY = 'cheerOnly',\n SELECT_ONLY = 'selectOnly',\n}\n\nexport enum LeagueType {\n CLINIC = 'CLINIC',\n CAMP = 'CAMP',\n CONNECT = 'CONNECT',\n STANDARD = 'STANDARD',\n}\n","import { VolunteerRoles, allVolunteerRoles, coachGroup } from '@/common/Authorization/VolunteerRoles'\nimport { denyMessaging } from '@/common/Authorization/PermissionGroups'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { MainMenuItemConfig, DisplayLocation, SportOrCheer, LeagueType } from '@/models/MenuItem'\nimport store from '@/store'\n\nconst home: MainMenuItemConfig = {\n text: 'Home',\n icon: 'fas fa-home',\n route: '/home',\n description: '',\n name: 'home',\n displayLocation: [DisplayLocation.SIDEBAR],\n}\n\nconst account: MainMenuItemConfig = {\n text: 'Account',\n icon: 'far fa-id-card',\n route: '/account/profile',\n description: '',\n name: 'account',\n displayLocation: [DisplayLocation.SIDEBAR],\n}\n\nconst communication: MainMenuItemConfig = {\n text: 'Communication',\n icon: 'fa fa-paper-plane',\n route: '/communication',\n description: 'Text and email communication tools',\n name: 'communication',\n denyIfAnyRoles: [...denyMessaging, VolunteerRoles.COACH],\n allowIfAnyRoles: [\n ...superUsers,\n VolunteerRoles.CHEER_DIRECTOR,\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n ],\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\nconst coachCommunication: MainMenuItemConfig = {\n text: 'Communication',\n icon: 'fa fa-paper-plane',\n route: '/communication',\n description: 'Text and email communication tools',\n name: 'communication',\n //denyIfAnyRoles: [...denyMessaging, ...communication.allowIfAnyRoles!],\n allowIfAnyRoles: [VolunteerRoles.COACH],\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\n\nconst resources: MainMenuItemConfig = {\n text: 'Resources',\n icon: 'fa fa-book',\n route: '/resources',\n name: 'resources',\n description: 'Use these tools to guide you through the season',\n allowIfAnyRoles: [...superUsers, ...allVolunteerRoles],\n denyIfAnyRoles: [VolunteerRoles.COACH],\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\nconst coachResources: MainMenuItemConfig = {\n text: 'Resources',\n icon: 'fa fa-book',\n route: '/resources',\n name: 'resources',\n description: 'Use these tools to guide you through the season',\n allowIfAnyRoles: [...superUsers, ...allVolunteerRoles],\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.STANDARD],\n}\n\nconst practiceResources: MainMenuItemConfig = {\n text: 'Practice Resources',\n icon: 'fa fa-tasks',\n route: '/PracticeResources',\n name: 'PracticeResources',\n description: 'Practice plans, devotions, skills & drills, and rules',\n allowIfAnyRoles: [VolunteerRoles.COACH],\n sportOrCheer: SportOrCheer.SPORT_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\n\nconst cheerPracticeResources: MainMenuItemConfig = {\n text: 'Practice Resources',\n icon: 'fa fa-music',\n route: '/cheerresources',\n name: 'CheerPracticeResources',\n description: 'Cheers, dances, chants, and tunes',\n allowIfAnyRoles: [VolunteerRoles.COACH],\n sportOrCheer: SportOrCheer.CHEER_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\n\nconst selectPracticeResources: MainMenuItemConfig = {\n text: 'Practice Resources',\n icon: 'fa fa-tasks',\n route: '/selectResources',\n name: 'SelectResources',\n description: 'Devotions',\n allowIfAnyRoles: [VolunteerRoles.COACH],\n sportOrCheer: SportOrCheer.SELECT_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\n\nconst ministryResources: MainMenuItemConfig = {\n text: 'Ministry Resources',\n icon: 'fa fa-bible',\n route: '/ministryresources',\n name: 'MinistryResources',\n description: 'Practice plans and devotions',\n allowIfAnyRoles: [VolunteerRoles.COACH],\n sportOrCheer: SportOrCheer.CHEER_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\n\nconst gameDay: MainMenuItemConfig = {\n text: 'Game Day',\n icon: 'fas fa-clipboard-list',\n route: '/gameday',\n name: 'gameDay',\n defaultChildRoute: 'games',\n description: 'Manage game day roster, substitutions and star distribution',\n allowIfAnyRoles: [...coachGroup],\n sportOrCheer: SportOrCheer.SPORT_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\n\nconst starDistribution: MainMenuItemConfig = {\n text: 'Star Distribution',\n icon: 'fas fa-star',\n route: '/startdistribution',\n name: 'startDistribution',\n defaultChildRoute: 'games',\n description: 'Assign recognition stars during a game',\n allowIfAnyRoles: [...coachGroup],\n sportOrCheer: SportOrCheer.CHEER_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\n\nconst selectStarDistribution: MainMenuItemConfig = {\n text: 'Star Distribution',\n icon: 'fas fa-star',\n route: '/startdistribution',\n name: 'startDistribution',\n defaultChildRoute: 'games',\n description: 'Assign recognition stars during a game',\n allowIfAnyRoles: [...coachGroup],\n sportOrCheer: SportOrCheer.SELECT_ONLY,\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\n\nconst manageTeam: MainMenuItemConfig = {\n text: 'Team',\n icon: 'fas fa-chalkboard-teacher',\n route: '/ManageTeam',\n name: 'manageTeam',\n description: 'Manage your roster, view schedule, see team details',\n allowIfAnyRoles: [...coachGroup],\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n excludedLeagueTypes: [LeagueType.CAMP],\n}\n\nconst install: MainMenuItemConfig = {\n text: 'Install',\n icon: 'fas fa-plus-square',\n route: '/install',\n name: 'install',\n description: 'Install a shortcut icon on your home screen or desktop',\n displayLocation: [DisplayLocation.SIDEBAR],\n}\n\nconst search: MainMenuItemConfig = {\n text: 'Search',\n icon: 'fas fa-search',\n route: '/search',\n name: 'search',\n description: 'Search for players, coaches or teams by name',\n allowIfAnyRoles: superUsers,\n denyIfAnyRoles: allVolunteerRoles,\n displayLocation: [DisplayLocation.SIDEBAR],\n}\n\nconst gettingStarted: MainMenuItemConfig = {\n text: 'Getting Started',\n icon: 'fas fa-door-open',\n route: '/start',\n name: 'start',\n description: 'Prepare for your role this season',\n displayLocation: [DisplayLocation.HOME, DisplayLocation.SIDEBAR],\n}\n\nclass refereeSchedule implements MainMenuItemConfig {\n public get text() {\n return `${store.state.programs.currentProgram?.refLabel} Schedule`\n }\n public get icon() {\n return 'fas fa-calendar-day'\n }\n public get route() {\n return '/referee_schedule'\n }\n public get name() {\n return 'referee'\n }\n public get description() {\n return `View the ${store.state.programs.currentProgram?.refLabel.toLocaleLowerCase()} schedule for this league`\n }\n public get displayLocation() {\n return [DisplayLocation.HOME, DisplayLocation.SIDEBAR]\n }\n public get allowIfAnyRoles() {\n return [VolunteerRoles.REFEREE, VolunteerRoles.REFEREE_COMMISSIONER]\n }\n public get excludedLeagueTypes() {\n return [LeagueType.CAMP]\n }\n}\n\nexport enum MainMenuEnum {\n MANAGE_TEAM = 'ManageTeam',\n RESOURCES = 'Resources',\n PRACTICE_RESOURCES = 'practiceResources',\n COACH_RESOURCES = 'coachResources',\n COMMUNICATION = 'Communication',\n COACH_COMMUNICATION = 'CoachCommunication',\n GAMEDAY = 'GameDay',\n INSTALL = 'Install',\n SEARCH = 'Search',\n STARTED = 'Starting',\n HOME = 'Home',\n STAR_DISTRIBUTION = 'StartDistribution',\n SELECT_STAR_DISTRIBUTION = 'SelectStartDistribution',\n MINISTRY_RESOURCES = 'MinistryResources',\n CHEER_PRACTICE_RESOURCES = 'CheerPracticeResources',\n SELECT_PRACTICE_RESOURCES = 'SelectPracticeResources',\n REFEREE_SCHEDULE = 'RefereeSchedule',\n ACCOUNT = 'Account',\n}\n\nexport const MainMenu: Record = {\n [MainMenuEnum.HOME]: home,\n [MainMenuEnum.ACCOUNT]: account,\n [MainMenuEnum.STARTED]: gettingStarted,\n [MainMenuEnum.MANAGE_TEAM]: manageTeam,\n [MainMenuEnum.PRACTICE_RESOURCES]: practiceResources,\n [MainMenuEnum.COACH_RESOURCES]: coachResources,\n [MainMenuEnum.MINISTRY_RESOURCES]: ministryResources,\n [MainMenuEnum.CHEER_PRACTICE_RESOURCES]: cheerPracticeResources,\n [MainMenuEnum.SELECT_PRACTICE_RESOURCES]: selectPracticeResources,\n [MainMenuEnum.SEARCH]: search,\n [MainMenuEnum.RESOURCES]: resources,\n [MainMenuEnum.COMMUNICATION]: communication,\n [MainMenuEnum.COACH_COMMUNICATION]: coachCommunication,\n [MainMenuEnum.GAMEDAY]: gameDay,\n [MainMenuEnum.INSTALL]: install,\n [MainMenuEnum.STAR_DISTRIBUTION]: starDistribution,\n [MainMenuEnum.SELECT_STAR_DISTRIBUTION]: selectStarDistribution,\n [MainMenuEnum.REFEREE_SCHEDULE]: new refereeSchedule(),\n}\n","import { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport class iOSTestMixin extends Vue {\n protected isIosOnBrowser() {\n return this.isIos() && !this.isInStandaloneMode()\n }\n\n private isIos() {\n const userAgent = window.navigator.userAgent.toLowerCase()\n return /iphone|ipad|ipod/.test(userAgent)\n }\n private isInStandaloneMode() {\n //@ts-ignore\n return 'standalone' in window.navigator && window.navigator.standalone\n }\n}\n","import { Component, Mixins } from 'vue-property-decorator'\nimport { MainMenu } from '@/common/MainMenuItems'\nimport { iOSTestMixin } from '@/common/iOSTestMixin'\n\n@Component\nexport class MainMenuMixin extends Mixins(iOSTestMixin) {\n private get menu() {\n const menu: any = {}\n if (!this.isIosOnBrowser()) {\n Object.entries(MainMenu).forEach(([key, value]) => {\n //if it's not an iphone, don't include install menu item\n if (value.text != 'Install') {\n menu[key] = value\n }\n })\n } else {\n return MainMenu\n }\n return menu\n }\n}\n","/*\nApplication Roles are assigned to the user based on logic contained in the application.\n*/\n\nexport enum ApplicationRoles {\n COACH_WITH_TEAM = 'CoachWithTeam',\n USER_WITH_LEAGUE = 'UserWithLeague',\n}\n\nexport const allApplicationRoles: string[] = Object.values(ApplicationRoles)\n","export function maxStringLength(val: string, maxLength: number) {\n if (val.length > maxLength) {\n return val.substring(0, maxLength) + ' ...'\n } else {\n return val\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"p-1 text-center\"},[_c('div',[_vm._v(_vm._s(_vm.accountName))]),_c('div',{staticClass:\"mt-2 small text-muted\"},[_vm._v(\"(# \"+_vm._s(_vm.impersonationAccountNumber)+\")\")]),_c('div',{staticClass:\"text-primary mt-3 clickable\",on:{\"click\":_vm.stop}},[_vm._v(\"End Impersonation\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.showBackLink)?_c('back-link',{staticClass:\"position-absolute ml-1 mt-1\"}):_vm._e(),_c('h6',{staticClass:\"primary-heading text-dark text-center m-0\"},[_c('span',{staticClass:\"pt-2 d-inline-block\"},[_vm._v(_vm._s(_vm.title))])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',{on:{\"click\":_vm.handleClick}},[_c('i',{staticClass:\"fas fa-2x fa-arrow-circle-left text-upwd-light-blue\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class BackButton extends Vue {\n private handleClick() {\n this.$router.go(-1)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackLink.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackLink.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./BackLink.vue?vue&type=template&id=7e46e628&scoped=true\"\nimport script from \"./BackLink.vue?vue&type=script&lang=ts\"\nexport * from \"./BackLink.vue?vue&type=script&lang=ts\"\nimport style0 from \"./BackLink.vue?vue&type=style&index=0&id=7e46e628&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e46e628\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport BackLink from '@/elements/BackLink.vue'\n\n@Component({\n components: {\n BackLink,\n },\n})\nexport default class PrimaryHeading extends Vue {\n @Prop({ type: Boolean, default: false, required: false }) private readonly showBackLink!: boolean\n @Prop({ type: String, default: null, required: false }) private readonly title!: string\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrimaryHeading.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PrimaryHeading.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PrimaryHeading.vue?vue&type=template&id=2d6f0824&scoped=true\"\nimport script from \"./PrimaryHeading.vue?vue&type=script&lang=ts\"\nexport * from \"./PrimaryHeading.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PrimaryHeading.vue?vue&type=style&index=0&id=2d6f0824&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d6f0824\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter, Action, Mutation } from 'vuex-class'\n\nimport * as authStore from '@/store/authentication'\nimport * as authorizationStore from '@/store/authorization'\nimport * as programStore from '@/store/programs'\nimport * as teamStore from '@/store/team'\n\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\n\n@Component({\n components: {\n PrimaryHeading,\n },\n})\nexport default class Impersonating extends Vue {\n @Getter(authStore.getterNames.accountName, { namespace: authStore.namespace })\n private accountName!: string\n\n @Getter(authStore.getterNames.impersonationAccountNumber, { namespace: authStore.namespace })\n private impersonationAccountNumber!: string\n\n @Action(authStore.actionNames.unimpersonate, { namespace: authStore.namespace })\n private unimpersonate!: () => Promise\n\n @Mutation(programStore.mutationNames.reset, { namespace: programStore.namespace })\n private programReset!: () => void\n\n @Mutation(teamStore.mutationNames.reset, { namespace: teamStore.namespace })\n private teamReset!: () => void\n\n @Mutation(authorizationStore.mutationNames.reset, { namespace: authorizationStore.namespace })\n private authorizationReset!: () => void\n\n private stop() {\n this.unimpersonate()\n this.authorizationReset()\n this.programReset()\n this.teamReset()\n this.$router.push('/account/impersonate')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Impersonating.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Impersonating.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Impersonating.vue?vue&type=template&id=2b62e41a\"\nimport script from \"./Impersonating.vue?vue&type=script&lang=ts\"\nexport * from \"./Impersonating.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('role-access',{attrs:{\"allow-if-any\":_vm.config.allowIfAnyRoles,\"deny-if-any\":_vm.config.denyIfAnyRoles}},[(_vm.show)?_c('router-link',{staticClass:\"nav-link py-3 px-0\",attrs:{\"to\":_vm.config.route,\"exact\":\"\"}},[_c('div',{staticClass:\"nav-icon\",attrs:{\"title\":_vm.config.text}},[_c('i',{staticClass:\"fa-lg\",class:_vm.config.icon})]),_c('div',{staticClass:\"nav-text\"},[_vm._v(\" \"+_vm._s(_vm.config.text)+\" \")])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator'\nimport { cloneDeep } from 'lodash'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { Getter } from 'vuex-class'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport * as teamStore from '@/store/team'\n\n@Component\nexport class IsCheerMixin extends Vue {\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n protected readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n protected get isCheer(): boolean {\n if (!this.currentTeam) return false //if there is no team, then it can't be cheer\n const allprograms = cloneDeep(this.allProgramTypes)\n const program = allprograms.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n return program ? program.isCheer : false\n }\n\n protected get isSelect(): boolean {\n if (!this.currentTeam) return false //if there is no team, then it can't be cheer\n return this.currentTeam.typeProgramID === 'UPWARDSELECTMSS'\n }\n}\n","import { Component, Mixins, Prop } from 'vue-property-decorator'\nimport { SportOrCheer, MainMenuItemConfig, mainMenuItemConfigEmpty } from '@/models/MenuItem'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\n\n@Component\nexport class MenuItemValidProgramMixin extends Mixins(IsCheerMixin) {\n @Prop({ type: Object, default: mainMenuItemConfigEmpty, required: false })\n readonly config!: MainMenuItemConfig\n\n get validProgramType(): boolean {\n if (!this.config.sportOrCheer) return true //if there is no sportOrCheer then always display\n if (this.isSelect) {\n return this.config.sportOrCheer === SportOrCheer.SELECT_ONLY\n } else {\n if (this.isCheer && this.config.sportOrCheer === SportOrCheer.CHEER_ONLY) return true\n if (!this.isCheer && this.config.sportOrCheer === SportOrCheer.SPORT_ONLY) return true\n }\n return false\n }\n}\n","import { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { LeagueType, MainMenuItemConfig, mainMenuItemConfigEmpty } from '@/models/MenuItem'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\n\n@Component\nexport class ExcludedLeagueTypesMixin extends Vue {\n @Prop({ type: Object, default: mainMenuItemConfigEmpty, required: false })\n readonly config!: MainMenuItemConfig\n @Getter(upwardTypesStore.getterNames.currentLeagueType, { namespace: upwardTypesStore.namespace })\n protected readonly currentLeagueType!: UpwardLeagueTypeID\n protected get leagueTypeExcluded(): boolean {\n const excludedTypes = this.config.excludedLeagueTypes ?? []\n const excludeCamp = excludedTypes.includes(LeagueType.CAMP) && this.currentLeagueType.isCamp\n const excludeClinic = excludedTypes.includes(LeagueType.CLINIC) && this.currentLeagueType.isClinic\n const excludeStandard =\n excludedTypes.includes(LeagueType.STANDARD) &&\n !(this.currentLeagueType.isCamp || this.currentLeagueType.isClinic)\n return excludeCamp || excludeClinic || excludeStandard\n }\n}\n","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\n\nimport { mainMenuItemConfigEmpty, MainMenuItemConfig, DisplayLocation } from '@/models/MenuItem'\n\nimport { MenuItemValidProgramMixin } from '@/common/MenuItemValidProgramMixin'\nimport { ExcludedLeagueTypesMixin } from '@/common/ExcludedLeagueTypesMixin'\nimport { adminUsers } from '@/common/Authorization/AccountRoles'\n\nimport * as authentication from '@/store/authentication'\n\n@Component\nexport default class SidebarItem extends Mixins(MenuItemValidProgramMixin, ExcludedLeagueTypesMixin) {\n @Prop({ type: Object, default: mainMenuItemConfigEmpty, required: false })\n readonly config!: MainMenuItemConfig\n\n @Getter(authentication.getterNames.impersonationActive, { namespace: authentication.namespace })\n private impersonationActive!: boolean\n\n get validLocation(): boolean {\n if (!this.config.displayLocation) return true\n return this.config.displayLocation.includes(DisplayLocation.SIDEBAR)\n }\n\n get show() {\n //If this is an admin user make sure impersonation is active\n const impersonationIsInValidState = this.$hasAtLeastOne(adminUsers) ? this.impersonationActive : true\n\n return (\n this.validLocation && this.validProgramType && impersonationIsInValidState && !this.leagueTypeExcluded\n )\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SidebarItem.vue?vue&type=template&id=0737ed80\"\nimport script from \"./SidebarItem.vue?vue&type=script&lang=ts\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport Logout from '@/components/Logout.vue'\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\n\nimport * as programStore from '@/store/programs'\nimport * as sidebar from '@/store/sidebar'\nimport * as authentication from '@/store/authentication'\n\nimport { MainMenuMixin } from '@/common/MainMenuMixin'\nimport { superUsers, adminUsers } from '@/common/Authorization/AccountRoles'\nimport { allVolunteerRoles, VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\n\nimport { MainMenuItemConfig } from '@/models/MenuItem'\n\nimport { maxStringLength } from '@/formatters/maxStringLength'\n\nimport Impersonating from '@/components/Impersonating.vue'\nimport SidebarItem from '@/components/SidebarItem.vue'\n\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport * as upwardTypes from '@/store/upwardTypes'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\n\n@Component({\n components: {\n SidebarItem,\n Logout,\n Impersonating,\n PrimaryHeading,\n },\n})\nexport default class TheSidebar extends Mixins(MainMenuMixin) {\n @Getter(sidebar.getterNames.isOpen, { namespace: sidebar.namespace })\n private isOpen!: boolean\n\n @Getter(authentication.getterNames.userData, { namespace: authentication.namespace })\n private userToken!: string | undefined\n\n @Getter(authentication.getterNames.impersonationAccountNumber, { namespace: authentication.namespace })\n private impersonationAccountNumber!: string\n\n @Getter(authentication.getterNames.impersonationActive, { namespace: authentication.namespace })\n private impersonationActive!: boolean\n\n @Getter(authentication.getterNames.accountName, { namespace: authentication.namespace })\n private accountName!: string\n\n @Getter(authentication.getterNames.firstAccountNumber, { namespace: authentication.namespace })\n private firstAccountNumber!: string\n\n @Getter(programStore.getterNames.currentProgramId, { namespace: programStore.namespace })\n private currentProgramId!: string | undefined\n\n @Mutation(sidebar.mutationNames.toggle, { namespace: sidebar.namespace })\n private toggleSidebar!: void\n\n @Getter(upwardTypes.getterNames.currentLeagueType, { namespace: upwardTypes.namespace })\n private currentLeagueType!: UpwardLeagueTypeID\n\n private allVolunteerRoles = allVolunteerRoles\n private maxStringLen = maxStringLength\n private superUsers = superUsers\n private adminUsers = adminUsers\n private impersonateLink = {\n text: 'Impersonate',\n icon: 'fas fa-mask',\n route: '/account/impersonate',\n description: '',\n name: 'impersonate',\n } as MainMenuItemConfig\n\n private get fullSiteLink() {\n const upwardUrl = process.env.VUE_APP_MYUPWARD\n const chit = `${this.userToken}.${this.impersonationAccountNumber}`\n if (this.userToken) {\n return `${upwardUrl}?token=${encodeURIComponent(chit)}&redirect=false`\n }\n return ''\n }\n\n private get show() {\n if (!this.currentLeagueType) return false\n\n if (!this.$hasAllOf([ApplicationRoles.USER_WITH_LEAGUE])) {\n return false\n }\n if (\n !this.currentLeagueType.isCamp &&\n this.$hasAllOf([VolunteerRoles.COACH]) &&\n !this.$hasAllOf([ApplicationRoles.COACH_WITH_TEAM])\n ) {\n return false\n }\n return true\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSidebar.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheSidebar.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TheSidebar.vue?vue&type=template&id=5dcf4c04&scoped=true\"\nimport script from \"./TheSidebar.vue?vue&type=script&lang=ts\"\nexport * from \"./TheSidebar.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TheSidebar.vue?vue&type=style&index=0&id=5dcf4c04&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5dcf4c04\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('header',{staticClass:\"m-0 bg-dark\"},[_c('div',{staticClass:\"d-flex justify-content-between\"},[_c('button',{staticClass:\"p-0 ml-2 btn text-white\",attrs:{\"id\":\"sidebar-toggle\",\"type\":\"button\"},on:{\"click\":_vm.toggleSidebar}},[_c('span',{staticStyle:{\"font-size\":\"xx-large\"}},[_vm._v(\"≡\")])]),(_vm.showPrograms)?_c('program-select',{staticClass:\"programs\",attrs:{\"programs\":_vm.programs},on:{\"input\":_vm.programChanged},model:{value:(_vm.selectedProgram),callback:function ($$v) {_vm.selectedProgram=$$v},expression:\"selectedProgram\"}}):_vm._e(),_c('router-link',{staticClass:\"logo pt-2 pr-2\",attrs:{\"to\":\"/programs\"}},[_c('img',{attrs:{\"src\":\"/img/logo-big.png\"}})])],1),_c('div',{staticClass:\"row-2 d-flex justify-content-center\"},[(_vm.showRoles)?_c('div',{staticClass:\"d-flex align-items-center\"},[_c('div',{staticClass:\"font-weight-bold text-white\"},[_vm._v(\"Choose a Role:\")]),_c('role-select',{staticClass:\"roles\",attrs:{\"roles\":_vm.roles},on:{\"input\":_vm.roleChanged},model:{value:(_vm.selectedRole),callback:function ($$v) {_vm.selectedRole=$$v},expression:\"selectedRole\"}})],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\n\nexport function getEmptyLeagueInfoCondensedList(): LeagueInfoCondensed[] {\n return [getEmptyLeagueInfoCondensed()]\n}\n\nexport function getEmptyLeagueInfoCondensed(): LeagueInfoCondensed {\n return {\n id: 0,\n typeProgramID: null,\n typeLeagueID: null,\n typeProductGroupID: null,\n programTypeDescription: null,\n iconLabel: null,\n leagueName: null,\n publicDisplayName: null,\n upwardLeagueID: null,\n registrationBeginDate: null,\n registrationEndDate: null,\n onlineRegistrationBeginDate: null,\n onlineRegistrationEndDate: null,\n firstEvalDate: null,\n firstPracticeDate: null,\n firstGameDate: null,\n seasonEndDate: null,\n lateDate: null,\n awardsOrderDate: null,\n typeSystemsAccessID: null,\n isPrivate: true,\n bailedReason: null,\n allowCarpoolLinks: true,\n allowCoachLinks: true,\n allowPracticeNightExclusions: true,\n isMailIn: true,\n isOPRLeague: true,\n otherRegistrationVendorName: null,\n leagueRegistrationURL: null,\n typeCountryID: null,\n expectedToPay: 0,\n totalPaid: 0,\n totalUnpaid: 0,\n donations: 0,\n isHistorical: true,\n productYear: null,\n seasonYear: null,\n schoolYear: null,\n participantCount: 0,\n participantSportCount: 0,\n participantCheerCount: 0,\n orderCount: 0,\n canDelete: true,\n canDeleteReason: null,\n lastPossibleGameDate: null,\n grades: null,\n upwardDevotionTrackTypeID: '',\n jerseyOptionSelected: false,\n primaryColorHex: null,\n secondaryColorHex: null,\n refLabel: 'Referee',\n isByAge: true,\n gradeDescriptions: [],\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('stylable-select-input',{attrs:{\"value\":_vm.value,\"text-property-name\":\"leagueName\",\"value-property-name\":\"upwardLeagueID\",\"items-list\":_vm.programs,\"config\":_vm.selectConfig},on:{\"input\":(item) => _vm.$emit('input', item)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationProvider',{attrs:{\"rules\":_vm.VeeValidateRules},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors, classes }){return [_c('div',{staticClass:\"form-group\"},[_c('input-label',{attrs:{\"label\":_vm.label,\"inline\":true,\"required\":_vm.required,\"for\":_vm.id,\"sub-label\":_vm.subLabel,\"sub-label-inline\":_vm.subLabelInline}}),(_vm.prependIcon)?_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text\"},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.prependIcon})])]):_vm._e(),_c('div',{staticClass:\"input-group\"},[_c('multiselect',{staticClass:\"select-stylable\",class:classes,style:(_vm.cssVars),attrs:{\"id\":_vm.elementId,\"disabled\":!_vm.enabled,\"name\":_vm.name,\"options\":_vm.itemsList,\"searchable\":false,\"close-on-select\":true,\"show-labels\":false,\"track-by\":_vm.valuePropertyName,\"label\":_vm.textPropertyName,\"hide-selected\":true,\"placeholder\":\"Pick a value\",\"tab-index\":_vm.tabIndex},on:{\"input\":(val) => _vm.$emit('input', val)},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}},[(_vm.showBlankItem)?_c('option',{attrs:{\"slot\":\"option\",\"disabled\":_vm.required},domProps:{\"value\":_vm.blankItemValue},slot:\"option\"},[_vm._v(\" \"+_vm._s(_vm.blankItemText)+\" \")]):_vm._e()])],1),(_vm.appendIcon)?_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\"},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.appendIcon})])]):_vm._e(),_c('div',[(errors[0])?_c('span',{staticClass:\"inline-error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()])],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.label)?_c('label',{class:[_vm.required ? 'required' : '', _vm.labelClass],attrs:{\"for\":_vm.inputId}},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.required)?_c('div',{staticClass:\"required-dot\"}):_vm._e(),(_vm.showHelp)?_c('span',{staticClass:\"p-1\",on:{\"click\":function($event){return _vm.$emit('helpClicked')}}},[_c('i',{staticClass:\"fa fa-question-circle\"})]):_vm._e(),(_vm.subLabel)?_c('small',{staticClass:\"sub-label text-muted\",class:{ 'd-inline': _vm.subLabelInline, 'd-block': !_vm.subLabelInline, 'pl-2': _vm.subLabelInline }},[_vm._v(_vm._s(_vm.subLabel))]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class InputLabel extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly inputId!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showHelp!: boolean\n\n @Prop({ type: String, required: false })\n private readonly subLabel!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly subLabelInline!: boolean\n\n @Prop({ type: String, default: 'text-uppercase', required: false })\n private readonly labelClass!: boolean\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputLabel.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputLabel.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./InputLabel.vue?vue&type=template&id=fc06e9de\"\nimport script from \"./InputLabel.vue?vue&type=script&lang=ts\"\nexport * from \"./InputLabel.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { GeneralError } from '@/common/GeneralError'\n\nexport class RuntimeException extends GeneralError {\n public isRuntime = true\n public name = 'Runtime Exception'\n}\n","import { RuntimeException } from '@/common/RuntimeException'\n\nexport class ComponentArgumentRuntimeException extends RuntimeException {\n name = 'Component Runtime Exception'\n}\n","\nimport { Component, Watch, Prop, Vue } from 'vue-property-decorator'\nimport { ValidationProvider } from 'vee-validate'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport uuid from 'uuid'\nimport { ComponentArgumentRuntimeException } from '@/elements/common/ComponentArgumentRuntimeException'\nimport Multiselect from 'vue-multiselect'\n\nexport interface SelectConfig {\n bgColor: string\n color: string\n borderColor: string\n placeholderColor: string\n highlightBgColor: string\n highlightColor: string\n}\n\nconst defaultConfig: SelectConfig = {\n bgColor: 'white',\n color: 'black',\n borderColor: 'black',\n placeholderColor: '#adadad',\n highlightBgColor: 'lightgrey',\n highlightColor: 'black',\n}\n\n@Component({\n components: {\n ValidationProvider,\n InputLabel,\n Multiselect,\n },\n})\nexport default class SelectInput extends Vue {\n private readonly guid = uuid.v4()\n\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly tabIndex!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly enabled!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly prependIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly appendIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly id!: string\n\n @Prop({ default: null, required: true })\n private readonly value!: any | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly textPropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly valuePropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly blankItemText!: string\n\n @Prop({ default: null, required: false })\n private readonly blankItemValue!: any\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showBlankItem!: boolean\n\n @Prop({ required: true }) //type is asserted on the watch\n private readonly itemsList!: [] | Record\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly valueAndTextTheSame!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly name!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly subLabel!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly subLabelInline!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly VeeValidateRules!: string\n\n @Prop({ required: false, type: Object, default: () => defaultConfig })\n private readonly config!: SelectConfig\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly preselectFirst!: boolean\n\n private internalValue: any | null = this.value\n\n private getOptionValue(item: any, index: number | symbol | string): string {\n if (this.valueAndTextTheSame) {\n return item\n }\n if (this.valuePropertyName !== '') {\n return item[this.valuePropertyName]\n }\n if (this.textPropertyName !== '') {\n return item[this.textPropertyName]\n }\n return index.toString()\n }\n\n private getOptionKey(item: any, index: number | symbol | string): string {\n return JSON.stringify(this.getOptionValue(item, index))\n }\n\n private getOptionText(item: Record): string {\n if (this.textPropertyName !== '') {\n return `${item[this.textPropertyName]}`\n }\n return item.toString()\n }\n\n public get elementId() {\n return this.id || `select-${this.guid}`\n }\n\n private handleChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChanged() {\n if (this.internalValue !== this.value) {\n this.internalValue = this.value\n }\n }\n\n assertItemListType() {\n if (!Array.isArray(this.itemsList) && !(this.itemsList instanceof Object)) {\n throw new ComponentArgumentRuntimeException(\n `Select Input ${this.name || this.label} should have an item list of type Array or Object`\n )\n }\n }\n\n private get cssVars() {\n return {\n '--bg-color': this.config.bgColor,\n '--color': this.config.color,\n '--highlight-bg-color': this.config.highlightBgColor,\n '--highlight-color': this.config.highlightColor,\n '--placeholder-color': this.config.placeholderColor,\n '--border-color': this.config.borderColor,\n }\n }\n\n @Watch('itemsList')\n private itemsListChanged() {\n this.assertItemListType()\n }\n created() {\n this.assertItemListType()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StylableSelectInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StylableSelectInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./StylableSelectInput.vue?vue&type=template&id=4596c48a&scoped=true\"\nimport script from \"./StylableSelectInput.vue?vue&type=script&lang=ts\"\nexport * from \"./StylableSelectInput.vue?vue&type=script&lang=ts\"\nimport style0 from \"./StylableSelectInput.vue?vue&type=style&index=0&id=4596c48a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4596c48a\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { getEmptyLeagueInfoCondensedList } from '@/modelHelpers/LeagueInfoCondensed'\nimport StylableSelectInput, { SelectConfig } from '@/elements/StylableSelectInput.vue'\n\n@Component({\n components: {\n StylableSelectInput,\n },\n})\nexport default class ProgramSelect extends Vue {\n @Prop({ type: Array, default: getEmptyLeagueInfoCondensedList, required: false })\n private readonly programs!: LeagueInfoCondensed[]\n\n @Prop({ required: true, type: Object })\n private readonly value!: LeagueInfoCondensed\n\n private selectConfig: SelectConfig = {\n bgColor: '#3e3e3e',\n color: 'white',\n borderColor: '#3e3e3e',\n placeholderColor: 'white',\n highlightBgColor: '#3e3e3e',\n highlightColor: 'white',\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProgramSelect.vue?vue&type=template&id=71d6b7ce\"\nimport script from \"./ProgramSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgramSelect.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('stylable-select-input',{attrs:{\"value\":_vm.value,\"text-property-name\":\"roleDescription\",\"value-property-name\":\"roleId\",\"items-list\":_vm.roles,\"config\":_vm.selectConfig},on:{\"input\":(item) => _vm.$emit('input', item)}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport StylableSelectInput, { SelectConfig } from '@/elements/StylableSelectInput.vue'\nimport { RoleUnion, getEmtpyRoleUnionList, getEmtpyRoleUnion } from '@/common/Authorization/RoleUnion'\n\n@Component({\n components: {\n StylableSelectInput,\n },\n})\nexport default class RoleSelect extends Vue {\n @Prop({ type: Array, default: getEmtpyRoleUnionList, required: false })\n private readonly roles!: RoleUnion[]\n\n @Prop({ required: false, type: Object, default: getEmtpyRoleUnion })\n private readonly value!: RoleUnion\n\n private selectConfig: SelectConfig = {\n bgColor: '#3e3e3e',\n color: 'white',\n borderColor: '#3e3e3e',\n placeholderColor: 'white',\n highlightBgColor: '#3e3e3e',\n highlightColor: 'white',\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RoleSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RoleSelect.vue?vue&type=template&id=735fd149\"\nimport script from \"./RoleSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./RoleSelect.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component, Vue } from 'vue-property-decorator'\nimport { AccountRoles, BuiltInAccountRoles } from '@/common/Authorization/AccountRoles'\nimport { RoleUnionTypes, RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { allVolunteerRolesAsRoleUnion, BuiltInVolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { VolunteerRole } from '@/models/VolunteerRole'\n\n@Component\nexport class RoleMixin extends Vue {\n private convertVolunteerRoleToRoleUnion(leagueRoles: VolunteerRole[]) {\n const roles: RoleUnion[] = []\n if (!leagueRoles) return roles\n\n leagueRoles.forEach((role: VolunteerRole) => {\n roles.push({\n roleId: role.RoleID,\n roleType: RoleUnionTypes.VOLUNTEER,\n roleDescription: BuiltInVolunteerRoles.find((x) => x.role == role.RoleID)?.description ?? role.RoleID,\n })\n })\n return roles\n }\n\n protected roleUnion(volunteerRoles: VolunteerRole[], accountRoles: string[], hasCheer: boolean) {\n const vRoles = this.convertVolunteerRoleToRoleUnion(volunteerRoles)\n const aRoles = this.convertAccountRoleToRoleUnion(accountRoles, hasCheer)\n return [...vRoles, ...aRoles]\n }\n\n private convertAccountRoleToRoleUnion(accountRoles: string[], hasCheer: boolean) {\n let roles: RoleUnion[] = []\n\n if (!accountRoles) return roles\n\n accountRoles.forEach((role: string) => {\n if (\n role !== AccountRoles.SUPER_ADMIN &&\n role !== AccountRoles.DIRECTOR &&\n role != AccountRoles.PARTNER_SUPPORT &&\n role != AccountRoles.SYS_AND_SUPPORT &&\n role != AccountRoles.UPWARD_STAFF\n ) {\n return\n }\n\n roles.push({\n roleId: role,\n roleType: RoleUnionTypes.ACCOUNT,\n roleDescription: BuiltInAccountRoles.find((x) => x.role == role)?.description ?? role,\n })\n\n if (roles.length > 0) {\n const volunteerRoles = allVolunteerRolesAsRoleUnion(hasCheer)\n roles = [...roles, ...volunteerRoles]\n }\n })\n return roles\n }\n}\n","\nimport { Mixins, Component, Watch } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { getEmptyLeagueInfoCondensed } from '@/modelHelpers/LeagueInfoCondensed'\nimport * as sidebar from '@/store/sidebar'\nimport * as programStore from '@/store/programs'\nimport * as auth from '@/store/authentication'\nimport * as authorization from '@/store/authorization'\nimport * as search from '@/store/search'\nimport * as teamStore from '@/store/team'\nimport * as resourcesStore from '@/store/resources'\nimport ProgramSelect from '@/components/ProgramSelect.vue'\nimport RoleSelect from '@/components/RoleSelect.vue'\nimport { VolunteerRole } from '@/models/VolunteerRole'\nimport { RoleUnion, getEmtpyRoleUnion } from '@/common/Authorization/RoleUnion'\nimport { RoleMixin } from '@/common/Authorization/RoleMixin'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\n\n@Component({\n components: {\n ProgramSelect,\n RoleSelect,\n },\n})\nexport default class TheHeader extends Mixins(RoleMixin) {\n @Mutation(sidebar.mutationNames.toggle, { namespace: sidebar.namespace })\n private toggleSidebar!: void\n\n @Getter(programStore.getterNames.programs, { namespace: programStore.namespace })\n private readonly programs!: LeagueInfoCondensed[]\n\n @Mutation(programStore.mutationNames.setCurrentProgram, { namespace: programStore.namespace })\n private setCurrentProgram!: ({ upwId }: { upwId: string }) => void\n\n @Mutation(teamStore.mutationNames.setCurrentTeam, { namespace: teamStore.namespace })\n private setCurrentTeam!: ({ team }: { team: DivisionTeamInfoExt | null }) => void\n\n @Mutation(resourcesStore.mutationNames.reset, { namespace: resourcesStore.namespace })\n private resetResources!: () => void\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(auth.getterNames.fullName, { namespace: auth.namespace })\n private readonly fullName!: string\n\n @Getter(auth.getterNames.leagueRolesByProgram, { namespace: auth.namespace })\n private readonly leagueRolesByProgram!: (id: string) => VolunteerRole[]\n\n @Getter(auth.getterNames.accountRoles, { namespace: auth.namespace })\n private readonly accountRoles!: string[]\n\n @Mutation(authorization.mutationNames.setCurrentRole, { namespace: authorization.namespace })\n private setCurrentRole!: ({ currentLeagueRole }: { currentLeagueRole: RoleUnion }) => void\n\n @Mutation(authorization.mutationNames.removeApplicationRole, { namespace: authorization.namespace })\n private removeApplicationRole!: ({ role }: { role: ApplicationRoles }) => void\n\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: () => RoleUnion\n\n @Mutation(search.mutationNames.reset, { namespace: search.namespace })\n private searchReset!: () => void\n\n private selectedProgram: LeagueInfoCondensed = getEmptyLeagueInfoCondensed()\n private selectedRole: RoleUnion = getEmtpyRoleUnion()\n\n private setRole() {\n if (!this.roles) return\n this.selectedRole = this.roles[0]\n this.roleChanged()\n }\n\n private get roles() {\n //returns the union of volunteer roles and account roles as RoleUnion type\n const id = this.selectedProgram.upwardLeagueID || ''\n const roles = this.roleUnion(this.leagueRolesByProgram(id), this.accountRoles, this.hasCheer)\n return roles\n }\n\n private get hasCheer() {\n const res = this.currentProgram.typeLeagueID?.includes('CHEER')\n return res || false\n }\n private get showPrograms() {\n return this.currentProgram && this.$route.name !== 'Programs'\n }\n\n private get showRoles() {\n return this.currentRole && this.$route.name !== 'Programs'\n }\n\n private programChanged() {\n if (!this.selectedProgram) return\n const id = this.selectedProgram.upwardLeagueID || ''\n this.setCurrentProgram({ upwId: id })\n this.setRole()\n this.searchReset()\n this.resetTeams()\n this.resetResources()\n this.goHome()\n }\n\n private resetTeams() {\n this.setCurrentTeam({ team: null })\n this.removeApplicationRole({ role: ApplicationRoles.COACH_WITH_TEAM })\n }\n\n private roleChanged() {\n this.setCurrentRole({ currentLeagueRole: this.selectedRole })\n this.goHome()\n this.resetResources()\n this.resetTeams()\n }\n\n private goHome() {\n if (this.$route.name !== 'Home') this.$router.push({ name: 'Home' })\n }\n\n @Watch('currentProgram')\n private currentProgramChanged() {\n this.selectedProgram = this.currentProgram\n this.programChanged()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheHeader.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TheHeader.vue?vue&type=template&id=ff736e3a&scoped=true\"\nimport script from \"./TheHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./TheHeader.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TheHeader.vue?vue&type=style&index=0&id=ff736e3a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff736e3a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"bg-white\"},[_c('div',{staticClass:\"container-fluid small\"},[_c('div',{staticClass:\"row border-top pt-1\"},[_vm._m(0),_c('div',{staticClass:\"col-9\"},[_c('p',{staticClass:\"text-right\"},[_vm._v(\" © \"+_vm._s(new Date().getFullYear())+\" Upward Unlimited ™ \"),_c('br'),_vm._v(\" Upward® is a registered trademark of Upward Unlimited. \")])])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col-3\"},[_c('a',{staticClass:\"text-muted\",attrs:{\"href\":\"https://www.upward.org/terms-of-use/\"}},[_vm._v(\"Privacy Policy\")])])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class TheFooter extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TheFooter.vue?vue&type=template&id=58e9167c&scoped=true\"\nimport script from \"./TheFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./TheFooter.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TheFooter.vue?vue&type=style&index=0&id=58e9167c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58e9167c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-column min-h-100 flex-grow-1\"},[_c('div',{staticClass:\"flex-grow-1 d-flex flex-column h-100\"},[_vm._t(\"default\")],2),_c('div',{staticClass:\"mt-5\"},[_vm._t(\"footer\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class FullBody extends Vue {}\n","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\n\nexport enum AlertTypeEnum {\n DANGER = 'danger',\n NOTICE = 'notice',\n}\n\n@Component\nexport default class Alert extends Vue {\n @Prop({ type: Boolean, required: true }) private readonly value!: boolean\n @Prop({ type: Boolean, required: false, default: true }) private readonly dismissable!: boolean\n @Prop({ type: Number, required: false, default: 10 * 1000 }) private readonly timeout!: number\n @Prop({ type: String, required: false, default: AlertTypeEnum.DANGER })\n private readonly type!: AlertTypeEnum\n\n private timeoutHandle: NodeJS.Timeout | null = null\n\n private dismiss() {\n this.$emit('input', false)\n this.$emit('change', false)\n }\n\n get typeClass() {\n switch (this.type) {\n case AlertTypeEnum.DANGER:\n return 'toast-danger'\n case AlertTypeEnum.NOTICE:\n return 'toast-notice'\n }\n }\n get classNames() {\n return `${this.value ? 'show' : ''} ${this.typeClass}`\n }\n\n @Watch('value')\n private onValueChanged() {\n if (!this.value && this.timeoutHandle) {\n clearTimeout(this.timeoutHandle)\n }\n\n if (this.value && this.timeout) {\n this.timeoutHandle = setTimeout(this.dismiss, this.timeout)\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBody.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FullBody.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FullBody.vue?vue&type=template&id=3fcf6712\"\nimport script from \"./FullBody.vue?vue&type=script&lang=ts\"\nexport * from \"./FullBody.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.isLoading)?_c('div',[_c('alert',{model:{value:(_vm.alertIsVisible),callback:function ($$v) {_vm.alertIsVisible=$$v},expression:\"alertIsVisible\"}},[_c('p',{staticClass:\"font-weight-bold m-0\"},[_vm._v(\"Login failed... \"+_vm._s(_vm.errorMessage)+\" Please try again.\")])]),(!_vm.show2FAPrompt)?_c('div',[(_vm.hasMultipleAccounts)?_c('div',{staticClass:\"mx-5 bg-white\"},[_c('partner-list',{attrs:{\"partners\":_vm.partners},on:{\"selected\":_vm.loginWithPartner}})],1):_vm._e(),(!_vm.hasMultipleAccounts)?_c('div',{staticClass:\"mx-5\"},[_c('form',{staticClass:\"row bg-gray py-5 px-sm-5\",on:{\"submit\":function($event){$event.preventDefault();return _vm.login(null, null)}}},[_c('text-input',{staticClass:\"col-12 mb-4\",attrs:{\"placeholder\":\"Email\",\"append-icon\":\"user\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('password-input',{staticClass:\"col-12\",attrs:{\"placeholder\":\"Password\"},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('div',{staticClass:\"col-12 px-3 mt-4\"},[_c('button',{staticClass:\"col-12 btn btn-primary\",attrs:{\"type\":\"submit\",\"disabled\":_vm.isLoading}},[(_vm.isLoading)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Log In\")]],2)])],1),_c('div',{staticClass:\"row bg-gray p-3\"},[_c('div',{staticClass:\"col-6\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.doRememberEmail),expression:\"doRememberEmail\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.doRememberEmail)?_vm._i(_vm.doRememberEmail,null)>-1:(_vm.doRememberEmail)},on:{\"change\":function($event){var $$a=_vm.doRememberEmail,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.doRememberEmail=$$a.concat([$$v]))}else{$$i>-1&&(_vm.doRememberEmail=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.doRememberEmail=$$c}}}}),_c('label',{staticClass:\"form-check-label text-dark ml-1\"},[_vm._v(\"Remember My Email\")])])]),_c('div',{staticClass:\"col-6 text-right\"},[_c('router-link',{staticClass:\"text-dark\",attrs:{\"to\":\"/forgot-password\"}},[_c('div',{staticClass:\"form-check-label\"},[_vm._v(\"Forgot Your Password?\")])])],1)])]):_vm._e()]):_vm._e(),(_vm.show2FAPrompt)?[(_vm.show2FAPrompt)?_c('form',{staticClass:\"row bg-gray m-2 py-5 px-sm-5\",on:{\"submit\":function($event){$event.preventDefault();return _vm.validateTOTP()}}},[_c('p',{staticClass:\"col-12 p-0 text-dark text-center\"},[_vm._v(\" Enter the Verification Code from your Authenticator App \")]),_c('text-input',{ref:\"verificationCodeReturning\",staticClass:\"col-12 mb-4\",attrs:{\"placeholder\":\"Verification Code\"},model:{value:(_vm.totpCode),callback:function ($$v) {_vm.totpCode=$$v},expression:\"totpCode\"}}),_c('button',{staticClass:\"col-12 btn btn-primary\",attrs:{\"type\":\"submit\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){return _vm.validateTOTP()}}},[(_vm.isLoading)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Verify\")]],2)],1):_vm._e()]:_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:`toast fade ${_vm.classNames}`},[_c('div',{staticClass:\"toast-body\"},[(_vm.dismissable)?_c('button',{staticClass:\"ml-2 mb-1 close\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.dismiss}},[_c('span',[_vm._v(\"×\")])]):_vm._e(),_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=00b70764&scoped=true\"\nimport script from \"./Alert.vue?vue&type=script&lang=ts\"\nexport * from \"./Alert.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Alert.vue?vue&type=style&index=0&id=00b70764&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"00b70764\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('text-like-wrapper',{attrs:{\"append-icon\":_vm.appendIcon,\"enabled\":_vm.enabled,\"id\":_vm.id,\"label\":_vm.label,\"sub-label-inline\":_vm.subLabelInline,\"sub-label\":_vm.subLabel,\"prepend-icon\":_vm.prependIcon,\"required\":_vm.required,\"vee-validate-rules\":_vm.VeeValidateRules,\"sub-text\":_vm.subText},on:{\"iconClick\":function($event){return _vm.$emit('iconClick')}},scopedSlots:_vm._u([{key:\"default\",fn:function({ classes }){return [(_vm.loadingData)?_c('div',[_c('loading',{attrs:{\"is-small\":\"\"}})],1):_vm._e(),(!_vm.loadingData)?_c('input',{ref:\"inputField\",staticClass:\"form-control\",class:[classes, { 'underline-only': _vm.underlineOnly }],attrs:{\"type\":_vm.inputType,\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"tabIndex\":_vm.tabIndex,\"disabled\":!_vm.enabled,\"size\":_vm.size,\"id\":_vm.id,\"maxlength\":_vm.maxlength,\"enabled\":_vm.enabled,\"name\":_vm.name},domProps:{\"value\":_vm.internalValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"blur\":_vm.handleBlur}}):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('base-input-wrapper',{attrs:{\"enabled\":_vm.enabled,\"id\":_vm.id,\"label\":_vm.label,\"sub-label-inline\":_vm.subLabelInline,\"sub-label\":_vm.subLabel,\"required\":_vm.required,\"vee-validate-rules\":_vm.VeeValidateRules,\"vee-validate-mode\":_vm.veeValidateMode,\"sub-text\":_vm.subText}},[_c('div',{class:{ 'input-group': _vm.hasIcon }},[(_vm.prependIcon)?_c('div',{staticClass:\"input-group-prepend bg-white clickable\"},[_c('span',{staticClass:\"input-group-text\",on:{\"click\":function($event){return _vm.$emit('iconClick')}}},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.prependIcon})])]):_vm._e(),_vm._t(\"default\"),(_vm.appendIcon)?_c('div',{staticClass:\"input-group-append bg-white clickable\"},[_c('span',{staticClass:\"input-group-text\",on:{\"click\":function($event){return _vm.$emit('iconClick')}}},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.appendIcon})])]):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[_c('validation-provider',{attrs:{\"rules\":_vm.VeeValidateRules,\"mode\":_vm.veeValidateMode},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors, classes, failedRules }){return [(_vm.label)?_c('input-label',{attrs:{\"label\":_vm.label,\"inline\":true,\"required\":_vm.required,\"input-id\":_vm.id,\"sub-label\":_vm.subLabel,\"sub-label-inline\":_vm.subLabelInline}}):_vm._e(),_vm._t(\"default\"),(_vm.subText)?_c('p',{staticClass:\"text-muted font-italic small m-0\"},[_vm._v(_vm._s(_vm.subText))]):_vm._e(),(errors[0])?_c('p',{staticClass:\"inline-error m-0\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from 'vue-property-decorator'\nimport uuid from 'uuid'\n\n/***\n * Serves as a reference for the canonical types supported by inputs with labels and validation.\n * reflect the following on the underlying input\n * - id - enables clicking on the label to proxy to the control\n * - name - enables description of a validation error\n * - enabled - enable/disable of the control\n *\n */\n@Component\nexport class BaseInputWrapperProps extends Vue {\n @Prop({ type: String, default: '', required: false }) private readonly label!: string\n @Prop({ type: Boolean, default: false, required: false }) private readonly required!: boolean\n @Prop({ type: Boolean, default: true, required: false }) private readonly enabled!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly subText!: string\n @Prop({ type: String, default: () => uuid.v4(), required: false }) public readonly id!: string\n @Prop({ type: String, default: '', required: false }) public readonly name!: string\n @Prop({ type: String, default: '', required: false }) public readonly size!: string\n\n @Prop({ type: String, default: '', required: false }) private readonly subLabel!: string\n @Prop({ type: Boolean, default: false, required: false }) private readonly subLabelInline!: boolean\n @Prop({ type: String, default: '', required: false }) private readonly VeeValidateRules!: string\n @Prop({ type: String, default: 'aggressive', required: false }) private readonly veeValidateMode!: string\n}\n","\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { BaseInputWrapperProps } from '@/elements/BaseInputWrapper/BaseInputWrapperProps'\nimport { ValidationProvider } from 'vee-validate'\n\n@Component({\n components: {\n InputLabel,\n ValidationProvider,\n },\n})\nexport default class BaseInputWrapper extends Mixins(BaseInputWrapperProps) {}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseInputWrapper.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BaseInputWrapper.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./BaseInputWrapper.vue?vue&type=template&id=4acd7ffe\"\nimport script from \"./BaseInputWrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./BaseInputWrapper.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Prop, Emit, Mixins, Component } from 'vue-property-decorator'\nimport { BaseInputWrapperProps } from '@/elements/BaseInputWrapper/BaseInputWrapperProps'\n\n/***\n * List of properties supported by the text like wrapper, expected to be passed through, and\n * shared where necessary.\n * reflect the following on the underlying input (from BaseInputWrapperProps)\n * - id - enables clicking on the label to proxy to the control\n * - name - enables description of a validation error\n * - enabled - enable/disable of the control\n */\n@Component\nexport class TextLikeWrapperProps extends Mixins(BaseInputWrapperProps) {\n @Prop({ type: String, default: '', required: false })\n readonly prependIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n readonly appendIcon!: string\n\n @Emit()\n iconClick() {\n return true\n }\n}\n","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport BaseInputWrapper from '@/elements/BaseInputWrapper/BaseInputWrapper.vue'\nimport { TextLikeWrapperProps } from '@/elements/TextLikeWrapper/TextLikeWrapperProps'\n@Component({\n components: {\n BaseInputWrapper,\n },\n})\nexport default class TextLikeWrapper extends Mixins(TextLikeWrapperProps) {\n get hasIcon() {\n return !!(this.prependIcon || this.appendIcon)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextLikeWrapper.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextLikeWrapper.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TextLikeWrapper.vue?vue&type=template&id=4c268a40&scoped=true\"\nimport script from \"./TextLikeWrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./TextLikeWrapper.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c268a40\",\n null\n \n)\n\nexport default component.exports","import { Component, Emit, Vue } from 'vue-property-decorator'\n\n/**\n * interface tells TS to expect an internalValue\n * internalValue must be public on the class in the mixin, but it can be a property or a member\n */\nexport interface TextLikeEvents {\n internalValue: unknown\n}\n\n/**\n * Serves to standardize the event model on a text-like element.\n * - defines handleInput / input\n * - defines handleBlur / blur\n * - defines handleChange / change\n *\n * define internalValue to reflect the object/scalar you want returned to the parent.\n */\n@Component\nexport class TextLikeEvents extends Vue {\n @Emit()\n change(e: any) {\n this.internalValue = e.target.value\n return this.internalValue\n }\n @Emit()\n blur() {\n return this.internalValue\n }\n\n @Emit()\n input(e: any) {\n this.internalValue = e.target.value\n return this.internalValue\n }\n handleInput(e: any) {\n this.input(e)\n }\n\n handleBlur() {\n this.blur()\n }\n\n handleChange(e: any) {\n this.change(e)\n }\n}\n","\nimport { Component, Watch, Prop, Mixins } from 'vue-property-decorator'\nimport TextLikeWrapper from '@/elements/TextLikeWrapper/TextLikeWrapper.vue'\nimport { TextLikeWrapperProps } from '@/elements/TextLikeWrapper/TextLikeWrapperProps'\nimport { TextLikeEvents } from '@/elements/TextLikeWrapper/TextLikeEvents'\nimport Loading from '@/elements/Loading.vue'\n\n@Component({\n components: {\n TextLikeWrapper,\n Loading,\n },\n})\nexport default class TextInput extends Mixins(TextLikeWrapperProps, TextLikeEvents) {\n @Prop({ type: String, default: '', required: false })\n private readonly tabIndex!: string\n\n @Prop({ type: String, default: 'text', required: false })\n private readonly inputType!: string\n\n @Prop({ required: false })\n private readonly maxlength!: number\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly underlineOnly!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly value!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly loadingData!: string\n\n internalValue: string | number = this.value\n\n private setInternalValue() {\n this.internalValue = this.value\n }\n\n @Watch('value')\n private onValueChanged() {\n this.setInternalValue()\n }\n\n mounted() {\n this.setInternalValue()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TextInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TextInput.vue?vue&type=template&id=36165718&scoped=true\"\nimport script from \"./TextInput.vue?vue&type=script&lang=ts\"\nexport * from \"./TextInput.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TextInput.vue?vue&type=style&index=0&id=36165718&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36165718\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('text-input',{attrs:{\"input-type\":_vm.inputType,\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"append-icon\":_vm.localAppendIcon,\"prepend-icon\":_vm.prependIcon,\"label\":_vm.label},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"iconClick\":_vm.eyeClicked},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport TextInput from '@/elements/TextInput.vue'\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\n\n@Component({\n components: {\n TextInput,\n },\n})\nexport default class PasswordInput extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly prependIcon!: string\n\n @Prop({ type: String, default: 'eye-slash', required: false })\n private readonly appendIcon!: string\n\n @Prop({ type: String, required: true })\n private readonly value!: string\n\n private internalValue: string = this.value\n localAppendIcon = ''\n inputType = 'password'\n\n private handleInput(e: Event) {\n this.checkAutoFillBug(e)\n this.$emit('input', this.internalValue)\n }\n\n private handleChange(e: Event) {\n this.checkAutoFillBug(e)\n this.$emit('change', this.internalValue)\n }\n\n private checkAutoFillBug(e: Event) {\n //taken from https://github.com/vuejs/vue/issues/7058 (scroll to post from tafelnl dated Dec 28, 2022)\n if (e.target instanceof HTMLInputElement && e.target.value) {\n this.internalValue = e.target.value\n }\n }\n\n eyeClicked() {\n this.inputType = this.localAppendIcon == 'eye-slash' ? 'text' : 'password'\n this.localAppendIcon = this.localAppendIcon == 'eye-slash' ? 'eye' : 'eye-slash'\n }\n @Watch('value')\n private onValueChanged() {\n this.internalValue = this.value\n }\n @Watch('appendIcon', { immediate: true })\n private iconChange() {\n this.localAppendIcon = this.appendIcon\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PasswordInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PasswordInput.vue?vue&type=template&id=715a3e74\"\nimport script from \"./PasswordInput.vue?vue&type=script&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"py-3 m-2 p-sm-5\"},[_c('h5',[_vm._v(\"Partner Selection\")]),_c('p',[_vm._v(\"Please choose which partner you would like to view\")]),_vm._l((_vm.partners),function(p){return _c('div',{key:p.accountID,staticClass:\"p-3 mb-3 clickable text-primary border-brown\",on:{\"click\":function($event){return _vm.selectPartner(p)}}},[_c('h5',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(p.name))]),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(p.address1_Line1))]),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(p.address1_Line2))]),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(p.address1_City)+\", \"+_vm._s(p.address1_StateOrProvince))])])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { AccountInfo } from '@/GeneratedTypes/ListInfo/AccountInfo'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class PartnerList extends Vue {\n @Prop({ type: Array, required: true })\n private readonly partners!: AccountInfo[]\n\n private selectPartner(partner: AccountInfo) {\n this.$emit('selected', partner)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PartnerList.vue?vue&type=template&id=28e63136&scoped=true\"\nimport script from \"./PartnerList.vue?vue&type=script&lang=ts\"\nexport * from \"./PartnerList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PartnerList.vue?vue&type=style&index=0&id=28e63136&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28e63136\",\n null\n \n)\n\nexport default component.exports","\nimport Alert from '@/components/Alert.vue'\nimport Loading from '@/elements/Loading.vue'\nimport TextInput from '@/elements/TextInput.vue'\nimport PasswordInput from '@/elements/PasswordInput.vue'\nimport PartnerList from '@/components/PartnerList.vue'\nimport { adminUsers } from '@/common/Authorization/AccountRoles'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport { namespace, actionNames, getterNames } from '@/store/authentication'\nimport partnerClient from '@/clients/partnerClient'\nimport localStorageService from '@/services/localStorageService'\nimport { RestServiceResult } from '@/services/restService'\nimport { AuthToken } from '@/models/Authorization/AuthToken'\nimport { AccountInfo } from '@/GeneratedTypes/ListInfo/AccountInfo'\nimport { LockedAccountException } from '@/common/Authentication/LockedAccountException'\nimport { TwoFactorAuthRequiredException } from '@/common/Authentication/TwoFactorAuthRequiredException'\nimport store from '@/store'\nimport * as authStore from '@/store/authentication'\n\nconst localStorageEmailKey = 'authwall-remembered-email'\nconst rememberedEmail = localStorageService.getRaw(localStorageEmailKey)\n\n@Component({\n components: {\n Alert,\n TextInput,\n PasswordInput,\n Loading,\n PartnerList,\n },\n})\nexport default class Login extends Vue {\n @Action(actionNames.login, { namespace })\n private loginAction!: ({\n email,\n password,\n accountNumber,\n }: {\n email: string\n password: string\n accountNumber: string | null\n }) => Promise>\n\n @Action(actionNames.loginByTokenWithImpersonate, { namespace })\n private loginByTokenWithImpersonate!: ({ chit }: { chit: string }) => Promise\n\n @Action(authStore.actionNames.impersonate, { namespace: authStore.namespace })\n private impersonate!: (who: { userName?: string; accountNumber: string }) => Promise\n\n @Getter(getterNames.daysUntilPasswordExpiration, { namespace })\n private daysUntilPasswordExpiration!: number | null\n\n @Getter(getterNames.totpInfo, { namespace: namespace })\n private totpInfo!: string\n\n private validateTOTPAction = store.dispatch.authentication.validateTOTP\n\n private email: string = rememberedEmail || ''\n private password = ''\n private doRememberEmail = !!rememberedEmail\n private isLoading = true\n private alertIsVisible = false\n private currentYear = new Date().getFullYear()\n private partners = [] as AccountInfo[]\n private hasMultipleAccounts = false\n private show2FAPrompt = false\n private totpCode = ''\n private errorMessage = ''\n private accountToImpersonateAfter2FA = ''\n private lastValidTotp: string | null = null\n private isReplaying = false\n\n async mounted() {\n this.isLoading = true\n this.validateTOTPAction = store.dispatch.authentication.validateTOTP\n if (this.$route.query.token) {\n try {\n await this.loginByTokenWithImpersonate({ chit: this.$route.query.token as string })\n } catch (e) {\n if (e instanceof LockedAccountException) {\n await this.$router.push('/locked-account')\n }\n if (e instanceof TwoFactorAuthRequiredException) {\n const tfaEx = e as TwoFactorAuthRequiredException\n this.$nextTick(() => {\n this.isLoading = false\n this.accountToImpersonateAfter2FA = tfaEx.accountToImpersonateAfterAuth\n this.show2FAPrompt = true\n })\n }\n }\n } else {\n this.isLoading = false\n }\n }\n\n private async login(accountNo: string | null = '', replayTOTPCode: string | null) {\n this.isLoading = true\n\n try {\n const result = await this.loginAction({\n email: this.email,\n password: this.password,\n accountNumber: accountNo,\n })\n\n if (result.isSuccess) {\n if (this.doRememberEmail) {\n localStorageService.set(localStorageEmailKey, this.email)\n }\n\n if (this.totpInfo == 'GOOD') {\n if (this.daysUntilPasswordExpiration === 0) {\n this.$router.push('/account/security')\n }\n\n if (this.$allowIfAny(adminUsers)) {\n this.$router.push('/account/impersonate')\n } else {\n this.multiAccountCheck(result.data)\n }\n } else {\n if (this.totpInfo == 'PROMPT') {\n if (replayTOTPCode != null) {\n this.totpCode = replayTOTPCode\n this.isReplaying = true\n this.validateTOTP()\n } else {\n //show totp prompt\n this.show2FAPrompt = true\n }\n }\n }\n }\n } catch (err) {\n if (err.status === 403) {\n this.$router.push({ path: '/expired-password', query: { email: this.email } })\n } else if (err.status === 401 && err.errorObject?.message == 'locked') {\n this.$router.push({ path: '/locked-account' })\n } else {\n this.errorMessage = 'User or password combination not valid.'\n this.alertIsVisible = true\n }\n } finally {\n this.isLoading = false\n }\n }\n\n private async validateTOTP() {\n if (this.isLoading && !this.isReplaying) {\n return\n }\n\n this.isLoading = true\n this.isReplaying = false\n\n try {\n const result = await this.validateTOTPAction(this.totpCode)\n\n if (this.totpInfo == 'GOOD') {\n if (this.daysUntilPasswordExpiration === 0) {\n this.$router.push('/account/security')\n }\n\n if (this.accountToImpersonateAfter2FA) {\n const who = { userName: undefined, accountNumber: this.accountToImpersonateAfter2FA }\n await this.impersonate(who)\n this.$router.replace({ name: 'Programs' })\n } else {\n if (this.$allowIfAny(adminUsers)) {\n this.$router.push('/account/impersonate')\n } else {\n this.multiAccountCheck(result)\n }\n }\n } else {\n if (this.totpInfo == 'PROMPT' && !this.show2FAPrompt) {\n this.totpCode = ''\n this.show2FAPrompt = true\n } else {\n throw new Error('Verification Code invalid. Try again.')\n }\n }\n } catch (err) {\n // deal with authentication issues.\n this.isLoading = false\n if (err.status === 403) {\n this.$router.push({ path: '/expired-password', query: { email: this.email } })\n } else if (err.status === 401 && err.errorObject?.message == 'locked') {\n this.$router.push({ path: '/locked-account' })\n } else {\n this.errorMessage = 'Verification Code invalid.'\n this.alertIsVisible = true\n }\n }\n\n this.isLoading = false\n }\n\n private async multiAccountCheck(token: AuthToken | null) {\n if (token && token.accountNumbers && token.accountNumbers.length > 1) {\n const p = await partnerClient.retreivePartners(token.accountNumbers)\n if (p) {\n this.lastValidTotp = this.totpCode\n this.hasMultipleAccounts = true\n this.partners = p\n this.show2FAPrompt = false\n }\n }\n }\n\n private loginWithPartner(p: AccountInfo) {\n this.login(p.accountNumber, this.lastValidTotp)\n }\n\n @Watch('show2FAPrompt')\n private onshow2FAPromptChanged() {\n if (this.show2FAPrompt) {\n this.$nextTick(() => {\n const verficatioCode = this.$refs.verificationCodeReturning as TextInput\n if (verficatioCode) {\n //if called from onMounted, this will be null, so just skip\n const verficatioCodeTextbox = verficatioCode.$refs.inputField as HTMLInputElement\n verficatioCodeTextbox.focus()\n }\n })\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAuthWall.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TheAuthWall.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TheAuthWall.vue?vue&type=template&id=1d107e48&scoped=true\"\nimport script from \"./TheAuthWall.vue?vue&type=script&lang=ts\"\nexport * from \"./TheAuthWall.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TheAuthWall.vue?vue&type=style&index=0&id=1d107e48&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1d107e48\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('toaster',{staticStyle:{\"max-width\":\"500px\"},attrs:{\"type\":_vm.alertTypeEnum.HAPPYDAYS},on:{\"change\":_vm.dismissInstall},model:{value:(_vm.showInstallPrompt),callback:function ($$v) {_vm.showInstallPrompt=$$v},expression:\"showInstallPrompt\"}},[_c('pwa-install-info',{attrs:{\"is-ios\":_vm.isIos()},on:{\"install\":_vm.install}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[_vm._m(0),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[(_vm.isIos)?_c('p',{staticClass:\"small\"},[_vm._v(\" Press the share icon(\"),_c('img',{staticClass:\"d-inline-block\",staticStyle:{\"height\":\"20px\"},attrs:{\"src\":\"/img/iOSShare.svg\"}}),_vm._v(\") below, and select \"),_c('span',{staticClass:\"font-italic\"},[_vm._v(\"\\\"Add to Home Screen\\\"\")])]):_vm._e()])]),(!_vm.isIos)?_c('div',{staticClass:\"row\"},[_c('button',{staticClass:\"col-12 btn btn-success position-static mt-3\",on:{\"click\":function($event){return _vm.$emit('install')}}},[_vm._v(\"Install\")])]):_vm._e()])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row text-center\"},[_c('div',{staticClass:\"col-2\"},[_c('i',{staticClass:\"fas fa-2x fa-user-clock\"})]),_c('div',{staticClass:\"col-10 lead font-italic\"},[_c('p',[_vm._v(\"Install an icon on your home screen for quicker access\")])])])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n@Component({})\nexport default class PwaInstall extends Vue {\n @Prop({ type: Boolean, default: false, required: false })\n private readonly isIos!: boolean\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PwaInstallInfo.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PwaInstallInfo.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PwaInstallInfo.vue?vue&type=template&id=3bdb49ab\"\nimport script from \"./PwaInstallInfo.vue?vue&type=script&lang=ts\"\nexport * from \"./PwaInstallInfo.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Component, Mixins } from 'vue-property-decorator'\nimport moment from 'moment'\nimport localStorageService from '@/services/localStorageService'\nimport { iOSTestMixin } from '@/common/iOSTestMixin'\n\n@Component\nexport class PwaInstallMixin extends Mixins(iOSTestMixin) {\n protected localStorageKey = 'install-reminder'\n protected showInstallPrompt = false\n protected reminderDelay = 15\n protected deferredPrompt: Event | null = null\n\n protected installPrompt() {\n //SETUP PWA INSTALL ON ANDROID\n window.addEventListener('beforeinstallprompt', (e) => {\n e.preventDefault()\n this.deferredPrompt = e\n // Stash the event so it can be triggered later.\n if (this.timeToPrompt()) {\n this.showInstallPrompt = true\n }\n })\n\n //SETUP PWA INSTALL ON ANDROID\n window.addEventListener('appinstalled', () => {\n this.showInstallPrompt = false\n })\n\n //START: SETUP PWA INSTALL ON iSO\n if (this.isIosOnBrowser()) {\n this.showIosInstall()\n }\n }\n\n protected async dismissInstall(toasterChange: boolean) {\n // if toasterChange is false, then toaster was\n // dismissed without install\n if (!toasterChange) {\n localStorageService.set(this.localStorageKey, new Date())\n this.showInstallPrompt = false\n }\n }\n\n protected async install() {\n // BeforeInstallPromptEvent is a non-standard Web API without an official stable type.\n // Skip TypeScript check\n // @ts-ignore\n const result = await this.deferredPrompt.prompt()\n if (result === 'dismissed') {\n localStorageService.set(this.localStorageKey, new Date())\n }\n this.showInstallPrompt = false\n }\n\n private timeToPrompt() {\n const dismissDate = localStorageService.getParsed(this.localStorageKey)\n if (!dismissDate) return true\n\n const threshold = moment(dismissDate).add(15, 'day')\n return moment().isAfter(threshold)\n }\n\n private showIosInstall() {\n // Only show banner once for iOS because there\n // is no way to see if app is already installed\n if (this.timeToPrompt()) {\n this.showInstallPrompt = true\n }\n const HundredYearsFromNow = new Date(new Date().setFullYear(new Date().getFullYear() + 100))\n localStorageService.set(this.localStorageKey, HundredYearsFromNow)\n }\n}\n","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport Toaster, { AlertTypeEnum } from '@/components/Toaster.vue'\nimport PwaInstallInfo from '@/components/PwaInstallInfo.vue'\nimport { PwaInstallMixin } from '@/common/PwaInstallMixin'\n\n@Component({\n components: {\n Toaster,\n PwaInstallInfo,\n },\n})\nexport default class PwaInstallPrompt extends Mixins(PwaInstallMixin) {\n private alertTypeEnum = AlertTypeEnum\n\n private mounted() {\n this.installPrompt()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PwaInstallPrompt.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PwaInstallPrompt.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PwaInstallPrompt.vue?vue&type=template&id=0eb82b24\"\nimport script from \"./PwaInstallPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./PwaInstallPrompt.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css py-1\"},[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"d-flex justify-content-center flex-column\"},[_c('role-access',{attrs:{\"allow-if-any\":_vm.coachGroup}},[_c('current-team-select',{staticClass:\"my-2 my-sm-3 col p-0\",on:{\"teamLoading\":_vm.setTeamLoadingStatus}})],1),(!_vm.isLoadingTeam && !_vm.hideMenu)?[_c('role-access',{attrs:{\"allow-if-any\":_vm.superUsers,\"deny-if-any\":_vm.allVolunteers}},[_c('div',{staticClass:\"row\"},[_c('text-input',{staticClass:\"my-2 my-sm-3 col p-0 shadow-sm mx-1\",attrs:{\"append-icon\":\"fa fa-search\",\"placeholder\":\"Enter a player, coach, or team name\"},on:{\"iconClick\":_vm.search},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}})],1)]),_c('div',{staticClass:\"grid\"},_vm._l((_vm.menu),function(item,index){return _c('menu-item',{key:index,staticClass:\"border bg-light my-1 text-primary\",attrs:{\"config\":item}})}),1)]:_vm._e(),(!_vm.isLoadingTeam && _vm.hideMenu)?[_c('div',{staticClass:\"mx-3 text-center flex-column\"},[_c('p',[_vm._v(\" Coach functionality will become available when you are assigned to a team on \"),_c('b',[_vm._v(_vm._s(_vm.currentProgram.leagueName))]),_vm._v(\". \")])])]:_vm._e()],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('role-access',{staticClass:\"p-0\",attrs:{\"allow-if-any\":_vm.config.allowIfAnyRoles,\"deny-if-any\":_vm.config.denyIfAnyRoles}},[(_vm.show)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('router-link',{staticClass:\"nav-link py-3 px-0\",attrs:{\"to\":_vm.config.route,\"exact\":\"\"}},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-2 col-sm-1 align-self-center text-primary\"},[_c('i',{staticClass:\"fa-2x\",class:_vm.config.icon})]),_c('div',{staticClass:\"col-10 col-sm-11 text-dark\"},[_c('div',[_c('h6',{staticClass:\"m-0 pl-1\"},[_vm._v(_vm._s(_vm.config.text))])]),_c('div',{staticClass:\"small pl-1\"},[_c('i',{staticClass:\"fas fa-angle-double-right fa-xs\"}),_vm._v(\" \"+_vm._s(_vm.config.description)+\" \")])])])])],1)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport { mainMenuItemConfigEmpty, MainMenuItemConfig, DisplayLocation } from '@/models/MenuItem'\nimport { MenuItemValidProgramMixin } from '@/common/MenuItemValidProgramMixin'\nimport { ExcludedLeagueTypesMixin } from '@/common/ExcludedLeagueTypesMixin'\n\n@Component\nexport default class MenuItem extends Mixins(MenuItemValidProgramMixin, ExcludedLeagueTypesMixin) {\n @Prop({ type: Object, default: mainMenuItemConfigEmpty, required: false })\n readonly config!: MainMenuItemConfig\n\n get validLocation(): boolean {\n if (!this.config.displayLocation) return true\n return this.config.displayLocation.includes(DisplayLocation.HOME)\n }\n\n get show() {\n return this.validLocation && this.validProgramType && !this.leagueTypeExcluded\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MenuItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MenuItem.vue?vue&type=template&id=8dcfc4ca\"\nimport script from \"./MenuItem.vue?vue&type=script&lang=ts\"\nexport * from \"./MenuItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('multiselect',{staticClass:\"select-stylable\",style:(_vm.cssVars),attrs:{\"options\":_vm.options,\"searchable\":false,\"close-on-select\":true,\"show-labels\":false,\"track-by\":\"name\",\"label\":\"name\",\"hide-selected\":true,\"placeholder\":\"Pick a value\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('div',{staticClass:\"text-dark\"},[_vm._v(\"test \"+_vm._s(_vm.value))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport Multiselect from 'vue-multiselect'\n\nexport interface SelectStylableConfig {\n bgColor: string\n color: string\n placeholderColor: string\n highlightBgColor: string\n highlightColor: string\n}\n\nconst defaultConfig: SelectStylableConfig = {\n bgColor: 'white',\n color: 'black',\n placeholderColor: '#adadad',\n highlightBgColor: 'lightgrey',\n highlightColor: 'black',\n}\n@Component({\n components: { Multiselect },\n})\nexport default class SelectStylable extends Vue {\n @Prop({ required: false, type: Object, default: () => defaultConfig })\n private readonly config!: SelectStylableConfig\n private value: any = ''\n\n private options = [\n { name: 'Vue.js', language: 'JavaScript' },\n { name: 'Rails', language: 'Ruby' },\n { name: 'Sinatra', language: 'Ruby' },\n { name: 'Laravel', language: 'PHP' },\n { name: 'Phoenix', language: 'Elixir' },\n ]\n\n private get cssVars() {\n return {\n '--bg-color': this.config.bgColor,\n '--color': this.config.color,\n '--highlight-bg-color': this.config.highlightBgColor,\n '--highlight-color': this.config.highlightColor,\n '--placeholder-color': this.config.placeholderColor,\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectStylable.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectStylable.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SelectStylable.vue?vue&type=template&id=699d30ae&scoped=true\"\nimport script from \"./SelectStylable.vue?vue&type=script&lang=ts\"\nexport * from \"./SelectStylable.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SelectStylable.vue?vue&type=style&index=0&id=699d30ae&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"699d30ae\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(!_vm.isLoading && _vm.teams.length)?_c('stylable-select-input',{attrs:{\"value\":_vm.selectedTeam,\"text-property-name\":\"teamName\",\"value-property-name\":\"upwardTeamID\",\"items-list\":_vm.teams,\"config\":_vm.selectConfig},on:{\"input\":_vm.setTeam}}):_vm._e(),(!_vm.isLoading && _vm.isLoadingTeam)?_c('div',{staticClass:\"muted small mt-3\"},[_vm._v(\"loading team ...\")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins, Watch } from 'vue-property-decorator'\nimport StylableSelectInput, { SelectConfig } from '@/elements/StylableSelectInput.vue'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport * as teamStore from '@/store/team'\nimport * as programStore from '@/store/programs'\nimport * as authorizeStore from '@/store/authorization'\nimport { Action, Getter, Mutation } from 'vuex-class'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { cloneDeep } from 'lodash'\nimport Loading from '@/elements/Loading.vue'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\n\n@Component({\n components: {\n Loading,\n StylableSelectInput,\n },\n})\nexport default class CurrentTeamSelect extends Mixins(IsCheerMixin) {\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Mutation(teamStore.mutationNames.setCurrentTeam, { namespace: teamStore.namespace })\n private setCurrentTeam!: ({ team }: { team: DivisionTeamInfoExt | null }) => void\n\n @Mutation(authorizeStore.mutationNames.addApplicationRole, { namespace: authorizeStore.namespace })\n private addApplicationRole!: ({ role }: { role: ApplicationRoles }) => void\n\n @Mutation(authorizeStore.mutationNames.removeApplicationRole, { namespace: authorizeStore.namespace })\n private removeApplicationRole!: ({ role }: { role: ApplicationRoles }) => void\n\n @Action(teamStore.actionNames.fetchLeagueTeams, { namespace: teamStore.namespace })\n private fetchLeagueTeams!: ({ upwId, force }: { upwId: string | null; force: boolean }) => Promise\n\n @Action(teamStore.actionNames.fetchTeamsForACoach, { namespace: teamStore.namespace })\n private fetchTeamsForACoach!: ({ force }: { force: boolean }) => Promise\n\n @Action(teamStore.actionNames.fetchAndSetCurrentTeam, { namespace: teamStore.namespace })\n private fetchAndSetCurrentTeam!: ({\n upwId,\n programTypeId,\n divisionId,\n teamId,\n }: {\n upwId: string\n programTypeId: string\n divisionId: number\n teamId: number\n }) => Promise\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(teamStore.getterNames.teamsForCurrentUser, { namespace: teamStore.namespace })\n private teamsForCurrentUser!: DivisionTeamInfoExt[]\n\n private selectedTeam: DivisionTeamInfoExt | null = null\n\n private isLoading = false\n private isLoadingTeam = false\n private teams = [] as DivisionTeamInfoExt[]\n private selectConfig: SelectConfig = {\n bgColor: 'white',\n color: 'black',\n borderColor: '#3e3e3e',\n placeholderColor: 'white',\n highlightBgColor: '#3e3e3e',\n highlightColor: 'white',\n }\n\n private async mounted() {\n await this.loadTeamList()\n }\n\n private async setDefaultTeamID() {\n if (this.currentTeam && this.currentTeam.upwardTeamID) {\n this.selectedTeam = cloneDeep(this.currentTeam)\n } else {\n if (this.teams.length > 0) {\n this.selectedTeam = this.teams[0]\n }\n }\n await this.setCurrentTeamInStore()\n }\n\n private async setCurrentTeamInStore() {\n const teamID = this.selectedTeam ? this.selectedTeam.upwardTeamID : null\n const teamExistsInList = this.teams.find((t) => t.upwardTeamID === teamID)\n\n if (!this.teams || !teamExistsInList) {\n // current team might no longer be in the list if the program has changed in TheHeader\n this.setCurrentTeam({ team: null })\n return\n }\n\n if (!this.currentTeam || this.currentTeam.upwardTeamID != teamID) {\n try {\n this.isLoadingTeam = true\n await this.fetchAndSetCompleteTeamData()\n } finally {\n this.isLoadingTeam = false\n }\n }\n }\n\n private async fetchAndSetCompleteTeamData() {\n // The payload returned from fetchTeamsByProgram or fetchTeamsForACoach does\n // not contain all the information needed for a team, so fetch complete team info\n const hasTeam = await this.fetchTeam()\n this.setApplicationRoles(hasTeam)\n }\n\n async fetchTeam() {\n const team = this.selectedTeam\n return await this.fetchAndSetCurrentTeam({\n upwId: team?.upwardLeagueID ?? '',\n programTypeId: team?.typeProgramID ?? '',\n divisionId: team?.divisionID ?? 0,\n teamId: team?.teamID ?? 0,\n })\n }\n\n private setApplicationRoles(hasTeam: boolean) {\n if (hasTeam) this.addApplicationRole({ role: ApplicationRoles.COACH_WITH_TEAM })\n if (!hasTeam) this.removeApplicationRole({ role: ApplicationRoles.COACH_WITH_TEAM })\n }\n\n private setTeam(item: DivisionTeamInfoExt) {\n this.selectedTeam = item\n this.setCurrentTeamInStore()\n }\n\n private setTeams() {\n // if the user is a coach; fetchTeamsForACoach. It returns all coach teams regardless of program, so filter accordingly\n // It the user is a director pretending to be a coach; fetchTeamsByProgram which is for one program, so all teams will always return from filtering operation\n if (!this.currentProgram) return [] as DivisionTeamInfoExt[]\n const list = cloneDeep(this.teamsForCurrentUser)\n this.teams = list\n .filter((t: DivisionTeamInfoExt) => t.upwardLeagueID === this.currentProgram.upwardLeagueID)\n .sort((a, b) =>\n (a.teamName ?? '') === (b.teamName ?? '') ? 0 : (a.teamName ?? '') < (b.teamName ?? '') ? -1 : 1\n )\n }\n\n private async loadTeamList() {\n if (this.$allowIfAny(superUsers)) {\n await this.loadTeamsForSuperUsers()\n } else {\n await this.loadTeamsForCoaches()\n }\n await this.setTeams()\n await this.setDefaultTeamID()\n }\n\n private async loadTeamsForSuperUsers() {\n this.isLoading = this.forceReload\n try {\n await this.fetchLeagueTeams({\n upwId: this.currentProgram.upwardLeagueID,\n force: this.forceReload,\n })\n } finally {\n this.isLoading = false\n }\n }\n\n private async loadTeamsForCoaches() {\n this.isLoading = this.forceReload\n try {\n if (this.forceReload) {\n // fetchTeamsForACoach are for all programs so only call once\n await this.fetchTeamsForACoach({ force: this.forceReload })\n }\n } finally {\n this.isLoading = false\n }\n }\n\n private get forceReload(): boolean {\n //force reload if this is not a superUser, and teams have never been loaded\n if (!this.$allowIfAny(superUsers)) {\n return this.teamsForCurrentUser.length === 0\n }\n\n //force reload if the currentProgram changed, and this is a superUser\n if (this.currentProgram && this.currentTeam) {\n return this.currentProgram.upwardLeagueID !== this.currentTeam.upwardLeagueID\n }\n return true\n }\n\n @Watch('currentProgram')\n private currentProgramChanged() {\n this.loadTeamList()\n this.setTeams()\n this.setCurrentTeamInStore()\n }\n\n @Watch('isLoadingTeam')\n private isLoadingTeamChange() {\n this.$emit('teamLoading', this.isLoadingTeam)\n }\n\n @Watch('isLoading')\n private isLoadingChange() {\n this.$emit('teamLoading', this.isLoading)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentTeamSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CurrentTeamSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CurrentTeamSelect.vue?vue&type=template&id=5a1197b6\"\nimport script from \"./CurrentTeamSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./CurrentTeamSelect.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport MenuItem from '@/components/MenuItem.vue'\nimport { MainMenuMixin } from '@/common/MainMenuMixin'\nimport TextInput from '@/elements/TextInput.vue'\nimport SelectStylable, { SelectStylableConfig } from '@/elements/SelectStylable.vue'\nimport { Getter, Mutation } from 'vuex-class'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport * as programStore from '@/store/programs'\nimport * as upwardTypes from '@/store/upwardTypes'\nimport * as authorization from '@/store/authorization'\nimport * as search from '@/store/search'\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { coachGroup, allVolunteerRoles, VolunteerRoles } from '@/common/Authorization/VolunteerRoles.ts'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\nimport CurrentTeamSelect from '@/components/CurrentTeamSelect.vue'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\n\n@Component({\n components: {\n InputLabel,\n MenuItem,\n SelectStylable,\n TextInput,\n CurrentTeamSelect,\n },\n})\nexport default class Home extends Mixins(MainMenuMixin) {\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: () => RoleUnion\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Mutation(search.mutationNames.setSearchTerms, { namespace: search.namespace })\n private setSearchTerms!: ({ searchTerms }: { searchTerms: string }) => void\n\n @Getter(upwardTypes.getterNames.currentLeagueType, { namespace: upwardTypes.namespace })\n private currentLeagueType!: UpwardLeagueTypeID\n private searchTerm = ''\n private superUsers = superUsers\n private coachGroup = [...coachGroup]\n private allVolunteers = allVolunteerRoles\n private isLoadingTeam = false\n\n private get isCurrentRoute() {\n return this.$route.path\n }\n\n private get hideMenu(): boolean {\n // Show the menu unless this user has the Coach Role and no no teams\n const isCoach = this.$hasAtLeastOne([VolunteerRoles.COACH])\n if (!isCoach) return false // this is not a coach, so show the menu\n\n const isActiveCoach = this.$hasAllOf([VolunteerRoles.COACH, ApplicationRoles.COACH_WITH_TEAM])\n const isCamp = this.currentLeagueType.isCamp\n const hideMenu = !isActiveCoach && !(isCamp && isCoach)\n return hideMenu\n }\n\n private search() {\n this.setSearchTerms({ searchTerms: this.searchTerm })\n this.$router.push('/search')\n }\n\n private setTeamLoadingStatus(val: boolean) {\n this.isLoadingTeam = val\n }\n\n private colors: SelectStylableConfig = {\n bgColor: 'blue',\n color: 'white',\n placeholderColor: 'white',\n highlightBgColor: 'lightblue',\n highlightColor: 'white',\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=b5b57548&scoped=true\"\nimport script from \"./Home.vue?vue&type=script&lang=ts\"\nexport * from \"./Home.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Home.vue?vue&type=style&index=0&id=b5b57548&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5b57548\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex page-state-toggle pb-3\"},_vm._l((_vm.states),function(state,index){return _c('button',{key:index,staticClass:\"btn btn-toggle w-100\",class:{ isActive: state === _vm.value },on:{\"click\":function($event){return _vm.toggleState(state)}}},[_vm._v(\" \"+_vm._s(state)+\" \")])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n@Component\nexport default class PageStateToggle extends Vue {\n @Prop({ type: Array, default: [], required: false }) private readonly states!: string[]\n @Prop({ type: String, default: null, required: false }) private readonly value!: string | null\n\n private currentState = ''\n\n private mounted() {\n if (!this.value) this.$emit('input', this.states[0])\n }\n\n private toggleState(state: string) {\n this.$emit('input', state)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageStateToggle.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PageStateToggle.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PageStateToggle.vue?vue&type=template&id=d98c93ca&scoped=true\"\nimport script from \"./PageStateToggle.vue?vue&type=script&lang=ts\"\nexport * from \"./PageStateToggle.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PageStateToggle.vue?vue&type=style&index=0&id=d98c93ca&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d98c93ca\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"bg-light p-2 border-bottom\"},_vm._l((_vm.crumbs),function(crumb,index){return _c('span',{key:index,on:{\"click\":function($event){return _vm.go(crumb.routeName, crumb.params, crumb.active)}}},[_c('span',{staticClass:\"font-weight-bold\",class:{\n 'text-underline': crumb.active,\n clickable: crumb.active,\n }},[_vm._v(_vm._s(crumb.label))]),(index < _vm.crumbs.length - 1)?_c('span',{staticClass:\"px-2\"},[_vm._t(\"divider\",function(){return [_vm._v(\"/\")]})],2):_vm._e()])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Crumb } from '@/common/Crumbs'\nimport { Location } from 'vue-router'\n\n@Component\nexport default class Breadcrumbs extends Vue {\n @Prop({ type: Array, default: [], required: false }) private readonly crumbs!: Crumb[]\n\n private go(routeName: string, routeParams: Record, isActive: boolean) {\n if (!isActive) return\n if (!routeName || routeName === this.$route.name) {\n throw 'invalid route provided in Breadcrumb'\n }\n const routeObj: Location = { name: routeName }\n if (routeParams) {\n routeObj.params = routeParams\n }\n\n this.$router.push(routeObj)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumbs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumbs.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Breadcrumbs.vue?vue&type=template&id=91bf6ff2\"\nimport script from \"./Breadcrumbs.vue?vue&type=script&lang=ts\"\nexport * from \"./Breadcrumbs.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Misc. route information used in multiple places, for example, breadcrumbs.\n\nimport { MenuItemConfig } from '@/models/MenuItem'\nconst home: MenuItemConfig = {\n text: 'Home',\n route: '/home',\n name: 'Home',\n}\n\nconst profile: MenuItemConfig = {\n text: 'Profile',\n route: 'profile',\n name: 'Profile',\n}\n\nconst account: MenuItemConfig = {\n text: 'Account',\n route: 'account',\n name: 'Account',\n}\n\nconst password: MenuItemConfig = {\n text: 'Password',\n route: 'password',\n name: 'password',\n}\n\nconst search: MenuItemConfig = {\n text: 'Search',\n route: '/search',\n name: 'search',\n}\n\nconst player: MenuItemConfig = {\n text: 'Player',\n route: '/player/:individualId',\n name: 'player',\n}\n\nconst coach: MenuItemConfig = {\n text: 'Coach',\n route: '/coach/:individualId',\n name: 'coach',\n}\n\nconst team: MenuItemConfig = {\n text: 'Team',\n route: '/team/:programId/:divisionId/:teamId',\n name: 'team',\n}\n\nconst gettingStarted: MenuItemConfig = {\n text: 'Getting Started',\n route: '/start',\n name: 'start',\n}\n\nexport enum RouterItemsEnum {\n HOME = 'Home',\n SEARCH = 'Search',\n PLAYER = 'Player',\n COACH = 'Coach',\n TEAM = 'Team',\n START = 'Getting Started',\n PROFILE = 'Profile',\n PASSWORD = 'Password',\n ACCOUNT = 'Account',\n}\n\nexport const RouterItems: Record = {\n [RouterItemsEnum.HOME]: home,\n [RouterItemsEnum.SEARCH]: search,\n [RouterItemsEnum.PLAYER]: player,\n [RouterItemsEnum.COACH]: coach,\n [RouterItemsEnum.TEAM]: team,\n [RouterItemsEnum.START]: gettingStarted,\n [RouterItemsEnum.PROFILE]: profile,\n [RouterItemsEnum.PASSWORD]: password,\n [RouterItemsEnum.ACCOUNT]: account,\n}\n","import { Roles } from './types/types'\n\nexport function isPermitted(usersRoles: Array, roles: Roles, all: boolean) {\n if (!roles && !all) return true\n if (!usersRoles && roles) return false\n if (!roles) roles = []\n roles = Array.isArray(roles) ? roles : roles.trim().split(',')\n const intersection = getIntersection(usersRoles, roles)\n return all ? intersection.length >= roles.length : intersection.length > 0\n}\n\nexport function isDenied(usersRoles: Array, roles: Roles, all: boolean) {\n if (!roles) return false\n if (!usersRoles && roles) return true\n const intersection = getIntersection(usersRoles, roles)\n return all ? intersection.length >= roles.length : intersection.length > 0\n}\n\nfunction getIntersection(usersRoles: Array, roles: Roles) {\n if (!roles) return []\n roles = Array.isArray(roles) ? roles : roles.trim().split(',')\n const intersection = roles.reduce((intersect: Array, perm: string) => {\n if (!usersRoles.map((s: string) => s.trim()).includes(perm.trim())) {\n return intersect\n }\n if (!intersect.includes(perm.trim())) {\n intersect.push(perm)\n }\n return intersect\n }, [])\n return intersection\n}\n\nexport enum PermissionChecks {\n DENY_IF_ALL = 'denyIfAll',\n ALLOW_IF_ALL = 'allowIfAll',\n DENY_IF_ANY = 'denyIfAny',\n ALLOW_IF_ANY = 'allowIfAny',\n}\n\nexport const defaultRanking = [\n PermissionChecks.DENY_IF_ANY,\n PermissionChecks.ALLOW_IF_ANY,\n PermissionChecks.DENY_IF_ALL,\n PermissionChecks.ALLOW_IF_ALL,\n]\n\nexport const allowFirstRanking = [\n PermissionChecks.ALLOW_IF_ANY,\n PermissionChecks.DENY_IF_ANY,\n PermissionChecks.ALLOW_IF_ALL,\n PermissionChecks.DENY_IF_ALL,\n]\n\nexport const ChecksOrderA = [\n PermissionChecks.ALLOW_IF_ALL,\n PermissionChecks.DENY_IF_ANY,\n PermissionChecks.DENY_IF_ALL,\n PermissionChecks.ALLOW_IF_ANY,\n]\n\nexport const denyIfAnyOnly = [PermissionChecks.DENY_IF_ANY]\nexport const allowIfAnyOnly = [PermissionChecks.ALLOW_IF_ANY]\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.component,{tag:\"component\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { TeamPlayerInfo } from 'src/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { getEmptyTeamPlayerInfo } from '@/modelHelpers/TeamPlayerInfo'\nimport { cloneDeep } from 'lodash'\nimport addDays from '@/utils/addDays'\n\ninterface GameLineupBase {\n gameId: number\n divisionId: number\n teamId: number\n upwardTypeId: string | null\n createDate: string | null\n isScheduledGame: boolean\n round: number\n}\n\nexport interface GameLineup extends GameLineupBase {\n players: GameLineupPlayer[]\n}\n\nexport interface GameLineupPlayer {\n player: TeamPlayerInfo\n foul: number\n starts: Start[]\n}\n\nexport interface GameLineupWithRotation extends GameLineupBase {\n lineup: Lineup[] //player lineup\n startingSide: SidesEnum | null // only used for football\n completed: boolean\n currentSegment: number | null\n currentSide: string | null // only used for football\n playersPerSegment: number\n}\n\nexport interface GameLineupPositionPlayer extends TeamPlayerInfo {\n positionText: string | null\n}\n\nexport interface Lineup {\n segment: number\n side: SidesEnum | null // used for football\n players: GameLineupPositionPlayer[]\n inactivePlayers: TeamPlayerInfo[]\n}\n\nexport enum SidesEnum {\n OFFFENSE = 'Offense',\n DEFENSE = 'Defense',\n BATTING = 'Batting',\n FIELDING = 'Fielding',\n}\n\nexport function getEmptyGameLineupWithRotation(): GameLineupWithRotation {\n return {\n gameId: 0,\n divisionId: 0,\n teamId: 0,\n lineup: [] as Lineup[],\n startingSide: null,\n upwardTypeId: '',\n createDate: null,\n completed: false,\n currentSegment: null,\n currentSide: null,\n isScheduledGame: false,\n round: 0,\n playersPerSegment: 0,\n }\n}\n\nexport function getEmptyGameLineup(): GameLineup {\n return {\n gameId: 0,\n divisionId: 0,\n teamId: 0,\n upwardTypeId: '',\n createDate: null,\n isScheduledGame: false,\n round: 0,\n players: [] as GameLineupPlayer[],\n }\n}\n\nexport function getEmptyLineup(): Lineup {\n return {\n segment: 0,\n side: null,\n players: [] as GameLineupPositionPlayer[],\n inactivePlayers: [] as TeamPlayerInfo[],\n }\n}\n\nexport function getEmptyVolleyballPlayer(): GameLineupPlayer {\n return {\n player: {} as TeamPlayerInfo,\n foul: 0,\n starts: cloneDeep(volleyballStarts),\n }\n}\n\n//Basketball level 4\nexport function getEmptyBasketballPlayer(): GameLineupPlayer {\n return {\n player: {} as TeamPlayerInfo,\n foul: 0,\n starts: cloneDeep(basketballStarts),\n }\n}\n\nexport function getEmptyGameLineupPositionPlayer() {\n return { ...getEmptyTeamPlayerInfo(), positionText: '' }\n}\n\nconst volleyballStarts: Start[] = [\n { id: 1, label: 'Game 1', started: false },\n { id: 2, label: 'Game 2', started: false },\n { id: 3, label: 'Game 3', started: false },\n]\n\nconst basketballStarts: Start[] = [\n { id: 1, label: 'Qtr 1', started: false },\n { id: 2, label: 'Qtr 2', started: false },\n { id: 3, label: 'Qtr 3', started: false },\n { id: 4, label: 'Qtr 4', started: false },\n]\n\ninterface Start {\n id: number\n label: string\n started: boolean\n}\nexport enum SubstitutionType {\n Default = 'DEFAULT',\n Tranditional = 'TRADITIONAL',\n}\nexport interface SubstitutionPreference {\n type: SubstitutionType\n expiry: Date\n}\nexport class SubstitutionPreferenceImpl implements SubstitutionPreference {\n type: SubstitutionType\n expiry: Date\n constructor(type: SubstitutionType, expiry: Date) {\n this.type = type\n this.expiry = expiry\n }\n public static createNew(type: SubstitutionType, expiry: Date | number): SubstitutionPreferenceImpl {\n const exp = expiry instanceof Date ? expiry : addDays(new Date(), expiry)\n return new SubstitutionPreferenceImpl(type, exp)\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('div',{staticClass:\"w-100\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('simple-menu',{staticClass:\"float-right\"},[_c('ul',{staticClass:\"p-2\"},[(_vm.allowSubstitutionPreference)?_c('li',[_c('button',{staticClass:\"btn p-0 m-0\",on:{\"click\":_vm.defaultSubstitution}},[_c('i',{staticClass:\"fas fa-exchange-alt pr-2\"}),_vm._v(\" Level 4 Substitution \")])]):_vm._e(),_c('li',[_c('router-link',{attrs:{\"to\":`${_vm.gameId}/reactivate`}},[_c('i',{staticClass:\"fas fa-user-plus pr-2\"}),_vm._v(\" Reactivate Player \")])],1),_c('li',[_c('router-link',{attrs:{\"to\":`${_vm.gameId}/format`}},[_c('i',{staticClass:\"fab fa-slack-hash pr-2\"}),_vm._v(\" Change Game Format \")])],1),_c('li',[(!_vm.loadingRecognitions)?_c('regenerate-lineup',{staticClass:\"border-top mt-3\",on:{\"regenerateLineup\":_vm.createLineup}}):_vm._e()],1)])]),(_vm.showLineup)?_c('list-paging',{staticClass:\"mt-3 clear-float\",attrs:{\"max-length\":_vm.pagingMaxLength,\"program-type\":_vm.programType,\"numberOfSegments\":_vm.currentTeamNumberOfSegments},on:{\"upperLimit\":_vm.upperLimit},model:{value:(_vm.currentSegment),callback:function ($$v) {_vm.currentSegment=$$v},expression:\"currentSegment\"}}):_vm._e(),(_vm.showStartingSideSelector)?_c('starting-side-toggle',{staticClass:\"mb-5\",model:{value:(_vm.footballStartingSide),callback:function ($$v) {_vm.footballStartingSide=$$v},expression:\"footballStartingSide\"}}):_vm._e(),(_vm.showLineup)?[(_vm.showSideToggle)?_c('page-state-toggle',{staticClass:\"border-top pt-2\",attrs:{\"states\":_vm.sides},model:{value:(_vm.currentSide),callback:function ($$v) {_vm.currentSide=$$v},expression:\"currentSide\"}}):_vm._e(),(_vm.isBaseballOrSoftball && !_vm.currentSide)?[_c('div',{staticClass:\"w-100 text-center\"},[_vm._v(\"Please select \"+_vm._s(_vm.sides[0])+\" or \"+_vm._s(_vm.sides[1])+\" above\")])]:[(!_vm.loadingRecognitions)?_c('game-day-lineup',{staticClass:\"mt-3\",attrs:{\"players\":_vm.localCurrentPlayers},on:{\"player-removed\":_vm.playerRemoved}}):_vm._e(),(_vm.loadingRecognitions)?_c('div',{staticClass:\"center-spinner-on-view mt-3\"},[_c('loading')],1):_vm._e()]]:_vm._e()],2),_c('confirmation-modal',{attrs:{\"is-small\":\"\",\"title\":\"Game Complete\",\"show\":_vm.showConfirmation},on:{\"onResponse\":_vm.completeGame}},[(!_vm.completingGame)?[_vm._v(\" Do you want to mark this game as complete? \")]:_vm._e(),(_vm.completingGame)?[_c('div',{staticClass:\"center-spinner-on-view\"},[_c('div',[_vm._v(\"Completing ...\")]),_c('div',{staticClass:\"text-center\"},[_c('loading')],1)])]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { TeamPlayerInfo } from 'src/GeneratedTypes/ListInfo/TeamPlayerInfo'\n\nimport { cloneDeep } from 'lodash'\nexport function rankPlayers(players: Array): Array {\n if (!players) return [] as Type[]\n const clone = cloneDeep(players)\n return useRosterRanking(clone) ? clone.sort(rankByRosterRank) : clone.sort(rankByEvalScore)\n}\nfunction rankByRosterRank(a: TeamPlayerInfo, b: TeamPlayerInfo) {\n const aRank = a.rosterRanking || 'Z'\n const bRank = b.rosterRanking || 'Z'\n if (aRank < bRank) return -1\n if (aRank > bRank) return 1\n return 0\n}\nfunction rankByEvalScore(a: TeamPlayerInfo, b: TeamPlayerInfo) {\n const aRank = a.evaluationScore\n const bRank = b.evaluationScore\n if (aRank < bRank) return 1\n if (aRank > bRank) return -1\n return 0\n}\nexport function useRosterRanking(players: TeamPlayerInfo[]) {\n const arr = players ?? []\n return !arr.every((i) => !i.rosterRanking)\n}\n\nexport function setRosterRanking(players: TeamPlayerInfo[]) {\n players.forEach((p: TeamPlayerInfo, i: number) => (p.rosterRanking = numberToLetters(i)))\n return players\n}\n\nfunction numberToLetters(num: number) {\n let letters = ''\n while (num >= 0) {\n letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'[num % 26] + letters\n num = Math.floor(num / 26) - 1\n }\n return letters\n}\n","export function gameFormatToPlayersPerSeg(typeGameFormat: string | null): number {\n if (!typeGameFormat) throw Error('There is no game format set for this team')\n const fmt = typeGameFormat.split('x')\n return Number(fmt[0])\n}\n","import { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\n\nexport function getEmptyTeamPlayerInfo(): TeamPlayerInfo {\n return {\n leagueID: 0,\n typeProgramID: '',\n divisionID: 0,\n divisionName: '',\n teamID: 0,\n teamName: '',\n typePositionID: '',\n typeTapeDownReasonID: '',\n manualAssignment: false,\n draftNumber: 0,\n rosterRanking: '',\n evaluationScore: 0,\n positionScore: 0,\n athleticScore: 0,\n extraScore: 0,\n draftExceptions: null,\n contacts: [],\n individualID: 0,\n firstName: '',\n lastName: '',\n middleInitial: '',\n gender: '',\n grade: '',\n birthDate: null,\n churchName: '',\n addresses: null,\n phoneNumbers: null,\n emailAddresses: null,\n thirdPartyClientIDs: null,\n formattedNameFirstLast: '',\n formattedNameLastFirst: '',\n formattedNamePrivate: '',\n coachAssignedJerseyNumber: '',\n }\n}\n\nexport function getEmptyTeamPlayerInfoList(): TeamPlayerInfo[] {\n return [getEmptyTeamPlayerInfo()]\n}\n","export default function addDays(date: Date, days: number) {\n const result = new Date(date)\n result.setDate(result.getDate() + days)\n return result\n}\n","import { Component, Vue } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport * as teamStore from '@/store/team'\nimport * as lineupStore from '@/store/lineup'\nimport { GameLineupWithRotation, getEmptyGameLineupWithRotation } from '@/models/Lineup'\n\n@Component\nexport class CurrentGameLineupWithRotationMixin extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(lineupStore.getterNames.lineupsWithRotation, { namespace: lineupStore.namespace })\n protected readonly allLineups!: GameLineupWithRotation[]\n\n @Mutation(lineupStore.mutationNames.upsertLineupWithRotation, { namespace: lineupStore.namespace })\n protected upsertLineup!: ({ lineup }: { lineup: GameLineupWithRotation }) => void\n\n @Mutation(lineupStore.mutationNames.deleteLineupWithRotation, { namespace: lineupStore.namespace })\n protected deleteLineupWithRotation!: ({ lineup }: { lineup: GameLineupWithRotation }) => void\n\n protected get currentGameLineupWithRotation() {\n const lineup = this.maintainDataModel()\n return lineup ? lineup : getEmptyGameLineupWithRotation()\n }\n\n private maintainDataModel(): GameLineupWithRotation | undefined {\n //From time to time the JSON structure of a gameLineupWithRotation may need to change.\n //Each time a gameLineup is retieved, make sure it is up to date.\n\n //All lineups more than a year old are automatically deleted,\n // so any check more than a year old can be removed.\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const lineup = this.allLineups.find((l) => {\n return l.gameId === this.gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n\n let dirty = false\n if (!lineup) return\n\n /*** CHECKS ***/\n if (\n lineup.lineup.length > 0 &&\n lineup.lineup[0].players.length > 0 &&\n !lineup.lineup[0].players[0].hasOwnProperty('positionText')\n ) {\n //this is not a valid GameLineupWithRotation, remove it so the lineup will regenerate\n //#4576\n dirty = true\n this.deleteLineupWithRotation({ lineup })\n }\n\n //** Return clean GameLineupWithRotation ***/\n if (dirty) {\n return this.allLineups.find((l) => {\n return l.gameId === this.gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n }\n return lineup\n }\n\n protected currentGameLineupById(gameId: number) {\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const lineup = this.allLineups.find((l) => {\n return l.gameId === gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n return lineup ? lineup : getEmptyGameLineupWithRotation()\n }\n\n protected get gameId(): number {\n if (!this.$route.params.gameId) throw Error('Missing gameId on Route')\n return Number(this.$route.params.gameId)\n }\n}\n","import { Component, Vue } from 'vue-property-decorator'\nimport { Getter, Action } from 'vuex-class'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport * as teamStore from '@/store/team'\nimport * as gameStore from '@/store/game'\n\n@Component\nexport class CurrentGameLineupCommonMixin extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n @Action(gameStore.actionNames.fetchCurrentGameRecognitions, { namespace: gameStore.namespace })\n private fetchCurrentGameRecognitions!: ({\n upwId,\n gameId,\n teamId,\n }: {\n upwId: string | null\n gameId: number\n teamId: number\n }) => Promise\n\n async fetchRecognitions(gameId: number) {\n // Only load recogntions if games are scheduled. If they are\n // generated from the division.gameCount property, there is no recognition functionality\n const upwId = this.currentTeam.upwardLeagueID\n const teamId = this.currentTeam.teamID\n await this.fetchCurrentGameRecognitions({ upwId, teamId, gameId: gameId })\n }\n}\n","export enum ProgramEnum {\n BASKETBALL = 'BASKETBALL',\n VOLLEYBALL = 'VOLLEYBALL',\n FOOTBALL = 'FOOTBALL',\n SOCCER = 'SOCCER',\n BASKETBALCHEERLEADING = 'BASKETBALCHEERLEADING',\n FOOTBALLCHEERLEADING = 'FOOTBALLCHEERLEADING',\n BASEBALL = 'BASEBALL',\n SOFTBALL = 'SOFTBALL',\n MSSSELECT = 'UPWARDSELECTMSS',\n}\n\nexport function isFootball(program: string | null | undefined) {\n return program === ProgramEnum.FOOTBALL\n}\n\nexport function isBaseballOrSoftball(program: string | null | undefined) {\n return program === ProgramEnum.BASEBALL || program === ProgramEnum.SOFTBALL\n}\n","import { cloneDeep } from 'lodash'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { TeamPlayerInfo } from 'src/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\nimport { ProgramEnum } from '@/common/programEnum'\nimport {\n GameLineupWithRotation,\n Lineup,\n GameLineup,\n getEmptyGameLineupWithRotation,\n getEmptyGameLineup,\n GameLineupPlayer,\n getEmptyVolleyballPlayer,\n getEmptyBasketballPlayer,\n} from '@/models/Lineup'\nimport store from '@/store'\n\nexport function inactivatePlayer(\n player: TeamPlayerInfo,\n gameLineup: GameLineupWithRotation\n): GameLineupWithRotation {\n const clone = cloneDeep(gameLineup)\n clone.lineup.forEach((l) => {\n if (l.segment >= Number(clone.currentSegment)) {\n if (l.inactivePlayers === undefined) {\n l.inactivePlayers = []\n }\n const isExistingInactivePlayer = l.inactivePlayers.some((p) => p.individualID === player.individualID)\n if (!isExistingInactivePlayer) {\n l.inactivePlayers.push(player)\n }\n }\n })\n return clone\n}\n\nexport function inactivePlayers(gameLineup: GameLineupWithRotation): TeamPlayerInfo[] | undefined {\n //Loop through the inactive players across all the segments and\n //create a list of unique inactived players\n if (!gameLineup) return\n\n let inactivePlayersFromAllSegments = [] as TeamPlayerInfo[]\n gameLineup.lineup.forEach((l) => {\n if (l.inactivePlayers) {\n inactivePlayersFromAllSegments = [...inactivePlayersFromAllSegments, ...l.inactivePlayers]\n }\n })\n\n if (!inactivePlayersFromAllSegments) return\n const uniquePlayerIds = [...new Set(inactivePlayersFromAllSegments.map((p) => p.individualID))]\n const uniqueInactivePlayers = [] as TeamPlayerInfo[]\n uniquePlayerIds.forEach((id) => {\n const player = inactivePlayersFromAllSegments.find((p) => p.individualID === id)\n if (player) uniqueInactivePlayers.push(player)\n })\n\n return uniqueInactivePlayers\n}\n\nexport function activatePlayer(\n gameLineup: GameLineupWithRotation,\n playerId: number\n): GameLineupWithRotation | undefined {\n const gameLineupClone: GameLineupWithRotation = cloneDeep(gameLineup)\n if (!gameLineupClone?.currentSegment) return\n const currentSegment = gameLineupClone?.currentSegment\n gameLineupClone.lineup?.forEach((l) => {\n if (l.segment >= currentSegment && l.inactivePlayers) {\n l.inactivePlayers = l.inactivePlayers.filter((p) => p.individualID != playerId)\n }\n })\n return gameLineupClone\n}\n\nexport function adjustLineup(\n originalLineup: GameLineupWithRotation,\n players: TeamPlayerInfo[] | null,\n programType: UpwardProgramTypeID | undefined\n): GameLineupWithRotation {\n if (!players) throw Error('Cannot adjust game lineup wihtout players')\n if (!programType) throw Error('Cannot adjust game lineup without programType')\n const numberOfSegments = store.getters.teams.currentTeamNumberOfSegments\n\n //Generate a large pool of players from which to generate lineups\n const lgPlayerPool = generateLineupPool(numberOfSegments, players)\n\n //Pool of player offset for this particular game in the season\n const gamePlayerPool = getGamePlayerPool(originalLineup.round, lgPlayerPool)\n\n // copy current GameLineup to preserve values\n const newLineup = cloneDeep(originalLineup)\n\n //create each segment\n newLineup.lineup.forEach((seg, i) => {\n const lastPlayerPreviousSegment = getLastPlayerFromPreviousSegment(i, newLineup)\n const newPlayerList = playerListAdjusted(\n originalLineup.lineup[i].inactivePlayers,\n gamePlayerPool,\n lastPlayerPreviousSegment,\n originalLineup.playersPerSegment\n )\n //preserve any postiionTexts set for players that didn;t drop out of this rotation\n seg.players = newPlayerList.map((x) => {\n return {\n ...x,\n positionText:\n originalLineup.lineup[i]?.players.find((op) => {\n return op.individualID == x.individualID\n })?.positionText ?? '',\n }\n })\n })\n return newLineup\n}\nfunction getGamePlayerPool(gameNumberInTheSeason: number, playerPool: TeamPlayerInfo[]) {\n //For each game in the season the first player is offset by one\n //so everyone gets a change to start. This function returns the pool\n //of players for this game taking into account that offset, but ingnoring\n //any substitutions\n const naturalGameLineupStart = gameNumberInTheSeason - 1\n return playerPool.slice(naturalGameLineupStart)\n}\n\nfunction getLastPlayerFromPreviousSegment(\n index: number,\n newLineup: GameLineupWithRotation\n): TeamPlayerInfo | null {\n //Find last player from the previous segment, or set to null\n if (index != 0) {\n const prevSegmentPlayers = newLineup.lineup[index - 1].players\n return prevSegmentPlayers[prevSegmentPlayers.length - 1]\n }\n return null\n}\n\nfunction playerListAdjusted(\n inactivePlayers: TeamPlayerInfo[],\n gamePlayerPool: TeamPlayerInfo[],\n lastPlayerPreviousSegment: TeamPlayerInfo | null,\n playersPerSegment: number\n): TeamPlayerInfo[] {\n let startIndex: number | null = null\n let activePlayers = cloneDeep(gamePlayerPool)\n\n if (inactivePlayers) {\n activePlayers = gamePlayerPool.filter((p) => {\n return !inactivePlayers.some((ip) => ip.individualID === p.individualID)\n })\n }\n\n //If lastPlayerPreviousSegment is null, then it's the first segment so the staring index is 0\n if (!lastPlayerPreviousSegment) {\n startIndex = 0\n } else {\n // If there is a lastPlayerPreviousSegment, check to see if it is in the active players.\n // If it is, start the segement with the player after lastPlayerPreviousSegment. If it isn't, find the next\n // ranked player in the roster to start with.\n startIndex = getNextPlayerIndex(gamePlayerPool, activePlayers, lastPlayerPreviousSegment.individualID)\n }\n const endIndex = startIndex + playersPerSegment\n return activePlayers.slice(startIndex, endIndex)\n}\n\nfunction getNextPlayerIndex(\n gamePlayerPool: TeamPlayerInfo[],\n activePlayers: TeamPlayerInfo[],\n individualId: number\n) {\n let i = 0\n let nextPlayerIndex: number | null = null\n while (!nextPlayerIndex) {\n const idx = activePlayers.findIndex((p) => {\n return p.individualID === getPlayerIdByOffest(gamePlayerPool, individualId, i)\n })\n if (idx === -1) {\n nextPlayerIndex = 0\n i++\n } else {\n nextPlayerIndex = idx + 1\n }\n }\n return nextPlayerIndex\n}\n\nfunction getPlayerIdByOffest(playerPool: TeamPlayerInfo[], id: number, offset: number): number {\n if (offset === 0) return id\n const idx = playerPool.findIndex((p) => p.individualID === id)\n if (idx === playerPool.length - 1) return playerPool[0].individualID\n return playerPool[idx + offset].individualID\n}\n\nexport function getRound(currentGame: DivisionGameInfo | undefined, gameId: number): number {\n if (currentGame) return currentGame.roundNumber\n return gameId\n}\n\nexport function getIsScheduled(currentGame: DivisionGameInfo | undefined): boolean {\n if (currentGame) return true\n return false\n}\n\nexport function generateLineup(\n programType: UpwardProgramTypeID,\n divisionId: number,\n teamId: number,\n gameId: number,\n round: number,\n players: TeamPlayerInfo[],\n isScheduleGame: boolean\n): GameLineup {\n const gameLineup = getEmptyGameLineup()\n\n gameLineup.gameId = gameId\n gameLineup.teamId = teamId\n gameLineup.isScheduledGame = isScheduleGame\n gameLineup.divisionId = divisionId\n gameLineup.upwardTypeId = programType.upwardTypeID\n gameLineup.createDate = new Date().toISOString()\n gameLineup.round = round\n if (programType.upwardTypeID === ProgramEnum.BASKETBALL) {\n gameLineup.players = basketballPlayers(players)\n }\n\n if (programType.upwardTypeID === ProgramEnum.VOLLEYBALL) {\n gameLineup.players = volleyballPlayers(players)\n }\n return gameLineup\n}\n\nfunction volleyballPlayers(players: TeamPlayerInfo[]): GameLineupPlayer[] {\n return players.map((p) => {\n const lineupPlayer = getEmptyVolleyballPlayer()\n lineupPlayer.player = p\n return lineupPlayer\n })\n}\n\nfunction basketballPlayers(players: TeamPlayerInfo[]): GameLineupPlayer[] {\n return players.map((p) => {\n const lineupPlayer = getEmptyBasketballPlayer()\n lineupPlayer.player = p\n return lineupPlayer\n })\n}\n\nexport function generateLineupWithRotation(\n programType: UpwardProgramTypeID,\n divisionId: number,\n teamId: number,\n gameId: number,\n round: number,\n players: TeamPlayerInfo[],\n playersPerSegment: number,\n isScheduleGame: boolean\n): GameLineupWithRotation {\n const numberOfSegments = store.getters.teams.currentTeamNumberOfSegments\n const gameLineup = getEmptyGameLineupWithRotation()\n\n gameLineup.gameId = gameId\n gameLineup.teamId = teamId\n gameLineup.isScheduledGame = isScheduleGame\n gameLineup.divisionId = divisionId\n gameLineup.upwardTypeId = programType.upwardTypeID\n gameLineup.createDate = new Date().toISOString()\n gameLineup.round = round\n gameLineup.currentSegment = 1\n gameLineup.playersPerSegment = playersPerSegment\n gameLineup.lineup = generateSegments(numberOfSegments)\n const lineupPool = generateLineupPool(numberOfSegments, players)\n gameLineup.lineup.forEach((seg) => {\n seg.players = playerList(lineupPool, seg.segment, round, playersPerSegment).map((x) => {\n return { ...x, positionText: '' }\n })\n })\n if (programType.upwardTypeID === ProgramEnum.FOOTBALL) {\n adjustSegments(gameLineup)\n }\n return gameLineup\n}\n\nfunction adjustSegments(gameLineup: GameLineupWithRotation) {\n //For football each segment has two lineups. One for defense and one for offense.\n //Correct the lineup from 1 2 3 4 5 6 to 1 1 2 2 3 3\n gameLineup.lineup.forEach((l) => (l.segment = Math.ceil(l.segment / 2)))\n}\n\nfunction generateLineupPool(numberOfSegments: number, players: TeamPlayerInfo[]): TeamPlayerInfo[] {\n //create a player list long enough to support lineup generation\n const localPlayers = sortPlayers(players)\n let lineupPool = [] as TeamPlayerInfo[]\n const fullSize = numberOfSegments * 2\n for (let i = 0; i < fullSize; i++) {\n lineupPool = [...lineupPool, ...localPlayers]\n }\n return lineupPool\n}\n\nfunction sortPlayers(players: TeamPlayerInfo[]): TeamPlayerInfo[] {\n const clonePlayers = cloneDeep(players)\n return clonePlayers.sort((a, b) => {\n const aRank = a.rosterRanking ?? ''\n const bRank = b.rosterRanking ?? ''\n if (aRank < bRank) return -1\n if (aRank > bRank) return 1\n return 0\n })\n}\n\nfunction playerList(\n lineupPool: TeamPlayerInfo[],\n segment: number,\n gameNumberInTheSeason: number,\n playersPerSegment: number\n): TeamPlayerInfo[] {\n const start = playersPerSegment * (segment - 1) + (gameNumberInTheSeason - 1)\n const end = start + playersPerSegment\n const segmentPlayers: TeamPlayerInfo[] = lineupPool.slice(start, end)\n return segmentPlayers.length ? segmentPlayers : ([] as TeamPlayerInfo[])\n}\n\nfunction generateSegments(numberOfSegments: number): Lineup[] {\n return [...Array(numberOfSegments)].map((_, i) => {\n return {\n segment: i + 1,\n players: [] as TeamPlayerInfo[],\n } as Lineup\n })\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{directives:[{name:\"on-clickaway\",rawName:\"v-on-clickaway\",value:(_vm.close),expression:\"close\"}]},[_c('div',{ref:\"menu\",staticClass:\"menu\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.show),expression:\"show\"}],ref:\"menuContent\",staticClass:\"menu-content\",style:(_vm.style),attrs:{\"tabindex\":\"0\"},on:{\"click\":_vm.close}},[_vm._t(\"default\")],2),_c('div',{staticClass:\"p-3\",on:{\"click\":_vm.open}},[_c('i',{staticClass:\"fas fa-ellipsis-v\"})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { directive as onClickaway } from 'vue-clickaway'\n\nenum xOffsetEnum {\n RIGHT,\n LEFT,\n CENTER,\n}\n\nenum yOffsetEnum {\n ABOVE,\n BELOW,\n}\n\n@Component({\n directives: { onClickaway },\n})\nexport default class SimpleMenu extends Vue {\n @Prop({ type: Boolean, default: false, required: false })\n private readonly display!: boolean\n\n @Prop({ type: Number, default: xOffsetEnum.LEFT, required: false })\n private readonly xOffset!: xOffsetEnum\n\n @Prop({ type: Number, default: yOffsetEnum.BELOW, required: false })\n private readonly yOffset!: yOffsetEnum\n\n private left: number | string = 'inherit'\n private top: number | string = 'inherit'\n private right: number | string = ' inherit'\n private bottom: number | string = 'inherit'\n private show = false\n\n private get style() {\n return {\n top: this.top,\n left: this.left,\n right: this.right,\n bottom: this.bottom,\n }\n }\n\n private close() {\n this.show = false\n }\n\n private open() {\n const parent = this.$refs.menu as HTMLElement\n const parentHeight = parent.clientHeight * 0.65\n const parentWidth = parent.clientWidth * 0.65\n if (this.yOffset === yOffsetEnum.BELOW) {\n this.top = `${parentHeight}px`\n }\n if (this.yOffset === yOffsetEnum.ABOVE) {\n this.bottom = `${parentHeight}px`\n }\n if (this.xOffset === xOffsetEnum.RIGHT) {\n this.left = `${parentWidth}px`\n }\n if (this.xOffset === xOffsetEnum.LEFT) {\n this.right = `${parentWidth}px`\n }\n const elem = this.$refs.menuContent as HTMLElement\n\n Vue.nextTick(() => elem.focus())\n this.show = !this.show\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleMenu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleMenu.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SimpleMenu.vue?vue&type=template&id=2ff00a09&scoped=true\"\nimport script from \"./SimpleMenu.vue?vue&type=script&lang=ts\"\nexport * from \"./SimpleMenu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./SimpleMenu.vue?vue&type=style&index=0&id=2ff00a09&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2ff00a09\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"side-toggle text-center\"},[_c('div',[(_vm.showChoices)?_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(\"On which side will your team be starting on?\")]):_vm._e(),_vm._l((_vm.options),function(option,i){return _c('div',{key:i,staticClass:\"form-check form-check-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedValue),expression:\"selectedValue\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"id\":_vm.name + i,\"name\":_vm.name},domProps:{\"value\":option.value,\"checked\":_vm._q(_vm.selectedValue,option.value)},on:{\"change\":[function($event){_vm.selectedValue=option.value},function($event){_vm.editable = false}]}}),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":_vm.name + i}},[_vm._v(_vm._s(option.text))])])})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { SidesEnum } from '@/models/Lineup'\n\n@Component\nexport default class StartingSideToggle extends Vue {\n @Prop({ required: false, type: String, default: null })\n private readonly value!: string\n\n private selectedValue: string | null = null\n private editable = false\n private name = 'pick_a_side'\n private options = [\n { text: 'Starting Offense', value: SidesEnum.OFFFENSE },\n { text: 'Starting Defense', value: SidesEnum.DEFENSE },\n ]\n\n private mounted() {\n this.selectedValue = this.value\n }\n\n private get showChoices(): boolean {\n return !this.selectedValue || this.editable === true\n }\n\n @Watch('selectedValue')\n private selectedValueChanged() {\n this.$emit('input', this.selectedValue)\n }\n @Watch('value')\n private valueChanged() {\n this.selectedValue = this.value\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartingSideToggle.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./StartingSideToggle.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./StartingSideToggle.vue?vue&type=template&id=4448db9a&scoped=true\"\nimport script from \"./StartingSideToggle.vue?vue&type=script&lang=ts\"\nexport * from \"./StartingSideToggle.vue?vue&type=script&lang=ts\"\nimport style0 from \"./StartingSideToggle.vue?vue&type=style&index=0&id=4448db9a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4448db9a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('modal',{attrs:{\"title\":_vm.title,\"show-close\":false,\"is-small\":_vm.isSmall},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_vm._t(\"default\"),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn btn-primary\",on:{\"click\":_vm.onYes}},[_vm._t(\"confirm\",function(){return [_vm._v(\"Yes\")]})],2),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.onNo}},[_vm._t(\"cancel\",function(){return [_vm._v(\"No\")]})],2)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isVisible)?_c('dialog',{staticClass:\"modal fade show bg-light-15\",attrs:{\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{ref:\"innerDialog\",staticClass:\"modal-dialog\",class:{ 'modal-dialog-sm': _vm.isSmall },attrs:{\"role\":\"dialog\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{ref:\"dialog\",staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\",class:_vm.headerClass},[_c('h5',{staticClass:\"modal-title\"},[(_vm.headerIcon)?_c('i',{staticClass:\"pr-2\",class:_vm.headerIcon}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),(_vm.showClose)?_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"aria-label\":\"Close\"},on:{\"click\":_vm.hide}},[_c('i',{class:_vm.closeIconClass})]):_vm._e()]),_c('div',{staticClass:\"modal-body thin-scrollbar\"},[_vm._t(\"default\")],2),(this.$slots.footer)?_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\")],2):_vm._e()])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop, Ref, Watch } from 'vue-property-decorator'\nimport focustrap, { FocusTrap } from 'focus-trap'\nimport tabbable from 'tabbable'\n\n@Component\nexport default class Modal extends Vue {\n @Ref('dialog') dialog!: HTMLDialogElement\n @Ref('innerDialog') innerDialog!: HTMLDialogElement\n @Prop({ type: Boolean, required: true }) private readonly value!: boolean\n @Prop({ type: String, required: true }) private readonly title!: string\n @Prop({ type: Boolean, required: false, default: false }) private readonly isSmall!: boolean\n @Prop({ type: Boolean, required: false, default: true }) private readonly showClose!: boolean\n\n @Prop({ type: String, required: false, default: 'bg-dark text-white' })\n private readonly headerClass!: string\n\n @Prop({ type: String, required: false, default: '' })\n private readonly headerIcon!: string\n @Prop({ type: String, required: false, default: 'fa fa-times' })\n private readonly closeIconClass!: string\n private focustrap: FocusTrap | null = null\n\n private hide() {\n this.$emit('input', false)\n this.$emit('change', false)\n }\n\n private get isVisible() {\n return this.value\n }\n\n /***\n * Works to establish a focus trap. If this library is garbage we should\n * backup to b-modal on bootstrap-vue\n * see rules for tabbable and focus-trap\n * @param b {boolean} show status.\n */\n @Watch('value')\n async changeVisible(b: boolean) {\n this.$nextTick(() => {\n if (b) {\n if (!this.focustrap) {\n const ifc = tabbable(this.dialog.querySelector('.modal-body') ?? this.dialog)\n this.focustrap = focustrap(this.dialog, {\n initialFocus: (ifc?.[0] as HTMLElement | null) ?? this.dialog,\n })\n }\n\n this.focustrap.activate({})\n }\n if (!b && this.focustrap) {\n this.focustrap.deactivate({})\n this.focustrap = null\n }\n })\n }\n beforeDestroy() {\n if (this.focustrap) {\n this.focustrap.deactivate({})\n this.focustrap = null\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=5897b848&scoped=true\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=5897b848&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5897b848\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport Modal from '@/components/Modal.vue'\n\n@Component({\n components: {\n Modal,\n },\n})\nexport default class ConfirmationModal extends Vue {\n @Prop({ type: String, required: true })\n private readonly title!: string\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly show!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly isSmall!: boolean\n\n private modalIsVisible = false\n\n private mounted() {\n this.modalIsVisible = this.show\n }\n\n private onYes() {\n this.$emit('onResponse', true)\n }\n\n private onNo() {\n this.$emit('onResponse', false)\n }\n @Watch('show')\n private onProgramChange(newValue: boolean) {\n this.modalIsVisible = newValue\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmationModal.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ConfirmationModal.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ConfirmationModal.vue?vue&type=template&id=b959be0c\"\nimport script from \"./ConfirmationModal.vue?vue&type=script&lang=ts\"\nexport * from \"./ConfirmationModal.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[(_vm.sortedPlayers.length > 0)?_c('ul',{staticClass:\"unstyled p-0 m-2\"},_vm._l((_vm.players),function(item,i){return _c('li',{key:`${item.individualID}${i}`},[_c('game-day-player',{attrs:{\"player\":item,\"enable-recognition\":_vm.hasScheduledGames,\"showPositionEdit\":_vm.showPositionEdit},on:{\"remove\":_vm.removePlayer}})],1)}),0):_vm._e(),(_vm.players.length == 0)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"Sorry. There are no players available yet.\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.show)?_c('div',{class:{ 'border-bottom': _vm.showComment && _vm.showRecognitionName }},[_c('div',{staticClass:\"gameday-player-grid\",class:{\n 'gameday-1': _vm.enableRecognition,\n 'gameday-2': !_vm.enableRecognition,\n }},[_c('div',[(_vm.enableRecognition)?_c('router-link',{attrs:{\"to\":_vm.to}},[_c('star',{attrs:{\"recognition-id\":_vm.playerRecognition.recognitionId}})],1):_vm._e()],1),_c('player-rankable',{attrs:{\"player\":_vm.player,\"show-rank\":_vm.showRosterRanking,\"linkable\":false,\"showPositionEdit\":_vm.showPositionEdit}}),_c('div',{staticClass:\"pr-2 recognition-id\"},[(_vm.showRemove)?_c('button',{staticClass:\"btn btn-remove\",on:{\"click\":function($event){_vm.confirmRemoval = true}}},[_c('i',{staticClass:\"fas fa-minus-circle\"})]):_vm._e(),(_vm.playerRecognition && _vm.showRecognitionName && _vm.playerRecognition.recognitionId != 'BLANK')?_c('div',{staticClass:\"title-case\"},[_vm._v(\" \"+_vm._s(_vm.playerRecognition.recognitionId)+\" \")]):_vm._e()])],1),(_vm.playerRecognition && _vm.showComment && _vm.playerRecognition.comment)?_c('div',{staticClass:\"pl-4 pb-4\"},[_vm._v(\" \"+_vm._s(_vm.playerRecognition.comment)+\" \")]):_vm._e(),_c('confirmation-modal',{attrs:{\"is-small\":\"\",\"title\":\"Remove PlayerP\",\"show\":_vm.confirmRemoval},on:{\"onResponse\":_vm.removePlayer}},[_c('div',[_vm._v(\" Do you want to remove \"),_c('b',[_vm._v(_vm._s(_vm.player.formattedNameFirstLast))]),_vm._v(\" from the game lineup? \")])])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"player-rankable grid-container row align-items-center\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.playerNameFormatted))]),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.positionDescription))])]),(_vm.showJerseyEdit)?_c('div',{staticClass:\"col-jersey\"},[_c('text-input',{attrs:{\"subText\":\"Jersey #\",\"maxlength\":2,\"enabled\":\"\"},model:{value:(_vm.player.coachAssignedJerseyNumber),callback:function ($$v) {_vm.$set(_vm.player, \"coachAssignedJerseyNumber\", $$v)},expression:\"player.coachAssignedJerseyNumber\"}})],1):_vm._e(),(_vm.showPositionEdit)?_c('div',{staticClass:\"col-position\"},[_c('text-input',{attrs:{\"subText\":\"Position\",\"maxlength\":3,\"enabled\":\"\"},model:{value:(_vm.player.positionText),callback:function ($$v) {_vm.$set(_vm.player, \"positionText\", $$v)},expression:\"player.positionText\"}})],1):_vm._e(),(_vm.showRank)?_c('div',{staticClass:\"text-secondary font-weight-bold ranking col-1\"},[_vm._v(\" \"+_vm._s(_vm.player.rosterRanking)+\" \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport TextInput from '@/elements/TextInput.vue'\nimport { GameLineupPositionPlayer, getEmptyGameLineupPositionPlayer } from '@/models/Lineup'\nimport { UpwardPositionTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardPositionTypeID'\nimport store from '@/store'\n\n@Component({\n components: {\n TextInput,\n },\n})\nexport default class Player extends Vue {\n @Prop({ type: Object, default: getEmptyGameLineupPositionPlayer, required: false })\n private readonly player!: GameLineupPositionPlayer\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showRank!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showJerseyEdit!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showPositionEdit!: boolean\n\n get positionDescription() {\n const posType = store.getters.upwardTypes.positionTypes.find(\n (x: UpwardPositionTypeID) => x.upwardTypeID == this.player.typePositionID\n )\n return posType?.description ?? ''\n }\n\n get playerNameFormatted() {\n return this.showJerseyEdit\n ? this.player.formattedNameFirstLast ?? ''\n : this.player.formattedNameFirstLast\n ? `${this.player.formattedNameFirstLast} ${this.player.coachAssignedJerseyNumber ? '#' : ''}${\n this.player.coachAssignedJerseyNumber ?? ''\n }`\n : ''\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerRankable.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerRankable.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PlayerRankable.vue?vue&type=template&id=4c118470&scoped=true\"\nimport script from \"./PlayerRankable.vue?vue&type=script&lang=ts\"\nexport * from \"./PlayerRankable.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PlayerRankable.vue?vue&type=style&index=0&id=4c118470&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c118470\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('img',{attrs:{\"src\":require(`@/assets/${_vm.starImg}`)}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n//maps recognitionID to file name\nexport const starsMap = new Map([\n ['CHRISTLIKENESS', 'star-white.png'],\n ['EFFORT', 'star-blue.png'],\n ['SPORTSMANSHIP', 'star-gold.png'],\n ['OFFENSE', 'star-grey.png'],\n ['DEFENSE', 'star-red.png'],\n ['SERVING', 'star-grey.png'],\n ['HITTING', 'star-red.png'],\n ['CHEERS', 'star-grey.png'],\n ['LEADERSHIP', 'star-red.png'],\n ['SPIRIT', 'star-gold.png'],\n ['BLANK', 'star-blank.png'],\n ['SKILLS', 'star-grey.png'],\n ['TEAMWORK', 'star-red.png'],\n])\n\n@Component\nexport default class Star extends Vue {\n @Prop({ type: String, default: 'BLANK', required: false })\n private readonly recognitionId!: string\n\n private get starImg(): string {\n const file = starsMap.get(this.recognitionId)\n return file ? file : 'star-blank.png'\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Star.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Star.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Star.vue?vue&type=template&id=1ea29000\"\nimport script from \"./Star.vue?vue&type=script&lang=ts\"\nexport * from \"./Star.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport * as gameStore from '@/store/game'\nimport PlayerRankable from '@/components/PlayerRankable.vue'\nimport Star from '@/components/Star.vue'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { DivisionGamePlayerInfo } from '@/GeneratedTypes/ListInfo/DivisionGamePlayerInfo'\nimport { GameLineupPositionPlayer } from '@/models/Lineup'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { CheerSquadRecognition } from '@/GeneratedTypes/CheerSquadRecognition'\nimport { getEmptyTeamPlayerInfo } from '@/modelHelpers/TeamPlayerInfo'\nimport ConfirmationModal from '@/components/ConfirmationModal.vue'\n\ninterface DisplayablePlayer {\n id: number\n recognitionId: string\n comment: string | null\n}\n\n@Component({\n components: { PlayerRankable, Star, ConfirmationModal },\n})\nexport default class GameDayPlayer extends Mixins(IsCheerMixin) {\n @Prop({ type: Object, default: getEmptyTeamPlayerInfo, required: false })\n private readonly player!: TeamPlayerInfo | GameLineupPositionPlayer\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showComment!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showRecognitionName!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly showRosterRanking!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly showPositionEdit!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly showRemove!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly enableRecognition!: boolean\n\n @Getter(gameStore.getterNames.currentGameRecognitions, { namespace: gameStore.namespace })\n private gameRecognitions!: DivisionGamePlayerInfo[]\n\n @Getter(gameStore.getterNames.currentCheerGameRecognitions, { namespace: gameStore.namespace })\n private cheerGameRecognitions!: CheerSquadRecognition[]\n\n private confirmRemoval = false\n\n get playerRecognition(): DisplayablePlayer | null {\n if (!this.enableRecognition) return null\n if (this.isCheer) {\n return this.cheerPlayer\n } else {\n return this.sportPlayer\n }\n }\n\n get showRecognitionDetails() {\n return this.enableRecognition && (this.showRecognitionName || this.showComment)\n }\n\n get show(): boolean {\n if (!this.enableRecognition) return true\n if (this.enableRecognition && this.playerRecognition) return true\n return false\n }\n\n get sportPlayer(): DisplayablePlayer | null {\n // Sport and cheer players are different types so convert\n // a sport player to a universal type that can contain either (aka a DisplayablePlayer)\n if (!this.enableRecognition) return null\n const player = {\n id: this.player.individualID,\n recognitionId: '',\n comment: '',\n } as DisplayablePlayer\n const p = this.gameRecognitions.find((p) => p.playerIndividualID === this.player.individualID)\n if (p) {\n player.recognitionId = p.typePlayerRecognitionID ?? ''\n player.comment = p.recognitionNote ?? ''\n }\n return player\n }\n\n get cheerPlayer(): DisplayablePlayer | null {\n // Sport and cheer players are different types so convert\n // a cheerleader to a universal that can contain either (aka a DisplayablePlayer)\n if (!this.enableRecognition) return null\n const cheer = {\n id: this.player.individualID,\n recognitionId: '',\n comment: '',\n } as DisplayablePlayer\n const c = this.cheerGameRecognitions.find((p) => p.playerIndividualID === this.player.individualID)\n if (c) {\n cheer.recognitionId = c?.typePlayerRecognitionID ?? ''\n cheer.comment = c?.note ?? ''\n }\n return cheer\n }\n\n get gameId(): string {\n return this.$route.params.gameId\n }\n\n get to(): string {\n if (!this.playerRecognition) return ''\n return `${this.$route.matched[0].path}/game/${this.gameId}/recognition/${this.playerRecognition.id}`\n }\n\n private removePlayer(response: boolean) {\n if (response) {\n this.$emit('remove', this.player)\n }\n\n this.confirmRemoval = false\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayPlayer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayPlayer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDayPlayer.vue?vue&type=template&id=6962e865&scoped=true\"\nimport script from \"./GameDayPlayer.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDayPlayer.vue?vue&type=script&lang=ts\"\nimport style0 from \"./GameDayPlayer.vue?vue&type=style&index=0&id=6962e865&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6962e865\",\n null\n \n)\n\nexport default component.exports","import { Component, Vue } from 'vue-property-decorator'\nimport { cloneDeep } from 'lodash'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { Getter, Mutation } from 'vuex-class'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { adjustLineup } from '@/services/lineupService'\nimport * as teamStore from '@/store/team'\nimport * as lineupStore from '@/store/lineup'\nimport { GameLineupWithRotation } from '@/models/Lineup'\n\n@Component\nexport class RecalculateLineupMixin extends Vue {\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n protected readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n @Mutation(lineupStore.mutationNames.upsertLineupWithRotation, { namespace: lineupStore.namespace })\n upsertLineup!: ({ lineup }: { lineup: GameLineupWithRotation }) => void\n\n protected recalculateLineup(GameLineup: GameLineupWithRotation) {\n const currentLineup = cloneDeep(GameLineup)\n const program = this.allProgramTypes.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n const lineup = adjustLineup(currentLineup, this.currentTeam.players, program)\n this.upsertLineup({ lineup })\n }\n}\n","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport { cloneDeep } from 'lodash'\nimport { Getter } from 'vuex-class'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { getEmptyTeamPlayerInfo } from '@/modelHelpers/TeamPlayerInfo'\nimport GameDayPlayer from '@/components/GameDayPlayer.vue'\nimport * as teamStore from '@/store/team'\nimport { inactivatePlayer } from '@/services/lineupService'\nimport { RecalculateLineupMixin } from '@/common/RecalculateLineupMixin'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\nimport { SidesEnum } from '@/models/Lineup'\nimport { ProgramEnum } from '@/common/programEnum'\n\n@Component({ components: { GameDayPlayer } })\nexport default class GameDayLineup extends Mixins(\n RecalculateLineupMixin,\n CurrentGameLineupWithRotationMixin\n) {\n @Prop({ type: Array, default: getEmptyTeamPlayerInfo, required: false })\n private readonly players!: TeamPlayerInfo[]\n\n @Getter(teamStore.getterNames.hasScheduledGames, { namespace: teamStore.namespace })\n private readonly hasScheduledGames!: boolean\n\n private removePlayer(player: TeamPlayerInfo) {\n //Inactivate Player\n const inactivePlayers = inactivatePlayer(player, this.currentGameLineupWithRotation)\n this.upsertLineup({ lineup: inactivePlayers })\n this.recalculateLineup(this.currentGameLineupWithRotation)\n this.$emit('player-removed')\n }\n\n get sortedPlayers() {\n const p = cloneDeep(this.players)\n return p.sort((a, b) =>\n (!a.rosterRanking || a.rosterRanking == '' ? 'Z' : a.rosterRanking) >\n (!b.rosterRanking || b.rosterRanking == '' ? 'Z' : b.rosterRanking)\n ? 1\n : -1\n )\n }\n\n get showPositionEdit() {\n return (\n !(\n this.currentGameLineupWithRotation.upwardTypeId == ProgramEnum.VOLLEYBALL ||\n this.currentGameLineupWithRotation.upwardTypeId == ProgramEnum.MSSSELECT\n ) && this.currentGameLineupWithRotation.currentSide != SidesEnum.BATTING\n )\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayLineup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayLineup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDayLineup.vue?vue&type=template&id=71792678&scoped=true\"\nimport script from \"./GameDayLineup.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDayLineup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./GameDayLineup.vue?vue&type=style&index=0&id=71792678&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71792678\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"main\"},[_c('button',{staticClass:\"btn p-0 ml-2\",on:{\"click\":_vm.previous}},[_vm._v(\"❮\"),_c('span',{staticClass:\"ml-2\"},[_vm._v(\"Prev\")])]),_c('div',{staticClass:\"center text-center\"},[_vm._t(\"default\",function(){return [_c('h4',{staticClass:\"m-0\"},[_vm._v(_vm._s(_vm.segmentTitle))]),_c('div',{staticClass:\"m-0 small\"},[_vm._v(_vm._s(_vm.segmentSubTitle))])]})],2),_c('div'),_c('button',{staticClass:\"btn p-0 mr-2\",on:{\"click\":_vm.next}},[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Next\")]),_vm._v(\"❯\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { ProgramEnum } from '@/common/programEnum'\nimport moment from 'moment'\n\n@Component\nexport default class ListPaging extends Vue {\n @Prop({ type: Number, default: 0, required: false })\n private readonly maxLength!: number\n\n @Prop({ type: Number, default: 0, required: false })\n private readonly value!: number\n\n @Prop({ type: Object, required: false })\n private readonly programType!: UpwardProgramTypeID\n\n @Prop({ type: Number, default: 0, required: true })\n private readonly numberOfSegments!: number\n\n private current = 1\n\n mounted() {\n this.current = this.value\n }\n\n private next() {\n const next = this.current + 1\n if (next <= this.maxLength) {\n this.current = next\n this.$emit('input', this.current)\n } else {\n this.$emit('upperLimit')\n }\n }\n private previous() {\n const previous = this.current - 1\n if (previous >= 1) {\n this.current = previous\n this.$emit('input', this.current)\n } else {\n this.$emit('lowerLimit')\n }\n }\n\n private get segmentTitle() {\n if (!this.numberOfSegments || !this.programType.upwardTypeID) return ''\n\n if (\n this.programType.upwardTypeID == ProgramEnum.BASEBALL ||\n this.programType.upwardTypeID == ProgramEnum.SOFTBALL\n ) {\n return `${moment.localeData().ordinal(this.current)} Inning`\n }\n\n let half = 0\n if (this.programType.upwardTypeID === ProgramEnum.FOOTBALL) half = 2\n if (this.programType.upwardTypeID !== ProgramEnum.FOOTBALL) half = this.numberOfSegments / 2\n\n if (this.current <= half) {\n return 'First Half'\n }\n if (this.current > half) {\n return 'Second Half'\n }\n }\n\n private get segmentSubTitle() {\n if (this.programType.upwardTypeID == ProgramEnum.FOOTBALL) {\n return this.footballQuarterMap.get(this.current)\n }\n\n if (\n this.programType.upwardTypeID == ProgramEnum.BASEBALL ||\n this.programType.upwardTypeID == ProgramEnum.SOFTBALL\n ) {\n return ``\n }\n\n return `current segment: ${this.current}`\n }\n\n footballQuarterMap = new Map([\n [1, 'First Quarter'],\n [2, 'Second Quarter'],\n [3, 'Third Quarter'],\n [4, 'Fourth Quarter'],\n ])\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListPaging.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListPaging.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ListPaging.vue?vue&type=template&id=afaab0ee&scoped=true\"\nimport script from \"./ListPaging.vue?vue&type=script&lang=ts\"\nexport * from \"./ListPaging.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ListPaging.vue?vue&type=style&index=0&id=afaab0ee&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"afaab0ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex flex-column pt-1\"},[_c('button',{staticClass:\"btn p-0 m-0\",on:{\"click\":function($event){return _vm.$emit('regenerateLineup')}}},[_c('i',{staticClass:\"fas fa-redo pr-2\"}),_vm._v(\"Regenerate Lineup \"),_c('div',{staticClass:\"small text-center pt-3\",staticStyle:{\"max-width\":\"150px\"}},[_vm._v(\" If you change your players' ranking, you can regenrate your lineup to reflect the change. \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\nimport GameDayPlayer from '@/components/GameDayPlayer.vue'\n\n@Component({ components: { GameDayPlayer } })\nexport default class RegenerateLinup extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegenerateLineup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegenerateLineup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RegenerateLineup.vue?vue&type=template&id=0ac37968&scoped=true\"\nimport script from \"./RegenerateLineup.vue?vue&type=script&lang=ts\"\nexport * from \"./RegenerateLineup.vue?vue&type=script&lang=ts\"\nimport style0 from \"./RegenerateLineup.vue?vue&type=style&index=0&id=0ac37968&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0ac37968\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Mixins, Watch } from 'vue-property-decorator'\nimport { Getter, Action } from 'vuex-class'\nimport { cloneDeep, differenceWith } from 'lodash'\n\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { rankPlayers } from '@/common/players'\nimport { gameFormatToPlayersPerSeg } from '@/common/PlayersPerSegmentConversion'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\nimport { CurrentGameLineupCommonMixin } from '@/common/CurrentGameLineupCommonMixin'\nimport { isFootball, isBaseballOrSoftball, ProgramEnum } from '@/common/programEnum'\n\nimport { generateLineupWithRotation, getRound, getIsScheduled } from '@/services/lineupService'\n\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport Loading from '@/elements/Loading.vue'\nimport SimpleMenu from '@/elements/SimpleMenu.vue'\n\nimport StartingSideToggle from '@/components/StartingSideToggle.vue'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport ConfirmationModal from '@/components/ConfirmationModal.vue'\nimport GameDayLineup from '@/components/GameDayLineup.vue'\nimport ListPaging from '@/components/ListPaging.vue'\n\nimport * as lineupStore from '@/store/lineup'\nimport * as teamStore from '@/store/team'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as programStore from '@/store/programs'\n\nimport teamClient from '@/clients/teamClient'\n\nimport {\n GameLineupWithRotation,\n GameLineupPositionPlayer,\n SidesEnum,\n SubstitutionPreference,\n SubstitutionPreferenceImpl,\n SubstitutionType,\n} from '@/models/Lineup'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport RegenerateLineup from '@/components/RegenerateLineup.vue'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport addDays from '@/utils/addDays'\n\n@Component({\n components: {\n Breadcrumbs,\n GameDayLineup,\n ListPaging,\n StartingSideToggle,\n PageStateToggle,\n Loading,\n ConfirmationModal,\n RegenerateLineup,\n SimpleMenu,\n },\n})\nexport default class LineupWithRotation extends Mixins(\n CurrentGameLineupWithRotationMixin,\n CurrentGameLineupCommonMixin\n) {\n @Getter(teamStore.getterNames.hasScheduledGames, { namespace: teamStore.namespace })\n private readonly hasScheduledGames!: boolean\n\n @Getter(teamStore.getterNames.currentTeamNumberOfSegments, { namespace: teamStore.namespace })\n private readonly currentTeamNumberOfSegments!: number\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Action(teamStore.actionNames.fetchAndSetCurrentTeam, { namespace: teamStore.namespace })\n private fetchAndSetCurrentTeam!: ({\n upwId,\n programTypeId,\n divisionId,\n teamId,\n }: {\n upwId: string\n programTypeId: string\n divisionId: number\n teamId: number\n }) => Promise\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n readonly currentProgram!: LeagueInfoCondensed\n\n private loadingRecognitions = false\n private showConfirmation = false\n private completingGame = false\n private localCurrentPlayers = [] as GameLineupPositionPlayer[]\n\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true },\n { crumb: CrumbsEnum.GAME, isActive: false },\n ])\n\n private async mounted() {\n this.lineupCheck()\n await this.getRecognitions()\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n\n private playerRemoved() {\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n\n @Watch('localCurrentPlayers', { deep: true })\n private localCurrentPlayersChange() {\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n const segment = lineup.lineup.find((l) => {\n if (this.isFootball) {\n return l.segment === this.currentSegment && l.side === this.currentSide\n }\n return l.segment === this.currentSegment\n })\n if (segment) {\n segment.players = cloneDeep(this.localCurrentPlayers) //even though this is already a clone of the store, you still have to clone it again or you get a vuex mutation error. Gotta love all the \"magic\"\n this.upsertLineup({ lineup })\n }\n }\n\n private async getRecognitions() {\n if (this.hasScheduledGames) {\n this.loadingRecognitions = true\n await this.fetchRecognitions(this.gameId)\n this.loadingRecognitions = false\n }\n }\n\n private get currentSegment(): number | null {\n const segment = this.currentGameLineupWithRotation.currentSegment\n return segment === null ? 1 : segment\n }\n\n private set currentSegment(segment: number | null) {\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n lineup.currentSegment = segment\n this.upsertLineup({ lineup })\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n\n private get currentSide(): string | null {\n if (!this.currentGameLineupWithRotation.currentSide)\n return this.currentGameLineupWithRotation.startingSide\n return this.currentGameLineupWithRotation.currentSide\n }\n\n private set currentSide(side: string | null) {\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n lineup.currentSide = side\n this.upsertLineup({ lineup })\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n\n private get pagingMaxLength(): number {\n if (this.programType) {\n if (this.isFootball) {\n return 4\n }\n return this.currentTeamNumberOfSegments\n }\n return 0\n }\n\n private get showLineup(): boolean {\n if (this.isFootball) return this.footballStartingSide ? true : false\n return true\n }\n\n private get programType(): UpwardProgramTypeID | undefined {\n const allprograms = cloneDeep(this.allProgramTypes)\n return allprograms.find((p) => p.upwardTypeID == this.currentTeam.typeProgramID)\n }\n\n private get isFootball(): boolean {\n return isFootball(this.programType?.upwardTypeID)\n }\n\n private get isBaseballOrSoftball(): boolean {\n return isBaseballOrSoftball(this.programType?.upwardTypeID)\n }\n\n private get showSideToggle(): boolean {\n return this.isFootball || this.isBaseballOrSoftball\n }\n\n private get sides() {\n return this.isBaseballOrSoftball\n ? [SidesEnum.BATTING, SidesEnum.FIELDING]\n : [SidesEnum.OFFFENSE, SidesEnum.DEFENSE]\n }\n\n get showStartingSideSelector() {\n return this.isFootball && this.currentSegment == 1\n }\n\n private get currentPlayers(): GameLineupPositionPlayer[] {\n const segment = this.currentGameLineupWithRotation.lineup.find((l) => {\n if (this.isFootball) {\n return l.segment === this.currentSegment && l.side === this.currentSide\n }\n return l.segment === this.currentSegment\n })\n if (\n this.isBaseballOrSoftball &&\n ((this.currentSide && this.currentSide == SidesEnum.BATTING) || !this.currentSide)\n ) {\n if (this.currentSide && this.currentSide == SidesEnum.BATTING) {\n //return the full list of team players ranked top to bottom, minus any inactive players\n return rankPlayers(\n differenceWith(\n this.currentTeam.players ?? ([] as TeamPlayerInfo[]),\n segment?.inactivePlayers || ([] as TeamPlayerInfo[]),\n function (o1, o2) {\n return o1['individualID'] === o2['individualID']\n }\n )\n ).map((x) => {\n return { ...x, positionText: '' }\n })\n } else {\n return [] as GameLineupPositionPlayer[]\n }\n } else {\n return rankPlayers(segment?.players || ([] as GameLineupPositionPlayer[]))\n }\n }\n\n private get footballStartingSide(): SidesEnum | null {\n return this.currentGameLineupWithRotation.startingSide\n }\n\n private set footballStartingSide(side: SidesEnum | null) {\n if (!side) return\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n lineup.startingSide = side\n this.setSegmentSides(side, lineup)\n if (!lineup.currentSide) lineup.currentSide = side\n this.upsertLineup({ lineup })\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n\n private setSegmentSides(startingSide: SidesEnum, lineup: GameLineupWithRotation): GameLineupWithRotation {\n // For football, alternate between offense and defense for each segment based\n // on the startingSide. If the number of players is exaclty twice the game format,\n // override the alternation so that the players don't always play the same side\n // (e.g. OD DO OD DO)\n const otherSide = this.otherSide(startingSide)\n\n if (this.overrideAlternation()) {\n lineup.lineup.forEach((l, i) => {\n l.side = this.overrideSide(i, startingSide, otherSide)\n })\n } else {\n lineup.lineup.forEach((l, i) => {\n l.side = this.alternatingSide(i, startingSide, otherSide)\n })\n }\n return lineup\n }\n\n alternatingSide(lineupSegment: number, startingSide: SidesEnum | null, otherSide: SidesEnum | null) {\n if (lineupSegment % 2 === 0) {\n return startingSide\n } else {\n return otherSide\n }\n }\n\n overrideSide(lineupSegment: number, startingSide: SidesEnum | null, otherSide: SidesEnum | null) {\n switch (lineupSegment) {\n case 0:\n case 3:\n case 4:\n case 7:\n return startingSide\n default:\n return otherSide\n }\n }\n overrideAlternation() {\n const playersPerSeg = this.currentGameLineupWithRotation.playersPerSegment\n const players = this.currentTeam.players ?? []\n //WF 535408 - edge case outlined in printed materials\n if ((players.length === 11 || players.length === 12) && playersPerSeg === 6) {\n return true\n } else {\n return players.length / playersPerSeg == 2\n }\n }\n\n private upperLimit() {\n if (this.currentGameLineupWithRotation.completed) {\n this.$router.push(`${this.gameId}/gamerecognition`)\n }\n this.showConfirmation = true\n }\n\n private async completeGame(response: boolean) {\n if (!response) this.showConfirmation = false\n if (response) {\n try {\n this.completingGame = true\n const nextGameId = this.nextGameId\n if (nextGameId) {\n await teamClient.setCurrentGame(this.currentTeam, nextGameId)\n }\n await this.fetchTeam()\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n lineup.completed = true\n this.upsertLineup({ lineup })\n } finally {\n this.completingGame = false\n }\n this.$router.push(`${this.gameId}/gamerecognition`)\n }\n }\n\n async fetchTeam() {\n const team = this.currentTeam\n return await this.fetchAndSetCurrentTeam({\n upwId: team?.upwardLeagueID ?? '',\n programTypeId: team?.typeProgramID ?? '',\n divisionId: team?.divisionID ?? 0,\n teamId: team?.teamID ?? 0,\n })\n }\n\n private get nextGameId(): number {\n const games = cloneDeep(this.currentTeam.games)\n const currentGame = games.find((g) => g.gameID === this.gameId)\n if (!currentGame) return 0\n const nextGame = games\n .sort((a, b) => a.roundNumber - b.roundNumber)\n .find((g) => g.roundNumber === currentGame?.roundNumber + 1)\n return nextGame?.gameID ?? 0\n }\n\n private otherSide(startingSide: string): SidesEnum | null {\n if (startingSide === SidesEnum.OFFFENSE) return SidesEnum.DEFENSE\n if (startingSide === SidesEnum.DEFENSE) return SidesEnum.OFFFENSE\n if (startingSide === SidesEnum.BATTING) return SidesEnum.FIELDING\n if (startingSide === SidesEnum.FIELDING) return SidesEnum.BATTING\n return null\n }\n\n private lineupCheck() {\n //If lineup does not exist for the current game, create it\n const noLineups = !this.allLineups.length\n const gameLineup = this.currentGameLineupWithRotation\n if (noLineups || gameLineup.gameId === 0) {\n this.createLineup()\n } else {\n this.localCurrentPlayers = cloneDeep(this.currentPlayers)\n }\n }\n\n private createLineup() {\n const allprograms = cloneDeep(this.allProgramTypes)\n const program = allprograms.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n if (!program) return\n\n const currentGame = this.currentTeam.games.find((g) => g.gameID === this.gameId)\n const round = getRound(currentGame, this.gameId)\n const isScheduledGame = getIsScheduled(currentGame)\n if (!this.currentTeam.players) throw Error('Cannot generate lineup with rotation without players')\n const players = rankPlayers(this.currentTeam.players)\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const playersPerSegment = gameFormatToPlayersPerSeg(this.currentTeam.typeGameFormatID)\n\n const lineup = generateLineupWithRotation(\n program,\n divisionId,\n teamId,\n this.gameId,\n round,\n players,\n playersPerSegment,\n isScheduledGame\n )\n if (this.currentGameLineupWithRotation.gameId !== 0) {\n //Gamelineup existed before. Preserve state\n lineup.currentSide = this.currentGameLineupWithRotation.currentSide\n lineup.currentSegment = this.currentGameLineupWithRotation.currentSegment\n }\n const startSide = this.currentGameLineupWithRotation.startingSide\n if (lineup) this.upsertLineup({ lineup }) //save lineup to localstorage using the store and vuex-persist\n this.footballStartingSide = startSide\n }\n @Action(lineupStore.actionNames.setSubstitutionPreference, { namespace: lineupStore.namespace })\n setSubstitutionPreference!: ({ preference }: { preference: SubstitutionPreference }) => void\n defaultSubstitution() {\n const seasonEndDate = addDays(new Date(this.currentProgram.seasonEndDate!), 1)\n const preference = SubstitutionPreferenceImpl.createNew(SubstitutionType.Default, seasonEndDate)\n this.setSubstitutionPreference({ preference })\n }\n get allowSubstitutionPreference(): boolean {\n const typeProgramID = this.currentTeam.typeProgramID ?? ''\n const ruleLevel = this.currentTeam.ruleLevel\n const useLevelFourSub = this.currentTeam.useLevelFourSub\n return typeProgramID == ProgramEnum.BASKETBALL && (ruleLevel == 4 || useLevelFourSub)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineupWithRotation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineupWithRotation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./LineupWithRotation.vue?vue&type=template&id=82a4d284&scoped=true\"\nimport script from \"./LineupWithRotation.vue?vue&type=script&lang=ts\"\nexport * from \"./LineupWithRotation.vue?vue&type=script&lang=ts\"\nimport style0 from \"./LineupWithRotation.vue?vue&type=style&index=0&id=82a4d284&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"82a4d284\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('simple-menu',{staticClass:\"float-right\"},[_c('ul',{staticClass:\"p-2\"},[(_vm.allowSubstitutionPreference)?_c('li',[_c('button',{staticClass:\"btn p-0 m-0\",on:{\"click\":_vm.traditionalSubstitution}},[_c('i',{staticClass:\"fas fa-exchange-alt pr-2\"}),_vm._v(\" Traditional Substitution \")])]):_vm._e(),_c('li',[(!_vm.loadingRecognitions)?_c('regenerate-lineup',{on:{\"regenerateLineup\":_vm.createLineup}}):_vm._e()],1)])]),(_vm.loadingRecognitions)?_c('div',{staticClass:\"center-spinner-on-view mt-3\"},[_c('loading')],1):_c('div',{staticClass:\"mt-5 pt-2 container-fluid\"},_vm._l((_vm.sortedPlayers),function(p){return _c('div',{key:p.player.individualID,staticClass:\"row align-items-center border-bottom border-top mb-3 py-2\"},[_c('game-day-player',{staticClass:\"col-12\",attrs:{\"player\":p.player,\"enable-recognition\":_vm.localCurrentLineup.isScheduledGame,\"show-comment\":true,\"show-remove\":false,\"showPositionEdit\":false}}),_c('div',{staticClass:\"col-12 d-flex justify-content-center mt-4\"},_vm._l((p.starts),function(i){return _c('checkbox-input',{key:i.id,staticClass:\"py-3\",attrs:{\"label\":i.label},on:{\"input\":_vm.save},model:{value:(i.started),callback:function ($$v) {_vm.$set(i, \"started\", $$v)},expression:\"i.started\"}})}),1),(_vm.showFouls)?_c('div',{staticClass:\"col-12 d-flex justify-content-center\"},[_c('incrementor',{staticClass:\"pb-3\",attrs:{\"label\":\"Fouls\"},on:{\"input\":_vm.save},model:{value:(p.foul),callback:function ($$v) {_vm.$set(p, \"foul\", $$v)},expression:\"p.foul\"}})],1):_vm._e()],1)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport * as teamStore from '@/store/team'\nimport * as lineupStore from '@/store/lineup'\nimport { GameLineup, getEmptyGameLineup } from '@/models/Lineup'\n@Component\nexport class CurrentGameLineupMixin extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(lineupStore.getterNames.lineups, { namespace: lineupStore.namespace })\n protected readonly allLineups!: GameLineup[]\n\n @Mutation(lineupStore.mutationNames.upsertLineup, { namespace: lineupStore.namespace })\n protected upsertLineup!: ({ lineup }: { lineup: GameLineup }) => void\n\n @Mutation(lineupStore.mutationNames.deleteLineup, { namespace: lineupStore.namespace })\n protected deleteLineup!: ({ lineup }: { lineup: GameLineup }) => void\n\n protected get currentGameLineup() {\n const lineup = this.maintainDataModel()\n return lineup ? lineup : getEmptyGameLineup()\n }\n\n private maintainDataModel(): GameLineup | undefined {\n //From time to time the JSON structure of a gameLineup may need to change.\n //Each time a gameLineup is retieved, make sure it is up to date.\n\n //All lineups more than a year old are automatically deleted,\n // so any check more than a year old can be removed.\n let dirty = false\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const lineup = this.allLineups.find((l) => {\n return l.gameId === this.gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n if (!lineup) return\n\n //** CHECKED ***/\n if (lineup.hasOwnProperty('currentSegment')) {\n //this is not a valid GameLineup, remove it so the lineup will regenerate\n //05/20/2020\n dirty = true\n this.deleteLineup({ lineup })\n }\n\n //** RETURN CLEAN GameLineup **/\n if (dirty) {\n return this.allLineups.find((l) => {\n return l.gameId === this.gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n }\n return lineup\n }\n\n protected currentGameLineupById(gameId: number) {\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const lineup = this.allLineups.find((l) => {\n return l.gameId === gameId && l.teamId === teamId && l.divisionId === divisionId\n })\n return lineup ? lineup : getEmptyGameLineup()\n }\n\n protected get gameId(): number {\n if (!this.$route.params.gameId) throw Error('Missing gameId on Route')\n return Number(this.$route.params.gameId)\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"incrementor d-flex flex-column align-items-center\"},[(_vm.label)?_c('input-label',{attrs:{\"label\":_vm.label}}):_vm._e(),_c('div',{staticClass:\"d-flex\"},[_c('div',{staticClass:\"px-3 decrement clickable\",on:{\"click\":_vm.decrement}},[_vm._v(\"-\")]),_c('input',{staticClass:\"number-input\",attrs:{\"type\":\"number\",\"min\":_vm.min,\"max\":_vm.max},domProps:{\"value\":_vm.value},on:{\"input\":_vm.handleChange,\"change\":_vm.handleChange}}),_c('div',{staticClass:\"px-3 increment clickable\",on:{\"click\":_vm.increment}},[_vm._v(\"+\")])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport InputLabel from '@/elements/InputLabel.vue'\n\n@Component({\n components: { InputLabel },\n})\nexport default class Incrementor extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Number, default: 0, required: false })\n private readonly value!: number\n\n @Prop({ type: Number, default: 0, required: false })\n private readonly min!: number\n\n @Prop({ type: Number, required: false })\n private readonly max!: number\n\n increment() {\n let v = this.value\n v++\n if (!this.isValid(v)) return\n this.emit(v)\n }\n\n decrement() {\n let v = this.value\n v--\n if (!this.isValid(v)) return\n this.emit(v)\n }\n\n handleChange(e: any) {\n this.emit(Number(e.target.value))\n }\n\n emit(v: number) {\n this.$emit('input', v)\n }\n\n isValid(v: number): boolean {\n if (!this.max && v >= this.min) return true\n return v <= this.max && v >= this.min\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Incrementor.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Incrementor.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Incrementor.vue?vue&type=template&id=8b5649b4&scoped=true\"\nimport script from \"./Incrementor.vue?vue&type=script&lang=ts\"\nexport * from \"./Incrementor.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Incrementor.vue?vue&type=style&index=0&id=8b5649b4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8b5649b4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{class:{ 'form-check': _vm.inline, 'form-group': !_vm.inline }},[_vm._t(\"label\",function(){return [(!_vm.inline)?_c('input-label',{attrs:{\"label\":_vm.label,\"required\":_vm.required}}):_vm._e()]}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],staticClass:\"checkbox\",class:{ 'form-control': !_vm.inline },attrs:{\"type\":\"checkbox\",\"required\":_vm.required,\"disabled\":!_vm.enabled,\"id\":_vm.elementId},domProps:{\"checked\":Array.isArray(_vm.internalValue)?_vm._i(_vm.internalValue,null)>-1:(_vm.internalValue)},on:{\"change\":[function($event){var $$a=_vm.internalValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.internalValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.internalValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.internalValue=$$c}},_vm.handleChange]}}),_c('span'),_vm._t(\"inline-label\",function(){return [(_vm.inline)?_c('input-label',{staticClass:\"pl-2\",attrs:{\"label\":_vm.label,\"required\":_vm.required,\"input-id\":_vm.elementId}}):_vm._e()]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport uuid from 'uuid'\n\n@Component({\n components: {\n InputLabel,\n },\n})\nexport default class CheckboxInput extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n @Prop({ type: Boolean, default: true, required: false })\n private readonly inline!: boolean\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n @Prop({ type: Boolean, default: false, required: false })\n private readonly value!: boolean\n\n @Prop({ type: Boolean, required: false, default: true })\n private readonly enabled!: boolean\n\n private readonly guid = uuid.v4()\n\n private internalValue: boolean = this.value\n\n private handleChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChanged() {\n this.internalValue = this.value\n }\n\n public get elementId() {\n return `checkbox-${this.guid}`\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckboxInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CheckboxInput.vue?vue&type=template&id=3d23aa5f\"\nimport script from \"./CheckboxInput.vue?vue&type=script&lang=ts\"\nexport * from \"./CheckboxInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Mixins, Watch } from 'vue-property-decorator'\nimport { Action, Getter, Mutation } from 'vuex-class'\nimport { cloneDeep } from 'lodash'\n\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { CurrentGameLineupMixin } from '@/common/CurrentGameLineupMixin'\nimport { CurrentGameLineupCommonMixin } from '@/common/CurrentGameLineupCommonMixin'\nimport { ProgramEnum } from '@/common/programEnum'\n\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport Loading from '@/elements/Loading.vue'\nimport SimpleMenu from '@/elements/SimpleMenu.vue'\nimport RegenerateLineup from '@/components/RegenerateLineup.vue'\nimport Incrementor from '@/elements/Incrementor.vue'\nimport CheckboxInput from '@/elements/CheckboxInput.vue'\nimport GameDayPlayer from '@/components/GameDayPlayer.vue'\n\nimport * as lineupStore from '@/store/lineup'\nimport * as teamStore from '@/store/team'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as programStore from '@/store/programs'\n\nimport {\n GameLineup,\n getEmptyGameLineup,\n SubstitutionPreference,\n SubstitutionPreferenceImpl,\n SubstitutionType,\n} from '@/models/Lineup'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\n\nimport { generateLineup, getRound, getIsScheduled } from '@/services/lineupService'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport addDays from '@/utils/addDays'\n\n@Component({\n components: {\n Breadcrumbs,\n Loading,\n SimpleMenu,\n RegenerateLineup,\n Incrementor,\n CheckboxInput,\n GameDayPlayer,\n },\n})\nexport default class Lineup extends Mixins(CurrentGameLineupMixin, CurrentGameLineupCommonMixin) {\n @Getter(lineupStore.getterNames.lineups, { namespace: lineupStore.namespace })\n readonly allLineups!: GameLineup[]\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(teamStore.getterNames.hasScheduledGames, { namespace: teamStore.namespace })\n private readonly hasScheduledGames!: boolean\n\n @Mutation(lineupStore.mutationNames.upsertLineup, { namespace: lineupStore.namespace })\n upsertLineup!: ({ lineup }: { lineup: GameLineup }) => void\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n readonly currentProgram!: LeagueInfoCondensed\n\n breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true },\n { crumb: CrumbsEnum.GAME, isActive: false },\n ])\n\n loadingRecognitions = false\n localCurrentLineup = getEmptyGameLineup()\n\n async mounted() {\n this.lineupCheck()\n await this.getRecognitions()\n this.localCurrentLineup = cloneDeep(this.currentGameLineup)\n }\n\n private async getRecognitions() {\n if (this.hasScheduledGames) {\n this.loadingRecognitions = true\n await this.fetchRecognitions(this.gameId)\n this.loadingRecognitions = false\n }\n }\n\n lineupCheck() {\n //If lineup does not exist for the current game, create it\n const noLineups = !this.allLineups.length\n const gameLineup = this.currentGameLineup\n if (noLineups || gameLineup.gameId === 0) {\n this.createLineup()\n }\n }\n\n createLineup() {\n const players = cloneDeep(this.currentTeam.players)\n if (!players) throw Error('Cannot generate lineup without players')\n\n const allprograms = cloneDeep(this.allProgramTypes)\n const program = allprograms.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n if (!program) throw Error('Cannot generate lineup without a program')\n\n const divisionId = this.currentTeam.divisionID\n const teamId = this.currentTeam.teamID\n const currentGame = this.currentTeam.games.find((g) => g.gameID === this.gameId)\n const round = getRound(currentGame, this.gameId)\n const isScheduledGame = getIsScheduled(currentGame)\n\n const lineup = generateLineup(program, divisionId, teamId, this.gameId, round, players, isScheduledGame)\n if (lineup) this.upsertLineup({ lineup })\n }\n\n @Watch('currentGameLineup', { deep: true })\n currentGameLineupChange() {\n this.localCurrentLineup = cloneDeep(this.currentGameLineup)\n }\n\n save() {\n const lineup = cloneDeep(this.localCurrentLineup)\n this.upsertLineup({ lineup })\n }\n\n get showFouls() {\n return this.currentTeam.typeProgramID !== ProgramEnum.VOLLEYBALL\n }\n\n get sortedPlayers() {\n return this.localCurrentLineup.players.sort((a, b) =>\n (a.player.rosterRanking || 'Z') > (b.player.rosterRanking || 'Z') ? 1 : -1\n )\n }\n\n @Action(lineupStore.actionNames.setSubstitutionPreference, { namespace: lineupStore.namespace })\n setSubstitutionPreference!: ({ preference }: { preference: SubstitutionPreference }) => void\n traditionalSubstitution() {\n const seasonEndDate = addDays(new Date(this.currentProgram.seasonEndDate!), 1)\n const preference = SubstitutionPreferenceImpl.createNew(SubstitutionType.Tranditional, seasonEndDate)\n this.setSubstitutionPreference({ preference })\n }\n get allowSubstitutionPreference(): boolean {\n const typeProgramID = this.currentTeam.typeProgramID ?? ''\n const ruleLevel = this.currentTeam.ruleLevel\n const useLevelFourSub = this.currentTeam.useLevelFourSub\n return typeProgramID == ProgramEnum.BASKETBALL && (ruleLevel == 4 || useLevelFourSub)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lineup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Lineup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Lineup.vue?vue&type=template&id=2b481210\"\nimport script from \"./Lineup.vue?vue&type=script&lang=ts\"\nexport * from \"./Lineup.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport LineupWithRotation from '@/components/LineupWithRotation.vue'\nimport Lineup from '@/components/Lineup.vue'\nimport * as teamStore from '@/store/team'\nimport * as lineupStore from '@/store/lineup'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { ProgramEnum } from '@/common/programEnum'\nimport { SubstitutionPreference, SubstitutionType } from '@/models/Lineup'\n\n@Component({\n components: {\n LineupWithRotation,\n Lineup,\n },\n})\nexport default class GamePlay extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected readonly currentTeam!: DivisionTeamInfoExt\n @Getter(lineupStore.getterNames.substitutionPreference, { namespace: lineupStore.namespace })\n protected readonly substitutionPreference!: SubstitutionPreference\n\n private components = new Map([\n [ProgramEnum.FOOTBALL, 'LineupWithRotation'],\n [ProgramEnum.SOCCER, 'LineupWithRotation'],\n [ProgramEnum.BASKETBALL, 'LineupWithRotation'],\n ['BASKETBALL_LEVEL_4_DEFAULT', 'Lineup'],\n ['BASKETBALL_LEVEL_4_TRADITIONAL', 'LineupWithRotation'],\n [ProgramEnum.VOLLEYBALL, 'Lineup'],\n [ProgramEnum.BASEBALL, 'LineupWithRotation'],\n [ProgramEnum.SOFTBALL, 'LineupWithRotation'],\n ])\n\n get component(): string {\n const typeProgramID = this.currentTeam.typeProgramID ?? ''\n const ruleLevel = this.currentTeam.ruleLevel\n const useLevelFourSub = this.currentTeam.useLevelFourSub\n\n if (typeProgramID == ProgramEnum.BASKETBALL && (ruleLevel == 4 || useLevelFourSub)) {\n const substitutionType = this.substitutionPreference?.type ?? SubstitutionType.Default\n return this.components.get(`BASKETBALL_LEVEL_4_${substitutionType}`) ?? ''\n }\n return this.components.get(typeProgramID) ?? ''\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GamePlay.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GamePlay.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GamePlay.vue?vue&type=template&id=e36d3488\"\nimport script from \"./GamePlay.vue?vue&type=script&lang=ts\"\nexport * from \"./GamePlay.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('h4',{staticClass:\"text-center\"},[_vm._v(\"Reactivate Player\")]),(!_vm.inactivePlayers.length)?[_c('div',{staticClass:\"text-center\"},[_vm._v(\"There are no inactivated players\")])]:_vm._l((_vm.inactivePlayers),function(player){return _c('button',{key:player.individualID,staticClass:\"btn w-100\",on:{\"click\":function($event){return _vm.reactivate(player.individualID)}}},[_c('div',{staticClass:\"d-flex justify-content-between align-items-center\"},[_c('div',[_vm._v(_vm._s(player.formattedNameFirstLast))]),_vm._m(0,true)])])})],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('i',{staticClass:\"fas fa-user-plus\"})])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { Mutation } from 'vuex-class'\nimport * as lineupStore from '@/store/lineup'\nimport { activatePlayer, inactivePlayers } from '@/services/lineupService'\nimport { GameLineupWithRotation } from '@/models/Lineup'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { RecalculateLineupMixin } from '@/common/RecalculateLineupMixin'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\n\n@Component({\n components: { Breadcrumbs },\n})\nexport default class ReactivatePlayer extends Mixins(\n RecalculateLineupMixin,\n CurrentGameLineupWithRotationMixin\n) {\n @Mutation(lineupStore.mutationNames.upsertLineupWithRotation, { namespace: lineupStore.namespace })\n upsertLineup!: ({ lineup }: { lineup: GameLineupWithRotation }) => void\n\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true },\n { crumb: CrumbsEnum.GAME, isActive: true, params: { gameId: this.$route.params.gameId } },\n { crumb: CrumbsEnum.REACTIVATE_PLAYER, isActive: false },\n ])\n\n private reactivate(id: number) {\n if (!this.currentGameLineupWithRotation) return\n const lineup = activatePlayer(this.currentGameLineupWithRotation, id)\n if (!lineup) return\n this.upsertLineup({ lineup })\n this.recalculateLineup(this.currentGameLineupWithRotation)\n this.$router.back()\n }\n\n private get inactivePlayers(): TeamPlayerInfo[] | undefined {\n return inactivePlayers(this.currentGameLineupWithRotation)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReactivatePlayer.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ReactivatePlayer.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ReactivatePlayer.vue?vue&type=template&id=68a603ec\"\nimport script from \"./ReactivatePlayer.vue?vue&type=script&lang=ts\"\nexport * from \"./ReactivatePlayer.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('h4',{staticClass:\"text-center\"},[_vm._v(\"Change Game Format\")]),(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_c('div',{staticClass:\"my-3 d-flex flex-column align-items-center\"},_vm._l((_vm.formats),function(format){return _c('button',{key:format.typeGameFormatID,staticClass:\"btn btn-outline-dark mb-3 min-w\",class:{ 'btn-primary': _vm.isSelected(format.typeGameFormatID) },on:{\"click\":function($event){return _vm.save(format.typeGameFormatID)}}},[_vm._v(\" \"+_vm._s(format.typeGameFormatID)+\" \")])}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { Mutation } from 'vuex-class'\nimport * as lineupStore from '@/store/lineup'\nimport divisionClient from '@/clients/divisionsClient'\nimport { GameLineupWithRotation } from '@/models/Lineup'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport Loading from '@/elements/Loading.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { RecalculateLineupMixin } from '@/common/RecalculateLineupMixin'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\nimport { TypeProgramGameFormatInfo } from '@/GeneratedTypes/ListInfo/TypeProgramGameFormatInfo'\nimport { gameFormatToPlayersPerSeg } from '@/common/PlayersPerSegmentConversion'\nimport { cloneDeep } from 'lodash'\nimport { inactivePlayers } from '@/services/lineupService'\n\n@Component({\n components: { Breadcrumbs, Loading },\n})\nexport default class ChangeGameFormat extends Mixins(\n RecalculateLineupMixin,\n CurrentGameLineupWithRotationMixin\n) {\n @Mutation(lineupStore.mutationNames.upsertLineupWithRotation, { namespace: lineupStore.namespace })\n upsertLineup!: ({ lineup }: { lineup: GameLineupWithRotation }) => void\n\n gameFormats: TypeProgramGameFormatInfo[] = [] as TypeProgramGameFormatInfo[]\n loading = false\n\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true },\n { crumb: CrumbsEnum.GAME, isActive: true, params: { gameId: this.$route.params.gameId } },\n { crumb: CrumbsEnum.CHANGE_GAME_FORMAT, isActive: false },\n ])\n\n async mounted() {\n await this.retrieveFormats()\n }\n\n async retrieveFormats() {\n this.loading = true\n this.gameFormats = await divisionClient.gameFormats(this.currentTeam.typeProgramID)\n this.loading = false\n }\n\n get formats() {\n const playerCount = this.currentTeam.players?.length ?? 0\n const inactiveCount = inactivePlayers(this.currentGameLineupWithRotation)?.length ?? 0\n const availablePlayers = playerCount - inactiveCount\n return this.gameFormats\n .sort((a, b) => a.sortOrder - b.sortOrder)\n .filter((f) => {\n return availablePlayers >= gameFormatToPlayersPerSeg(f.typeGameFormatID)\n })\n }\n\n isSelected(typeGameFormatID: string) {\n const playersPerSegment = gameFormatToPlayersPerSeg(typeGameFormatID)\n return this.currentGameLineupWithRotation.playersPerSegment == playersPerSegment\n }\n\n save(typeGameFormatID: string) {\n const lineup = cloneDeep(this.currentGameLineupWithRotation)\n lineup.playersPerSegment = gameFormatToPlayersPerSeg(typeGameFormatID)\n this.upsertLineup({ lineup })\n this.recalculateLineup(this.currentGameLineupWithRotation)\n this.$router.back()\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeGameFormat.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChangeGameFormat.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ChangeGameFormat.vue?vue&type=template&id=cf08e9b2&scoped=true\"\nimport script from \"./ChangeGameFormat.vue?vue&type=script&lang=ts\"\nexport * from \"./ChangeGameFormat.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ChangeGameFormat.vue?vue&type=style&index=0&id=cf08e9b2&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf08e9b2\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\nimport GamePlay from '@/views/GameDay/GamePlay.vue'\nimport ReactivatePlayer from '@/views/GameDay/ReactivatePlayer.vue'\nimport ChangeGameFormat from '@/views/GameDay/ChangeGameFormat.vue'\n\nexport default [\n {\n path: 'game/:gameId',\n name: 'game',\n meta: {\n title: 'Game',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: GamePlay,\n },\n {\n path: 'game/:gameId/reactivate',\n name: 'reactivate',\n meta: {\n title: 'Reactivate',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ReactivatePlayer,\n },\n {\n path: 'game/:gameId/format',\n name: 'format',\n meta: {\n title: 'Format',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ChangeGameFormat,\n },\n] as RouteConfig[]\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(_vm.unrankedPlayers)?_c('UnrankedWarning'):(_vm.noGames)?_c('div',{staticClass:\"p-3 text-center\"},[_vm._v(\"There are no games scheduled at this time.\")]):_c(_vm.component,{tag:\"component\",attrs:{\"game-count\":_vm.gameCount,\"games\":this.currentTeam.games,\"appointments\":_vm.currentTeam.appointments}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('router-link',{staticClass:\"list-row\",class:{ 'disable-click': _vm.disable },attrs:{\"to\":_vm.route}},[_c('div',{staticClass:\"list-text\"},[_vm._t(\"default\")],2),_c('span',{staticClass:\"go\"},[_vm._v(\"❯\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class LinkingListItem extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly route!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly disable!: boolean\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkingListItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkingListItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./LinkingListItem.vue?vue&type=template&id=2aa4c4e4&scoped=true\"\nimport script from \"./LinkingListItem.vue?vue&type=script&lang=ts\"\nexport * from \"./LinkingListItem.vue?vue&type=script&lang=ts\"\nimport style0 from \"./LinkingListItem.vue?vue&type=style&index=0&id=2aa4c4e4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2aa4c4e4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-center p-2 m-auto\",staticStyle:{\"max-width\":\"300px\"}},[_vm._m(0),_c('p',[_vm._v(\"Player ranking is used to generate balanced matchups.\")]),_c('div',[_vm._v(\" Rank the players in your team by visiting \"),_c('router-link',{staticClass:\"btn-link font-weight-bold\",attrs:{\"to\":\"/ManageTeam\"}},[_vm._v(\" your roster\")]),_vm._v(\". \")],1),_c('button',{staticClass:\"btn btn-link text-muted text-underline\",on:{\"click\":_vm.click}},[_vm._v(\"Continue without ranking\")])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h5',{staticClass:\"font-weight-bold\"},[_c('i',{staticClass:\"fas fa-exclamation-circle text-warning\"}),_vm._v(\" Warning: Unranked Players \")])\n}]\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from 'vue'\nimport store from '@/store'\nexport default defineComponent({\n name: 'UnrankedWarning',\n props: {},\n components: {},\n setup() {\n function click() {\n store.commit.game.setSkipPlayerRanking({ skipRanking: true })\n }\n return { click }\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnrankedWarning.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnrankedWarning.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./UnrankedWarning.vue?vue&type=template&id=170903f4\"\nimport script from \"./UnrankedWarning.vue?vue&type=script&lang=ts\"\nexport * from \"./UnrankedWarning.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.list && _vm.list.length > 0)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.list),function(item,i){return _c('li',{key:item.id,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('linking-list-item',{attrs:{\"route\":item.route}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Game \"+_vm._s(item.round)+\" \")])])],1)])}),0):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\nimport { CheerSquadGameAppointmentInfo } from '@/GeneratedTypes/ListInfo/CheerSquadGameAppointmentInfo'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { cloneDeep } from 'lodash'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\n\ninterface listItem {\n id: number\n round: number | null\n route: string\n}\n\n@Component({\n components: { LinkingListItem },\n})\nexport default class GameDayGameList extends Mixins(IsCheerMixin, CurrentGameLineupWithRotationMixin) {\n @Prop({ type: Array, required: false })\n private readonly games!: DivisionGameInfo[]\n\n @Prop({ type: Array, required: false })\n private readonly appointments!: CheerSquadGameAppointmentInfo[]\n\n private get list() {\n if (this.isCheer) {\n return this.composeCheer()\n } else {\n return this.composeSport()\n }\n }\n\n private composeCheer(): listItem[] {\n return this.appointments.map((a, i) => {\n return {\n id: a.id,\n round: i + 1,\n route: `game/${a.id}/gamerecognition`,\n }\n })\n }\n\n private composeSport(): listItem[] {\n const games: DivisionGameInfo[] = cloneDeep(this.games)\n return games\n .sort((a, b) => a.roundNumber - b.roundNumber)\n .map((a) => {\n return {\n id: a.gameID,\n round: a.roundNumber,\n route: `game/${a.gameID}${this.isSelect ? '/gamerecognition' : ''}`,\n }\n })\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDayGameList.vue?vue&type=template&id=65fb100a&scoped=true\"\nimport script from \"./GameDayGameList.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDayGameList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./GameDayGameList.vue?vue&type=style&index=0&id=65fb100a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"65fb100a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.list && _vm.list.length > 0)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.list),function(item){return _c('li',{key:item.id,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('linking-list-item',{attrs:{\"route\":item.route}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"Game \"+_vm._s(item.id)+\" \")])])],1)])}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { CurrentGameLineupWithRotationMixin } from '@/common/CurrentGameLineupWithRotationMixin'\n\ninterface DisplayableItem {\n id: number\n route: string\n}\n\n@Component({\n components: { LinkingListItem },\n})\nexport default class GameDayGameCountList extends Mixins(IsCheerMixin, CurrentGameLineupWithRotationMixin) {\n @Prop({ type: Number, default: 5, required: false })\n private readonly gameCount!: number\n\n private get list() {\n if (this.isCheer) {\n return this.composeCheer()\n } else {\n return this.composeSport()\n }\n }\n\n private composeCheer(): DisplayableItem[] {\n const list: DisplayableItem[] = []\n for (let i = 0; i < this.gameCount; i++) {\n const id = i + 1\n list.push({\n id: id,\n route: `game/${id}/gamerecognition`,\n } as DisplayableItem)\n }\n return list\n }\n\n private composeSport(): DisplayableItem[] {\n const list: DisplayableItem[] = []\n for (let i = 0; i < this.gameCount; i++) {\n const id = i + 1\n list.push({\n id: id,\n route: `game/${id}`,\n } as DisplayableItem)\n }\n return list\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameCountList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGameCountList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDayGameCountList.vue?vue&type=template&id=62925ea4&scoped=true\"\nimport script from \"./GameDayGameCountList.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDayGameCountList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./GameDayGameCountList.vue?vue&type=style&index=0&id=62925ea4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62925ea4\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport * as teamStore from '@/store/team'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport UnrankedWarning from '@/views/GameDay/UnrankedWarning.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport GameDayGameList from '@/views/GameDay/GameDayGameList.vue'\nimport GameDayGameCountList from '@/views/GameDay/GameDayGameCountList.vue'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport divisionClient from '@/clients/divisionsClient'\nimport Loading from '@/elements/Loading.vue'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { cloneDeep } from 'lodash'\nimport store from '@/store'\nimport { rankPlayers, useRosterRanking, setRosterRanking } from '@/common/players'\n\n@Component({\n components: {\n LinkingListItem,\n Breadcrumbs,\n GameDayGameList,\n GameDayGameCountList,\n Loading,\n UnrankedWarning,\n },\n})\nexport default class GameDayGames extends Mixins(IsCheerMixin) {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Getter(teamStore.getterNames.hasScheduledGames, { namespace: teamStore.namespace })\n private readonly hasScheduledGames!: boolean\n\n @Getter(teamStore.getterNames.hasScheduledAppointments, { namespace: teamStore.namespace })\n private readonly hasScheduledAppointments!: boolean\n\n @Mutation(teamStore.mutationNames.setCurrentTeamPlayers, { namespace: teamStore.namespace })\n private setPlayers!: ({ players }: { players: TeamPlayerInfo[] }) => void\n\n private gameCount = 0\n private divisionName = ''\n private loading = false\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: false },\n ])\n\n private async mounted() {\n if (!this.hasScheduledGames) {\n //if there are no scheduled games, retreive the division\n // so that division.gameCount can me used to generate games\n await this.loadDivision()\n }\n\n if (this.currentTeam.players) {\n const players = cloneDeep(this.currentTeam.players)\n if (!useRosterRanking(players)) {\n this.setPlayers({ players: setRosterRanking(rankPlayers(players)) })\n }\n }\n }\n\n get currentPlayers() {\n return this.currentTeam.players\n }\n\n get unrankedPlayers() {\n if (store.getters.game.skipPlayerRanking) return false\n const players = cloneDeep(this.currentTeam.players)\n return players ? players.some((p) => p.rosterRanking == '' || !p.rosterRanking) : false\n }\n\n private async loadDivision() {\n try {\n this.loading = true\n const team = this.currentTeam\n const division = await divisionClient.retrieve(team.upwardLeagueID, team.typeProgramID, team.divisionID)\n if (division) {\n this.gameCount = division.gameCount\n this.divisionName = division.divisionName\n }\n } finally {\n this.loading = false\n }\n }\n\n private get component() {\n if (this.isCheer && this.hasScheduledAppointments) return 'GameDayGameList'\n if (!this.isCheer && this.hasScheduledGames) return 'GameDayGameList'\n return 'GameDayGameCountList'\n }\n\n private get noGames(): boolean {\n return !this.loading && !this.hasScheduledGames && !this.hasScheduledAppointments && !this.gameCount\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGames.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDayGames.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDayGames.vue?vue&type=template&id=0c179f56\"\nimport script from \"./GameDayGames.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDayGames.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\nimport GameDayGames from '@/views/GameDay/GameDayGames.vue'\n\nexport default function (type: string) {\n return [\n {\n path: 'games',\n name: `games_${type}`,\n meta: {\n title: 'Games',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: GameDayGames,\n },\n ] as RouteConfig[]\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(!_vm.isLoading)?_c('div',{staticClass:\"p-3\"},[_c('div',{staticClass:\"d-flex pb-3 mx-1 mb-4 border-bottom\"},[(!_vm.isloadingPlayerHistory)?_vm._l((_vm.recognitionHistory),function(player){return _c('div',{key:player.id},[_c('star',{staticClass:\"star-img\",attrs:{\"recognition-id\":player.recognitionId}})],1)}):_vm._e(),(_vm.isloadingPlayerHistory)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()],2),_c('div',[_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.removeStar}},[_c('u',[_vm._v(\"remove star\")])]),_c('button',{staticClass:\"btn btn-dark float-right\",on:{\"click\":_vm.save}},[(_vm.saving)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Save\")]],2)]),_vm._l((_vm.recognitionTypes),function(recognition){return _c('div',{key:recognition.id,staticClass:\"clear-float\"},[_c('div',{staticClass:\"d-flex clickable\",on:{\"click\":function($event){return _vm.starClicked(recognition.typePlayerRecognitionID)}}},[_c('star',{staticClass:\"star-img\",attrs:{\"recognition-id\":recognition.typePlayerRecognitionID}}),_c('div',[_c('h3',{staticClass:\"d-inline mr-2\"},[_vm._v(_vm._s(recognition.description))]),_c('span',{class:{ 'd-none': _vm.selectedRecognitionId != recognition.typePlayerRecognitionID },staticStyle:{\"color\":\"green\"}},[_c('i',{staticClass:\"fas fa-check\"})])])],1),_c('div',{staticClass:\"small mb-5\"},[_vm._v(_vm._s(recognition.longDescription))])])}),_c('memo-input',{staticClass:\"mb-4\",attrs:{\"label\":\"Comment\",\"rows\":5},model:{value:(_vm.comment),callback:function ($$v) {_vm.comment=$$v},expression:\"comment\"}}),_c('button',{staticClass:\"btn btn-dark float-right\",on:{\"click\":_vm.save}},[(_vm.saving)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Save\")]],2)],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[_c('text-like-wrapper',{attrs:{\"append-icon\":_vm.appendIcon,\"enabled\":_vm.enabled,\"id\":_vm.id,\"label\":_vm.label,\"sub-label-inline\":_vm.subLabelInline,\"sub-label\":_vm.subLabel,\"prepend-icon\":_vm.prependIcon,\"required\":_vm.required,\"vee-validate-rules\":_vm.VeeValidateRules,\"vee-validate-mode\":_vm.veeValidateMode,\"sub-text\":_vm.subText},on:{\"icon-click\":_vm.iconClick}},[_c('div',{staticClass:\"input-group\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],staticClass:\"form-control\",attrs:{\"required\":_vm.required,\"placeholder\":_vm.placeholder,\"rows\":_vm.rows,\"readonly\":_vm.isReadOnly},domProps:{\"value\":(_vm.internalValue)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.internalValue=$event.target.value},_vm.handleInput],\"change\":_vm.handleChange,\"keydown\":_vm.canInput,\"blur\":_vm.handleBlur}})])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { Component, Mixins, Watch, Prop } from 'vue-property-decorator'\nimport TextLikeWrapper from '@/elements/TextLikeWrapper/TextLikeWrapper.vue'\nimport { TextLikeWrapperProps } from '@/elements/TextLikeWrapper/TextLikeWrapperProps'\n\n@Component({\n components: {\n InputLabel,\n TextLikeWrapper,\n },\n})\nexport default class MemoInput extends Mixins(TextLikeWrapperProps) {\n @Prop({ type: Number, default: null, required: false })\n private readonly rows!: number | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n @Prop({ type: String, required: true })\n private readonly value!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly isReadOnly!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly haltInput!: boolean\n\n private internalValue: string = this.value\n\n private handleInput() {\n this.$emit('input', this.internalValue)\n }\n\n private handleChange() {\n this.$emit('change', this.internalValue)\n }\n\n private handleBlur() {\n this.$emit('blur', this.internalValue)\n }\n\n private canInput(event: KeyboardEvent) {\n if (this.haltInput && event.key != 'Backspace') {\n event.preventDefault()\n }\n return\n }\n\n @Watch('value')\n private onValueChanged() {\n this.internalValue = this.value\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MemoInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MemoInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MemoInput.vue?vue&type=template&id=217f5764\"\nimport script from \"./MemoInput.vue?vue&type=script&lang=ts\"\nexport * from \"./MemoInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { DivisionGamePlayerInfo } from '@/GeneratedTypes/ListInfo/DivisionGamePlayerInfo'\n\nexport function getEmptyDivisionGamePlayerInfo(): DivisionGamePlayerInfo {\n return {\n leagueID: 0,\n typeProgramID: '',\n divisionID: 0,\n gameID: 0,\n teamID: 0,\n playerIndividualID: 0,\n typePlayerRecognitionID: '',\n recognitionNote: '',\n isPlaying: true,\n playedQuarter1: false,\n playedQuarter2: false,\n playedQuarter3: false,\n playedQuarter4: false,\n foulCount: 0,\n typePositionID: '',\n rosterRanking: '',\n coachAssignedJerseyNumber: '',\n }\n}\n","import { CheerSquadRecognition } from '@/GeneratedTypes/CheerSquadRecognition'\n\nexport function getEmptyCheerSquadRecognition(): CheerSquadRecognition {\n return {\n leagueID: 0,\n typeProgramID: '',\n divisionID: 0,\n teamID: 0,\n playerIndividualID: 0,\n cheerSquadGameAppointmentID: 0,\n typePlayerRecognitionID: null,\n note: null,\n }\n}\n","\nimport { Component, Watch, Mixins } from 'vue-property-decorator'\nimport { Getter, Action } from 'vuex-class'\nimport * as teamStore from '@/store/team'\nimport * as gameStore from '@/store/game'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport gameClient from '@/clients/gameClient'\nimport { TypeProgramPlayerRecognitionInfo } from '@/GeneratedTypes/ListInfo/TypeProgramPlayerRecognitionInfo'\nimport Loading from '@/elements/Loading.vue'\nimport MemoInput from '@/elements/MemoInput.vue'\nimport { getEmptyDivisionGamePlayerInfo } from '@/modelHelpers/DivisionGamePlayer'\nimport { getEmptyCheerSquadRecognition } from '@/modelHelpers/CheerSquadRecognition'\nimport Star from '@/components/Star.vue'\nimport { DivisionGamePlayerInfo } from '@/GeneratedTypes/ListInfo/DivisionGamePlayerInfo'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { CheerSquadRecognition } from '@/GeneratedTypes/CheerSquadRecognition'\nimport teamClient from '@/clients/teamClient'\n\ninterface DisplayableRecognition {\n individualId: number\n recognitionId: string | null\n comment: string | null\n gameOrAptId: number\n}\n\n@Component({\n components: {\n Loading,\n MemoInput,\n Star,\n Breadcrumbs,\n },\n})\nexport default class Recognition extends Mixins(IsCheerMixin) {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n protected currentTeam!: DivisionTeamInfoExt\n\n @Getter(gameStore.getterNames.currentGameRecognitions, { namespace: gameStore.namespace })\n private gameRecognitions!: DivisionGamePlayerInfo[]\n\n @Getter(gameStore.getterNames.currentCheerGameRecognitions, { namespace: gameStore.namespace })\n private cheerGameRecognitions!: CheerSquadRecognition[]\n\n @Action(teamStore.actionNames.fetchAndSetCurrentTeam, { namespace: teamStore.namespace })\n private fetchAndSetCurrentTeam!: ({\n upwId,\n programTypeId,\n divisionId,\n teamId,\n }: {\n upwId: string\n programTypeId: string\n divisionId: number\n teamId: number\n }) => Promise\n\n private isLoading = false\n private saving = false\n private isloadingPlayerHistory = false\n private selectedRecognitionId: string | null = ''\n private comment = ''\n private recognitionHistory = [] as DisplayableRecognition[]\n private recognitionTypes = [] as TypeProgramPlayerRecognitionInfo[]\n private localCrumbs = [\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true },\n { crumb: CrumbsEnum.GAME, isActive: true, params: { gameId: this.gameId } },\n { crumb: CrumbsEnum.RECOGNITION, isActive: false },\n ]\n\n private breadcrumbs: Crumb[] = []\n\n private async mounted() {\n await Promise.all([this.retreiveStars(), this.retreivePlayerRecognitionHistory()])\n this.setRecognitionForThisPlayerAndThisGame()\n this.configBreadcrumbForCheer()\n }\n\n private configBreadcrumbForCheer() {\n if (this.isCheer || this.isSelect) {\n this.localCrumbs = this.localCrumbs.filter((c) => c.crumb != CrumbsEnum.GAME)\n }\n this.breadcrumbs = getCrumbs(this.localCrumbs)\n }\n\n private setRecognitionForThisPlayerAndThisGame() {\n if (this.playerRecognition) {\n this.selectedRecognitionId = this.playerRecognition.recognitionId ?? ''\n this.comment = this.playerRecognition.comment ?? ''\n }\n }\n\n private get playerRecognition(): DisplayableRecognition | null {\n const star = this.teamRecognitionList.find((g) => g.individualId === this.individualId)\n return star ? star : null\n }\n\n private get teamRecognitionList(): DisplayableRecognition[] {\n if (this.isCheer) {\n return this.composeDisplayableFromCheer\n } else {\n return this.composeDisplayableFromPlayer\n }\n }\n\n private get composeDisplayableFromCheer(): DisplayableRecognition[] {\n return this.cheerGameRecognitions.map((c) => {\n return {\n individualId: c.playerIndividualID,\n recognitionId: c.typePlayerRecognitionID,\n comment: c.note,\n gameOrAptId: c.cheerSquadGameAppointmentID,\n } as DisplayableRecognition\n })\n }\n\n private get composeDisplayableFromPlayer(): DisplayableRecognition[] {\n return this.gameRecognitions.map((c) => {\n return {\n individualId: c.playerIndividualID,\n recognitionId: c.typePlayerRecognitionID,\n comment: c.recognitionNote,\n gameOrAptId: c.gameID,\n } as DisplayableRecognition\n })\n }\n\n private get individualId(): number {\n return Number(this.$route.params.individualId)\n }\n\n private get gameId(): number {\n return Number(this.$route.params.gameId)\n }\n\n private removeStar() {\n this.selectedRecognitionId = ''\n this.comment = ''\n }\n\n private starClicked(recognitionId: string) {\n this.selectedRecognitionId = recognitionId\n this.comment = ''\n }\n\n private async save() {\n try {\n this.saving = true\n\n if (this.isCheer) {\n await this.saveCheer()\n } else {\n await this.savePlayer()\n }\n\n this.$router.back()\n } finally {\n this.saving = false\n }\n }\n\n private async savePlayer() {\n const player = this.composePlayer()\n await gameClient.updateSportRecognition(this.currentTeam.upwardLeagueID, player)\n }\n\n private async saveCheer() {\n const cheer = this.composeCheer()\n await gameClient.updateCheerRecognition(this.currentTeam.upwardLeagueID, cheer)\n }\n\n private composePlayer(): DivisionGamePlayerInfo {\n const player = getEmptyDivisionGamePlayerInfo()\n player.leagueID = this.currentTeam.leagueID\n player.typeProgramID = this.currentTeam.typeProgramID ?? ''\n player.divisionID = this.currentTeam.divisionID\n player.teamID = this.currentTeam.teamID\n player.recognitionNote = this.comment\n player.gameID = this.gameId\n player.playerIndividualID = this.individualId\n player.typePlayerRecognitionID = this.selectedRecognitionId\n return player\n }\n\n private composeCheer() {\n const cheer = getEmptyCheerSquadRecognition()\n cheer.leagueID = this.currentTeam.leagueID\n cheer.typeProgramID = this.currentTeam.typeProgramID ?? ''\n cheer.divisionID = this.currentTeam.divisionID\n cheer.teamID = this.currentTeam.teamID\n cheer.playerIndividualID = Number(this.$route.params.individualId)\n cheer.typePlayerRecognitionID = this.selectedRecognitionId\n cheer.note = this.comment\n cheer.cheerSquadGameAppointmentID = Number(this.$route.params.gameId)\n return cheer\n }\n\n private async retreiveStars() {\n if (!this.currentTeam.typeProgramID) return\n this.isLoading = true\n try {\n this.recognitionTypes = await gameClient.retrievePlayerRecognitionTypes(this.currentTeam.typeProgramID)\n } finally {\n this.isLoading = false\n }\n }\n\n private async retreivePlayerRecognitionHistory() {\n if (!this.currentTeam.typeProgramID) return\n this.isloadingPlayerHistory = true\n await this.setCurrentTeam()\n try {\n if (!this.isCheer) {\n this.recognitionHistory = await this.loadPlayerHistory()\n } else {\n this.recognitionHistory = await this.loadCheerHistory()\n }\n } finally {\n this.isloadingPlayerHistory = false\n }\n }\n\n private async setCurrentTeam() {\n if (this.currentTeam.currentGameID !== this.gameId) {\n this.isLoading = true\n try {\n await teamClient.setCurrentGame(this.currentTeam, this.gameId)\n await this.fetchTeam()\n } finally {\n this.isLoading = false\n }\n }\n }\n\n async fetchTeam() {\n const team = this.currentTeam\n return await this.fetchAndSetCurrentTeam({\n upwId: team?.upwardLeagueID ?? '',\n programTypeId: team?.typeProgramID ?? '',\n divisionId: team?.divisionID ?? 0,\n teamId: team?.teamID ?? 0,\n })\n }\n\n private async loadCheerHistory() {\n const x = await gameClient.retreiveCheerleaderRecognitions(\n this.currentTeam.upwardLeagueID,\n this.currentTeam.typeProgramID,\n this.currentTeam.divisionID,\n this.currentTeam.teamID,\n this.individualId\n )\n return x.map((p) => {\n return {\n individualId: p.playerIndividualID,\n recognitionId: p.typePlayerRecognitionID,\n comment: p.note,\n gameOrAptId: p.cheerSquadGameAppointmentID,\n } as DisplayableRecognition\n })\n }\n\n private async loadPlayerHistory() {\n const x = await gameClient.retreivePlayerRecognitions(\n this.currentTeam.upwardLeagueID,\n this.individualId,\n this.currentTeam.teamID\n )\n return x.map((p) => {\n return {\n individualId: p.playerIndividualID,\n recognitionId: p.typePlayerRecognitionID,\n comment: p.recognitionNote,\n gameOrAptId: p.gameID,\n } as DisplayableRecognition\n })\n }\n\n @Watch('currentTeam', { deep: true })\n private currentProgramChanged() {\n this.retreiveStars()\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Recognition.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Recognition.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Recognition.vue?vue&type=template&id=78087ed8&scoped=true\"\nimport script from \"./Recognition.vue?vue&type=script&lang=ts\"\nexport * from \"./Recognition.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Recognition.vue?vue&type=style&index=0&id=78087ed8&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78087ed8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),(_vm.loading)?[_c('div',{staticClass:\"center-spinner-on-view mt-3\"},[_c('loading')],1)]:_vm._e(),(!_vm.loading)?[_vm._l((_vm.sortedPlayers),function(player){return _c('game-day-player',{key:player.playerIndividualID,staticClass:\"p-2\",attrs:{\"player\":player,\"show-recognition-name\":true,\"show-comment\":true,\"show-roster-ranking\":false,\"show-remove\":false,\"enable-recognition\":_vm.enableRecognitions,\"showPositionEdit\":false}})}),(_vm.isCheer && !_vm.enableRecognitions)?_c('div',{staticClass:\"border text-center text-muted w-50 font-italic mt-4 mx-auto p-3\"},[_vm._v(\" Scheduling games will enable player recognition. \")]):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport { Getter, Action } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport { getCrumbs, CrumbsEnum, Crumb, CrumbBuilder } from '@/common/Crumbs'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport GameDayPlayer from '@/components/GameDayPlayer.vue'\nimport * as teamStore from '@/store/team'\nimport * as gameStore from '@/store/game'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport { cloneDeep } from 'lodash'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\n\n@Component({\n components: {\n Loading,\n Breadcrumbs,\n GameDayPlayer,\n },\n})\nexport default class CompleteGame extends Mixins(IsCheerMixin) {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n currentTeam!: DivisionTeamInfoExt\n\n @Getter(teamStore.getterNames.hasScheduledGames, { namespace: teamStore.namespace })\n private readonly hasScheduledGames!: boolean\n\n @Getter(teamStore.getterNames.hasScheduledAppointments, { namespace: teamStore.namespace })\n private readonly hasScheduledAppointments!: boolean\n\n @Action(gameStore.actionNames.fetchCurrentCheerGameRecognitions, { namespace: gameStore.namespace })\n private fetchCurrentCheerGameRecognitions!: ({\n upwId,\n programType,\n divisionId,\n teamId,\n aptId,\n }: {\n upwId: string | null\n programType: string | null\n divisionId: number\n teamId: number\n aptId: number\n }) => Promise\n\n @Action(gameStore.actionNames.fetchCurrentGameRecognitions, { namespace: gameStore.namespace })\n private fetchCurrentGameRecognitions!: ({\n upwId,\n gameId,\n teamId,\n }: {\n upwId: string | null\n gameId: number\n teamId: number\n }) => Promise\n\n private loading = false\n private breadcrumbs: Crumb[] = []\n\n private async mounted() {\n this.breadcrumbs = getCrumbs(this.makeBreadcrumbs())\n\n this.loading = true\n try {\n await this.loadGameRecognitions()\n } finally {\n this.loading = false\n }\n }\n\n private get enableRecognitions(): boolean {\n if (this.isCheer) return this.hasScheduledAppointments\n return this.hasScheduledGames\n }\n\n private async loadGameRecognitions() {\n if (!this.enableRecognitions) return\n if (!this.isCheer) {\n await this.fetchCurrentGameRecognitions({\n upwId: this.currentTeam.upwardLeagueID,\n gameId: this.gameId,\n teamId: this.currentTeam.teamID,\n })\n } else {\n await this.fetchCurrentCheerGameRecognitions({\n upwId: this.currentTeam.upwardLeagueID,\n programType: this.currentTeam.typeProgramID,\n divisionId: this.currentTeam.divisionID,\n teamId: this.currentTeam.teamID,\n aptId: this.gameId,\n })\n }\n }\n\n private get gameId(): number {\n return Number(this.$route.params.gameId)\n }\n\n private get players() {\n return this.currentTeam.players || ([] as TeamPlayerInfo[])\n }\n\n private get sortedPlayers() {\n const players: TeamPlayerInfo[] = cloneDeep(this.players)\n return players.sort((a, b) => {\n if (!a.formattedNameFirstLast || !b.formattedNameFirstLast) return 0\n if (a.formattedNameFirstLast < b.formattedNameFirstLast) return -1\n if (a.formattedNameFirstLast > b.formattedNameFirstLast) return 1\n return 0\n })\n }\n\n private makeBreadcrumbs(): CrumbBuilder[] {\n const crumbs = [] as CrumbBuilder[]\n crumbs.push({ crumb: CrumbsEnum.HOME, isActive: true })\n\n if (this.isCheer || this.isSelect) {\n crumbs.push({ crumb: CrumbsEnum.GAMES_STAR_DIST, isActive: true })\n } else {\n crumbs.push({ crumb: CrumbsEnum.GAMES_GAMEDAY, isActive: true })\n crumbs.push({ crumb: CrumbsEnum.GAME, isActive: true, params: { gameId: this.gameId } })\n }\n\n crumbs.push({ crumb: CrumbsEnum.COMPLETE_GAME, isActive: false })\n return crumbs\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameRecognition.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameRecognition.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameRecognition.vue?vue&type=template&id=4c4fc294\"\nimport script from \"./GameRecognition.vue?vue&type=script&lang=ts\"\nexport * from \"./GameRecognition.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\nimport GameDayGames from '@/views/GameDay/GameDayGames.vue'\nimport Recognition from '@/views/GameDay/Recognition.vue'\nimport GameRecognition from '@/views/GameDay/GameRecognition.vue'\n\nexport default [\n {\n path: 'games',\n meta: {\n title: 'Games',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: GameDayGames,\n },\n {\n path: 'game/:gameId/recognition/:individualId',\n meta: {\n title: 'Recognition',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: Recognition,\n },\n {\n path: 'game/:gameId/gamerecognition',\n name: 'gameRecognition',\n meta: {\n title: 'Game Recognition',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: GameRecognition,\n },\n] as RouteConfig[]\n","import { RouterItems, RouterItemsEnum } from '@/common/RouterItems'\nimport { MainMenu, MainMenuEnum } from '@/common/MainMenuItems'\nimport gameDayRoutes from '@/router/gameDay'\nimport gamesListRoute from '@/router/game'\nimport startDistributionRoutes from '@/router/startDistribution'\nimport store from '@/store'\n\nexport interface Crumb {\n routeName?: string\n label: string\n active: boolean\n params?: Record\n}\n\nconst home: Crumb = {\n label: RouterItems[RouterItemsEnum.HOME].text,\n routeName: RouterItems[RouterItemsEnum.HOME].name,\n active: true,\n}\n\nconst account: Crumb = {\n label: RouterItems[RouterItemsEnum.ACCOUNT].text,\n routeName: RouterItems[RouterItemsEnum.ACCOUNT].name,\n active: false,\n}\n\nconst search: Crumb = {\n label: RouterItems[RouterItemsEnum.SEARCH].text,\n routeName: RouterItems[RouterItemsEnum.SEARCH].name,\n active: true,\n}\n\nconst communication: Crumb = {\n label: MainMenu[MainMenuEnum.COMMUNICATION].text,\n routeName: MainMenu[MainMenuEnum.COMMUNICATION].name,\n active: true,\n}\n\nconst player: Crumb = {\n label: RouterItems[RouterItemsEnum.PLAYER].text,\n routeName: RouterItems[RouterItemsEnum.PLAYER].name,\n active: true,\n}\n\nconst coach: Crumb = {\n label: RouterItems[RouterItemsEnum.COACH].text,\n routeName: RouterItems[RouterItemsEnum.COACH].name,\n active: true,\n}\n\nconst team: Crumb = {\n label: RouterItems[RouterItemsEnum.TEAM].text,\n routeName: RouterItems[RouterItemsEnum.TEAM].name,\n active: true,\n}\n\nconst manageTeam: Crumb = {\n label: MainMenu[MainMenuEnum.MANAGE_TEAM].text,\n routeName: MainMenu[MainMenuEnum.MANAGE_TEAM].name,\n active: true,\n}\n\nconst resources: Crumb = {\n label: MainMenu[MainMenuEnum.RESOURCES].text,\n routeName: MainMenu[MainMenuEnum.RESOURCES].name,\n active: true,\n}\n\nconst practiceResources: Crumb = {\n label: MainMenu[MainMenuEnum.RESOURCES].text,\n routeName: MainMenu[MainMenuEnum.RESOURCES].name,\n active: true,\n}\n\nconst cheerResources: Crumb = {\n label: MainMenu[MainMenuEnum.CHEER_PRACTICE_RESOURCES].text,\n routeName: MainMenu[MainMenuEnum.CHEER_PRACTICE_RESOURCES].name,\n active: true,\n}\n\nconst ministryResources: Crumb = {\n label: MainMenu[MainMenuEnum.MINISTRY_RESOURCES].text,\n routeName: MainMenu[MainMenuEnum.MINISTRY_RESOURCES].name,\n active: true,\n}\n\nclass refereeSchedule implements Crumb {\n private _active = true\n public get label() {\n return `${store.state.programs.currentProgram?.refLabel} Schedule`\n }\n public get routeName() {\n return MainMenu[MainMenuEnum.REFEREE_SCHEDULE].name\n }\n public get active() {\n return this._active\n }\n public set active(value: boolean) {\n this._active = value\n }\n}\n\nconst gameRoute = gameDayRoutes.find((r) => r.name === 'game')\nconst game: Crumb = {\n label: gameRoute?.meta?.title ?? '',\n routeName: gameRoute?.name,\n active: true,\n}\n\nconst gamesGameDayRoute = gamesListRoute('gameday').find((r) => r.name === 'games_gameday')\nconst gamesGameDay: Crumb = {\n label: gamesGameDayRoute?.meta?.title ?? '',\n routeName: gamesGameDayRoute?.name,\n active: true,\n}\nconst gamesStartDistributionRoute = gamesListRoute('startdistribution').find(\n (r) => r.name === 'games_startdistribution'\n)\nconst gamesStarDistribution: Crumb = {\n label: gamesStartDistributionRoute?.meta?.title ?? '',\n routeName: gamesStartDistributionRoute?.name,\n active: true,\n}\n\nconst completeGame: Crumb = {\n label: 'Game Recognitions',\n routeName: '',\n active: true,\n}\n\nconst gameRecognitionRoute = startDistributionRoutes.find((r) => r.name === 'gameRecognition')\nconst gameRecognition: Crumb = {\n label: gameRecognitionRoute?.meta?.title,\n routeName: gameRecognitionRoute?.name,\n active: true,\n}\n\nconst playerReactivateRoute = gameDayRoutes.find((r) => r.name === 'reactivate')\nconst playerReactivate: Crumb = {\n label: playerReactivateRoute?.meta?.title,\n routeName: playerReactivateRoute?.name,\n active: true,\n}\n\nconst formatRoute = gameDayRoutes.find((r) => r.name === 'format')\nconst format: Crumb = {\n label: formatRoute?.meta?.title,\n routeName: playerReactivateRoute?.name,\n active: true,\n}\n\nexport enum CrumbsEnum {\n HOME = 'Home',\n SEARCH = 'Search',\n COMMUNICATION = 'Communication',\n PLAYER = 'Player',\n COACH = 'Coach',\n TEAM = 'Team',\n RESOURCES = 'Resources',\n PRACTICE_RESOURCES = 'PracticeResources',\n MINISTRY_RESOURCES = 'MinistryResources',\n CHEER_RESOURCES = 'CheerResources',\n MANAGE_TEAM = 'ManageTeam',\n GAMES_GAMEDAY = 'gamesGameday',\n GAMES_STAR_DIST = 'gamesStarDist',\n GAME = 'game',\n COMPLETE_GAME = 'completeGame',\n RECOGNITION = 'gameRecognition',\n REACTIVATE_PLAYER = 'playerReactivate',\n CHANGE_GAME_FORMAT = 'changeGameFormat',\n REFEREE_SCHEDULE = 'refereeSchedule',\n ACCOUNT = 'account',\n}\n\nexport const Crumbs: Record = {\n [CrumbsEnum.HOME]: home,\n [CrumbsEnum.SEARCH]: search,\n [CrumbsEnum.COMMUNICATION]: communication,\n [CrumbsEnum.PLAYER]: player,\n [CrumbsEnum.COACH]: coach,\n [CrumbsEnum.TEAM]: team,\n [CrumbsEnum.RESOURCES]: resources,\n [CrumbsEnum.PRACTICE_RESOURCES]: practiceResources,\n [CrumbsEnum.MINISTRY_RESOURCES]: ministryResources,\n [CrumbsEnum.CHEER_RESOURCES]: cheerResources,\n [CrumbsEnum.MANAGE_TEAM]: manageTeam,\n [CrumbsEnum.GAME]: game,\n [CrumbsEnum.GAMES_GAMEDAY]: gamesGameDay,\n [CrumbsEnum.GAMES_STAR_DIST]: gamesStarDistribution,\n [CrumbsEnum.COMPLETE_GAME]: completeGame,\n [CrumbsEnum.RECOGNITION]: gameRecognition,\n [CrumbsEnum.REACTIVATE_PLAYER]: playerReactivate,\n [CrumbsEnum.CHANGE_GAME_FORMAT]: format,\n [CrumbsEnum.REFEREE_SCHEDULE]: new refereeSchedule(),\n [CrumbsEnum.ACCOUNT]: account,\n}\n\nexport interface CrumbBuilder {\n crumb: CrumbsEnum\n isActive: boolean\n params?: Record\n}\n\nexport function getCrumbs(items: CrumbBuilder[]) {\n const crumbs: Crumb[] = []\n items.forEach((item: CrumbBuilder) => {\n const crumb = Crumbs[item.crumb]\n crumb.active = item.isActive\n if (item.params) {\n crumb.params = item.params\n }\n crumbs.push(crumb)\n })\n return crumbs\n}\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\n@Component({\n components: {\n PageStateToggle,\n Breadcrumbs,\n },\n})\nexport default class Communication extends Vue {\n private pageStates: string[] = []\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.COMMUNICATION, isActive: false },\n ])\n\n private mounted() {\n this.pageStates = ['Email', 'SMS']\n if (this.$hasAtLeastOne(superUsers) || this.$hasAllOf([VolunteerRoles.COACH])) {\n this.pageStates.push('Team Alert')\n }\n this.currentToggle = this.pageStates[0]\n this.stateChanged(this.currentToggle)\n }\n\n private async stateChanged(state: string | null) {\n let path = `/communication/individual/${this.currentToggle}`\n if (state === 'Team Alert') path = '/communication/team'\n this.$router.push(path)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Communication.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Communication.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Communication.vue?vue&type=template&id=4dcb3c48\"\nimport script from \"./Communication.vue?vue&type=script&lang=ts\"\nexport * from \"./Communication.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),(!_vm.isLoading)?_c('div',[_c('primary-heading',{attrs:{\"title\":_vm.participant.formattedNameFirstLast}}),_c('div',{staticClass:\"m-2\"},[_c('player-information',{attrs:{\"participant\":_vm.participant,\"teams\":_vm.teams}}),_c('contact-list',{attrs:{\"contacts\":_vm.participant.contacts,\"title\":\"Parents/Guardians\"}}),_c('role-access',{attrs:{\"allow-if-any\":_vm.superUsers,\"deny-if-any\":_vm.allVolunteerRoles}},[_c('player-team',{attrs:{\"teams\":_vm.teams}})],1)],1)],1):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LeaguePlayerInfo } from '@/GeneratedTypes/ListInfo/LeaguePlayerInfo'\n\nexport function getEmptyLeaguePlayerInfoList(): LeaguePlayerInfo[] {\n return [getEmptyLeaguePlayerInfo()]\n}\n\nexport function getEmptyLeaguePlayerInfo(): LeaguePlayerInfo {\n return {\n leagueID: 0,\n accountNumber: '',\n typeGradeID: '',\n medicalNotes: '',\n generalNotes: '',\n registrationTransactionID: 0,\n isImported: false,\n typeProgramID: '',\n yearsExperience: 0,\n adminNotes: '',\n pendingCoachLinkIndividualID: 0,\n pendingCoachLinkFirstName: '',\n pendingCoachLinkLastName: '',\n active: true,\n amountExpectedToPay: 0,\n amountPaid: 0,\n isPlayerSizingComplete: false,\n registrationCompletionInformation: '',\n evaluationScore: 0,\n positionScore: 0,\n athleticScore: 0,\n hasBrokenCarpoolLink: false,\n hasBrokenCoachLink: false,\n actualCoachLinkIndividualID: 0,\n actualCoachLinkFirstName: null,\n actualCoachLinkLastName: null,\n actualCarpoolLinkIndividualID: 0,\n actualCarpoolLinkFirstName: null,\n actualCarpoolLinkLastName: null,\n extraScore: 0,\n practiceNightExclusions: null,\n individualID: 0,\n firstName: '',\n lastName: '',\n middleInitial: '',\n gender: '',\n birthDate: null,\n churchName: '',\n addresses: null,\n phoneNumbers: null,\n emailAddresses: null,\n thirdPartyClientIDs: null,\n formattedNameFirstLast: '',\n formattedNameLastFirst: '',\n formattedNamePrivate: '',\n }\n}\n","import { LeaguePlayerInfoExt } from '@/models/LeaguePlayerInfoExt'\nimport { getEmptyLeaguePlayerInfo } from '@/modelHelpers/LeaguePlayerInfo.ts'\n\nexport function getEmptyLeaguePlayerInfoExt(): LeaguePlayerInfoExt {\n const empty = getEmptyLeaguePlayerInfo()\n return { ...{ contacts: [] }, ...empty }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(\"Player Information\")]),_c('div',{staticClass:\"mb-3 border p-2\"},[(_vm.participant.birthDate)?_c('div',{staticClass:\"mb-2\"},[_c('input-label',{attrs:{\"label\":\"birthdate\"}}),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.mmt(_vm.participant.birthDate).format('MMM D, yyyy')))])],1):_vm._e(),(_vm.participant.churchName)?_c('div',{staticClass:\"mb-2\"},[_c('input-label',{attrs:{\"label\":\"church\"}}),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.participant.churchName))])],1):_vm._e(),(_vm.participant.typeGradeID && !_vm.currentProgram.isByAge)?_c('div',{staticClass:\"mb-2\"},[_c('input-label',{attrs:{\"label\":\"grade\"}}),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.participant.typeGradeID))])],1):_vm._e(),(_vm.participant.gender)?_c('div',{staticClass:\"mb-2\"},[_c('input-label',{attrs:{\"label\":\"gender\"}}),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.participant.gender))])],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { LeaguePlayerInfoExt } from '@/models/LeaguePlayerInfoExt'\nimport { getEmptyLeaguePlayerInfoExt } from '@/modelHelpers/LeaguePlayerInfoExt'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport moment from 'moment'\nimport * as programStore from '@/store/programs'\n\n@Component({\n components: {\n InputLabel,\n },\n})\nexport default class PlayerInformation extends Vue {\n @Prop({ type: Object, default: getEmptyLeaguePlayerInfoExt, required: false })\n private readonly participant!: LeaguePlayerInfoExt\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n private mmt = moment\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerInformation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerInformation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PlayerInformation.vue?vue&type=template&id=595c230e\"\nimport script from \"./PlayerInformation.vue?vue&type=script&lang=ts\"\nexport * from \"./PlayerInformation.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(\"Team Information\")]),_c('div',{staticClass:\"mb-3 border p-2\"},_vm._l((_vm.teams),function(t){return _c('div',{key:t.teamID},[_c('input-label',{attrs:{\"label\":t.teamName}}),_c('practice-list',{attrs:{\"practices\":t.practices}})],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(_vm._s(_vm.title))]),(_vm.scheduledPracticesCount !== 0)?_c('toggle',{staticClass:\"mb-3 mx-auto\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"states\":_vm.pageStates},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}):_vm._e(),(_vm.practices && _vm.filteredPracticesCount > 0)?_vm._l((_vm.filteredPractices),function(practice,index){return _c('div',{key:index},[_c('practice',{attrs:{\"practice\":practice}})],1)}):_vm._e(),(_vm.scheduledPracticesCount === 0)?_c('div',{staticClass:\"small text-center p-5 m-2 m-sm-5\"},[_vm._v(\" There are no scheduled practices. \")]):_vm._e(),(_vm.filteredPracticesCount === 0 && _vm.scheduledPracticesCount !== 0)?_c('div',{staticClass:\"small text-center p-5 m-2 m-sm-5\"},[_vm._v(\" There are no \"),_c('b',[_vm._v(_vm._s(_vm.currentToggle))]),_vm._v(\" practices. Toggle the Upcoming/Past filter to see practices. \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DivisionTeamPracticeAppointmentInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamPracticeAppointmentInfo'\n\nexport function getEmptyDivisionTeamPracticeAppointmentInfo(): DivisionTeamPracticeAppointmentInfo {\n return {\n id: 0,\n leagueID: 0,\n typeProgramID: '',\n divisionID: 0,\n teamID: 0,\n practiceStart: null,\n practiceEnd: null,\n facilityID: 0,\n facilityName: null,\n }\n}\n\nexport function getEmptyDivisionTeamPracticeAppointmentInfoList(): DivisionTeamPracticeAppointmentInfo[] {\n return [getEmptyDivisionTeamPracticeAppointmentInfo()]\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('date-card',{attrs:{\"card-date\":_vm.practice.practiceStart}},[_c('template',{slot:\"body\"},[_c('div',{staticClass:\"col-9 py-1 px-2\"},[_c('label-input',{attrs:{\"label\":_vm.practice.facilityName,\"label-class\":\"\"}}),(_vm.practice.practiceStart)?_c('div',{staticClass:\"small\"},[_vm._v(\" \"+_vm._s(_vm.time(_vm.practice.practiceStart))+\" - \"+_vm._s(_vm.time(_vm.practice.practiceEnd))+\" \")]):_vm._e()],1)])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row border mb-3\",staticStyle:{\"min-height\":\"90px\"}},[_c('div',{staticClass:\"col-3 border-right text-center my-auto py-1 px-0\",staticStyle:{\"min-height\":\"100%\"}},[_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.dateInfo.month))]),_c('div',{staticClass:\"display-6 font-weight-bold\"},[_vm._v(_vm._s(_vm.dateInfo.day))]),_c('div',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.time))])]),_vm._t(\"body\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport moment from 'moment'\n\n@Component({\n components: {\n LabelInput,\n },\n})\nexport default class DateCard extends Vue {\n @Prop({ type: String, default: null, required: false })\n private readonly cardDate!: string\n\n @Prop({ type: String, default: null, required: false })\n private readonly time!: string\n\n private get dateInfo() {\n const game: DateInfo = {\n day: '',\n time: '',\n month: '',\n }\n\n if (this.cardDate) {\n const dt = moment(this.cardDate)\n game.day = dt.format('DD')\n game.month = dt.format('MMM')\n game.time = dt.format('h:mmA')\n }\n return game\n }\n}\ninterface DateInfo {\n day: string\n month: string\n time: string\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateCard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateCard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DateCard.vue?vue&type=template&id=b190873e\"\nimport script from \"./DateCard.vue?vue&type=script&lang=ts\"\nexport * from \"./DateCard.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { getEmptyDivisionTeamPracticeAppointmentInfo } from '@/modelHelpers/DivisionTeamPracticeAppointmentInfo'\nimport { DivisionTeamPracticeAppointmentInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamPracticeAppointmentInfo'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport DateCard from '@/components/DateCard.vue'\nimport moment from 'moment'\n\n@Component({\n components: {\n LabelInput,\n DateCard,\n },\n})\nexport default class Practice extends Vue {\n @Prop({ type: Object, default: getEmptyDivisionTeamPracticeAppointmentInfo, required: false })\n private readonly practice!: DivisionTeamPracticeAppointmentInfo\n\n private time(dt: string) {\n return moment(dt).format('h:mmA')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Practice.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Practice.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Practice.vue?vue&type=template&id=4901f170\"\nimport script from \"./Practice.vue?vue&type=script&lang=ts\"\nexport * from \"./Practice.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"border shadow-sm\"},_vm._l((_vm.states),function(state,index){return _c('button',{key:index,staticClass:\"btn btn-default w-50 rounded-0\",class:{ isActive: state === _vm.value, 'btn-primary': state === _vm.value, 'bg-white': state !== _vm.value },on:{\"click\":function($event){return _vm.toggleState(state)}}},[_vm._v(\" \"+_vm._s(state)+\" \")])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class Toggle extends Vue {\n @Prop({ type: Array, default: [], required: false }) private readonly states!: string[]\n @Prop({ type: String, default: null, required: false }) private readonly value!: string | null\n\n private currentState = ''\n\n private mounted() {\n if (!this.value) {\n this.$emit('input', this.states[0])\n }\n }\n\n private toggleState(state: string) {\n this.$emit('input', state)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Toggle.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Toggle.vue?vue&type=template&id=4021e8b6&scoped=true\"\nimport script from \"./Toggle.vue?vue&type=script&lang=ts\"\nexport * from \"./Toggle.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Toggle.vue?vue&type=style&index=0&id=4021e8b6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4021e8b6\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { getEmptyDivisionTeamPracticeAppointmentInfoList } from '@/modelHelpers/DivisionTeamPracticeAppointmentInfo'\nimport { DivisionTeamPracticeAppointmentInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamPracticeAppointmentInfo'\nimport Practice from '@/components/Practice.vue'\nimport Toggle from '@/components/Toggle.vue'\nimport moment from 'moment'\n\n@Component({\n components: {\n Practice,\n Toggle,\n },\n})\nexport default class PracticeList extends Vue {\n @Prop({ type: Array, default: getEmptyDivisionTeamPracticeAppointmentInfoList, required: false })\n private readonly practices!: DivisionTeamPracticeAppointmentInfo[]\n\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n private pageStates = ['Upcoming', 'Past']\n private currentToggle: string | null = null\n\n private get scheduledPractices() {\n if (!this.practices) return\n return this.practices.filter((practice) => {\n return !!practice.practiceStart\n })\n }\n\n private get scheduledPracticesCount() {\n if (!this.scheduledPractices) return 0\n return this.scheduledPractices.length\n }\n\n private sortPractices(practices: DivisionTeamPracticeAppointmentInfo[]) {\n //sort practices by practiceStart\n return practices.sort(\n (a: DivisionTeamPracticeAppointmentInfo, b: DivisionTeamPracticeAppointmentInfo) => {\n return moment.utc(a.practiceStart).diff(moment.utc(b.practiceStart))\n }\n )\n }\n\n private get filteredPractices() {\n if (!this.scheduledPractices) return getEmptyDivisionTeamPracticeAppointmentInfoList()\n const filtered = this.scheduledPractices.filter((practice: DivisionTeamPracticeAppointmentInfo) => {\n if (!practice.practiceStart) return false\n if (moment().isAfter(practice.practiceStart)) {\n // past practice\n return this.currentToggle === 'Past'\n } else {\n //upcoming practice\n return this.currentToggle === 'Upcoming'\n }\n })\n return this.sortPractices(filtered)\n }\n\n private get filteredPracticesCount() {\n if (!this.practices) return 0\n return this.filteredPractices.length\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeList.vue?vue&type=template&id=5b308a9a\"\nimport script from \"./PracticeList.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\n\nexport function getEmptyDivisionTeamInfo(): DivisionTeamInfo {\n return {\n leagueID: 0,\n typeProgramID: null,\n leagueDirectorPartnerID: 0,\n divisionID: 0,\n divisionName: null,\n teamID: 0,\n teamName: null,\n upwardTeamID: null,\n typeColorID: null,\n teamPageUrl: null,\n currentPracticeNumber: 0,\n currentGameID: 0,\n currentGameOffenseFirst: true,\n overrideTypeGameFormatID: null,\n practices: null,\n coaches: null,\n players: null,\n coachCount: 0,\n playerCount: 0,\n headCoachName: null,\n upwardLeagueID: null,\n hideTeamPageRoster: false,\n hideCoachEmailOnTeamPage: false,\n hideCoachPhoneOnTeamPage: false,\n hideAssistantCoachEmailOnTeamPage: false,\n hideAssistantCoachPhoneOnTeamPage: false,\n hideScheduleOnTeamPage: false,\n hideHeadCoachLabel: false,\n typePracticePlanID: null,\n typeGameFormatID: null,\n overrideNumberOfSegments: 0,\n typeLeagueScoringID: null,\n showStandingsTeamPage: false,\n useLevelFourSub: false,\n ruleLevel: 0,\n }\n}\n\nexport function getEmptyDivisionTeamInfoList(): DivisionTeamInfo[] {\n return [getEmptyDivisionTeamInfo()]\n}\n","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\nimport InputLabel from '@/elements/InputLabel.vue'\nimport PracticeList from '@/components/PracticeList.vue'\n\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { getEmptyDivisionTeamInfoList } from '@/modelHelpers/DivisionTeamInfo'\n\n@Component({\n components: {\n InputLabel,\n PracticeList,\n },\n})\nexport default class PlayerTeamInformation extends Vue {\n @Prop({ type: Array, default: getEmptyDivisionTeamInfoList, required: false })\n private readonly teams!: DivisionTeamInfo[]\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerTeamInformation.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerTeamInformation.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PlayerTeamInformation.vue?vue&type=template&id=5e32f54b\"\nimport script from \"./PlayerTeamInformation.vue?vue&type=script&lang=ts\"\nexport * from \"./PlayerTeamInformation.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(_vm._s(_vm.title))]),(_vm.contacts && _vm.contacts.length > 0)?_vm._l((_vm.contacts),function(contact,index){return _c('div',{key:index},[_c('contact',{attrs:{\"contact\":contact}})],1)}):_vm._e(),(_vm.contacts && _vm.contacts.length === 0)?_c('div',{staticClass:\"small text-center p-5\"},[_vm._v(\" There are no \"+_vm._s(_vm.title.toLowerCase())+\" for this program \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { PlayerContactInfo } from '@/GeneratedTypes/ListInfo/PlayerContactInfo'\nexport function getEmptyPlayerContactInfo(): PlayerContactInfo {\n return {\n leagueID: 0,\n playerIndividualID: 0,\n typeRelationshipID: '',\n isEmergencyContact: false,\n priority: 0,\n individualID: 0,\n firstName: '',\n lastName: '',\n middleInitial: '',\n gender: '',\n birthDate: null,\n churchName: '',\n addresses: null,\n phoneNumbers: null,\n emailAddresses: null,\n thirdPartyClientIDs: null,\n formattedNameFirstLast: '',\n formattedNameLastFirst: '',\n formattedNamePrivate: '',\n }\n}\n\nexport function getEmptyPlayerContactInfoList(): PlayerContactInfo[] {\n return [getEmptyPlayerContactInfo()]\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"border mb-3\"},[(_vm.contact.isEmergencyContact)?_c('div',{staticClass:\"p-1 small alert-danger\"},[_vm._v(\"Emergency Contact\")]):_vm._e(),(_vm.contact.headCoach)?_c('div',{staticClass:\"p-1 small bg-upwd-light-blue\"},[_vm._v(\"Head Coach\")]):_vm._e(),_c('div',{staticClass:\"p-1\"},[_c('label-input',{attrs:{\"label\":_vm.contact.formattedNameFirstLast}}),(_vm.contact.typeRelationshipID)?_c('div',{staticClass:\"small font-italic\"},[_vm._v(\" \"+_vm._s(_vm.contact.typeRelationshipID.toLowerCase())+\" \")]):_vm._e(),_vm._l((_vm.contact.phoneNumbers),function(phone,index){return _c('div',{key:index,staticClass:\"my-3\"},[_c('a',{attrs:{\"href\":`tel:${phone.phoneNumber}`}},[_c('div',{staticClass:\"text-underline\"},[_vm._v(_vm._s(_vm.fmtPhone(phone.phoneNumber)))]),(phone.typePhoneID)?_c('div',{staticClass:\"small\"},[_vm._v(\"(\"+_vm._s(phone.typePhoneID.toLowerCase())+\")\")]):_vm._e()])])}),_vm._l((_vm.contact.emailAddresses),function(email){return _c('div',{key:email.emailID,staticClass:\"my-2\"},[_c('a',{attrs:{\"href\":`mailTo:${email.emailAddress}`}},[_c('div',{staticClass:\"text-underline\"},[_vm._v(_vm._s(_vm.maxStringLen(email.emailAddress, 26)))]),(email.typeEmailID)?_c('div',{staticClass:\"small\"},[_vm._v(\"(\"+_vm._s(email.typeEmailID.toLowerCase())+\")\")]):_vm._e()])])})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function formatPhone(phone: string) {\n return phone.replace(/[^0-9]/g, '').replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')\n}\n","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { PlayerContactInfo } from '@/GeneratedTypes/ListInfo/PlayerContactInfo'\nimport { TeamCoachInfo } from '@/GeneratedTypes/ListInfo/TeamCoachInfo'\nimport { getEmptyPlayerContactInfo } from '@/modelHelpers/PlayerContactInfo'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport { formatPhone } from '@/formatters/phoneFmt'\nimport { maxStringLength } from '@/formatters/maxStringLength'\n\n@Component({\n components: {\n LabelInput,\n },\n})\nexport default class Contact extends Vue {\n @Prop({ type: Object, default: getEmptyPlayerContactInfo, required: false })\n private readonly contact!: PlayerContactInfo | TeamCoachInfo\n\n private fmtPhone = formatPhone\n private maxStringLen = maxStringLength\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Contact.vue?vue&type=template&id=53f1fdb3\"\nimport script from \"./Contact.vue?vue&type=script&lang=ts\"\nexport * from \"./Contact.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { PlayerContactInfo } from '@/GeneratedTypes/ListInfo/PlayerContactInfo'\nimport { TeamCoachInfo } from '@/GeneratedTypes/ListInfo/TeamCoachInfo'\nimport { getEmptyPlayerContactInfoList } from '@/modelHelpers/PlayerContactInfo'\nimport Contact from '@/components/Contact.vue'\n\n@Component({\n components: {\n Contact,\n },\n})\nexport default class ContactList extends Vue {\n @Prop({ type: Array, default: getEmptyPlayerContactInfoList, required: false })\n private readonly contacts!: PlayerContactInfo[] | TeamCoachInfo[]\n\n @Prop({ type: String, default: 'Contacts', required: false })\n private readonly title!: string\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ContactList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ContactList.vue?vue&type=template&id=21e9b0de\"\nimport script from \"./ContactList.vue?vue&type=script&lang=ts\"\nexport * from \"./ContactList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import restService from '@/services/restService'\nimport { PlayerSearchInfo } from '@/GeneratedTypes/ListInfo/PlayerSearchInfo'\nimport { PlayerSearchArgs } from '@/GeneratedTypes/PlayerSearchArgs'\nimport { LeaguePlayerInfoExt } from '@/models/LeaguePlayerInfoExt'\n\nconst baseUrl = 'participants/'\n\nconst search = async (upwId: string): Promise => {\n const params: PlayerSearchArgs = {\n currentLeagueID: 0,\n currentUpwardLeagueID: upwId,\n firstName: null,\n lastName: null,\n historyLimit: null,\n includeCurrentLeague: true,\n includePastLeagues: false,\n useStartsWith: true,\n accountNumber: null,\n }\n const endpointURI = `${baseUrl}search`\n\n const x = await restService.post(endpointURI, params)\n if (x.isSuccess) {\n return x.data ?? []\n } else {\n return Promise.reject(x.errorObject)\n }\n}\n\nconst retrieveLeaguePlayerInfoExt = async (\n upwId: string,\n individualId: string\n): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}/${individualId}/info`)\n if (result.isSuccess && result.data) {\n return result.data\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nexport default {\n search,\n retrieveLeaguePlayerInfoExt,\n}\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { LeaguePlayerInfoExt } from '@/models/LeaguePlayerInfoExt'\nimport { getEmptyLeaguePlayerInfoExt } from '@/modelHelpers/LeaguePlayerInfoExt.ts'\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport PlayerInformation from '@/components/PlayerInformation.vue'\nimport PlayerTeam from '@/components/PlayerTeamInformation.vue'\nimport ContactList from '@/components/ContactList.vue'\nimport Loading from '@/elements/Loading.vue'\nimport participantClient from '@/clients/participantClient'\nimport teamClient from '@/clients/teamClient'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { VolunteerRoles, allVolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport * as programStore from '@/store/programs'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { getEmptyDivisionTeamInfoList } from '@/modelHelpers/DivisionTeamInfo'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\n\n@Component({\n components: {\n PrimaryHeading,\n Loading,\n ContactList,\n PlayerInformation,\n Breadcrumbs,\n PlayerTeam,\n },\n})\nexport default class Player extends Vue {\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n private isLoading = false\n private allVolunteerRoles = allVolunteerRoles\n private superUsers = superUsers\n private participant: LeaguePlayerInfoExt = getEmptyLeaguePlayerInfoExt()\n private teams: DivisionTeamInfo[] = getEmptyDivisionTeamInfoList()\n private pageCrumbs = [\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.SEARCH, isActive: true },\n { crumb: CrumbsEnum.MANAGE_TEAM, isActive: true },\n { crumb: CrumbsEnum.PLAYER, isActive: false },\n ]\n private breadcrumbs = [] as Crumb[]\n\n private async mounted() {\n this.isLoading = true\n try {\n await Promise.all([this.loadParticipant(), this.loadTeam()])\n } finally {\n this.isLoading = false\n }\n this.setBreadcrumbs()\n }\n\n private setBreadcrumbs() {\n if (this.$allowIfAny([VolunteerRoles.COACH])) {\n //coach -> remove search\n this.pageCrumbs = this.pageCrumbs.filter((p) => p.crumb != CrumbsEnum.SEARCH)\n } else {\n //super user -> remove manageTeam\n this.pageCrumbs = this.pageCrumbs.filter((p) => p.crumb != CrumbsEnum.MANAGE_TEAM)\n }\n if (!this.pageCrumbs) return\n this.breadcrumbs = getCrumbs(this.pageCrumbs)\n }\n\n private async loadTeam() {\n if (!this.currentProgram || !this.currentProgram.upwardLeagueID) return\n this.teams = await teamClient.retrieveByIndividualId(\n this.currentProgram.upwardLeagueID,\n this.$route.params.individualId\n )\n }\n\n private async loadParticipant() {\n if (!this.currentProgram || !this.currentProgram.upwardLeagueID) return\n this.participant = await participantClient.retrieveLeaguePlayerInfoExt(\n this.currentProgram.upwardLeagueID,\n this.$route.params.individualId\n )\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Player.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Player.vue?vue&type=template&id=068e14e6\"\nimport script from \"./Player.vue?vue&type=script&lang=ts\"\nexport * from \"./Player.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('div',{staticClass:\"border-bottom pb-2\"},[_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates,\"toggleName\":\"teamPage\"},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('primary-heading',{attrs:{\"title\":_vm.team.teamName}}),_c('div',{staticClass:\"small text-dark text-center\"},[_vm._v(_vm._s(_vm.divisionName))]),_c('div',{staticClass:\"text-center\"},[_c('a',{staticClass:\"small\",attrs:{\"target\":\"_blank\",\"href\":_vm.team.teamPageUrl}},[_c('span',{staticClass:\"text-underline\"},[_vm._v(\"Team Page\")]),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-external-link-alt\"})])])],1),_c('div',{staticClass:\"m-2\"},[(_vm.currentToggle === _vm.pageStates[0])?_c('contact-list',{attrs:{\"contacts\":_vm.team.coaches,\"title\":\"Coaches\"}}):_vm._e(),(_vm.currentToggle === _vm.pageStates[1])?_c('player-list',{attrs:{\"players\":_vm.team.players,\"title\":\"\"}}):_vm._e(),(_vm.currentToggle === _vm.pageStates[2])?_c('game-list',{attrs:{\"games\":_vm.team.games,\"appointments\":_vm.team.appointments}}):_vm._e(),(_vm.currentToggle === _vm.pageStates[3])?_c('practice-list',{attrs:{\"practices\":_vm.team.practices}}):_vm._e()],1),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { getEmptyDivisionTeamInfo } from '@/modelHelpers/DivisionTeamInfo'\n\nexport function getEmptyDivisionTeamInfoExt(): DivisionTeamInfoExt {\n const ext = {\n partnerName: '',\n divisionContact: null,\n appointments: [],\n games: [],\n specialEvents: [],\n divisionGenderGradeRange: '',\n }\n\n const divisionTeamInfo = getEmptyDivisionTeamInfo()\n return { ...ext, ...divisionTeamInfo }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"player-list\"},[(!_vm.isCheer && _vm.players && _vm.players.length > 0)?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-9\"},[(_vm.initialRankingPerformed)?_c('span',{staticClass:\"small font-italic\"},[_vm._v(\"An initial ranking has been provided below. Press save to accept it or make changes below and then save.\")]):_vm._e()]),_c('div',{staticClass:\"col\"},[(_vm.rankable && !_vm.isCheer)?_c('button',{staticClass:\"btn btn-dark float-right\",on:{\"click\":_vm.save}},[(_vm.saving)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Save\")]],2):_vm._e()])]):_vm._e(),(!_vm.isCheer)?_c('h5',{staticClass:\"text-center clear-float\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(!_vm.isCheer && _vm.players && _vm.players.length > 0)?_c('div',{staticClass:\"small text-center font-italic\"},[_vm._v(\" Drag and drop your players to change their ranking \")]):_vm._e(),(_vm.players && _vm.players.length > 0)?_c('div',[_c('draggable',_vm._b({attrs:{\"tag\":\"ul\",\"list\":_vm.localPlayers,\"handle\":\".handle\"},on:{\"start\":function($event){_vm.drag = true},\"end\":_vm.reorder}},'draggable',_vm.dragOptions,false),[_c('transition-group',{attrs:{\"type\":\"transition\",\"name\":\"flip-list\"}},_vm._l((_vm.localPlayers),function(player,index){return _c('li',{key:player.individualID,staticClass:\"list-group-item player-list-grid my-4 py-4 align-items-center\"},[_c('div',[(_vm.rankable && !_vm.isCheer)?_c('div',{staticClass:\"handle\"},[_c('span',{staticStyle:{\"font-size\":\"large\"}},[_vm._v(\"≡\")])]):_vm._e()]),_c('div',[_c('player-rankable',{attrs:{\"player\":player,\"show-rank\":_vm.rankable && !_vm.isCheer,\"showJerseyEdit\":!_vm.isCheer}})],1),_c('router-link',{staticClass:\"text-right\",attrs:{\"to\":`/player/${player.individualID}`}},[_vm._v(\" ❯ \")])],1)}),0)],1)],1):_vm._e(),(_vm.players && _vm.players.length === 0)?_c('div',{staticClass:\"small text-center p-5\"},[_vm._v(\" Your roster has not been released yet, please wait for the League Director to release it \")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { getEmptyLeaguePlayerInfoList } from '@/modelHelpers/LeaguePlayerInfo'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport Loading from '@/elements/Loading.vue'\nimport PlayerRankable from '@/components/PlayerRankable.vue'\nimport draggable from 'vuedraggable'\nimport { Action, Mutation, Getter } from 'vuex-class'\nimport * as teamStore from '@/store/team'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { cloneDeep } from 'lodash'\nimport { rankPlayers, useRosterRanking, setRosterRanking } from '@/common/players'\n\n@Component({\n components: {\n PlayerRankable,\n draggable,\n Loading,\n },\n})\nexport default class Roster extends Vue {\n @Prop({ type: Array, default: getEmptyLeaguePlayerInfoList, required: false })\n private readonly players!: TeamPlayerInfo[]\n\n @Prop({ type: String, default: 'Players', required: false })\n private readonly title!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly rankable!: boolean\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n private readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Mutation(teamStore.mutationNames.setCurrentTeamPlayers, { namespace: teamStore.namespace })\n private setPlayers!: ({ players }: { players: TeamPlayerInfo[] }) => void\n\n @Action(teamStore.actionNames.saveRosterChanges, { namespace: teamStore.namespace })\n private saveRosterChanges!: () => Promise\n\n private localPlayers = [] as TeamPlayerInfo[]\n private drag = false\n private saving = false\n private initialRankingPerformed = false\n private dragOptions = {\n animation: 0,\n group: 'description',\n disabled: false,\n ghostClass: 'ghost',\n }\n\n private get isCheer(): boolean {\n const allprograms = cloneDeep(this.allProgramTypes)\n const program = allprograms.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n return program ? program.isCheer : false\n }\n\n private reorder() {\n this.drag = false\n this.localPlayers = setRosterRanking(this.localPlayers)\n }\n\n private async save() {\n this.saving = true\n this.setPlayers({ players: cloneDeep(this.localPlayers) })\n try {\n await this.saveRosterChanges()\n } finally {\n this.saving = false\n this.initialRankingPerformed = false\n }\n }\n\n @Watch('players', { immediate: true })\n private playersChanged() {\n this.localPlayers = rankPlayers(this.players)\n if (this.players.length > 0 && !useRosterRanking(this.players)) {\n this.reorder()\n this.initialRankingPerformed = true\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PlayerList.vue?vue&type=template&id=4e49815a&scoped=true\"\nimport script from \"./PlayerList.vue?vue&type=script&lang=ts\"\nexport * from \"./PlayerList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PlayerList.vue?vue&type=style&index=0&id=4e49815a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4e49815a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(_vm._s(_vm.title))]),(_vm.scheduledGamesCount !== 0)?_c('toggle',{staticClass:\"mb-3 mx-auto\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"states\":_vm.pageStates},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}):_vm._e(),(_vm.games && _vm.filteredGamesCount > 0)?_vm._l((_vm.filteredGames),function(game,index){return _c('div',{key:index},[_c('game',{attrs:{\"game\":game,\"isCheer\":_vm.isCheer}})],1)}):_vm._e(),(_vm.scheduledGamesCount === 0)?_c('div',{staticClass:\"small text-center m-2 m-sm-5 p-5\"},[_vm._v(\" There are no scheduled games \")]):_vm._e(),(_vm.filteredGamesCount === 0 && _vm.scheduledGamesCount !== 0)?_c('div',{staticClass:\"small text-center p-5 m-2 m-sm-5\"},[_vm._v(\" There are no \"),_c('b',[_vm._v(_vm._s(_vm.currentToggle))]),_vm._v(\" games. Toggle the Upcoming/Past filter to see games. \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\n\nexport function getEmptyDivisionGameInfo(): DivisionGameInfo {\n return {\n leagueID: 0,\n typeProgramID: '',\n divisionID: 0,\n gameID: 0,\n roundNumber: 0,\n homeTeamID: 0,\n awayTeamID: 0,\n facilityID: 0,\n gameStart: null,\n gameEnd: null,\n serverGameStart: null,\n serverGameEnd: null,\n volunteers: null,\n divisionName: '',\n homeTeamName: '',\n awayTeamName: '',\n facilityName: '',\n }\n}\n\nexport function getEmptyDivisionGameInfoList(): DivisionGameInfo[] {\n return [getEmptyDivisionGameInfo()]\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('date-card',{attrs:{\"card-date\":_vm.game.gameStart}},[_c('template',{slot:\"body\"},[_c('div',{staticClass:\"col-9 d-flex flex-row py-1 px-2\"},[_c('div',{staticClass:\"d-flex flex-column justify-content-between\",staticStyle:{\"flex\":\"1 1 auto\"}},[(_vm.game.homeTeamName && _vm.game.awayTeamName)?_c('label-input',{attrs:{\"label\":`${_vm.game.awayTeamName} at ${_vm.game.homeTeamName}`,\"label-class\":\"\"}}):_vm._e(),(_vm.game.gameStart)?_c('div',{staticClass:\"small mb-3\"},[_vm._v(\" \"+_vm._s(_vm.time(_vm.game.gameStart))+\" - \"+_vm._s(_vm.time(_vm.game.gameEnd))+\" \")]):_vm._e(),_c('div',{staticClass:\"text-secondary small\"},[_vm._v(_vm._s(_vm.game.facilityName))])],1),_c('div',{staticClass:\"d-flex\"},[(!_vm.isCheer)?_c('jersey-icon',{attrs:{\"fill\":_vm.isHomeGame,\"hex-color\":_vm.hexColor}}):_vm._e()],1)])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',[_c('svg',{class:{ 'bg-for-white-jersey': _vm.isColorWhite },style:(`fill: ${_vm.hexColor}; width: ${_vm.size}px; height: ${_vm.size}px;`),attrs:{\"aria-hidden\":true}},[_vm._v(\" >\"),_c('svg',{attrs:{\"id\":\"icon-shirt\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":_vm.path}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class JerseyIcon extends Vue {\n @Prop({ type: Number, default: 24, required: false }) private readonly size!: number\n @Prop({ type: String, default: 'blue', required: false }) private readonly hexColor!: string\n @Prop({ type: Boolean, default: false, required: false }) private readonly fill!: boolean\n\n get isColorWhite() {\n return this.hexColor == '#FFFFFF'\n }\n\n private get path() {\n return 'M16,21H8A1,1 0 0,1 7,20V12.07L5.7,13.12C5.31,13.5 4.68,13.5 4.29,13.12L1.46,10.29C1.07,9.9 1.07,9.27 1.46,8.88L7.34,3H9C9,4.1 10.34,5 12,5C13.66,5 15,4.1 15,3H16.66L22.54,8.88C22.93,9.27 22.93,9.9 22.54,10.29L19.71,13.12C19.32,13.5 18.69,13.5 18.3,13.12L17,12.07V20A1,1 0 0,1 16,21'\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JerseyIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JerseyIcon.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./JerseyIcon.vue?vue&type=template&id=adefd1b4&scoped=true\"\nimport script from \"./JerseyIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./JerseyIcon.vue?vue&type=script&lang=ts\"\nimport style0 from \"./JerseyIcon.vue?vue&type=style&index=0&id=adefd1b4&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"adefd1b4\",\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { getEmptyDivisionGameInfo } from '@/modelHelpers/DivisionGameInfo'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport JerseyIcon from '@/components/JerseyIcon.vue'\nimport DateCard from '@/components/DateCard.vue'\nimport moment from 'moment'\nimport * as teamStore from '@/store/team'\nimport * as programStore from '@/store/programs'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { DisplayableGame } from '@/modelHelpers/DisplayableGame'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\n\n@Component({\n components: {\n LabelInput,\n JerseyIcon,\n DateCard,\n },\n})\nexport default class Game extends Vue {\n @Prop({ type: Object, default: getEmptyDivisionGameInfo, required: false })\n private readonly game!: DisplayableGame\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly isCheer!: boolean\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n private get currentTeamId() {\n if (!this.$route.params.teamId) return null\n return this.$route.params.teamId\n }\n\n private get isHomeGame() {\n return this.game.homeTeamId === this.currentTeam.teamID\n }\n\n private get hexColor(): string {\n if (this.currentProgram.jerseyOptionSelected) {\n if (this.isHomeGame) return this.currentProgram.primaryColorHex ?? ''\n return this.currentProgram.secondaryColorHex ?? ''\n }\n return '#666'\n }\n\n private time(dt: string) {\n return moment(dt).format('h:mmA')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Game.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Game.vue?vue&type=template&id=a42ad3a6\"\nimport script from \"./Game.vue?vue&type=script&lang=ts\"\nexport * from \"./Game.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { CheerSquadGameAppointmentInfo } from '@/GeneratedTypes/ListInfo/CheerSquadGameAppointmentInfo'\nexport function getEmptyCheerSquadGameAppointmentInfo(): CheerSquadGameAppointmentInfo {\n return {\n id: 0,\n leagueID: 0,\n typeProgramID: null,\n divisionID: 0,\n teamID: 0,\n gameStart: null,\n gameEnd: null,\n facilityID: 0,\n facilityName: null,\n }\n}\n\nexport function getEmptyCheerSquadGameAppointmentInfoList(): CheerSquadGameAppointmentInfo[] {\n return [getEmptyCheerSquadGameAppointmentInfo()]\n}\n","import { GameVolunteerInfo } from '@/GeneratedTypes/ListInfo/GameVolunteerInfo'\n\ninterface DisplayVolunteer extends GameVolunteerInfo {\n name: string | null\n}\nexport interface DisplayableGame {\n gameStart: Date | null\n gameEnd: Date | null\n facilityName: string | null\n homeTeamName: string | null\n homeTeamId: number\n awayTeamName: string | null\n referees?: DisplayVolunteer[] | null | undefined\n coaches?: DisplayVolunteer[] | null | undefined\n divisionName?: string | null\n}\n\nexport function getEmptyDisplableGame(): DisplayableGame {\n return {\n gameStart: null,\n gameEnd: null,\n facilityName: '',\n homeTeamName: '',\n homeTeamId: 0,\n awayTeamName: '',\n referees: [],\n coaches: [],\n divisionName: '',\n }\n}\n","\nimport { Component, Mixins, Prop } from 'vue-property-decorator'\nimport moment from 'moment'\nimport { getEmptyDivisionGameInfoList } from '@/modelHelpers/DivisionGameInfo'\nimport { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\nimport Game from '@/components/Game.vue'\nimport Toggle from '@/components/Toggle.vue'\nimport { IsCheerMixin } from '@/common/IsCheerMixin'\nimport { CheerSquadGameAppointmentInfo } from '@/GeneratedTypes/ListInfo/CheerSquadGameAppointmentInfo'\nimport { getEmptyCheerSquadGameAppointmentInfoList } from '@/modelHelpers/CheerSquadGameAppointmentInfo'\nimport { DisplayableGame, getEmptyDisplableGame } from '@/modelHelpers/DisplayableGame'\n\n@Component({\n components: {\n Game,\n Toggle,\n },\n})\nexport default class GameList extends Mixins(IsCheerMixin) {\n @Prop({ type: Array, default: getEmptyDivisionGameInfoList, required: false })\n private readonly games!: DivisionGameInfo[]\n\n @Prop({ type: Array, default: getEmptyCheerSquadGameAppointmentInfoList, required: false })\n private readonly appointments!: CheerSquadGameAppointmentInfo[]\n\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n private pageStates = ['Upcoming', 'Past']\n private currentToggle: string | null = null\n\n private get gameList(): DisplayableGame[] {\n if (this.isCheer) return this.composeCheerGames\n return this.composeSportGames\n }\n\n private get composeCheerGames(): DisplayableGame[] {\n return this.appointments.map((a) => {\n const game = getEmptyDisplableGame()\n game.gameStart = a.gameStart\n game.gameEnd = a.gameEnd\n game.facilityName = a.facilityName\n return game\n })\n }\n\n private get composeSportGames(): DisplayableGame[] {\n if (!this.games) return [getEmptyDisplableGame()]\n return this.games.map((g) => {\n const game = getEmptyDisplableGame()\n game.gameStart = g.gameStart\n game.gameEnd = g.gameEnd\n game.facilityName = g.facilityName\n game.homeTeamName = g.homeTeamName\n game.awayTeamName = g.awayTeamName\n game.homeTeamId = g.homeTeamID\n return game\n })\n }\n\n private get scheduledGames() {\n return this.gameList.filter((game) => {\n return !!game.gameStart\n })\n }\n\n private get scheduledGamesCount() {\n return this.gameList.length\n }\n\n private get sortedGames(): DisplayableGame[] {\n //sort games by gameStart\n return this.gameList.sort((a, b) => {\n return moment.utc(a.gameStart).diff(moment.utc(b.gameStart))\n })\n }\n\n private get filteredGames(): DisplayableGame[] {\n return this.sortedGames.filter((game) => {\n if (!game.gameStart) return false\n if (this.isAfterNextDay(game.gameStart)) {\n // past game\n return this.currentToggle === 'Past'\n } else {\n //upcoming game\n return this.currentToggle === 'Upcoming'\n }\n })\n }\n private isAfterNextDay(date: Date): boolean {\n const nextDay = new Date(date)\n nextDay.setDate(nextDay.getDate() + 1)\n nextDay.setHours(0, 0, 0, 0)\n return moment().isAfter(nextDay)\n }\n private get filteredGamesCount() {\n if (!this.gameList) return 0\n return this.filteredGames.length\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameList.vue?vue&type=template&id=71f81b18\"\nimport script from \"./GameList.vue?vue&type=script&lang=ts\"\nexport * from \"./GameList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { getEmptyDivisionTeamInfoExt } from '@/modelHelpers/DivisionTeamInfoExt.ts'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport Loading from '@/elements/Loading.vue'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport teamClient from '@/clients/teamClient'\nimport ContactList from '@/components/ContactList.vue'\nimport PlayerList from '@/components/PlayerList.vue'\nimport PracticeList from '@/components/PracticeList.vue'\nimport GameList from '@/components/GameList.vue'\nimport * as programStore from '@/store/programs'\nimport * as teamStore from '@/store/team'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { cloneDeep } from 'lodash'\n\n@Component({\n components: {\n PrimaryHeading,\n InputLabel,\n Loading,\n ContactList,\n PageStateToggle,\n PlayerList,\n PracticeList,\n GameList,\n Breadcrumbs,\n },\n})\nexport default class Team extends Vue {\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Mutation(teamStore.mutationNames.setCurrentTeam, { namespace: teamStore.namespace })\n private setCurrentTeam!: ({ team }: { team: DivisionTeamInfoExt }) => void\n\n private isLoading = false\n private team: DivisionTeamInfoExt = getEmptyDivisionTeamInfoExt()\n private pageStates = ['Coaches', 'Roster', 'Games', 'Practices']\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.SEARCH, isActive: true },\n { crumb: CrumbsEnum.TEAM, isActive: false },\n ])\n\n private async mounted() {\n await this.loadTeam()\n }\n\n private async loadTeam() {\n if (!this.currentProgram || !this.currentProgram.upwardLeagueID) return\n\n this.isLoading = true\n try {\n this.team = await teamClient.retrieveTeam(\n this.currentProgram.upwardLeagueID,\n this.$route.params.programId,\n Number(this.$route.params.divisionId),\n Number(this.$route.params.teamId)\n )\n } finally {\n this.setCurrentTeam({ team: cloneDeep(this.team) })\n this.isLoading = false\n }\n }\n\n private get divisionName() {\n if (this.team.games.length > 0) return this.team.games[0].divisionName ?? ''\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Team.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Team.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Team.vue?vue&type=template&id=7c6aa156\"\nimport script from \"./Team.vue?vue&type=script&lang=ts\"\nexport * from \"./Team.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('div',{staticClass:\"border-bottom pb-2\"},[_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('primary-heading',{attrs:{\"title\":_vm.currentTeam.teamName}}),_c('div',{staticClass:\"small text-dark text-center\"},[_vm._v(_vm._s(_vm.divisionName))]),_c('div',{staticClass:\"text-center\"},[_c('a',{staticClass:\"small\",attrs:{\"target\":\"_blank\",\"href\":_vm.currentTeam.teamPageUrl}},[_c('span',{staticClass:\"text-underline\"},[_vm._v(\"Team Page\")]),_vm._v(\" \"),_c('i',{staticClass:\"fas fa-external-link-alt\"})])])],1),_c('div',{staticClass:\"m-2\"},[(_vm.currentToggle === _vm.pageStates[0])?_c('player-list',{attrs:{\"players\":_vm.currentTeam.players,\"title\":\"Ranking\",\"rankable\":true}}):_vm._e(),(_vm.currentToggle === _vm.pageStates[1])?_c('game-list',{attrs:{\"games\":_vm.currentTeam.games,\"appointments\":_vm.currentTeam.appointments}}):_vm._e(),(_vm.currentToggle === _vm.pageStates[2])?_c('practice-list',{attrs:{\"practices\":_vm.currentTeam.practices}}):_vm._e(),(_vm.pageStates.length > 3 && _vm.currentToggle === _vm.pageStates[3])?_c('special-event-list',{attrs:{\"specialEvents\":_vm.currentTeam.specialEvents}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('h5',[_vm._v(_vm._s(_vm.title))]),_c('toggle',{staticClass:\"mb-3 mx-auto\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"states\":_vm.pageStates},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),(_vm.specialEvents && _vm.filteredSpecialEventCount > 0)?_vm._l((_vm.filteredSpecialEvents),function(specialEvent,index){return _c('div',{key:index},[_c('special-Event',{attrs:{\"specialEvent\":specialEvent}})],1)}):_vm._e(),(_vm.filteredSpecialEventCount === 0)?_c('div',{staticClass:\"small text-center p-5 m-2 m-sm-5\"},[_vm._v(\" There are no \"),_c('b',[_vm._v(_vm._s(_vm.currentToggle))]),_vm._v(\" special events. Toggle the Upcoming/Past filter to see special events. \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('date-card',{attrs:{\"card-date\":_vm.specialEvent.eventStart}},[_c('template',{slot:\"body\"},[_c('div',{staticClass:\"col-9 d-flex flex-row py-1 px-2\"},[_c('div',{staticClass:\"d-flex flex-column\",staticStyle:{\"flex\":\"1 1 auto\"}},[_c('label-input',{attrs:{\"label\":_vm.specialEvent.eventLabel,\"label-class\":\"\"}}),_c('div',{staticClass:\"small mb-auto\"},[_vm._v(\" \"+_vm._s(_vm.eventInfo(_vm.specialEvent))+\" \")]),(_vm.specialEvent.eventStart)?_c('div',{staticClass:\"text-secondary small align-bottom\"},[_vm._v(\" \"+_vm._s(_vm.eventTime(_vm.specialEvent))+\" \")]):_vm._e()],1)])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { LeagueSpecialEventInfo } from '@/GeneratedTypes/ListInfo/LeagueSpecialEventInfo'\n\nexport function getEmptyLeagueSpecialEventInfo(): LeagueSpecialEventInfo {\n return {\n leagueID: 0,\n eventID: 0,\n typeProgramID: 'NONE',\n divisionID: 0,\n teamID: 0,\n facilityID: 0,\n eventStart: null,\n eventEnd: null,\n eventLabel: '',\n eventDescription: '',\n divisionAccountNumber: '',\n divisionName: '',\n teamName: '',\n upwardTeamID: '',\n typeColorID: '',\n facilityAccountNumber: '',\n facilityName: '',\n street1: '',\n street2: '',\n subdivision1: '',\n subdivision2: '',\n postalCode: '',\n typeCountryID: '',\n }\n}\n","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport dayjs from 'dayjs'\nimport { getEmptyLeagueSpecialEventInfo } from '@/modelHelpers/LeagueSpecialEventInfo'\nimport { LeagueSpecialEventInfo } from '@/GeneratedTypes/ListInfo/LeagueSpecialEventInfo'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport DateCard from '@/components/DateCard.vue'\nimport moment from 'moment'\n\n@Component({\n components: {\n LabelInput,\n DateCard,\n },\n})\nexport default class Practice extends Vue {\n @Prop({ type: Object, default: getEmptyLeagueSpecialEventInfo, required: false })\n private readonly specialEvent!: LeagueSpecialEventInfo\n\n private time(dt: string) {\n return moment(dt).format('h:mmA')\n }\n private eventInfo(e: LeagueSpecialEventInfo): string {\n return e.eventDescription ?? ''\n }\n\n private eventTime(e: LeagueSpecialEventInfo): string {\n const startJS = dayjs(e.eventStart!)\n const endJS = dayjs(e.eventEnd ?? '')\n let retval = ''\n if (startJS.startOf('day').isSame(startJS) && e.eventEnd == null) {\n retval = ''\n } else {\n if (e.eventEnd != null) {\n retval = startJS.format('h:mmA') + ' - ' + endJS.format('h:mmA')\n } else {\n retval = startJS.format('h:mmA')\n }\n }\n\n if (e.facilityID > 0) {\n if (retval) {\n retval = `${retval} at ${e.facilityName}`\n } else {\n retval = e.facilityName ?? ''\n }\n }\n\n return retval\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialEvent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialEvent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SpecialEvent.vue?vue&type=template&id=7158881f\"\nimport script from \"./SpecialEvent.vue?vue&type=script&lang=ts\"\nexport * from \"./SpecialEvent.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { LeagueSpecialEventInfo } from '@/GeneratedTypes/ListInfo/LeagueSpecialEventInfo'\nimport SpecialEvent from '@/components/SpecialEvent.vue'\nimport Toggle from '@/components/Toggle.vue'\nimport moment from 'moment'\n\n@Component({\n components: {\n SpecialEvent,\n Toggle,\n },\n})\nexport default class PracticeList extends Vue {\n @Prop({ type: Array, default: [], required: false })\n private readonly specialEvents!: LeagueSpecialEventInfo[]\n\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n private pageStates = ['Upcoming', 'Past']\n private currentToggle: string | null = null\n\n private get filteredSpecialEvents() {\n return this.specialEvents.filter((evt) => {\n if (moment().isAfter(evt.eventStart)) {\n // past practice\n return this.currentToggle === 'Past'\n } else {\n //upcoming practice\n return this.currentToggle === 'Upcoming'\n }\n })\n }\n\n private get filteredSpecialEventCount() {\n if (!this.specialEvents) return 0\n return this.filteredSpecialEvents.length\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialEventList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecialEventList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SpecialEventList.vue?vue&type=template&id=b31c23d4\"\nimport script from \"./SpecialEventList.vue?vue&type=script&lang=ts\"\nexport * from \"./SpecialEventList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport PracticeList from '@/components/PracticeList.vue'\nimport SpecialEventList from '@/components/SpecialEventList.vue'\nimport GameList from '@/components/GameList.vue'\nimport PlayerList from '@/components/PlayerList.vue'\nimport * as teamStore from '@/store/team'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\n\n@Component({\n components: {\n PrimaryHeading,\n PlayerList,\n PageStateToggle,\n PracticeList,\n GameList,\n SpecialEventList,\n Breadcrumbs,\n },\n})\nexport default class TeamManage extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.TEAM, isActive: false },\n ])\n\n private get pageStates() {\n if (this.currentTeam?.specialEvents?.length ?? 0 > 0) {\n return ['Roster', 'Games', 'Practices', 'Special Events']\n } else {\n return ['Roster', 'Games', 'Practices']\n }\n }\n\n private get divisionName() {\n if (this.currentTeam && this.currentTeam.divisionName) return this.currentTeam.divisionName\n }\n}\n","import { IndividualAddress } from '@/GeneratedTypes/IndividualAddress'\n\nenum AddressType {\n MAILING = 'MAILING',\n SHIPPING = 'SHIPPING',\n}\n\nexport function stringToAddressTypeID(s: string | AddressType): string {\n if (typeof s == 'string') {\n switch (s) {\n case 'home':\n return AddressType.MAILING\n case 'work':\n return AddressType.SHIPPING\n case 'shipping':\n return AddressType.SHIPPING\n case 'mailing':\n return AddressType.MAILING\n }\n }\n return s\n}\n\nexport function getEmptyIndividualAddress(seed?: IndividualAddressSeedInfo): IndividualAddress {\n return {\n addressID: 0,\n typeAddressID: seed?.typeAddressID || stringToAddressTypeID('mailing'),\n street1: '',\n street2: '',\n subdivision1: '', //city\n subdivision2: '', //state\n postalCode: '',\n typeCountryID: 'US',\n priority: 0,\n }\n}\n\nexport class IndividualAddressSeedInfo {\n public typeAddressID: string = stringToAddressTypeID('mailing')\n}\n","import { LeagueVolunteer } from '@/GeneratedTypes/LeagueVolunteer'\nimport { getEmptyIndividualAddress } from '@/modelHelpers/IndividualAddress'\nimport { getEmptyLeagueCoach } from '@/modelHelpers/LeagueCoach'\nimport { LeagueVolunteerInfo } from '@/GeneratedTypes/ListInfo/LeagueVolunteerInfo'\n\nexport type VolunteerIDType = number\n\nexport function getEmptyLeagueVolunteer(seed?: LeagueVolunteerSeedInfo): LeagueVolunteer {\n return {\n accountNumber: newAccountID(),\n leagueID: seed?.leagueID ?? 0,\n addresses: [getEmptyIndividualAddress()],\n birthDate: new Date('1970-01-01 00:00'),\n churchName: '',\n firstName: '',\n gender: 'M',\n\n individualID: newVolunteerID(),\n\n lastName: '',\n\n middleInitial: '',\n coachPreferences: getEmptyLeagueCoach(), //default null...?\n emailAddresses: [],\n phoneNumbers: [],\n roles: [],\n staff: false,\n typeSizeID: '',\n\n thirdPartyClientIDs: [],\n }\n}\n\nexport enum RolesEnum {\n REFEREE = 1,\n PRAYERPARTNER = 2,\n COACH = 3,\n DEVOTIONLEADER = 4,\n TEAMPARENT = 5,\n VENDOR = 6,\n COACHCOMMISSIONER = 7,\n REFEREECOMMISSIONER = 8,\n ADCOMMISSIONER = 9,\n GAMETIMECOMMISSIONER = 10,\n PRAYERCOMMISSIONER = 11,\n HOSTCOMMISSIONER = 12,\n CHEERCOMMISSIONER = 13,\n}\n\n/**\n * Return a signal for an empty ID\n */\nfunction newVolunteerID(): VolunteerIDType {\n return 0\n}\nfunction newAccountID() {\n return '0'\n}\n\nexport class LeagueVolunteerSeedInfo {\n leagueID = 0\n}\n\n/**\n * Logic to extract out the id of the record.\n * @param l\n * @return record id\n * @constructor\n */\nexport function VolunteerID(l: LeagueVolunteer | LeagueVolunteerInfo) {\n return l.individualID\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamManage.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamManage.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TeamManage.vue?vue&type=template&id=1c871f38\"\nimport script from \"./TeamManage.vue?vue&type=script&lang=ts\"\nexport * from \"./TeamManage.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),(!_vm.isLoading)?_c('div',[_c('primary-heading',{attrs:{\"title\":_vm.name}}),_c('div',{staticClass:\"m-2\"},[_c('h5',[_vm._v(\"Contact Information\")]),_c('div',{staticClass:\"border p-2\"},[_vm._l((_vm.coach.phoneNumbers),function(phone,index){return _c('div',{key:index,staticClass:\"mb-3\"},[_c('a',{attrs:{\"href\":`tel:${phone.phoneNumber}`}},[_c('div',{staticClass:\"text-underline\"},[_vm._v(_vm._s(_vm.fmtPhone(phone.phoneNumber)))]),(phone.typePhoneID)?_c('div',{staticClass:\"small\"},[_vm._v(\"(\"+_vm._s(phone.typePhoneID.toLowerCase())+\")\")]):_vm._e()])])}),_vm._l((_vm.coach.emailAddresses),function(email){return _c('div',{key:email.emailID,staticClass:\"my-2\"},[_c('a',{attrs:{\"href\":`mailTo:${email.emailAddress}`}},[_c('div',{staticClass:\"text-underline\"},[_vm._v(_vm._s(_vm.maxStringLen(email.emailAddress, 26)))]),(email.typeEmailID)?_c('div',{staticClass:\"small\"},[_vm._v(\"(\"+_vm._s(email.typeEmailID.toLowerCase())+\")\")]):_vm._e()])])})],2)])],1):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VolunteerSearchInfo } from '@/GeneratedTypes/ListInfo/VolunteerSearchInfo'\n\nexport function getEmptyVolunteerSearchInfo(): VolunteerSearchInfo {\n return {\n individualID: 0,\n firstName: null,\n lastName: null,\n middleInitial: null,\n gender: null,\n birthDate: null,\n individualCreateDate: null,\n leagueID: 0,\n leagueName: null,\n upwardLeagueID: null,\n firstAddress: null,\n firstEmailAddress: null,\n accountNumber: '',\n teams: [],\n }\n}\n","import restService from '@/services/restService'\nimport { RolesEnum } from '@/modelHelpers/LeagueVolunteer'\nimport { UpwardLeagueIDType } from '@/modelHelpers/League'\nimport { VolunteerSearchInfo } from '@/GeneratedTypes/ListInfo/VolunteerSearchInfo'\nimport { VolunteerSearchArgs } from '@/GeneratedTypes/VolunteerSearchArgs'\nimport { LeagueVolunteerInfo } from '@/GeneratedTypes/ListInfo/LeagueVolunteerInfo'\n\nconst baseUrl = 'volunteers/'\n\ninterface VolunteerClientSearchArgs {\n leagueID: UpwardLeagueIDType\n first: string\n last: string\n orSearch: boolean\n role: RolesEnum[]\n}\n\nfunction getEmptyVolunteerSearchArgs(): VolunteerSearchArgs {\n return {\n currentUpwardLeagueID: '',\n currentLeagueID: 0,\n firstName: null,\n lastName: null,\n historyLimit: null,\n includeCurrentLeague: true,\n includePastLeagues: false,\n roleID: RolesEnum.COACH,\n useStartsWith: true,\n accountNumber: null,\n }\n}\n\nconst search = async (upwId: string, roleId: RolesEnum): Promise => {\n const params = getEmptyVolunteerSearchArgs()\n params.currentUpwardLeagueID = upwId\n params.roleID = roleId\n const result = await restService.post(`${baseUrl}search`, params)\n if (result.isSuccess) {\n return result.data ?? []\n } else {\n throw new Error('Problem volunteerClient.search')\n }\n}\n\nconst retrieveByRoles = async (upwId: string, roleIds: number[]): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}/Roles?roleIDs=${roleIds}`)\n if (result.isSuccess) {\n return result.data ?? []\n } else {\n throw new Error('Problem volunteerClient.search')\n }\n}\n\nconst retrieveVolunteer = async (upwId: string, individualId: string): Promise => {\n const result = await restService.get(`${baseUrl}${upwId}/${individualId}`)\n if (result.isSuccess && result.data) {\n return result.data\n } else {\n return Promise.reject(result.errorObject)\n }\n}\n\nexport default {\n search,\n retrieveVolunteer,\n retrieveByRoles,\n}\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { VolunteerSearchInfo } from '@/GeneratedTypes/ListInfo/VolunteerSearchInfo'\nimport { getEmptyVolunteerSearchInfo } from '@/modelHelpers/VolunteerSearchInfo'\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport PlayerInformation from '@/components/PlayerInformation.vue'\nimport Loading from '@/elements/Loading.vue'\nimport volunteerClient from '@/clients/volunteerClient'\nimport * as programStore from '@/store/programs'\nimport { formatPhone } from '@/formatters/phoneFmt'\nimport { maxStringLength } from '@/formatters/maxStringLength'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\n\n@Component({\n components: {\n PrimaryHeading,\n Loading,\n PlayerInformation,\n Breadcrumbs,\n },\n})\nexport default class Coach extends Vue {\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n private isLoading = false\n private fmtPhone = formatPhone\n private maxStringLen = maxStringLength\n private coach: VolunteerSearchInfo = getEmptyVolunteerSearchInfo()\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.SEARCH, isActive: true },\n { crumb: CrumbsEnum.COACH, isActive: false },\n ])\n\n private async mounted() {\n await this.loadCoach()\n }\n\n private async loadCoach() {\n if (!this.currentProgram || !this.currentProgram.upwardLeagueID) return\n\n this.isLoading = true\n try {\n this.coach = await volunteerClient.retrieveVolunteer(\n this.currentProgram.upwardLeagueID,\n this.$route.params.individualId\n )\n } finally {\n this.isLoading = false\n }\n }\n private get name() {\n return `${this.coach.firstName} ${this.coach.lastName}`\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Coach.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Coach.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Coach.vue?vue&type=template&id=a8ead03a\"\nimport script from \"./Coach.vue?vue&type=script&lang=ts\"\nexport * from \"./Coach.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css p-1\"},[_c('div',{staticClass:\"p-2 mt-3 mx-auto\",staticStyle:{\"max-width\":\"350px\"}},[_c('pwa-install-info',{attrs:{\"is-ios\":_vm.isIos()},on:{\"install\":_vm.install}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins } from 'vue-property-decorator'\nimport PwaInstallInfo from '@/components/PwaInstallInfo.vue'\nimport { PwaInstallMixin } from '@/common/PwaInstallMixin'\n\n@Component({\n components: {\n PwaInstallInfo,\n },\n})\nexport default class InstallOption extends Mixins(PwaInstallMixin) {\n private mounted() {\n this.installPrompt()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallOption.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InstallOption.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./InstallOption.vue?vue&type=template&id=d220553e\"\nimport script from \"./InstallOption.vue?vue&type=script&lang=ts\"\nexport * from \"./InstallOption.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex mx-auto mt-4 mt-sm-0\",staticStyle:{\"max-width\":\"600px\"}},[_c('div',{staticClass:\"bg-screen p-5 text-center\"},[_c('h3',[_vm._v(\"Error\")])])])\n}]\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator'\n\n@Component\nexport default class DefaultError extends Vue {}\n","export enum AlertStatusEnum {\n warning = 'warning',\n danger = 'danger',\n info = 'info',\n default = 'default',\n}\nexport interface AlertOption {\n message: string\n icon: string\n status: string\n}\n\nconst dflt: AlertOption = {\n message: 'There is no alert for this program.',\n icon: 'fas fa-bell-slash',\n status: 'default',\n}\n\nconst past: AlertOption = {\n message: 'This message is no longer showing.',\n icon: 'fas fa-bell-slash',\n status: 'danger',\n}\n\nconst warning: AlertOption = {\n message: 'This message is not active yet.',\n icon: 'fas fa-clock',\n status: 'warning',\n}\n\nconst info: AlertOption = {\n message: 'This message is currently displaying.',\n icon: 'fas fa-bell',\n status: 'info',\n}\n\nexport const TeamAlertOptions = new Map([\n ['default', dflt],\n ['warning', warning],\n ['info', info],\n ['danger', past],\n])\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultError.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultError.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DefaultError.vue?vue&type=template&id=44f5ac4c\"\nimport script from \"./DefaultError.vue?vue&type=script&lang=ts\"\nexport * from \"./DefaultError.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"container-fluid\"},[_c('form',{staticClass:\"row bg-white py-5 px-sm-5\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_c('p',{staticClass:\"col-12 text-uppercase text-dark text-center\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")]),_c('text-input',{staticClass:\"col-12\",attrs:{\"placeholder\":\"Email\",\"append-icon\":\"user\"},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('div',{staticClass:\"col-12 px-3 mt-4\"},[_c('button',{staticClass:\"col-12 btn btn-primary\",attrs:{\"type\":\"submit\",\"disabled\":!_vm.allowSubmit}},[(_vm.isLoading)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\" Submit \")]],2)]),_c('div',{staticClass:\"col-12\"},[(_vm.successIsVisible)?_c('div',{staticClass:\"alert alert-with-icon alert-success mb-0 mt-3\"},[_c('i',{staticClass:\"fa fa-check-circle fa-lg\"}),_vm._v(\" If your email can be matched to an account, we will send you a link to reset your password. \")]):_vm._e(),(_vm.message && !_vm.successIsVisible)?_c('div',{staticClass:\"alert alert-with-icon alert-danger mb-0 mt-3\"},[_c('i',{staticClass:\"fa fa-exclamation-circle fa-lg\"}),_vm._v(\" \"+_vm._s(_vm.message)+\" \")]):_vm._e()])],1)]),_c('the-footer')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"alert text-center\",class:_vm.bootstrapClass,attrs:{\"role\":\"alert\"}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { AlertStatusEnum } from './data'\n\n@Component({})\nexport default class Alert extends Vue {\n @Prop({ type: String, default: () => AlertStatusEnum.default, required: false })\n private readonly status!: string\n\n private get bootstrapClass() {\n switch (this.status) {\n case AlertStatusEnum.warning:\n return 'alert-warning'\n case AlertStatusEnum.danger:\n return 'alert-danger'\n case AlertStatusEnum.info:\n return 'alert-info'\n case AlertStatusEnum.default:\n return 'alert-secondary'\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Alert.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Alert.vue?vue&type=template&id=3d516a89&scoped=true\"\nimport script from \"./Alert.vue?vue&type=script&lang=ts\"\nexport * from \"./Alert.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Alert.vue?vue&type=style&index=0&id=3d516a89&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d516a89\",\n null\n \n)\n\nexport default component.exports","\nimport Alert from '@/elements/Alert/Alert.vue'\nimport Loading from '@/elements/Loading.vue'\nimport TextInput from '@/elements/TextInput.vue'\nimport { Component, Vue } from 'vue-property-decorator'\nimport authClient from '@/clients/authorizationClient'\nimport localStorageService from '@/services/localStorageService'\nimport TheFooter from '@/singletons/TheFooter.vue'\n\nconst localStorageEmailKey = 'authwall-remembered-email'\nconst rememberedEmail = localStorageService.getRaw(localStorageEmailKey)\n\n@Component({\n components: {\n Alert,\n TextInput,\n Loading,\n TheFooter,\n },\n})\nexport default class ForgotPassword extends Vue {\n private email = rememberedEmail || ''\n private isLoading = false\n private successIsVisible = false\n\n private get allowSubmit() {\n return !this.isLoading && this.email && !this.successIsVisible\n }\n\n private get isExpiredPassword() {\n return this.$route.path === '/expired-password'\n }\n\n private get isLockedAccount() {\n return this.$route.path === '/locked-account'\n }\n\n private created() {\n if (typeof this.$route.query.email === 'string') {\n this.email = this.$route.query.email\n }\n }\n\n get title() {\n if (this.isExpiredPassword) return 'Expired Password'\n if (this.isLockedAccount) return 'Account Locked'\n return 'Forgot Password'\n }\n\n get message() {\n if (this.isLockedAccount)\n return 'Your account is locked. Enter your email and click submit to reset your password. This will unlock your account.'\n if (this.isExpiredPassword)\n return 'Your password has expired. Please click submit to request a new password.'\n return ''\n }\n\n private async onSubmit() {\n this.successIsVisible = false\n\n if (this.isLoading) {\n return\n }\n\n this.isLoading = true\n try {\n const rsr = await authClient.getPasswordResetLink(this.email)\n\n if (rsr.isSuccess) {\n this.successIsVisible = true\n }\n } finally {\n this.isLoading = false\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ForgotPassword.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ForgotPassword.vue?vue&type=template&id=2e516de8\"\nimport script from \"./ForgotPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ForgotPassword.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('div',{staticClass:\"container-fluid\"},[(!_vm.loading)?_c('div',{staticClass:\"row\"},[(!_vm.currentRole)?_c('div',{staticClass:\"col\"},[_vm._v(\"Please select a role to view relevant resources.\")]):_vm._e(),(!Object.keys(_vm.taxonomies).length)?_c('div',{staticClass:\"col\"},[_vm._v(\"There are no resources for this role.\")]):[_c('div',{staticClass:\"col-12\"},[_c('accordion',{staticClass:\"mt-2\"},_vm._l((_vm.taxonomyTitles),function(taxonomyTitle){return _c('accordion-item',{key:taxonomyTitle},[_c('template',{slot:\"header\"},[_vm._v(\" \"+_vm._s(taxonomyTitle)+\" \"),_c('hr')]),_c('div',{staticClass:\"row\"},_vm._l((_vm.taxonomies[taxonomyTitle]),function(resource){return _c('div',{key:resource.title,staticClass:\"col-md-6 clickable\",on:{\"click\":function($event){return _vm.downloadResource(resource)}}},[_c('h6',[_c('i',{staticClass:\"fa fa-file-pdf\"}),_vm._v(\" \"+_vm._s(resource.title))]),_c('p',{staticClass:\"text-muted\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(resource.shortDescriptionContent)}})])])}),0)],2)}),1)],1)]],2):_vm._e()]),(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ResourceItem } from '@/models/Program/ResourceItem'\nimport axios from 'axios'\n\nconst url = `${process.env.VUE_APP_USAGE_API}/resourceusage`\n\nconst postResourceUsage = async (resourceItem: ResourceItem) => {\n await axios.post(url, resourceItem)\n}\n\nexport default {\n postResourceUsage,\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"accordion-root\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Provide } from 'vue-property-decorator'\n\n@Component\nexport default class Accordion extends Vue {\n @Provide('accordionData')\n private accordionData = {\n currentGuid: '',\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordion.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Accordion.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Accordion.vue?vue&type=template&id=643a7b2c\"\nimport script from \"./Accordion.vue?vue&type=script&lang=ts\"\nexport * from \"./Accordion.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"accordion-item d-flex flex-column\",class:{ open: _vm.isExpanded }},[_c('div',{staticClass:\"accordion-item-header clickable p-3 row row-cols-2 flex-nowrap\",on:{\"click\":_vm.toggle}},[_c('h5',{staticClass:\"mb-0 col-auto\"},[_c('i',{staticClass:\"fa fa-angle-right rotate-0\",class:{ 'rotate-90': _vm.isExpanded }})]),_c('div',{staticClass:\"col-11\"},[_vm._t(\"header\",function(){return [_vm._v(\"Click to Expand\")]})],2)]),_c('div',{staticClass:\"accordion-item-body d-flex flex-column\"},[_c('slide-up-down',{attrs:{\"active\":_vm.isExpanded,\"duration\":300,\"use-hidden\":false}},[_c('div',{staticClass:\"container-fluid\"},[_vm._t(\"default\")],2)])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { VueConstructor } from 'vue'\nimport { Component, Vue, Inject } from 'vue-property-decorator'\nimport uuid from 'uuid'\n\n/// \nimport SlideUpDown from 'vue-slide-up-down'\n\n@Component({\n components: {\n SlideUpDown: SlideUpDown as unknown as VueConstructor,\n },\n})\nexport default class AccordionItem extends Vue {\n @Inject('accordionData')\n private readonly accordionData!: { currentGuid: string }\n\n private readonly guid = uuid.v4()\n\n private toggle() {\n this.accordionData.currentGuid = this.isExpanded ? '' : this.guid\n }\n\n private get isExpanded() {\n return this.accordionData.currentGuid === this.guid\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AccordionItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AccordionItem.vue?vue&type=template&id=dbbc1c90\"\nimport script from \"./AccordionItem.vue?vue&type=script&lang=ts\"\nexport * from \"./AccordionItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter, Action } from 'vuex-class'\n\nimport * as authorization from '@/store/authorization'\nimport * as auth from '@/store/authentication'\nimport * as programStore from '@/store/programs'\nimport * as upwardTypesStore from '@/store/upwardTypes'\n\nimport contentManagementClient from '@/clients/contentManagementClient'\nimport resourceUsageClient from '@/clients/resourceUsageClient'\n\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport Loading from '@/elements/Loading.vue'\nimport Accordion from '@/components/Accordion.vue'\nimport AccordionItem from '@/components/AccordionItem.vue'\n\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { convertSuperUserToDirector } from '@/common/Authorization/AccountRoles'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { ResourceItem } from '@/models/Program/ResourceItem'\nimport { Resource } from '@/models/Program/Resource'\nimport { MarketingResource } from '@/models/Resources/MarketingResource'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID.ts'\n\ninterface Taxonomy {\n resourceID: string\n title: string\n expirationDate: string\n shortDescriptionContent: string | null\n leagueDirectoryTaxonomy?: string[] | null\n}\n\n@Component({\n components: {\n Breadcrumbs,\n Loading,\n Accordion,\n AccordionItem,\n },\n})\nexport default class Resources extends Vue {\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: RoleUnion\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private readonly currentProgram!: LeagueInfoCondensed\n\n @Getter(auth.getterNames.email, { namespace: auth.namespace })\n private readonly email!: string\n\n @Getter(auth.getterNames.firstAccountNumber, { namespace: auth.namespace })\n private readonly firstAccountNumber!: string\n\n @Action(upwardTypesStore.actionNames.fetchLeagueTypes, { namespace: upwardTypesStore.namespace })\n private fetchLeagueTypes!: ({ force }: { force: boolean }) => Promise\n\n @Getter(upwardTypesStore.getterNames.leagueTypes, { namespace: upwardTypesStore.namespace })\n private readonly leagueTypes!: UpwardLeagueTypeID[]\n\n private loading = false\n private resources: Resource[] = []\n private marketingResources: MarketingResource[] = []\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.RESOURCES, isActive: false },\n ])\n\n private async mounted() {\n try {\n this.loading = true\n await this.fetchLeagueTypes({ force: false })\n await this.fetchResources()\n } finally {\n this.loading = false\n }\n }\n\n private async fetchResources() {\n this.resources = []\n this.marketingResources = []\n\n if (!this.currentRole || !this.currentRole.roleId || !this.currentProgram) {\n return\n }\n\n if (this.currentRole.roleId === VolunteerRoles.ADVERTISING_COMMISSIONER) {\n await this.fetchMarketingResources()\n } else {\n await this.fetchVolunteerResources()\n }\n }\n\n private async fetchMarketingResources() {\n const resourcesResult = await contentManagementClient.getMarketingResources(\n this.currentLeagueAbbreviation()\n )\n const now = new Date()\n if (!resourcesResult) return\n this.marketingResources = resourcesResult.filter(\n (r) =>\n r.expirationDate == null ||\n r.expirationDate === '0001-01-01T00:00:00' ||\n new Date(r.expirationDate) > now\n )\n }\n\n private async fetchVolunteerResources() {\n const resourcesResult = await contentManagementClient.getVolunteerResourcesByUPW(\n this.currentProgram.upwardLeagueID ?? '',\n this.currentProgram.typeProgramID || '',\n convertSuperUserToDirector(this.currentRole.roleId) || ''\n )\n const now = new Date()\n if (!resourcesResult) return\n this.resources = resourcesResult\n .filter((r) => r.expirationDate === '0001-01-01T00:00:00' || new Date(r.expirationDate) > now)\n .filter(this.devoTrackFilter)\n }\n\n private devoTrackFilter(r: Resource) {\n if (!r.devotionTrack) {\n return true\n }\n return r.devotionTrack == this.currentProgram.upwardDevotionTrackTypeID\n }\n\n private volunteerTaxonomies() {\n const taxonomies: { [key: string]: Taxonomy[] } = {}\n for (const resource of this.resources) {\n if (resource.leagueDirectoryTaxonomy && Array.isArray(resource.leagueDirectoryTaxonomy)) {\n for (const taxonomyTitle of resource.leagueDirectoryTaxonomy) {\n if (!taxonomies[taxonomyTitle]) {\n taxonomies[taxonomyTitle] = []\n }\n taxonomies[taxonomyTitle].push(resource)\n }\n } else if (resource.title && !taxonomies[resource.title]) {\n taxonomies[resource.title] = []\n taxonomies[resource.title].push(resource)\n }\n }\n return taxonomies\n }\n\n private marketingTaxonomies() {\n const taxonomies: { [key: string]: Taxonomy[] } = {}\n for (const resource of this.marketingResources) {\n const taxonomyTitle = resource.title\n if (!taxonomies[taxonomyTitle]) {\n taxonomies[taxonomyTitle] = []\n }\n\n taxonomies[taxonomyTitle].push(resource)\n }\n return taxonomies\n }\n\n private get taxonomies() {\n if (this.currentRole.roleId == VolunteerRoles.ADVERTISING_COMMISSIONER) {\n return this.marketingTaxonomies()\n }\n return this.volunteerTaxonomies()\n }\n\n private currentLeagueAbbreviation(): string {\n const leagueType = this.leagueTypes.find(\n (t: UpwardLeagueTypeID) => t.upwardTypeID === this.currentProgram.typeLeagueID\n )\n return leagueType && leagueType.abbreviation ? leagueType.abbreviation : ''\n }\n\n private downloadResource(resource: Resource) {\n if (!resource) {\n return\n }\n\n const resourceItem: ResourceItem = {\n accountNumber: this.firstAccountNumber,\n resourceID: resource.resourceID,\n resourceTitle: resource.title,\n programType: this.currentLeagueAbbreviation(),\n userID: this.email,\n role: this.currentRole.roleId || '',\n pageAccessedFrom: window.location.href,\n }\n\n resourceUsageClient.postResourceUsage(resourceItem)\n\n if (resource.mediaUrl) {\n window.open(resource.mediaUrl, '_blank')\n }\n\n if (resource.resourceUrl) {\n window.open(resource.resourceUrl, '_blank')\n }\n }\n private get taxonomyTitles() {\n return Object.keys(this.taxonomies).sort()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Resources.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Resources.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Resources.vue?vue&type=template&id=1bab8541&scoped=true\"\nimport script from \"./Resources.vue?vue&type=script&lang=ts\"\nexport * from \"./Resources.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Resources.vue?vue&type=style&index=0&id=1bab8541&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bab8541\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(!_vm.isLoading)?_c(_vm.$route.meta.childComponent,{tag:\"component\"}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h5',{staticClass:\"text-center clear-float\"},[_vm._v(_vm._s(_vm.title))]),(_vm.list && _vm.list.length > 0)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.list),function(item){return _c('li',{key:item.resourceID,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('linking-list-item',{attrs:{\"route\":`${_vm.$route.meta.childRoute}/${item.resourceID}`}},[(_vm.resourceTitle === 'rules')?_c('span',[_vm._v(_vm._s(item.title))]):_c('span',[_vm._v(\"Week \"+_vm._s(item.weekNumber)+\" \"+_vm._s(_vm.showCompleted(item.weekNumber)))])])],1)])}),0):_vm._e(),(!_vm.list || _vm.list.length == 0)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"These resources are coming soon!\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport * as teamStore from '@/store/team'\nimport * as resourceStore from '@/store/resources'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { Resource } from '@/models/Program/Resource'\nimport { cloneDeep } from 'lodash'\nimport { CoachAPIResources } from '@/common/CoachAPIResources'\n\n@Component({\n components: {\n LinkingListItem,\n Loading,\n },\n})\nexport default class CouchResourceList extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(resourceStore.getterNames.resources, { namespace: resourceStore.namespace })\n private readonly resources!: Resource[]\n\n private get resourceTitle() {\n return CoachAPIResources.get(this.$route.meta?.title)\n }\n\n private get list() {\n // List of resources sorted by week\n if (!this.resources) return [] as Resource[]\n const clone = cloneDeep(this.resources)\n return clone.sort((a: Resource, b: Resource) => a.weekNumber - b.weekNumber)\n }\n\n private showCompleted(week: number): string {\n return Number(this.currentTeam.currentPracticeNumber) > Number(week) ? '(completed)' : ''\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CoachResourceList.vue?vue&type=template&id=0b541d0e&scoped=true\"\nimport script from \"./CoachResourceList.vue?vue&type=script&lang=ts\"\nexport * from \"./CoachResourceList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CoachResourceList.vue?vue&type=style&index=0&id=0b541d0e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b541d0e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h5',{staticClass:\"text-center clear-float\"},[_vm._v(_vm._s(_vm.title))]),(_vm.list && _vm.list.length > 0)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.list),function(cat,idx){return _c('li',{key:idx,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('linking-list-item',{attrs:{\"route\":`${_vm.$route.meta.childRoute}/${cat}`}},[_c('span',[_vm._v(_vm._s(cat))])])],1)])}),0):_vm._e(),(!_vm.list || _vm.list.length == 0)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"These resources are coming soon!\")]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport * as teamStore from '@/store/team'\nimport * as resourceStore from '@/store/resources'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { Resource } from '@/models/Program/Resource'\nimport { cloneDeep } from 'lodash'\n\n@Component({\n components: {\n LinkingListItem,\n Loading,\n },\n})\nexport default class CouchResourceCategoryList extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(resourceStore.getterNames.resources, { namespace: resourceStore.namespace })\n private readonly resources!: Resource[]\n\n private get list(): string[] {\n //List of categories in Resource[]\n if (!this.resources) return [] as string[]\n const clone = cloneDeep(this.resources)\n const categories = [...new Set(clone.map((i) => i.category))]\n return categories || []\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceCategoryList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResourceCategoryList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CoachResourceCategoryList.vue?vue&type=template&id=37099351&scoped=true\"\nimport script from \"./CoachResourceCategoryList.vue?vue&type=script&lang=ts\"\nexport * from \"./CoachResourceCategoryList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CoachResourceCategoryList.vue?vue&type=style&index=0&id=37099351&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37099351\",\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator'\nimport CoachResourceList from '@/components/CoachResourceList.vue'\nimport CoachResourceCategoryList from '@/components/CoachResourceCategoryList.vue'\nimport Loading from '@/elements/Loading.vue'\nimport * as resources from '@/store/resources'\nimport * as programStore from '@/store/programs'\nimport * as autho from '@/store/authorization'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as teamStore from '@/store/team'\nimport { Action, Getter } from 'vuex-class'\nimport { FetchResourceByUPW } from '@/store/resources'\nimport { CoachAPIResources } from '@/common/CoachAPIResources'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\n\n@Component({\n components: {\n CoachResourceList,\n CoachResourceCategoryList,\n Loading,\n },\n})\nexport default class PracticePlans extends Vue {\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n private readonly programTypes!: UpwardProgramTypeID[]\n\n @Getter(autho.getterNames.currentRole, { namespace: autho.namespace })\n private readonly currentRole!: RoleUnion\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n @Action(resources.actionNames.fetchCoachResourceByUPW, { namespace: resources.namespace })\n private fetchCoachResourceByUPW!: ({\n upw,\n typeProgramID,\n resource,\n role,\n ruleLevel,\n week,\n }: FetchResourceByUPW) => Promise\n\n private isLoading = false\n\n private async mounted() {\n await this.loadResource()\n }\n\n private async loadResource() {\n const resource = CoachAPIResources.get(this.$route.meta?.title)\n this.isLoading = true\n try {\n await this.fetchCoachResourceByUPW({\n upw: this.currentProgram.upwardLeagueID ?? '',\n typeProgramID: this.currentTeam.typeProgramID ?? '',\n resource: resource ?? '',\n role: this.currentRole.roleId ?? '',\n ruleLevel: this.currentTeam.ruleLevel,\n week: null,\n })\n } finally {\n this.isLoading = false\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ResourceList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ResourceList.vue?vue&type=template&id=2177c000\"\nimport script from \"./ResourceList.vue?vue&type=script&lang=ts\"\nexport * from \"./ResourceList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('h5',{staticClass:\"text-center clear-float\"},[_vm._v(_vm._s(_vm.$route.params.category))]),(_vm.list && _vm.list.length > 0)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.list),function(item){return _c('li',{key:item.resourceID,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('linking-list-item',{attrs:{\"route\":`${_vm.$route.meta.childRoute}/${item.resourceID}`}},[_c('span',[_vm._v(_vm._s(item.title))])])],1)])}),0):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport LinkingListItem from '@/components/LinkingListItem.vue'\nimport * as teamStore from '@/store/team'\nimport * as resourceStore from '@/store/resources'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { Resource } from '@/models/Program/Resource'\nimport { cloneDeep } from 'lodash'\n\n@Component({\n components: {\n LinkingListItem,\n Loading,\n },\n})\nexport default class CouchResourceList extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly title!: string\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(resourceStore.getterNames.resources, { namespace: resourceStore.namespace })\n private readonly resources!: Resource[]\n\n private get list() {\n // List of all resources for one category\n if (!this.resources) return [] as Resource[]\n const clone = cloneDeep(this.resources)\n return clone.filter((a) => a.category === this.$route.params.category)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachSkillsList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachSkillsList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CoachSkillsList.vue?vue&type=template&id=74bbe518&scoped=true\"\nimport script from \"./CoachSkillsList.vue?vue&type=script&lang=ts\"\nexport * from \"./CoachSkillsList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CoachSkillsList.vue?vue&type=style&index=0&id=74bbe518&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"74bbe518\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('div',{staticClass:\"coach-resource\"},[_c('div',{staticClass:\"mx-2\",domProps:{\"innerHTML\":_vm._s(_vm.resource)}})])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport * as resourceStore from '@/store/resources'\nimport { Resource } from '@/models/Program/Resource'\n\n@Component\nexport default class CoachResource extends Vue {\n @Getter(resourceStore.getterNames.resources, { namespace: resourceStore.namespace })\n private readonly resources!: Resource[]\n\n private get resource(): string {\n const resource = this.resources.find((r) => r.resourceID === this.$route.params.resourceId)\n return resource?.htmlCode ?? ''\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResource.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachResource.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CoachResource.vue?vue&type=template&id=5e13a6da&scoped=true\"\nimport script from \"./CoachResource.vue?vue&type=script&lang=ts\"\nexport * from \"./CoachResource.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CoachResource.vue?vue&type=style&index=0&id=5e13a6da&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5e13a6da\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport ResourceList from '@/views/PracticeResources/ResourceList.vue'\nimport CoachSkillsList from '@/components/CoachSkillsList.vue'\nimport CoachResource from '@/views/PracticeResources/CoachResource.vue'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\n\nexport default [\n {\n path: 'PracticePlans',\n name: 'PracticePlans',\n meta: {\n title: 'Practice Plans',\n level: 1,\n childRoute: 'PracticePlan',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'PracticePlan/:resourceId',\n name: 'PracticePlan',\n meta: {\n title: 'Practice Plan',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n {\n path: 'Devotions',\n name: 'Devotions',\n meta: {\n title: 'Devotions',\n level: 1,\n childRoute: 'Devotion',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'Devotion/:resourceId',\n name: 'Devotion',\n meta: {\n title: 'Devotion',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n {\n path: 'SkillsCategories',\n name: 'SkillsCategories',\n meta: {\n title: 'Skills & Drills',\n level: 1,\n childRoute: 'SkillsList',\n childComponent: 'CoachResourceCategoryList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'SkillsList/:category',\n name: 'Skills',\n meta: {\n title: 'Skills & Drills',\n level: 2,\n childRoute: '/PracticeResources/Skill',\n childComponent: 'CoachSkillsList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachSkillsList,\n },\n {\n path: 'Skill/:resourceId',\n name: 'Skill',\n meta: {\n title: 'Skill',\n level: 3,\n childRoute: '',\n childComponent: '',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n {\n path: 'Rules',\n name: 'Rules',\n meta: {\n title: 'Rules',\n level: 1,\n childRoute: 'Rule',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'Rule/:resourceId',\n name: 'Rule',\n meta: {\n title: 'Rule',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n] as RouteConfig[]\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport practiceRoutes from '@/router/practiceResources'\n\n@Component({\n components: {\n PageStateToggle,\n Breadcrumbs,\n },\n})\nexport default class PracticeResrouces extends Vue {\n private pageStates: string[] = []\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.PRACTICE_RESOURCES, isActive: false },\n ])\n\n private mounted() {\n const titles = practiceRoutes.filter((f) => f.meta?.level === 1).map((r) => r.meta?.title)\n this.pageStates = titles\n this.currentToggle = titles[0]\n this.stateChanged(this.currentToggle)\n }\n\n private stateChanged(state: string | null) {\n if (state && this.$route.name !== state) {\n const nextRoute = practiceRoutes.find((r) => r.meta?.level === 1 && r.meta?.title === state)\n if (nextRoute) this.$router.push(`/PracticeResources/${nextRoute.path}`)\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeResources.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PracticeResources.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PracticeResources.vue?vue&type=template&id=7c4d52a2\"\nimport script from \"./PracticeResources.vue?vue&type=script&lang=ts\"\nexport * from \"./PracticeResources.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { RouteConfig } from 'vue-router'\nimport ResourceList from '@/views/PracticeResources/ResourceList.vue'\nimport CoachResource from '@/views/PracticeResources/CoachResource.vue'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\n\nexport default [\n {\n path: 'practiceplans',\n name: 'MinistryPracticePlans',\n meta: {\n title: 'Practice Plans',\n level: 1,\n childRoute: 'PracticePlan',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'practiceplan/:resourceId',\n name: 'MinistryPracticePlan',\n meta: {\n title: 'MinistryPractice Plan',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n {\n path: 'devotions',\n name: 'MinistryDevotions',\n meta: {\n title: 'Devotions',\n level: 1,\n childRoute: 'Devotion',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'devotion/:resourceId',\n name: 'MinisrtyDevotion',\n meta: {\n title: 'Devotion',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n] as RouteConfig[]\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport ministryRoutes from '@/router/ministryResources'\n\n@Component({\n components: {\n PageStateToggle,\n Breadcrumbs,\n },\n})\nexport default class MinistryResrouces extends Vue {\n private pageStates: string[] = []\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.MINISTRY_RESOURCES, isActive: false },\n ])\n\n private mounted() {\n const titles = ministryRoutes.filter((f) => f.meta?.level === 1).map((r) => r.meta?.title)\n this.pageStates = titles\n this.currentToggle = titles[0]\n this.stateChanged(this.currentToggle)\n }\n\n private stateChanged(state: string | null) {\n if (state && this.$route.name !== state) {\n const nextRoute = ministryRoutes.find((r) => r.meta?.level === 1 && r.meta?.title === state)\n if (nextRoute) this.$router.push(`/ministryresources/${nextRoute.path}`)\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinistryResources.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MinistryResources.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MinistryResources.vue?vue&type=template&id=3877907f\"\nimport script from \"./MinistryResources.vue?vue&type=script&lang=ts\"\nexport * from \"./MinistryResources.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_c('div',{staticClass:\"w-100\"},[(_vm.hasResources)?_c('ul',{staticClass:\"p-0 m-1\"},_vm._l((_vm.resources),function(item,idx){return _c('li',{key:idx,staticClass:\"list-item\"},[_c('div',{staticClass:\"item\"},[_c('anchor-list-item',{attrs:{\"route\":item.resourceUrl,\"target\":\"_blank\"}},[_c('span',[_vm._v(_vm._s(item.title))])])],1)])}),0):_vm._e(),(!_vm.hasResources)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"These resources are coming soon!\")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('a',{staticClass:\"list-row\",class:{ 'disable-click': _vm.disable },attrs:{\"target\":_vm.target,\"href\":_vm.route}},[_c('div',{staticClass:\"list-text\"},[_vm._t(\"default\")],2),_c('span',{staticClass:\"go\"},[_vm._v(\"❯\")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class AnchorListItem extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly route!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly disable!: boolean\n\n @Prop({ type: String, default: '_self', required: false })\n private readonly target!: string\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnchorListItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnchorListItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./AnchorListItem.vue?vue&type=template&id=3a852b0e&scoped=true\"\nimport script from \"./AnchorListItem.vue?vue&type=script&lang=ts\"\nexport * from \"./AnchorListItem.vue?vue&type=script&lang=ts\"\nimport style0 from \"./AnchorListItem.vue?vue&type=style&index=0&id=3a852b0e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3a852b0e\",\n null\n \n)\n\nexport default component.exports","export const CheerAPIResources = new Map([\n ['Dances', 'Dance'],\n ['Chants', 'Chant'],\n ['Cheers', 'Cheer'],\n ['Tunes', 'Tune'],\n])\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport Loading from '@/elements/Loading.vue'\nimport AnchorListItem from '@/components/AnchorListItem.vue'\nimport * as cheerResourceStore from '@/store/cheerResources'\nimport * as programStore from '@/store/programs'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as teamStore from '@/store/team'\nimport { Action, Getter } from 'vuex-class'\nimport { FetchCheerResourceByUPW } from '@/store/cheerResources'\nimport { CheerAPIResources } from '@/common/CheerAPIResources'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { CheerResources } from '@/models/Resources/CheerResources'\n\n@Component({\n components: {\n Loading,\n AnchorListItem,\n },\n})\nexport default class CheerResourceList extends Vue {\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n private readonly programTypes!: UpwardProgramTypeID[]\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n @Action(cheerResourceStore.actionNames.fetchCheerResourceByUPW, { namespace: cheerResourceStore.namespace })\n private fetchCheerResourceByUPW!: ({\n upw,\n typeProgramID,\n type,\n }: FetchCheerResourceByUPW) => Promise\n\n @Getter(cheerResourceStore.getterNames.cheerResources, { namespace: cheerResourceStore.namespace })\n private readonly resources!: CheerResources[]\n\n private isLoading = false\n\n private async mounted() {\n await this.loadResource()\n }\n\n private async loadResource() {\n const resource = CheerAPIResources.get(this.$route.meta?.title)\n this.isLoading = true\n try {\n await this.fetchCheerResourceByUPW({\n upw: this.currentProgram.upwardLeagueID ?? '',\n typeProgramID: this.currentProgram.typeProgramID ?? '',\n type: resource ?? '',\n })\n } finally {\n this.isLoading = false\n }\n }\n\n private currentLeagueAbbreviation(): string {\n const programType = this.programTypes.find((p) => p.upwardTypeID === this.currentTeam.typeProgramID)\n if (!programType) throw Error('Cannot retrieve currentLeagueAbbreviation')\n return programType && programType.gpProgramAbbreviation ? programType.gpProgramAbbreviation : ''\n }\n\n get hasResources(): boolean {\n return this.resources.length > 0\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheerResourceList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheerResourceList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CheerResourceList.vue?vue&type=template&id=2d11b3c5&scoped=true\"\nimport script from \"./CheerResourceList.vue?vue&type=script&lang=ts\"\nexport * from \"./CheerResourceList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CheerResourceList.vue?vue&type=style&index=0&id=2d11b3c5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d11b3c5\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport CheerResourceList from '@/views/PracticeResources/CheerResourceList.vue'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\n\nexport default [\n {\n path: 'cheers',\n name: 'Cheers',\n meta: {\n title: 'Cheers',\n level: 1,\n childRoute: 'cheer',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CheerResourceList,\n },\n {\n path: 'dances',\n name: 'Dances',\n meta: {\n title: 'Dances',\n level: 1,\n childRoute: 'dance',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CheerResourceList,\n },\n {\n path: 'chants',\n name: 'Chants',\n meta: {\n title: 'Chants',\n level: 1,\n childRoute: 'chant',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CheerResourceList,\n },\n {\n path: 'tunes',\n name: 'Tunes',\n meta: {\n title: 'Tunes',\n level: 1,\n childRoute: 'tune',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CheerResourceList,\n },\n] as RouteConfig[]\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport cheerResourcesRoutes from '@/router/cheerResources'\n\n@Component({\n components: {\n PageStateToggle,\n Breadcrumbs,\n },\n})\nexport default class CheerResrouces extends Vue {\n private pageStates: string[] = []\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.CHEER_RESOURCES, isActive: false },\n ])\n\n private mounted() {\n const titles = cheerResourcesRoutes.filter((f) => f.meta?.level === 1).map((r) => r.meta?.title)\n this.pageStates = titles\n this.currentToggle = titles[0]\n this.stateChanged(this.currentToggle)\n }\n\n private stateChanged(state: string | null) {\n if (state && this.$route.name !== state) {\n const nextRoute = cheerResourcesRoutes.find((r) => r.meta?.level === 1 && r.meta?.title === state)\n if (nextRoute) this.$router.push(`/cheerresources/${nextRoute.path}`)\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheerResources.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheerResources.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CheerResources.vue?vue&type=template&id=0a641160\"\nimport script from \"./CheerResources.vue?vue&type=script&lang=ts\"\nexport * from \"./CheerResources.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { RouteConfig } from 'vue-router'\nimport ResourceList from '@/views/PracticeResources/ResourceList.vue'\nimport CoachResource from '@/views/PracticeResources/CoachResource.vue'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\n\nexport default [\n {\n path: 'Devotions',\n name: 'Devotions',\n meta: {\n title: 'Devotions',\n level: 1,\n childRoute: 'Devotion',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'Devotion/:resourceId',\n name: 'Devotion',\n meta: {\n title: 'Devotion',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n {\n path: 'Rules',\n name: 'Rules',\n meta: {\n title: 'Rules',\n level: 1,\n childRoute: 'Rule',\n childComponent: 'CoachResourceList',\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: ResourceList,\n },\n {\n path: 'Rule/:resourceId',\n name: 'Rule',\n meta: {\n title: 'Rule',\n level: 2,\n guard: { allowIfAny: [VolunteerRoles.COACH], denyIfAny: superUsers, ranking: allowFirstRanking },\n },\n component: CoachResource,\n },\n] as RouteConfig[]\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport selectRoutes from '@/router/selectResources'\nimport * as teamStore from '@/store/team'\nimport { Getter } from 'vuex-class'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\n\n@Component({\n components: {\n PageStateToggle,\n Breadcrumbs,\n },\n})\nexport default class SelectResrouces extends Vue {\n private pageStates: string[] = []\n private currentToggle: string | null = null\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.PRACTICE_RESOURCES, isActive: false },\n ])\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n private mounted() {\n const titles = selectRoutes.filter((f) => f.meta?.level === 1).map((r) => r.meta?.title)\n this.pageStates = titles.filter((t) => {\n if (this.isSelect && t === 'Rules') return false\n else return true\n })\n this.currentToggle = titles[0]\n this.stateChanged(this.currentToggle)\n }\n\n private stateChanged(state: string | null) {\n if (state && this.$route.name !== state) {\n const nextRoute = selectRoutes.find((r) => r.meta?.level === 1 && r.meta?.title === state)\n if (nextRoute) this.$router.push(`/selectResources/${nextRoute.path}`)\n }\n }\n\n private get isSelect() {\n if (!this.currentTeam) return false //if there is no team, then it can't be cheer\n return this.currentTeam.typeProgramID === 'UPWARDSELECTMSS'\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectResources.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectResources.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SelectResources.vue?vue&type=template&id=f0f933a8\"\nimport script from \"./SelectResources.vue?vue&type=script&lang=ts\"\nexport * from \"./SelectResources.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row\"},[_c('breadcrumbs',{staticClass:\"col\",attrs:{\"crumbs\":_vm.breadcrumbs}})],1),_c('div',{staticClass:\"row p-2\"},[_c('text-input',{staticClass:\"col m-sm-2 shadow-sm p-0\",attrs:{\"append-icon\":\"fa fa-search\",\"placeholder\":\"Enter a player, coach, or team name\"},model:{value:(_vm.localSearchTerms),callback:function ($$v) {_vm.localSearchTerms=$$v},expression:\"localSearchTerms\"}})],1),(!_vm.isLoading)?_c('div',{staticClass:\"row\"},[(_vm.filteredSet.length < 1)?_c('div',{staticClass:\"col text-center border p-3 m-2\"},[_c('p',[_vm._v(\" There are no player names, coach names or team names in \"),_c('b',[_vm._v(_vm._s(_vm.currentProgram.leagueName))]),(_vm.searchTerms)?_c('span',[_vm._v(\" that contain \"),_c('b',[_vm._v(_vm._s(_vm.searchTerms))])]):_vm._e(),_vm._v(\". \")]),(_vm.searchTerms)?_c('p',[_vm._v(\"Try entering a different name.\")]):_vm._e()]):_vm._e(),(_vm.filteredSet.length > 0)?_c('div',{staticClass:\"col\"},[_c('vue-smart-grid',{staticClass:\"table table-striped bg-white\",attrs:{\"gridData\":_vm.filteredSet,\"columns\":_vm.columns,\"page-size\":25,\"max-page-links\":3,\"boundary-links\":false,\"direction-links\":true}})],1):_vm._e()]):_vm._e()]),(_vm.isLoading)?_c('div',{staticClass:\"col center-spinner-on-view\"},[_c('loading')],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-table',{ref:\"table\",class:{ 'table-striped': _vm.tableStriped, 'table-hover': _vm.tableStriped },staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.gridData,\"selectedClass\":\"table-active\",\"currentPage\":_vm.currentPage,\"customSelection\":true,\"pageSize\":_vm.pageSize},on:{\"update:currentPage\":function($event){_vm.currentPage=$event},\"update:current-page\":function($event){_vm.currentPage=$event},\"totalPagesChanged\":function($event){_vm.totalPages = $event}},scopedSlots:_vm._u([{key:\"body\",fn:function({ displayData }){return _c('tbody',{},_vm._l((displayData),function(row,index){return _c('smart-tr',{key:index,attrs:{\"row\":row,\"allowRowSelection\":_vm.allowRowSelection},on:{\"rowSelected\":_vm.updateSelections}},[_vm._l((_vm.columns),function(columns,index){return _c('td',{key:index},[(columns.template)?_c('span',[_c(_vm.getColumnComponent(columns.template),{tag:\"component\",attrs:{\"data\":row}})],1):(columns.customRender)?_c('span',{domProps:{\"innerHTML\":_vm._s(columns.customRender(row[columns.field]))}}):_c('span',[_vm._v(_vm._s(row[columns.field]))])])}),(_vm.showEditButton)?_c('td',[_c('button',{class:_vm.editButtonClasses,domProps:{\"innerHTML\":_vm._s(_vm.editButtonInnerHtml)},on:{\"click\":function($event){return _vm.handleEditClicked(row)}}})]):_vm._e(),(_vm.showDeleteButton)?_c('td',[_c('button',{class:_vm.deleteButtonClasses,domProps:{\"innerHTML\":_vm._s(_vm.deleteButtonInnerHtml)},on:{\"click\":function($event){return _vm.handleDeleteClicked(row)}}})]):_vm._e()],2)}),1)}}])},[_c('thead',{attrs:{\"slot\":\"head\"},slot:\"head\"},[(_vm.showHeader)?_c('tr',[_vm._l((_vm.columns),function(column,index){return _c('th',{key:index},[_vm._v(_vm._s(column.headerText || column.field))])}),(_vm.showDeleteButtonHeader)?_c('th'):_vm._e(),(_vm.showEditButtonHeader)?_c('th'):_vm._e()],2):_vm._e()])]),(_vm.pageSize > 0)?_c('smart-pagination',{staticClass:\"d-flex justify-content-center mt-4\",attrs:{\"currentPage\":_vm.currentPage,\"totalPages\":_vm.totalPages,\"maxPageLinks\":_vm.maxPageLinks,\"boundaryLinks\":_vm.boundaryLinks,\"directionLinks\":_vm.directionLinks,\"lastText\":\"\",\"firstText\":\"\"},on:{\"update:currentPage\":function($event){_vm.currentPage=$event},\"update:current-page\":function($event){_vm.currentPage=$event}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('tr',{class:[_vm.rowClass],style:(_vm.style),on:{\"click\":_vm.handleRowSelected}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmartGridRow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SmartGridRow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SmartGridRow.vue?vue&type=template&id=25e096fc\"\nimport script from \"./SmartGridRow.vue?vue&type=script&lang=js\"\nexport * from \"./SmartGridRow.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { GridColumn, TemplateType } from '@/common/GridColumn'\nimport SmartGridRow from './SmartGridRow.vue'\nimport SmartTable from 'vuejs-smart-table'\n\nVue.use(SmartTable)\nVue.component('smart-tr', SmartGridRow)\n\n@Component({\n components: {\n SmartTable,\n SmartGridRow,\n },\n methods: {\n getColumnComponent: (data: TemplateType) => {\n const c = data()\n return c?.template\n },\n },\n})\nexport default class VueSmartGrid extends Vue {\n @Prop({ type: Array, required: true })\n private readonly columns!: GridColumn[]\n\n @Prop({ type: Array, required: true })\n private readonly gridData!: []\n\n @Prop({ type: Boolean, required: false, default: true })\n private readonly showHeader!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly showEditButton!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly showDeleteButton!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly showDeleteButtonHeader!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly showEditButtonHeader!: boolean\n\n @Prop({ type: String, required: false, default: 'Edit' })\n private readonly editButtonInnerHtml!: string\n\n @Prop({ type: String, required: false, default: 'Delete' })\n private readonly deleteButtonInnerHtml!: string\n\n @Prop({ type: String, required: false, default: 'btn btn-primary' })\n private readonly deleteButtonClasses!: string\n\n @Prop({ type: String, required: false, default: 'btn btn-primary' })\n private readonly editButtonClasses!: string\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly customSelection!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly tableStriped!: boolean\n\n @Prop({ type: Boolean, required: false, default: true })\n private readonly allowRowSelection!: boolean\n\n @Prop({ type: Number, required: false, default: 0 })\n private readonly pageSize!: number\n\n @Prop({ type: Number, required: false, default: 0 })\n private readonly maxPageLinks!: number\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly boundaryLinks!: boolean\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly directionLinks!: boolean\n\n selectedRows: any[] = []\n selectedRow: any\n currentTr: any\n private currentPage = 1\n private totalPages = 0\n\n //@todo better job of defining the return, by inspection it is row.row as a Record.\n private updateSelections(row: any) {\n /**\n * @todo ideally emit either the row or a normalized row +\n * some event info that might be helpful.\n * e.g. {rowNum: number; event: MouseEvent; data: Record} */\n this.$emit('selectionChanged', row)\n }\n\n public selectRow(row: any) {\n ;(this.$refs.table as Vue & { selectRow: (row: any) => void }).selectRow(row)\n }\n\n private handleEditClicked(row: any) {\n this.$emit('onEditRow', row)\n }\n\n private handleDeleteClicked(row: any) {\n this.$emit('onDeleteRow', row)\n }\n\n /** Added to surpress VueJS runtime error, but not sure what Rob's plan is for this. */\n private notifyRowClicked(e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n this.$emit('rowClicked', {}) //supresses an error on test. Not sure Robert's intent\n }\n}\n","export enum SearchResultTypes {\n TEAM = 'Team',\n COACH = 'Coach',\n PLAYER = 'Player',\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueSmartGrid.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VueSmartGrid.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VueSmartGrid.vue?vue&type=template&id=f312fc92\"\nimport script from \"./VueSmartGrid.vue?vue&type=script&lang=ts\"\nexport * from \"./VueSmartGrid.vue?vue&type=script&lang=ts\"\nimport style0 from \"./VueSmartGrid.vue?vue&type=style&index=0&id=f312fc92&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport VueLib from 'vue'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { Getter, Mutation } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport TextInput from '@/elements/TextInput.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { RolesEnum } from '@/modelHelpers/LeagueVolunteer'\nimport participantClient from '@/clients/participantClient'\nimport teamClient from '@/clients/teamClient'\nimport volunteerClient from '@/clients/volunteerClient'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { PlayerSearchInfo } from '@/GeneratedTypes/ListInfo/PlayerSearchInfo'\nimport { VolunteerSearchInfo } from '@/GeneratedTypes/ListInfo/VolunteerSearchInfo'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport * as programStore from '@/store/programs'\nimport * as search from '@/store/search'\nimport VueSmartGrid from '@/elements/VueSmartGrid/VueSmartGrid.vue'\nimport { GridColumn } from '@/common/GridColumn'\nimport { SearchItem } from '@/models/SearchItem'\nimport { SearchResultTypes } from '@/modelHelpers/SearchResult'\n\n@Component({\n components: {\n TextInput,\n Loading,\n VueSmartGrid,\n Breadcrumbs,\n },\n})\nexport default class Search extends Vue {\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(search.getterNames.searchTerms, { namespace: search.namespace })\n private searchTerms!: string\n\n @Mutation(search.mutationNames.setSearchTerms, { namespace: search.namespace })\n private setSearchTerms!: ({ searchTerms }: { searchTerms: string }) => void\n\n private localSearchTerms = ''\n private isLoading = false\n private searchableSet: SearchItem[] = []\n private filteredSet: SearchItem[] = []\n private breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.SEARCH, isActive: false },\n ])\n\n private async mounted() {\n this.localSearchTerms = this.searchTerms\n await this.loadData()\n this.filterData()\n }\n\n private async loadData() {\n if (!this.currentProgram || !this.currentProgram.upwardLeagueID || !this.currentProgram.typeProgramID) {\n return\n }\n this.isLoading = true\n const upwId = this.currentProgram.upwardLeagueID\n\n try {\n const [teams, coaches, players] = await Promise.all([\n teamClient.retrieveLeagueTeamList({ upwId }),\n volunteerClient.search(upwId, RolesEnum.COACH),\n participantClient.search(upwId),\n ])\n\n this.mergeDataSets(teams, players, coaches)\n } finally {\n this.isLoading = false\n }\n }\n\n private filterData() {\n if (this.searchTerms) {\n this.filteredSet = this.searchableSet.filter((searchItem: SearchItem) => {\n return searchItem.searchableTerm.toLowerCase().includes(this.searchTerms.toLowerCase())\n })\n } else {\n this.filteredSet = this.searchableSet\n }\n }\n\n private mergeDataSets(\n teams: DivisionTeamInfo[],\n players: PlayerSearchInfo[],\n coaches: VolunteerSearchInfo[]\n ) {\n const searchableTeams = this.convertTeamsToSearchItems(teams)\n const searchableCoaches = this.convertIndividualToSearchItems(coaches, SearchResultTypes.COACH)\n const searchablePlayers = this.convertIndividualToSearchItems(players, SearchResultTypes.PLAYER)\n this.searchableSet = [...searchableTeams, ...searchableCoaches, ...searchablePlayers]\n }\n\n private convertTeamsToSearchItems(teams: DivisionTeamInfo[]) {\n return teams.reduce((searchItems: SearchItem[], team: DivisionTeamInfo) => {\n if (team.teamName) {\n searchItems.push({\n searchableTerm: team.teamName,\n searchResultType: SearchResultTypes.TEAM,\n programId: team.typeProgramID,\n divisionId: team.divisionID.toString(),\n teamId: team.teamID.toString(),\n individualId: null,\n })\n }\n return searchItems\n }, [])\n }\n\n private convertIndividualToSearchItems(\n individuals: PlayerSearchInfo[] | VolunteerSearchInfo[],\n type: SearchResultTypes\n ) {\n const searchItems: SearchItem[] = []\n individuals.forEach((individual: PlayerSearchInfo | VolunteerSearchInfo) => {\n const fullName = `${individual.firstName} ${individual.lastName}`\n if (fullName) {\n searchItems.push({\n searchableTerm: fullName,\n searchResultType: type,\n programId: null,\n divisionId: null,\n teamId: null,\n individualId: individual.individualID.toString(),\n })\n }\n })\n return searchItems\n }\n\n @Watch('localSearchTerms')\n private searchTermsChange(newVal: string) {\n this.setSearchTerms({ searchTerms: newVal })\n this.filterData()\n }\n\n private columns: GridColumn[] = [\n {\n width: 120,\n headerText: 'Name',\n template: () => ({\n template: VueLib.component('columnTemplate', {\n props: {\n data: {},\n },\n methods: {\n getRoute(data: any) {\n if (data.searchResultType === SearchResultTypes.TEAM) {\n return `team/${data.programId}/${data.divisionId}/${data.teamId}`\n } else if (data.searchResultType === SearchResultTypes.COACH) {\n return `coach/${data.individualId}`\n } else if (data.searchResultType === SearchResultTypes.PLAYER) {\n return `player/${data.individualId}`\n } else {\n throw 'invalid searchResultType'\n }\n },\n },\n template: `{{data.searchableTerm}}`,\n }),\n }),\n },\n {\n width: 120,\n headerText: 'Type',\n template: () => ({\n template: VueLib.component('columnTemplate', {\n props: { data: {} },\n template: `
{{data.searchResultType}}
`,\n }),\n }),\n },\n ]\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Search.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Search.vue?vue&type=template&id=615d35f8\"\nimport script from \"./Search.vue?vue&type=script&lang=ts\"\nexport * from \"./Search.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[(!_vm.isLoading && _vm.hasProgram)?_c('div',[_c('input-label',{staticClass:\"w-100 text-center my-2\",attrs:{\"label\":\"Please select a program\"}}),_c('program-list',{attrs:{\"programs\":_vm.programs},on:{\"programClick\":_vm.go}})],1):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e(),(!_vm.isLoading && !_vm.hasProgram)?_c('div',{staticClass:\"text-center center-spinner-on-view flex-column p-1\"},[_c('p',[_vm._v(\"We're sorry. You are not authorized for any active leagues at this time.\")]),_c('p',[_vm._v(\"Please contact your director for assistance.\")])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container-fluid\"},_vm._l((_vm.programs),function(program,index){return _c('div',{key:index,staticClass:\"row py-3 clickable\",on:{\"click\":function($event){return _vm.$emit('programClick', program.upwardLeagueID)}}},[_c('div',{staticClass:\"col-2 p-0 text-right\"},[_c('program-icon',{staticClass:\"text-dark pr-2\",attrs:{\"description\":program.programTypeDescription}})],1),_c('div',{staticClass:\"col-10\"},[_c('h6',{staticClass:\"text-underline\"},[_vm._v(_vm._s(program.leagueName))])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('i',{staticClass:\"text-primary\",class:_vm.iconCssClass})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component\nexport default class ProgramOverview extends Vue {\n @Prop({ type: String, required: true })\n private readonly description!: string\n\n private get iconCssClass() {\n const defaultIcon = 'fa fa-running'\n\n if (!this.description) {\n return defaultIcon\n }\n\n if (this.description.toLowerCase().includes('cheer')) {\n return 'fa fa-bullhorn'\n }\n\n if (this.description.toLowerCase().includes('soccer')) {\n return 'fa fa-futbol'\n }\n\n if (this.description.toLowerCase().includes('basketball')) {\n return 'fa fa-basketball-ball'\n }\n\n if (this.description.toLowerCase().includes('baseball')) {\n return 'fa fa-baseball-ball'\n }\n\n if (this.description.toLowerCase().includes('football')) {\n return 'fa fa-football-ball'\n }\n\n if (this.description.toLowerCase().includes('volleyball')) {\n return 'fas fa-volleyball-ball'\n }\n\n return defaultIcon\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramIcon.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramIcon.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProgramIcon.vue?vue&type=template&id=355f8328\"\nimport script from \"./ProgramIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgramIcon.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport ProgramIcon from '@/components/ProgramIcon.vue'\n\n@Component({\n components: {\n ProgramIcon,\n },\n})\nexport default class ProgramList extends Vue {\n @Prop({ type: Array, required: true })\n private readonly programs!: LeagueInfoCondensed[]\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProgramList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ProgramList.vue?vue&type=template&id=78709da1\"\nimport script from \"./ProgramList.vue?vue&type=script&lang=ts\"\nexport * from \"./ProgramList.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator'\nimport ProgramList from '@/components/ProgramList.vue'\nimport Loading from '@/elements/Loading.vue'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport * as programStore from '@/store/programs'\nimport * as authorizeStore from '@/store/authorization'\nimport * as authentication from '@/store/authentication'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { Getter, Mutation, Action } from 'vuex-class'\nimport { ApplicationRoles } from '@/common/Authorization/ApplicationRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRole } from '@/models/VolunteerRole'\n\n@Component({\n components: {\n ProgramList,\n InputLabel,\n Loading,\n },\n})\nexport default class Programs extends Vue {\n @Getter(programStore.getterNames.programs, { namespace: programStore.namespace })\n private programs!: LeagueInfoCondensed[]\n\n @Getter(authentication.getterNames.userData, { namespace: authentication.namespace })\n private userToken!: string | undefined\n\n @Getter(authentication.getterNames.accountRoles, { namespace: authentication.namespace })\n private accountRole!: string[] | undefined\n\n @Getter(authentication.getterNames.leagueRoles, { namespace: authentication.namespace })\n private leagueRole!: VolunteerRole[] | undefined\n\n @Mutation(programStore.mutationNames.setCurrentProgram, { namespace: programStore.namespace })\n private setCurrentProgram!: ({ upwId }: { upwId: string }) => void\n\n @Action(programStore.actionNames.fetchPrograms, { namespace: programStore.namespace })\n private fetchPrograms!: ({ isCoach }: { isCoach: boolean }) => Promise\n\n @Mutation(authorizeStore.mutationNames.addApplicationRole, { namespace: authorizeStore.namespace })\n private addApplicationRole!: ({ role }: { role: ApplicationRoles }) => void\n\n @Mutation(authorizeStore.mutationNames.removeApplicationRole, { namespace: authorizeStore.namespace })\n private removeApplicationRole!: ({ role }: { role: ApplicationRoles }) => void\n\n private loading = true\n private applicationRoles = ApplicationRoles\n\n private async mounted() {\n const isCoach = this.leagueRole?.some((r) => r.RoleID == VolunteerRoles.COACH) ?? false\n const isSuperUser = this.accountRole?.some((r) => superUsers.join().includes(r)) ?? false\n await this.fetchPrograms({ isCoach: isCoach && !isSuperUser })\n this.setApplicationRoles()\n\n if (this.programs.length === 1 && this.programs[0].upwardLeagueID) {\n this.setCurrentProgram({ upwId: this.programs[0].upwardLeagueID })\n this.$router.push({ name: 'Home' })\n }\n this.loading = false\n }\n\n private setApplicationRoles() {\n const role = this.applicationRoles.USER_WITH_LEAGUE\n if (this.programs.length) {\n //used to guard routes\n this.addApplicationRole({ role: role })\n } else {\n this.removeApplicationRole({ role: role })\n }\n }\n\n private go(upwId: string) {\n this.setCurrentProgram({ upwId })\n this.$router.push({ name: 'Home' })\n }\n\n private get isLoading() {\n //loading or redirecting for case with 1 program\n return this.loading === true || this.programs.length === 1\n }\n\n private get hasProgram() {\n return this.programs.length > 0\n }\n}\n","export enum LeagueTypes {\n 'BASKETBALL' = 'LT_BASKETBALL',\n 'BASKETBALLCHEER' = 'LT_BASKETBALL_BASKETBALLCHEERLEADING',\n 'SOCCER' = 'LT_SOCCER',\n 'FOOTBALL' = 'LT_FOOTBALL',\n 'BASKETBALLCAMP' = 'LT_BASKETBALLCAMP',\n 'CHEERLEADINGCAMP' = 'LT_CHEERLEADINGCAMP',\n 'SOCCERCAMP' = 'LT_SOCCERCAMP',\n 'FOOTBALLCHEER' = 'LT_FOOTBALL_FOOTBALLCHEERLEADING',\n 'FOOTBALLCAMP' = 'LT_FOOTBALLCAMP',\n 'VOLLEYBALL' = 'LT_VOLLEYBALL',\n 'BASEBALL' = 'LT_BASEBALL',\n 'UPWARDSELECT' = 'LT_UPWARDSELECTMSS',\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Programs.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Programs.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Programs.vue?vue&type=template&id=5c9f2617\"\nimport script from \"./Programs.vue?vue&type=script&lang=ts\"\nexport * from \"./Programs.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex mx-auto mt-4 mt-sm-0\",staticStyle:{\"max-width\":\"600px\"}},[_c('div',{staticClass:\"bg-screen p-5 text-center\"},[_c('div',[_c('h5',[_vm._v(_vm._s(_vm.gsResource.title))]),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.gsResource.documentContent)}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export interface GettingStartedResource {\n title: string\n programType: string[]\n role: string[]\n devotionTrack: string[]\n productGroupIDs: string[]\n content: string | null\n documentContent: string\n}\n\nexport function getEmptyGettingStartedResource(): GettingStartedResource {\n return {\n title: '',\n programType: [],\n role: [],\n devotionTrack: [],\n productGroupIDs: [],\n content: null,\n documentContent: '',\n }\n}\n","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\n\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport * as programStore from '@/store/programs'\n\nimport * as authorization from '@/store/authorization'\nimport { AccountRoles } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport {\n getEmptyGettingStartedResource,\n GettingStartedResource,\n} from '@/models/Resources/GettingStartedResource'\nimport contentManagementClient from '@/clients/contentManagementClient'\nimport { LeagueTypes } from '@/common/LeagueTypes'\nimport store from '@/store'\n\n@Component({\n components: {},\n})\nexport default class GettingStarted extends Vue {\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: RoleUnion\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private readonly currentProgram!: LeagueInfoCondensed\n\n private gsResource = getEmptyGettingStartedResource()\n\n private async created() {\n this.gsResource =\n (await contentManagementClient.getGettingStartedResource(\n this.currentProgram.upwardLeagueID ?? '',\n this.currentProgram.typeProgramID ?? '',\n this.currentRole.roleId\n )) ?? getEmptyGettingStartedResource()\n this.gsResource = this.applyContentOverrides(this.gsResource, this.$router)\n }\n\n private FIRST_PRESBYTERIAN_NASHVILLE_OVERRIDES = [\n {\n accountNumber: '31938',\n leagueType: LeagueTypes.SOCCER,\n roles: [VolunteerRoles.COACH],\n replacements: [\n {\n find: 'https://uuresources.blob.core.windows.net/media/Volunteers/24-25/SOL/24-25_SOL_Coach_Playbook_VIRTUES.pdf',\n replace:\n 'https://uuresources.blob.core.windows.net/media/Volunteers/24-25/MSL/FPCNashvilleCoachManualSpring2025.pdf',\n },\n {\n find: 'PDF: Coach Playbook',\n replace: 'PDF: Coach Manual',\n },\n ],\n },\n ]\n\n /**\n * Applies content overrides based on account, league type, and role\n * @param resource The resource to potentially modify\n * @param router Vue router instance with $allowIfAny method\n * @returns A new resource with overrides applied if conditions match\n */\n private applyContentOverrides(resource: GettingStartedResource, router: any): GettingStartedResource {\n // Create a deep copy to avoid mutating the original\n const result = JSON.parse(JSON.stringify(resource))\n\n // Get current user context\n const accountNumber = store.getters.authentication.firstAccountNumber\n const currentProgram = store.getters.programs.currentProgram!\n const leagueType = currentProgram?.typeLeagueID\n\n // Find matching override configuration\n const matchingOverride = this.FIRST_PRESBYTERIAN_NASHVILLE_OVERRIDES.find(\n (override) =>\n accountNumber === override.accountNumber &&\n leagueType === override.leagueType &&\n router.app.$allowIfAny(override.roles)\n )\n\n // Apply replacements if there's a match and content exists\n if (matchingOverride && result.documentContent) {\n let modifiedContent = result.documentContent\n for (const { find, replace } of matchingOverride.replacements) {\n modifiedContent = modifiedContent.replace(find, replace)\n }\n return {\n ...result,\n documentContent: modifiedContent,\n }\n }\n\n return result\n }\n\n //leaving everything from here down for reference to what was done before in case teh new CMS mappings are incorrect.\n\n documentIdMap = new Map([\n [\n AccountRoles.DIRECTOR.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedProgramDirectorBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedProgramDirectorCampBasketball'],\n ['FOOTBALL', 'gettingStartedProgramDirectorFootball'],\n ['FOOTBALLCAMP', 'gettingStartedProgramDirectorCampFootball'],\n ['SOCCER', 'gettingStartedProgramDirectorSoccer'],\n ['SOCCERCAMP', 'gettingStartedProgramDirectorCampSoccer'],\n ['VOLLEYBALL', 'gettingStartedProgramDirectorVolleyball'],\n ['VOLLEYBALLCAMP', 'gettingStartedProgramDirectorCampVolleyball'],\n ['CHEERCAMP', 'gettingStartedProgramDirectorCampCheerleading'],\n ]),\n ],\n [\n VolunteerRoles.ADVERTISING_COMMISSIONER.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedAdvertisingCommissionerBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedAdvertisingCommissionerBasketball'],\n ['FOOTBALL', 'gettingStartedAdvertisingCommissionerFootball'],\n ['FOOTBALLCAMP', 'gettingStartedAdvertisingCommissionerFootball'],\n ['SOCCER', 'gettingStartedAdvertisingCommissionerSoccer'],\n ['SOCCERCAMP', 'gettingStartedAdvertisingCommissionerSoccer'],\n ['VOLLEYBALL', 'gettingStartedAdvertisingCommissionerVolleyball'],\n ['VOLLEYBALLCAMP', 'gettingStartedAdvertisingCommissionerVolleyball'],\n ]),\n ],\n [\n VolunteerRoles.REFEREE_COMMISSIONER.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedRefereeCommissionerBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedRefereeCommissionerBasketball'],\n ['FOOTBALL', 'gettingStartedRefereeCommissionerFootball'],\n ['FOOTBALLCAMP', 'gettingStartedRefereeCommissionerFootball'],\n ['SOCCER', 'gettingStartedRefereeCommissionerSoccer'],\n ['SOCCERCAMP', 'gettingStartedRefereeCommissionerSoccer'],\n ['VOLLEYBALL', 'gettingStartedRefereeCommissionerVolleyball'],\n ['VOLLEYBALLCAMP', 'gettingStartedRefereeCommissionerVolleyball'],\n ]),\n ],\n [\n VolunteerRoles.COACH.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedCoachBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedCoachCampBasketball'],\n ['FOOTBALL', 'gettingStartedCoachFootball'],\n ['FOOTBALLCAMP', 'gettingStartedCoachCampFootball'],\n ['SOCCER', 'gettingStartedCoachSoccer'],\n ['SOCCERCAMP', 'gettingStartedCoachCampSoccer'],\n ['VOLLEYBALL', 'gettingStartedCoachVolleyball'],\n ['VOLLEYBALLCAMP', 'gettingStartedCoachCampVolleyball'],\n ['CHEERCAMP', 'gettingStartedCoachCampCheerleading'],\n ]),\n ],\n [\n VolunteerRoles.COACH_COMMISSIONER.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedCoachCommissionerBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedCoachCommissionerBasketball'],\n ['FOOTBALL', 'gettingStartedCoachCommissionerFootball'],\n ['SOCCER', 'gettingStartedCoachCommissionerSoccer'],\n ['VOLLEYBALL', 'gettingStartedCoachCommissionerVolleyball'],\n ]),\n ],\n [\n VolunteerRoles.REFEREE.toString(),\n new Map([\n ['BASKETBALL', 'gettingStartedRefereeBasketball'],\n ['BASKETBALLCAMP', 'gettingStartedRefereeCampBasketball'],\n ['FOOTBALL', 'gettingStartedRefereeFootball'],\n ['FOOTBALLCAMP', 'gettingStartedRefereeCampFootball'],\n ['SOCCER', 'gettingStartedRefereeSoccer'],\n ['SOCCERCAMP', 'gettingStartedRefereeCampSoccer'],\n ['VOLLEYBALL', 'gettingStartedRefereeVolleyball'],\n ['VOLLEYBALLCAMP', 'gettingStartedRefereeCampVolleyball'],\n ['CHEERCAMP', 'gettingStartedRefereeCampCheerleading'],\n ]),\n ],\n [VolunteerRoles.PRAYER_COMMISSIONER.toString(), new Map([['', 'gettingStartedPrayerCommissioner']])],\n [VolunteerRoles.HOST_COMMISSIONER.toString(), new Map([['', 'gettingStartedHostCommissioner']])],\n [VolunteerRoles.MINISTRY_COORDINATOR.toString(), new Map([['', 'gettingStartedMinistryCoordinator']])],\n [VolunteerRoles.HALFTIME_COMMISSIONER.toString(), new Map([['', 'gettingStartedGamedayCommissioner']])],\n [VolunteerRoles.CHEER_DIRECTOR.toString(), new Map([['', 'gettingStartedCheerDirector']])],\n ])\n\n sportMap = new Map([\n ['BASKETBALL', 'BASKETBALL'],\n ['BASKETBALLCAMP', 'BASKETBALLCAMP'],\n ['BASKETBALLCLINIC', 'BASKETBALL'],\n ['BASKETBALLCHEERLEADING', 'BASKETBALL'],\n ['SOCCER', 'SOCCER'],\n ['VOLLEYBALL', 'VOLLEYBALL'],\n ['VOLLEYBALLCAMP', 'VOLLEYBALLCAMP'],\n ['SOCCERCAMP', 'SOCCERCAMP'],\n ['SOCCERCLINIC', 'SOCCER'],\n ['FOOTBALL', 'FOOTBALL'],\n ['FOOTBALLCAMP', 'FOOTBALLCAMP'],\n ['FOOTBALLCLINIC', 'FOOTBALL'],\n ['FOOTBALLCHEERLEADING', 'FOOTBALL'],\n ['CHEERCAMP', 'CHEERCAMP'],\n ])\n\n private get documentId() {\n const nonSportDocumentId = this.documentIdMap.get(this.currentRole.roleId)?.get('')\n if (nonSportDocumentId) {\n return nonSportDocumentId\n }\n const sport = this.sportMap.get(this.currentProgram.typeProgramID ?? '') ?? ''\n const sportDocumentId = this.documentIdMap.get(this.currentRole.roleId)?.get(sport)\n return sportDocumentId\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GettingStarted.vue?vue&type=template&id=4ad83bbc\"\nimport script from \"./GettingStarted.vue?vue&type=script&lang=ts\"\nexport * from \"./GettingStarted.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Vue, Component } from 'vue-property-decorator'\n\n@Component\nexport default class GameDay extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDay.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameDay.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameDay.vue?vue&type=template&id=29f12d31\"\nimport script from \"./GameDay.vue?vue&type=script&lang=ts\"\nexport * from \"./GameDay.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-center\"},[(_vm.impersonationActive)?_c('div',{staticClass:\"p-2\"},[_c('primary-heading',{attrs:{\"title\":\"Impersonating\"}}),_c('impersonating',{staticClass:\"mt-4\"})],1):_c('div',[(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view mt-3\"},[_c('loading')],1):_vm._e(),(!_vm.loading)?_c('div',[_c('primary-heading',{attrs:{\"title\":\"Impersonation\"}}),_c('p',{staticClass:\"p-1\"},[_vm._v(\"Search for a partner by name, account number or city. Partial values are valid.\")]),_c('partner-search-panel',{on:{\"impersonate\":_vm.goImpersonate}})],1):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"panel\"},[_c('SearchInput',{attrs:{\"searchButonText\":\"Search\",\"search-button-text\":\"Search\"},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),(_vm.loading)?_c('div',{staticClass:\"mt-2\"},[_c('loading')],1):_vm._e(),(_vm.error)?_c('div',{staticClass:\"alert alert-warning\",attrs:{\"role\":\"alert\"}},[_vm._v(_vm._s(_vm.error))]):_c('div',[(_vm.searchResults.length > 0)?_c('table',{staticClass:\"table table-striped mt-2\"},[_vm._m(0),_c('tbody',_vm._l((_vm.searchResults),function(line){return _c('tr',{key:line.accountNumber},[_c('td',[_vm._v(_vm._s(line.name))]),_c('td',[_vm._v(_vm._s(line.city))]),_c('td',[_c('a',{attrs:{\"title\":\"Impersonate User\"},on:{\"click\":function($event){return _vm.impersonate(line.accountNumber)}}},[_c('i',{staticClass:\"fas fa-user-friends clickable\"})])])])}),0)]):_vm._e()])],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('thead',[_c('tr',[_c('th',[_vm._v(\"Name\")]),_c('th',[_vm._v(\"City\")]),_c('th',[_vm._v(\"Imp.\")])])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"row\"},[_c('text-input',{staticClass:\"no-input-borders border-bottom-1 border-bottom-light-4 col\",attrs:{\"label\":_vm.label,\"placeholder\":\"Search\",\"append-icon\":\"fa fa-search\"},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}})],1),_c('div',{staticClass:\"row pt-3\"},[(_vm.searchButtonText)?_c('button',{staticClass:\"btn btn-dark col mx-3\",attrs:{\"role\":\"button\"},on:{\"click\":_vm.handleButtonInput}},[_vm._v(\" \"+_vm._s(_vm.searchButtonText)+\" \")]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport TextInput from '@/elements/TextInput.vue'\nimport { Component, Vue, Watch, Prop, Emit } from 'vue-property-decorator'\n\n@Component({\n components: {\n TextInput,\n },\n})\nexport default class SearchInput extends Vue {\n @Prop({ type: String, required: true })\n private readonly value!: string\n\n @Prop({ type: String, required: false, default: '' })\n private readonly searchButtonText!: string\n\n @Prop({ type: String, required: false, default: '' })\n private readonly label!: string\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly allowBlankInput!: boolean\n\n private internalValue = ''\n\n @Emit()\n input() {\n return this.internalValue\n }\n @Emit()\n searchClick() {\n return this.internalValue\n }\n\n @Emit()\n change() {\n //trigger change if we don't have a search button\n return this.internalValue\n }\n\n private handleInput() {\n //trigger only if we don't have a search button\n if (!this.searchButtonText || (this.searchButtonText && this.allowBlankInput)) {\n this.input()\n }\n }\n\n private handleButtonInput() {\n this.searchClick()\n this.input()\n }\n\n private handleChange() {\n if (!this.searchButtonText) {\n this.change()\n }\n }\n\n @Watch('value', { immediate: true })\n private onValueChanged() {\n this.internalValue = this.value\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SearchInput.vue?vue&type=template&id=4b6df7b9\"\nimport script from \"./SearchInput.vue?vue&type=script&lang=ts\"\nexport * from \"./SearchInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { computed, defineComponent, ref, watch } from 'vue'\nimport SearchInput from '@/elements/SearchInput.vue'\nimport partnersClient, { PartnerSearchResultsType } from '@/clients/partnerClient'\nimport Loading from '@/elements/Loading.vue'\nimport { ImpersonationPayload } from '@/clients/authorizationClient'\n\ninterface SearchResults {\n name: string\n city: string\n accountNumber: number\n}\n\nexport default defineComponent({\n components: { SearchInput, Loading },\n setup(p, ctx) {\n // set to an error if there is one.\n const error = ref('')\n //clear an error in 20 seconds automatically\n watch(\n () => error.value,\n (a) => {\n if (a) {\n setTimeout(() => (error.value = ''), 20000)\n }\n }\n )\n const searchTerm = ref('')\n const loading = ref(false)\n const results = ref([])\n const searchResults = computed(() => {\n return results.value.map((x) => {\n const splitResult = x.name?.match(/(.*)-(.*)?$/) ?? []\n let name = x.name\n let city = 'n/a'\n if (splitResult.length == 3) {\n name = splitResult[1]\n city = splitResult[2]\n }\n return { name, city, accountNumber: x.accountNumber } as SearchResults\n })\n })\n\n watch(\n () => searchTerm.value,\n async () => {\n if (searchTerm.value.length >= 3) {\n try {\n loading.value = true\n results.value = (await partnersClient.searchPartners(searchTerm.value)) ?? []\n if (!results.value?.length) {\n error.value = 'No results returned'\n }\n } catch (e) {\n error.value =\n e?.message || e?.errorObject?.message || 'An unexpected error occurred searching for partners'\n loading.value = false\n throw e\n } finally {\n loading.value = false\n }\n }\n }\n )\n\n function impersonate(accountNumber: string) {\n ctx.emit('impersonate', { accountNumber } as ImpersonationPayload)\n }\n\n return { searchTerm, loading, searchResults, impersonate, error }\n },\n})\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerSearchPanel.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PartnerSearchPanel.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./PartnerSearchPanel.vue?vue&type=template&id=6e211b9e\"\nimport script from \"./PartnerSearchPanel.vue?vue&type=script&lang=ts\"\nexport * from \"./PartnerSearchPanel.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PartnerSearchPanel.vue?vue&type=style&index=0&id=6e211b9e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\n\nimport * as authStore from '@/store/authentication'\n\nimport PartnerSearchPanel from '@/views/Account/Impersonate/PartnerSearchPanel.vue'\nimport Impersonating from '@/components/Impersonating.vue'\nimport PrimaryHeading from '@/elements/PrimaryHeading.vue'\nimport Loading from '@/elements/Loading.vue'\n\n@Component({\n components: {\n PartnerSearchPanel,\n Impersonating,\n PrimaryHeading,\n Loading,\n },\n})\nexport default class Impersonate extends Vue {\n @Action(authStore.actionNames.impersonate, { namespace: authStore.namespace })\n private impersonate!: (who: { userName?: string; accountNumber: string }) => Promise\n\n @Getter(authStore.getterNames.impersonationActive, { namespace: authStore.namespace })\n private impersonationActive!: boolean\n\n private loading = false\n\n private async goImpersonate(who: { userName?: string; accountNumber: string }) {\n this.loading = true\n await this.impersonate(who)\n this.$router.replace({ name: 'Programs' })\n this.loading = false\n }\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Impersonate.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Impersonate.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Impersonate.vue?vue&type=template&id=133a03d9&scoped=true\"\nimport script from \"./Impersonate.vue?vue&type=script&lang=ts\"\nexport * from \"./Impersonate.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Impersonate.vue?vue&type=style&index=0&id=133a03d9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"133a03d9\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('h5',{staticClass:\"text-center mt-2\"},[_vm._v(_vm._s(_vm.currentProgram.refLabel)+\" Schedule\")]),(_vm.loading)?_c('div',{staticClass:\"text-center p-3\"},[_c('loading')],1):_vm._e(),(!_vm.loading)?_c('div',{staticClass:\"text-center small font-weight-bold\"},[_vm._v(_vm._s(_vm.title))]):_vm._e(),(!_vm.loading && _vm.refereesGames.length)?_c('toggle',{staticClass:\"mb-3 mx-auto\",staticStyle:{\"max-width\":\"250px\"},attrs:{\"states\":_vm.pageStates},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}):_vm._e(),_vm._l((_vm.filteredGames),function(game,i){return _c('div',{key:i,staticClass:\"px-2\"},[_c('game-referee',{attrs:{\"game\":game}})],1)}),(!_vm.loading && !_vm.refereesGames.length)?_c('div',{staticClass:\"text-center\"},[_vm._v(\"No schedule to display\")]):(!_vm.loading && !_vm.filteredGames.length)?_c('div',{staticClass:\"text-center small text-center p-5 m-2 m-sm-5\"},[_vm._v(\" There are no \"),_c('b',[_vm._v(_vm._s(_vm.currentToggle))]),_vm._v(\" games. Toggle the Upcoming/Past filter to see games. \")]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('date-card',{attrs:{\"card-date\":_vm.game.gameStart,\"time\":`${_vm.time(_vm.game.gameStart)} - ${_vm.time(_vm.game.gameEnd)}`}},[_c('template',{slot:\"body\"},[_c('div',{staticClass:\"col-9 d-flex flex-row py-1 px-2\"},[_c('div',{staticClass:\"d-flex flex-column justify-content-between\",staticStyle:{\"flex\":\"1 1 auto\"}},[(_vm.game.homeTeamName && _vm.game.awayTeamName)?_c('label-input',{attrs:{\"label\":`${_vm.game.awayTeamName} at ${_vm.game.homeTeamName}`,\"label-class\":\"\"}}):_vm._e(),(_vm.game.divisionName)?_c('div',{staticClass:\"text-secondary small\"},[_vm._v(\"Division: \"+_vm._s(_vm.game.divisionName))]):_vm._e(),_c('div',{staticClass:\"text-secondary small mb-3\"},[_vm._v(\"Facility: \"+_vm._s(_vm.game.facilityName))]),_c('div',{staticClass:\"small font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.currentProgram.refLabel)+_vm._s(_vm.game.referees.length > 1 ? 's' : '')+\" \")]),_vm._l((_vm.game.referees),function(v,i){return _c('div',{key:i,staticClass:\"text-secondary small\"},[_vm._v(\" \"+_vm._s(v.name)+\" \")])}),(_vm.game.referees.length == 0)?_c('div',{staticClass:\"text-secondary small\"},[_c('i',{staticClass:\"fas fa-times-circle\"}),_vm._v(\" none assigned \")]):_vm._e()],2)])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { getEmptyDivisionGameInfo } from '@/modelHelpers/DivisionGameInfo'\nimport LabelInput from '@/elements/InputLabel.vue'\nimport DateCard from '@/components/DateCard.vue'\nimport moment from 'moment'\nimport { DisplayableGame } from '@/modelHelpers/DisplayableGame'\nimport { Getter } from 'vuex-class'\nimport * as programStore from '@/store/programs'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\n\n@Component({\n components: {\n LabelInput,\n DateCard,\n },\n})\nexport default class Game extends Vue {\n @Prop({ type: Object, default: getEmptyDivisionGameInfo, required: false })\n private readonly game!: DisplayableGame\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n private time(dt: string) {\n return moment(dt).format('h:mmA')\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameReferee.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GameReferee.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GameReferee.vue?vue&type=template&id=41218ad6\"\nimport script from \"./GameReferee.vue?vue&type=script&lang=ts\"\nexport * from \"./GameReferee.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Action, Getter } from 'vuex-class'\nimport moment from 'moment'\n\nimport Loading from '@/elements/Loading.vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport GameReferee from '@/components/GameReferee.vue'\nimport Toggle from '@/components/Toggle.vue'\n\nimport { AuthUser } from '@/GeneratedTypes/Authorize/AuthUser'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { DivisionGameInfo } from '@/GeneratedTypes/ListInfo/DivisionGameInfo'\nimport { DisplayableGame } from '@/modelHelpers/DisplayableGame'\n\nimport { RolesEnum } from '@/modelHelpers/LeagueVolunteer'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport * as authStore from '@/store/authentication'\nimport * as programStore from '@/store/programs'\n\nimport gameClient from '@/clients/gameClient'\nimport volunteerClient from '@/clients/volunteerClient'\nimport { LeagueVolunteerInfo } from '@/GeneratedTypes/ListInfo/LeagueVolunteerInfo'\n\n@Component({\n components: {\n Loading,\n Breadcrumbs,\n GameReferee,\n Toggle,\n },\n})\nexport default class Coach extends Vue {\n @Action(authStore.actionNames.fetchProfile, { namespace: authStore.namespace })\n private fetchProfile!: ({ email }: { email: string }) => Promise\n\n @Getter(authStore.getterNames.userProfile, { namespace: authStore.namespace })\n private userProfile!: AuthUser\n\n @Getter(authStore.getterNames.email, { namespace: authStore.namespace })\n private email!: string\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.REFEREE_SCHEDULE, isActive: false },\n ])\n\n loading = false\n leagueGames = [] as DivisionGameInfo[]\n leagueVolunteers = [] as LeagueVolunteerInfo[]\n pageStates = ['Upcoming', 'Past']\n currentToggle: string | null = null\n\n async mounted() {\n this.loading = true\n await this.fetchProfile({ email: this.email })\n\n const [volunteers, games] = await Promise.all([\n volunteerClient.retrieveByRoles(this.currentProgram.upwardLeagueID ?? '', [RolesEnum.REFEREE]),\n gameClient.retrieveByLeague(this.currentProgram.upwardLeagueID),\n ])\n this.leagueVolunteers = volunteers\n this.leagueGames = games\n this.loading = false\n }\n\n get refereesIndividualID() {\n if (!this.userProfile || !this.userProfile.roles) return null\n const ids = this.userProfile.roles\n .filter(\n (r) => r.upwardLeagueID == this.currentProgram.upwardLeagueID && r.roleID == VolunteerRoles.REFEREE\n )\n .map((x) => x.individualID)\n\n return ids.length ? ids[0] : null\n }\n\n get title() {\n const ref = this.leagueVolunteers.find((v) => v.individualID == this.refereesIndividualID)\n return ref ? `for ${ref.formattedNameFirstLast}` : 'All Games'\n }\n\n get refereesGames(): DisplayableGame[] {\n return this.leagueGames\n .filter((g) => {\n return !this.refereesIndividualID\n ? true // this is a super user or referee commissioner acting as a ref. Show for entire leage\n : g.volunteers?.some((v) => v.volunteerIndividualID == this.refereesIndividualID)\n })\n .map((g) => {\n return {\n homeTeamName: g.homeTeamName,\n awayTeamName: g.awayTeamName,\n homeTeamId: g.homeTeamID,\n gameStart: g.gameStart,\n gameEnd: g.gameEnd,\n referees: g.volunteers\n ?.filter((v) => v.roleID == RolesEnum.REFEREE)\n .map((v) => {\n return {\n ...v,\n name: this.name(v.volunteerIndividualID),\n }\n }),\n divisionName: g.divisionName,\n facilityName: g.facilityName,\n }\n })\n .sort((a, b) => {\n return moment.utc(a.gameStart).diff(moment.utc(b.gameStart))\n })\n\n return []\n }\n\n get filteredGames() {\n return this.refereesGames.filter((game) => {\n if (!game.gameStart) return false\n if (moment().isAfter(game.gameStart)) {\n // past game\n return this.currentToggle === 'Past'\n } else {\n //upcoming game\n return this.currentToggle === 'Upcoming'\n }\n })\n }\n\n name(individualId: number) {\n const volunteer = this.leagueVolunteers.find((l) => l.individualID == individualId)\n return volunteer ? volunteer.formattedNameFirstLast : ''\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RefereeSchedule.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RefereeSchedule.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RefereeSchedule.vue?vue&type=template&id=4f557a46\"\nimport script from \"./RefereeSchedule.vue?vue&type=script&lang=ts\"\nexport * from \"./RefereeSchedule.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"p-1\"},[(_vm.showDaysUntilExpiration && !_vm.verify)?_c('div',{staticClass:\"alert text-center alert-warning m-3\"},[_c('i',{staticClass:\"fa fa-exclamation-circle fa-lg\"}),_vm._v(\" \"+_vm._s(_vm.warning)+\" \")]):_vm._e(),(_vm.verify)?[_c('VerficationCode',{attrs:{\"credentials\":_vm.credentials},on:{\"cancel\":_vm.cancelVerification}})]:[_c('TextInput',{attrs:{\"label\":\"Display Name\",\"vee-validate-rules\":\"required\",\"name\":\"Display name\",\"required\":\"\"},model:{value:(_vm.localFullName),callback:function ($$v) {_vm.localFullName=$$v},expression:\"localFullName\"}}),_c('TextInput',{attrs:{\"label\":\"Email\",\"vee-validate-rules\":\"required\",\"name\":\"Email\",\"required\":\"\"},model:{value:(_vm.localEmail),callback:function ($$v) {_vm.localEmail=$$v},expression:\"localEmail\"}}),_c('div',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-dark my-5\",attrs:{\"disabled\":!_vm.canSave},on:{\"click\":_vm.save}},[_vm._v(\" Save \"),(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1)]),(_vm.redirect)?_c('div',{staticClass:\"text-center\"},[_c('div',{staticClass:\"pt-3 font-weight-bold\"},[_vm._v(\"You are about to be redirected. \"),_c('loading',{attrs:{\"is-small\":\"\"}})],1),_c('div',[_vm._v(\"Please log back in with your new information.\")])]):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"p-3 m-auto my-5\"},[(!_vm.verificationComplete)?[_vm._m(0),_c('div',{staticClass:\"text-center my-4\"},[_c('div',{staticClass:\"small text-muted\",staticStyle:{\"max-width\":\"500px\"}},[_vm._v(\" Changing your user name requires a verfication code. \")]),_c('div',{staticClass:\"small\"},[_vm._v(\" Please check \"),_c('b',[_vm._v(\" \"+_vm._s(_vm.credentials.newEmail))]),_vm._v(\". \")]),_vm._m(1)]),_c('TextInput',{attrs:{\"label\":\"code\"},model:{value:(_vm.code),callback:function ($$v) {_vm.code=$$v},expression:\"code\"}}),_c('div',{staticClass:\"d-flex flex-column\"},[_c('button',{staticClass:\"btn btn-success mt-4\",attrs:{\"disabled\":!_vm.canSave},on:{\"click\":_vm.verify}},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e(),_vm._v(\" Verify \")],1),_c('button',{staticClass:\"btn btn-link text-muted\",on:{\"click\":_vm.cancel}},[_vm._v(\"cancel\")])])]:_c('div',{staticClass:\"text-center p-3\"},[_c('div',[_vm._m(2),(_vm.isMultiAccountUser)?_c('div',[_c('div',{staticClass:\"pt-3 font-weight-bold\"},[_vm._v(\"You are about to be redirected. \"),_c('loading',{attrs:{\"is-small\":\"\"}})],1),_c('div',[_vm._v(\"Please log back in with your new information.\")])]):_c('div',[_c('div',[_vm._v(\"Your updated account information is:\")]),_c('div',{staticClass:\"pt-3 font-weight-bold\"},[_vm._v(_vm._s(_vm.credentials.newFullName))]),_c('div',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.credentials.newEmail))]),_c('button',{staticClass:\"btn btn-link text-underline\",on:{\"click\":_vm.cancel}},[_vm._v(\"Return to Profile\")])])])])],2)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h5',{staticClass:\"text-danger font-weight-bold text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle\"}),_vm._v(\" Verification Code Required \")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pt-3 m-auto\",staticStyle:{\"max-width\":\"450px\"}},[_c('span',{staticClass:\"small text-danger font-weight-bold\"},[_vm._v(\"This will not change the address used for emails. \")]),_c('span',{staticClass:\"small\"},[_vm._v(\"Contact your league director to make that change.\")])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"font-weight-bold\"},[_c('i',{staticClass:\"fas fa-check-circle text-success\"}),_vm._v(\" Verification complete. \")])\n}]\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref, computed, PropType } from 'vue'\nimport { useRouter } from 'vue-router/composables'\n\nimport TextInput from '@/elements/TextInput.vue'\nimport Loading from '@/elements/Loading.vue'\nimport Modal from '@/components/Modal.vue'\n\nimport store from '@/store'\nimport { logoutUser } from '@/common/Authentication/logoutUser'\n\nexport interface ProfileCredentials {\n newEmail: string\n newFullName: string\n}\n\nexport default defineComponent({\n name: 'EmailVerification',\n props: { credentials: { type: Object as PropType, required: true, default: '' } },\n components: { TextInput, Loading, Modal },\n setup(props, { emit }) {\n const updateProfile = store.dispatch.authentication.updateProfile\n const router = useRouter()\n\n const code = ref('')\n const error = ref('')\n const loading = ref(false)\n const verificationComplete = ref(false)\n const canSave = computed(() => code.value.length >= 10)\n const isMultiAccountUser = computed(() => store.getters.authentication.isMultiAccountUser)\n const show = ref(false)\n function cancel() {\n emit('cancel')\n }\n\n async function verify() {\n await saveProfile()\n }\n\n async function saveProfile() {\n loading.value = true\n try {\n const r = await updateProfile({\n payload: {\n newUsername: props.credentials.newEmail,\n usernameChangeCode: code.value,\n },\n })\n verificationComplete.value = true\n if (r.incompleteToken) {\n setTimeout(() => {\n logoutUser()\n router.push('/')\n }, 6000)\n }\n } finally {\n loading.value = false\n }\n }\n\n return { code, verify, canSave, error, cancel, verificationComplete, loading, isMultiAccountUser, show }\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerificationCode.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerificationCode.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VerificationCode.vue?vue&type=template&id=2e228d9a\"\nimport script from \"./VerificationCode.vue?vue&type=script&lang=ts\"\nexport * from \"./VerificationCode.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { defineComponent, ref, watch, computed } from 'vue'\nimport TextInput from '@/elements/TextInput.vue'\nimport VerficationCode, { ProfileCredentials } from '@/views/Account/VerificationCode.vue'\nimport Loading from '@/elements/Loading.vue'\nimport store from '@/store'\nimport { logoutUser } from '@/common/Authentication/logoutUser'\n\nexport default defineComponent({\n name: 'Profile',\n props: {},\n components: { TextInput, VerficationCode, Loading },\n setup() {\n const redirect = ref(false)\n const fullName = computed(() => store.getters.authentication.fullName)\n const email = computed(() => store.getters.authentication.email)\n const isNewEmail = computed(() => localEmail.value !== email.value)\n const isNewFullName = computed(() => localFullName.value !== fullName.value)\n const daysUntilPasswordExpiration = computed(\n () => store.getters.authentication.daysUntilPasswordExpiration ?? 0\n )\n const localFullName = ref('')\n const localEmail = ref('')\n const loading = ref(false)\n\n async function save() {\n if (isNewEmail.value || isNewFullName.value) {\n verify.value = isNewEmail.value\n await updateProfile()\n }\n }\n\n async function updateProfile() {\n loading.value = true\n try {\n const r = await store.dispatch.authentication.updateProfile({\n payload: {\n newUsername: isNewEmail.value ? localEmail.value : null,\n newFullName: isNewFullName.value ? localFullName.value : null,\n },\n })\n\n if (r?.incompleteToken) {\n redirect.value = true\n setTimeout(logoutUser, 6000)\n }\n } finally {\n loading.value = false\n }\n }\n\n const credentials = computed(() => {\n return {\n newEmail: localEmail.value,\n newFullName: localFullName.value,\n } as ProfileCredentials\n })\n\n const canSave = computed(() => {\n return localEmail.value && localFullName.value\n })\n\n const verify = ref(false)\n function cancelVerification() {\n verify.value = false\n }\n\n const showDaysUntilExpiration = computed(() => {\n return daysUntilPasswordExpiration.value !== null && daysUntilPasswordExpiration.value < 10\n })\n\n const warning = computed(() => {\n if (daysUntilPasswordExpiration.value >= 2) {\n return `Your password expires in ${daysUntilPasswordExpiration.value} days.`\n } else if (daysUntilPasswordExpiration.value === 1) {\n return 'Your password expires tomorrow. Please change it soon.'\n } else {\n return 'Your password is expired. Please change it.'\n }\n })\n\n watch(\n () => fullName.value,\n (val) => {\n localFullName.value = val ?? ''\n },\n { immediate: true }\n )\n\n watch(\n () => email.value,\n (val) => {\n localEmail.value = val\n },\n { immediate: true }\n )\n\n return {\n localFullName,\n localEmail,\n canSave,\n credentials,\n verify,\n showDaysUntilExpiration,\n warning,\n loading,\n save,\n cancelVerification,\n redirect,\n }\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Profile.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Profile.vue?vue&type=template&id=0952e7d3\"\nimport script from \"./Profile.vue?vue&type=script&lang=ts\"\nexport * from \"./Profile.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"px-4\"},[_c('password-input',{attrs:{\"label\":\"Current Password\",\"required\":\"\"},model:{value:(_vm.currentPassword),callback:function ($$v) {_vm.currentPassword=$$v},expression:\"currentPassword\"}}),_c('password-input',{attrs:{\"label\":\"New Password\",\"required\":\"\"},on:{\"change\":_vm.onNewPasswordsChange},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}}),_c('password-input',{attrs:{\"label\":\"Confirm New Password\",\"required\":\"\"},on:{\"change\":_vm.onNewPasswordsChange},model:{value:(_vm.confirmNewPassword),callback:function ($$v) {_vm.confirmNewPassword=$$v},expression:\"confirmNewPassword\"}}),(_vm.showConfirmPasswordError)?_c('div',{staticClass:\"alert alert-with-icon alert-warning m-0 mt-2\"},[_c('i',{staticClass:\"fa fa-exclamation-circle fa-lg\"}),_vm._v(\" The new password does not match the confirmation password entry. Please double check the entries. \")]):_vm._e(),_c('div',{staticClass:\"text-center\"},[_c('button',{staticClass:\"btn btn-dark my-5\",attrs:{\"disabled\":_vm.saveIsDisabled},on:{\"click\":_vm.submitPasswordChange}},[_vm._v(\" Save \"),(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref, computed } from 'vue'\nimport { useRouter } from 'vue-router/composables'\nimport PasswordInput from '@/elements/PasswordInput.vue'\nimport Loading from '@/elements/Loading.vue'\n\nimport store from '@/store'\n\nexport default defineComponent({\n name: 'managePassword',\n props: {},\n components: { PasswordInput, Loading },\n setup() {\n const updatePassword = store.dispatch.authentication.passwordChange\n const router = useRouter()\n\n const currentPassword = ref('')\n const newPassword = ref('')\n const confirmNewPassword = ref('')\n const showConfirmPasswordError = ref(false)\n const loading = ref(false)\n\n async function submitPasswordChange() {\n showConfirmPasswordError.value = false\n loading.value = true\n\n try {\n const success = await updatePassword({\n password: currentPassword.value,\n newPassword: newPassword.value,\n })\n if (success) {\n newPassword.value = ''\n confirmNewPassword.value = ''\n currentPassword.value = ''\n router.push('/')\n }\n } finally {\n loading.value = false\n }\n }\n\n const saveIsDisabled = computed(() => {\n return !(\n !loading.value &&\n currentPassword.value &&\n newPassword.value &&\n confirmNewPassword.value &&\n newPassword.value === confirmNewPassword.value\n )\n })\n\n function onNewPasswordsChange() {\n showConfirmPasswordError.value =\n !!newPassword.value && !!confirmNewPassword.value && newPassword.value !== confirmNewPassword.value\n }\n\n return {\n currentPassword,\n newPassword,\n confirmNewPassword,\n showConfirmPasswordError,\n loading,\n saveIsDisabled,\n submitPasswordChange,\n onNewPasswordsChange,\n }\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Password.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Password.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Password.vue?vue&type=template&id=4dfbd807\"\nimport script from \"./Password.vue?vue&type=script&lang=ts\"\nexport * from \"./Password.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('breadcrumbs',{attrs:{\"crumbs\":_vm.breadcrumbs}}),_c('page-state-toggle',{attrs:{\"states\":_vm.pageStates},on:{\"input\":_vm.stateChanged},model:{value:(_vm.currentToggle),callback:function ($$v) {_vm.currentToggle=$$v},expression:\"currentToggle\"}}),_c('router-view',{key:_vm.$route.fullPath})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent, ref } from 'vue'\nimport Breadcrumbs from '@/elements/Breadcrumbs.vue'\nimport { getCrumbs, CrumbsEnum, Crumb } from '@/common/Crumbs'\nimport PageStateToggle from '@/components/PageStateToggle.vue'\nimport { useRouter, useRoute } from 'vue-router/composables'\n\nexport default defineComponent({\n name: 'Account',\n props: {},\n components: { Breadcrumbs, PageStateToggle },\n setup() {\n const router = useRouter()\n const route = useRoute()\n const pageStates = ['Profile', 'Password']\n const currentToggle = ref(pageStates[0])\n const breadcrumbs: Crumb[] = getCrumbs([\n { crumb: CrumbsEnum.HOME, isActive: true },\n { crumb: CrumbsEnum.ACCOUNT, isActive: false },\n ])\n\n async function stateChanged() {\n if (!route.path.includes(currentToggle.value.toLowerCase())) {\n const path = `/account/${currentToggle.value.toLowerCase()}`\n router.push(path)\n }\n }\n\n return { breadcrumbs, currentToggle, pageStates, stateChanged }\n },\n})\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Account.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Account.vue?vue&type=template&id=343f313c\"\nimport script from \"./Account.vue?vue&type=script&lang=ts\"\nexport * from \"./Account.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{attrs:{\"id\":\"page_top\"}},[(_vm.currentState === _vm.viewStates.EDITING)?_c('vee-validate-form',{ref:\"form\",scopedSlots:_vm._u([{key:\"default\",fn:function({ invalid, errors }){return [_c('div',{staticClass:\"pt-1 mx-2\"},[_c('message-content',{staticClass:\"mx-1\",attrs:{\"message-type\":_vm.messageType,\"loading\":_vm.leagueSettingsLoading},on:{\"fileAttached\":(value) => (_vm.attachment = value)},model:{value:(_vm.contentMessagePreview),callback:function ($$v) {_vm.contentMessagePreview=$$v},expression:\"contentMessagePreview\"}})],1),_c('div',{staticClass:\"mb-3 mx-2\"},[_c('role-access',{attrs:{\"allow-if-any\":_vm.bulkEmailerGroup,\"deny-if-any\":_vm.forbidBulkEmailerGroup}},[_c('message-recipient',{staticClass:\"mx-2\",attrs:{\"message-type\":_vm.messageType,\"contact-builder\":_vm.contactBuilder,\"loading\":_vm.contactBuilderLoading,\"has-cheer\":_vm.hasCheer},on:{\"refreshContactBuilder\":_vm.loadContactBuilder},model:{value:(_vm.recipientMessagePreview),callback:function ($$v) {_vm.recipientMessagePreview=$$v},expression:\"recipientMessagePreview\"}})],1)],1),_c('div',{staticClass:\"pt-1 mx-2\"},[_c('role-access',{attrs:{\"deny-if-any\":_vm.forbidBulkEmailerGroup,\"ranking\":_vm.denyIfAnyOnly}},[_c('message-filters',{staticClass:\"mx-2\",attrs:{\"contact-builder\":_vm.contactBuilder,\"loading\":_vm.contactBuilderLoading},model:{value:(_vm.filterOptions),callback:function ($$v) {_vm.filterOptions=$$v},expression:\"filterOptions\"}})],1),_c('role-access',{attrs:{\"allow-if-any\":[_vm.volunteerRoles.COACH],\"ranking\":_vm.allowIfAnyOnly}},[_c('input-label',{staticClass:\"w-100 text-center mb-3\",attrs:{\"label\":\"Select Recipients\",\"required\":true}}),_c('inputless-string-validator',{attrs:{\"vee-validate-rules\":\"required_one_recipient\"},model:{value:(_vm.coachAndParentRecipientString),callback:function ($$v) {_vm.coachAndParentRecipientString=$$v},expression:\"coachAndParentRecipientString\"}}),_c('coach-recipient-picker',{staticClass:\"mb-3\",attrs:{\"message-type\":_vm.messageType},model:{value:(_vm.coachRecipients),callback:function ($$v) {_vm.coachRecipients=$$v},expression:\"coachRecipients\"}}),_c('parent-recipient-picker',{attrs:{\"message-type\":_vm.messageType},model:{value:(_vm.parentRecipients),callback:function ($$v) {_vm.parentRecipients=$$v},expression:\"parentRecipients\"}})],1)],1),_c('div',{staticClass:\"text-center mt-3\",attrs:{\"id\":\"message_bottom\"}},[(_vm.showPreview)?_c('button',{staticClass:\"btn btn-outline-dark mr-5 mx-sm-3 px-3\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onPreview}},[(_vm.previewLoading)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_vm._v(\"Preview \"+_vm._s(_vm.messageType))]],2):_vm._e(),_c('role-access',{attrs:{\"allow-if-any\":_vm.smsViaAPIRule.allowIfAnyRoles,\"deny-if-any\":_vm.smsViaAPIRule.denyIfAnyRoles}},[_c('button',{staticClass:\"btn btn-dark mx-sm-3 px-3\",on:{\"click\":_vm.sendMessage}},[(_vm.sendMessageLoading)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_c('i',{class:_vm.messageType == 'SMS' ? 'fas fa-comment' : 'fas fa-paper-plane'}),_vm._v(\" Send \"+_vm._s(_vm.messageType))]],2),_c('role-access',{attrs:{\"allow-if-any\":[..._vm.commissionerGroup, _vm.volunteerRoles.COACH]}},[_c('div',{staticClass:\"small text-itatlics pt-2\"},[_vm._v(\" Note: Emails sent through this service can be viewed by league administrators. \")])])],1),_c('role-access',{attrs:{\"allow-if-any\":_vm.smsViaLocalClientRule.allowIfAnyRoles,\"deny-if-any\":_vm.smsViaLocalClientRule.denyIfAnyRoles,\"ranking\":_vm.coachOnlyRoleAccessRanking}},[(_vm.messageType === 'SMS')?[_c('button',{staticClass:\"btn text-underline my-4\",on:{\"click\":_vm.copyToClipboard}},[(_vm.loadingClipboardData)?_c('loading',{attrs:{\"is-small\":\"\"}}):_c('i',{class:_vm.copyToClipboardClass}),_c('b',[_vm._v(\" Missing numbers after clicking \"),_c('i',[_vm._v(\"Send SMS\")]),_vm._v(\"?\")]),_c('div',[_vm._v(\"Click here to copy them to the clipboard and\")]),_c('div',[_vm._v(\"then paste them into your SMS app\")])],1),_c('role-access',{attrs:{\"allow-if-any\":[_vm.volunteerRoles.COACH]}},[_c('div',{staticClass:\"d-block>\"},[_c('a',{staticClass:\"btn btn-dark mx-sm-3 p-3\",attrs:{\"href\":_vm.smsPhoneListForCoaches}},[_c('i',{staticClass:\"fa fa-comment\"}),_vm._v(\" Send SMS\")])])]),_c('role-access',{attrs:{\"allow-if-any\":[..._vm.commissionerGroup]}},[_c('div',{staticClass:\"d-block>\"},[_c('a',{staticClass:\"btn btn-dark mx-sm-3 p-3\",attrs:{\"href\":_vm.smsPhoneListForCommissioners}},[_c('i',{staticClass:\"fa fa-comment\"}),_vm._v(\" Send SMS\")])])])]:_vm._e()],2)],1)]}}],null,false,3767682239)}):_vm._e(),(_vm.currentState === _vm.viewStates.CLIPBOARDING)?_c('copy-recipients-to-clipboard',{on:{\"copied\":_vm.clipboardCopied,\"close\":_vm.backToEditing}}):_vm._e(),(_vm.currentState === _vm.viewStates.PREVIEWING)?_c('message-preview',{attrs:{\"message-type\":_vm.messageType,\"sending-message-in-progress\":_vm.sendMessageLoading,\"attachmentFileName\":_vm.attachment.name},on:{\"close\":_vm.backToEditing,\"send\":_vm.sendMessageFromPreview}}):_vm._e(),(_vm.currentState === _vm.viewStates.CONFIRMING)?_c('div',{staticClass:\"row p-5 center-spinner-on-view text-center m-3\"},[_c('div',{staticClass:\"col-12\"},[_c('i',{staticClass:\"fas fa-3x fa-check-circle text-success\"}),_c('div',{staticClass:\"my-3\"},[_vm._v(_vm._s(_vm.messageType)+\" sent to \"+_vm._s(_vm.recipientCount)+\" recipients\")])]),_c('div',{staticClass:\"col-12\"},[_c('button',{staticClass:\"btn btn-outline-dark d-block m-auto\",on:{\"click\":_vm.nextMessage}},[_vm._v(\" Next \"+_vm._s(_vm.messageType)+\" \"),_c('i',{staticClass:\"fa fa-forward ml-2\"})])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationObserver',{ref:\"observer\",scopedSlots:_vm._u([{key:\"default\",fn:function({ handleSubmit, ...args }){return [_c('form',{attrs:{\"novalidate\":\"novalidate\"},on:{\"submit\":function($event){$event.preventDefault();return handleSubmit(_vm.save)}}},[_vm._t(\"default\",null,null,{ handleSubmit, ...args })],2)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function isPhoneValid(phone: string) {\n // Very basic validator to check North American phone format\n // accepts 555-555-5555 (555)555-5555 (555) 555-5555 555 555 5555 5555555555 1 555 555 5555\n const re = /^(1\\s|1|)?((\\(\\d{3}\\))|\\d{3})(\\-|\\s)?(\\d{3})(\\-|\\s)?(\\d{4})$/\n return phone.match(re) ? true : false\n}\n","\nimport { Component, Ref, Vue } from 'vue-property-decorator'\nimport { ValidationObserver, extend } from 'vee-validate'\nimport { required, email } from 'vee-validate/dist/rules'\nimport { isPhoneValid } from '@/utils/phoneValidation.ts'\n\n/***\n * Add new validation rules here, or move the library to @/lib/components/VeeValidateForm if it overflows.\n */\nextend('required', { ...required, message: 'required' })\nextend('required_one_recipient', { ...required, message: 'Please add at least one recipient' })\nextend('email', { ...email, message: 'Invalid email format' })\nextend('email-list', { ...email, message: 'At least one email is invalid' })\nextend('exclude-semi-colon', (value) => {\n if (value.indexOf(';') === -1) {\n return true\n }\n return 'semi-colons are not allowed'\n})\nextend('prohibitPastDate', (value) => {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const submittedDate = new Date(value)\n if (today <= submittedDate) {\n return true\n }\n return 'Date in the past is not allowed'\n})\nextend('northamerican_phone', {\n // Simple validation for North American phone numbers.\n // Accepts 555-555-5555, (555)555-5555, (555) 555-5555, 555 555 5555, 5555555555, 1 555 555 5555\n // Supports comma delimited string of phone numbers.\n // If you pass 'multiple' as an argument, you get a message suitable for delimited list of phone numbers\n validate: (value: string) => {\n let values: string[] = []\n let valid = true\n values = value.split(' ').join('').split(',')\n values.forEach((val: string) => {\n if (val && !isPhoneValid(val)) {\n valid = false\n return\n }\n })\n return valid\n },\n message: (value, args) => {\n if (args && args[0] === 'multiple') {\n return 'One of the phone numbers is invalid'\n } else {\n return 'Invalid phone number'\n }\n },\n})\n\nextend('beginDateLessThanEndDate', {\n params: ['target'],\n // @ts-ignore\n validate(value, { target }) {\n /* \n // usage:\n // on the start date field add the property: validation-provider-name=\"beginDate\"\n // on the end date add the property: vee-validate-rules=\"beginDateLessThanEndDate@beginDate\" \n */\n const beginDate = new Date(target).setHours(0, 0, 0, 0)\n const endDate = new Date(value).setHours(0, 0, 0, 0)\n if (beginDate > endDate) {\n return false\n } else {\n return true\n }\n },\n message: 'Start date must be earlier than end date.',\n})\n\n@Component({\n components: {\n ValidationObserver,\n },\n})\nexport default class VeeValidateForm extends Vue {\n @Ref('observer')\n private observer!: InstanceType\n\n private save() {\n this.$emit('submit')\n }\n\n /**\n * Works like DOM form (except it is a promise)\n * @return {Promise} form status.\n */\n public async checkValidity(): Promise {\n return await this.observer.validate({ silent: true })\n }\n\n /**\n * Works like form reportValidity (except its a promise)\n * displays validation errors and sets the focus to the first.\n * @return {Promise} form status.\n */\n public async reportValidity(): Promise {\n return await this.observer.validate()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VeeValidateForm.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VeeValidateForm.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./VeeValidateForm.vue?vue&type=template&id=6ace0a93\"\nimport script from \"./VeeValidateForm.vue?vue&type=script&lang=ts\"\nexport * from \"./VeeValidateForm.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('validation-provider',{attrs:{\"rules\":_vm.VeeValidateRules,\"mode\":_vm.veeValidateMode},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],attrs:{\"type\":\"hidden\",\"id\":_vm.id,\"name\":_vm.name},domProps:{\"value\":(_vm.internalValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.internalValue=$event.target.value}}}),(errors[0])?_c('p',{staticClass:\"inline-error m-0\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Mixins, Watch, Prop } from 'vue-property-decorator'\nimport { TextLikeEvents } from '@/elements/TextLikeWrapper/TextLikeEvents'\nimport { ValidationProvider } from 'vee-validate'\nimport uuid from 'uuid'\n\n@Component({\n components: {\n ValidationProvider,\n },\n})\nexport default class InputlessStringValidator extends Mixins(TextLikeEvents) {\n @Prop({ type: String, default: '', required: false })\n private readonly value!: string\n\n @Prop({ type: String, default: () => uuid.v4(), required: false })\n public readonly id!: string\n\n @Prop({ type: String, default: '', required: false })\n public readonly name!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly VeeValidateRules!: string\n\n @Prop({ type: String, default: 'aggressive', required: false })\n private readonly veeValidateMode!: string\n\n internalValue: string = this.value\n private setInternalValue() {\n this.internalValue = this.value\n }\n\n @Watch('value')\n private onValueChanged() {\n this.setInternalValue()\n }\n\n mounted() {\n this.setInternalValue()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputlessStringValidator.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InputlessStringValidator.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./InputlessStringValidator.vue?vue&type=template&id=86df3e2a\"\nimport script from \"./InputlessStringValidator.vue?vue&type=script&lang=ts\"\nexport * from \"./InputlessStringValidator.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[_c('text-input',{staticClass:\"col\",attrs:{\"loading-data\":_vm.loading,\"label\":\"From\",\"sub-text\":\"Display name that will appear in recipient's inbox\",\"vee-validate-rules\":\"required\",\"name\":\"Display name\",\"required\":\"\"},on:{\"change\":_vm.emitChange},model:{value:(_vm.localMessagePreview.displayName),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"displayName\", $$v)},expression:\"localMessagePreview.displayName\"}})],1):_vm._e(),(_vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[_c('text-input',{staticClass:\"col\",attrs:{\"loading-data\":_vm.loading,\"label\":\"Reply To\",\"sub-text\":\"Recipients will reply to this address\",\"vee-validate-rules\":\"required|email\",\"name\":\"reply to email\",\"required\":\"\"},on:{\"change\":_vm.emitChange},model:{value:(_vm.localMessagePreview.replyTo),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"replyTo\", $$v)},expression:\"localMessagePreview.replyTo\"}})],1):_vm._e(),(_vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[(_vm.messageType === 'Email')?_c('text-input',{staticClass:\"col\",attrs:{\"vee-validate-rules\":\"required\",\"label\":\"Subject\",\"maxlength\":\"100\",\"required\":\"\"},on:{\"change\":_vm.emitChange},model:{value:(_vm.localMessagePreview.emailSubject),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"emailSubject\", $$v)},expression:\"localMessagePreview.emailSubject\"}}):_vm._e()],1):_vm._e(),(_vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[(_vm.messageType === 'Email')?_c('file-input',{staticClass:\"col\",attrs:{\"label\":\"Attachment\"},on:{\"change\":_vm.handleAttachmentChange}}):_vm._e()],1):_vm._e(),(_vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[_c('html-editor',{staticClass:\"col\",attrs:{\"vee-validate-rules\":\"required\",\"label\":\"Message\",\"required\":\"\"},on:{\"change\":_vm.emitChange,\"input\":_vm.emitChange},model:{value:(_vm.localMessagePreview.messageBody),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"messageBody\", $$v)},expression:\"localMessagePreview.messageBody\"}})],1):_vm._e(),(_vm.messageType === 'SMS')?_c('div',{staticClass:\"row sms-message-row\"},[_c('memo-input',{staticClass:\"col-12\",attrs:{\"label\":\"Message\",\"halt-input\":_vm.maxCharactersReached,\"required\":\"\",\"rows\":5},on:{\"change\":_vm.emitChange},model:{value:(_vm.localMessagePreview.messageBody),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"messageBody\", $$v)},expression:\"localMessagePreview.messageBody\"}}),_c('div',{staticClass:\"col-12 small ml-1\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.charactersRemaining.messages)+\" of 3 \")]),_vm._v(\"SMS pages, \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.charactersRemaining.remaining)+\" \")]),_vm._v(\"characters left \")])],1):_vm._e(),_c('role-access',{attrs:{\"deny-if-any\":[\n _vm.volunteerRoles.COACH_COMMISSIONER,\n _vm.volunteerRoles.COACH,\n _vm.volunteerRoles.REFEREE_COMMISSIONER,\n ],\"ranking\":_vm.denyIfAnyOnly}},[(_vm.messageType === 'SMS')?_c('div',{staticClass:\"alert-warning px-3 py-2 text-left mb-2 clean-print\"},[_vm._v(\" These messages are sent from a toll free number that \"),_c('b',[_vm._v(\"CANNOT\")]),_vm._v(\" accept replies. Be sure to include phone number recipients can reply to. \")]):_vm._e()]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('role-access',{attrs:{\"allow-if-any\":[_vm.volunteerRoles.COACH],\"deny-if-any\":_vm.denyThem,\"ranking\":_vm.allowFirstRanking}},[_c('div',{staticClass:\"mt-2 p-1 d-flex align-items-end flex-column\"},[_c('label',[_vm._v(\"Add team page to message body\")]),_vm._v(\" \"),_c('team-page-widget',{on:{\"clicked\":_vm.addToMessageBody}})],1)])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Attachment } from '@/GeneratedTypes/Communication/Attachment.ts'\n\nexport function getEmptyAttachment(): Attachment {\n return {\n data: '',\n name: '',\n type: '',\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.currentTeam.teamPageUrl))]),_c('span',{staticClass:\"ml-2 clickable\",on:{\"click\":function($event){return _vm.$emit('clicked', _vm.currentTeam.teamPageUrl)}}},[_vm._m(0)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"fa-stack icon-size\"},[_c('i',{staticClass:\"fas fa-sticky-note fa-stack-2x\"}),_c('i',{staticClass:\"fas fa-plus fa-stack-1x fa-inverse\"})])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport * as teamStore from '@/store/team'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\n\n@Component\nexport default class TeamPageWidget extends Vue {\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamPageWidget.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamPageWidget.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TeamPageWidget.vue?vue&type=template&id=11c8e1b6&scoped=true\"\nimport script from \"./TeamPageWidget.vue?vue&type=script&lang=ts\"\nexport * from \"./TeamPageWidget.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TeamPageWidget.vue?vue&type=style&index=0&id=11c8e1b6&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11c8e1b6\",\n null\n \n)\n\nexport default component.exports","const gsm7bitChars = `@£$¥èéùìòÇØøÅåΔ_ΦΓΛΩΠΨΣΘΞÆæßÉ !\\\\\\\"#¤%&'()*+,-./0123456789:;<=>?¡ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÑܧ¿abcdefghijklmnopqrstuvwxyzäöñüà`\nconst gsm7bitExChar = `\\\\^{}\\\\\\\\\\\\[~\\\\]|€\\\\n\\\\r`\nconst gsm7bitRegExp = RegExp(`^[${gsm7bitChars}]*$`)\nconst gsm7bitExRegExp = RegExp(`^[${gsm7bitChars + gsm7bitExChar}]*$`)\nconst gsm7bitExOnlyRegExp = RegExp(`^[\\\\${gsm7bitExChar}]*$`)\n\nfunction detectEncoding(text: string): string {\n switch (false) {\n case text.match(gsm7bitRegExp) === null:\n return GSM_7BIT\n case text.match(gsm7bitExRegExp) === null:\n return GSM_7BIT_EX\n default:\n return UTF16\n }\n}\n\nfunction countGsm7bitEx(text: string): number {\n const results: string[] = []\n\n for (const char of text) {\n if (char.match(gsm7bitExOnlyRegExp) !== null) {\n results.push(char)\n }\n }\n\n return results.length\n}\n\nconst GSM_7BIT = 'GSM_7BIT'\nconst GSM_7BIT_EX = 'GSM_7BIT_EX'\nconst UTF16 = 'UTF16'\n\nconst messageLength: MessageLengthTypes = {\n GSM_7BIT: 160,\n GSM_7BIT_EX: 160,\n UTF16: 70,\n}\nconst multiMessageLength: MessageLengthTypes = {\n GSM_7BIT: 153,\n GSM_7BIT_EX: 153,\n UTF16: 67,\n}\n\ninterface MessageLengthTypes {\n [key: string]: number\n}\n\nexport interface CounterResult {\n encoding: string\n length: number\n messages: number\n perMessage: number\n remaining: number\n}\n\nexport default function (text: string): CounterResult {\n const encoding = detectEncoding(text)\n let length = text.length\n if (encoding === GSM_7BIT_EX) {\n length += countGsm7bitEx(text)\n }\n\n let perMessage = messageLength[encoding]\n if (length > perMessage) {\n perMessage = multiMessageLength[encoding]\n }\n\n const messages = Math.ceil(length / perMessage)\n let remaining = perMessage * messages - length\n if (remaining === 0 && messages === 0) {\n remaining = perMessage\n }\n\n return { encoding, length, perMessage, remaining, messages }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[_c('input-label',{attrs:{\"label\":_vm.label,\"required\":_vm.required}}),_c('label',{staticClass:\"input-group\"},[_c('div',{staticClass:\"form-control text-underline\"},[(_vm.fileName)?_c('span',[_vm._v(_vm._s(_vm.fileName))]):_vm._e(),(_vm.fileSize)?_c('small',[_vm._v(\" (\"+_vm._s(_vm.fileSizeFormatted)+\")\")]):_vm._e(),_c('input',{ref:\"fileSelector\",attrs:{\"type\":\"file\",\"required\":_vm.required,\"placeholder\":_vm.placeholder},on:{\"change\":_vm.handleChange}})]),_vm._m(0)]),(_vm.fileName)?_c('button',{staticClass:\"btn btn-link p-0 my-0 mr-1 float-right text-underline\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.remove}},[_vm._v(\" remove \")]):_vm._e()],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\"},[_c('i',{staticClass:\"fa fa-paperclip\"})])])\n}]\n\nexport { render, staticRenderFns }","\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { Component, Vue, Prop } from 'vue-property-decorator'\n\n@Component({\n components: {\n InputLabel,\n },\n})\nexport default class FileInput extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n private fileName = ''\n private fileSize = 0\n\n private handleChange(ev: Event) {\n if (!ev || !ev.target) {\n return\n }\n\n const fileInput = ev.target as HTMLInputElement\n\n if (!fileInput || !fileInput.files) {\n return\n }\n\n const file = fileInput.files[0]\n\n if (!file) {\n this.fileName = ''\n this.fileSize = 0\n } else {\n this.fileName = file.name\n this.fileSize = file.size\n }\n\n this.$emit('change', file)\n }\n\n private remove() {\n ;(this.$refs.fileSelector as HTMLInputElement).value = ''\n this.fileName = ''\n this.fileSize = 0\n this.$emit('change', null)\n }\n\n private get fileSizeFormatted() {\n if (!this.fileSize) {\n return ''\n }\n\n if (this.fileSize / 1000000 >= 1) {\n return `${Math.round(this.fileSize / 1000000)}MB`\n }\n\n if (this.fileSize / 1000 >= 1) {\n return `${Math.round(this.fileSize / 1000)}KB`\n }\n\n return `${this.fileSize}B`\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./FileInput.vue?vue&type=template&id=aaec686c&scoped=true\"\nimport script from \"./FileInput.vue?vue&type=script&lang=ts\"\nexport * from \"./FileInput.vue?vue&type=script&lang=ts\"\nimport style0 from \"./FileInput.vue?vue&type=style&index=0&id=aaec686c&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aaec686c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c(_vm.parentComponent,{tag:\"component\",staticClass:\"editor_modal\",attrs:{\"is-small\":false,\"close-icon-class\":\"fa fa-window-minimize\",\"title\":\"\"},on:{\"change\":() => {\n _vm.focusEditor()\n }},model:{value:(_vm.openModal),callback:function ($$v) {_vm.openModal=$$v},expression:\"openModal\"}},[_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn btn-success\",attrs:{\"type\":\"button\"},on:{\"click\":() => {\n _vm.openModal = false\n _vm.focusEditor()\n }}},[_c('i',{staticClass:\"fa fa-check\"}),_vm._v(\" Ok \")])]),_c('ValidationProvider',{ref:\"provider\",attrs:{\"rules\":_vm.VeeValidateRules},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [(_vm.label)?_c('input-label',{attrs:{\"label\":_vm.label,\"inline\":true,\"required\":_vm.required,\"input-id\":_vm.id,\"sub-label\":_vm.subLabel,\"sub-label-inline\":_vm.subLabelInline},on:{\"helpClicked\":function($event){return _vm.$emit('helpClicked')}}}):_vm._e(),_c('div',{ref:\"editorElement\",staticClass:\"tiptap-editor-wrapper editor\"},[(_vm.editor)?_c('editor-menu-bubble',{ref:\"menuBubbleElement\",attrs:{\"editor\":_vm.editor},on:{\"hide\":_vm.hideLinkMenu},scopedSlots:_vm._u([{key:\"default\",fn:function({ commands, menu }){return [_c('div',{staticClass:\"menububble\",class:{ 'is-active': menu.isActive && _vm.linkMenuIsActive },style:(`left: 30px; right:30px; bottom: ${menu.bottom}px;`)},[(_vm.linkMenuIsActive)?_c('form',{staticClass:\"menububble__form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.setLinkUrl(commands.link, _vm.linkUrl)}}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.linkUrl),expression:\"linkUrl\"}],staticClass:\"form-control menububble__input\",attrs:{\"type\":\"text\",\"placeholder\":\"https://\",\"tabindex\":\"0\"},domProps:{\"value\":(_vm.linkUrl)},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.hideLinkMenu.apply(null, arguments)},\"input\":function($event){if($event.target.composing)return;_vm.linkUrl=$event.target.value}}}),_c('button',{staticClass:\"menububble__button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.setLinkUrl(commands.link, null)}}},[_c('i',{staticClass:\"fas fa-trash\"})])]):_vm._e()])]}}],null,true)}):_vm._e(),_c('editor-menu-bar',{ref:\"menuBarElement\",attrs:{\"editor\":_vm.editor},scopedSlots:_vm._u([{key:\"default\",fn:function({ commands, isActive, getMarkAttrs }){return [_c('div',{staticClass:\"menu btn-group btn-group-sm\",staticStyle:{\"flex-wrap\":\"wrap\"}},[_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.bold() },attrs:{\"type\":\"button\",\"title\":\"Bold\"},on:{\"click\":commands.bold}},[_c('i',{staticClass:\"fas fa-bold\"})]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.italic() },attrs:{\"type\":\"button\",\"title\":\"Italic\"},on:{\"click\":commands.italic}},[_c('i',{staticClass:\"fas fa-italic\"})]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.underline() },attrs:{\"type\":\"button\",\"title\":\"Underline\"},on:{\"click\":commands.underline}},[_c('i',{staticClass:\"fas fa-underline\"})]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.bullet_list() },attrs:{\"type\":\"button\",\"title\":\"List\"},on:{\"click\":commands.bullet_list}},[_c('i',{staticClass:\"fas fa-list\"})]),_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"title\":\"Link\",\"disabled\":!_vm.menuBubbleIsActive},on:{\"click\":function($event){$event.preventDefault();_vm.showLinkMenu(getMarkAttrs('link'))}}},[_c('i',{staticClass:\"fas fa-link\"})]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.heading({ level: 1 }) },attrs:{\"type\":\"button\",\"title\":\"Heading Level 1\"},on:{\"click\":function($event){return commands.heading({ level: 1 })}}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"H1\")])]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.heading({ level: 2 }) },attrs:{\"type\":\"button\",\"title\":\"Heading Level 2\"},on:{\"click\":function($event){return commands.heading({ level: 2 })}}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"H2\")])]),_c('button',{staticClass:\"btn btn-outline-secondary\",class:{ active: isActive.heading({ level: 3 }) },attrs:{\"type\":\"button\",\"title\":\"Heading Level 3\"},on:{\"click\":function($event){return commands.heading({ level: 3 })}}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\"H3\")])]),_c('button',{staticClass:\"btn btn-sm btn-outline-secondary\",attrs:{\"type\":\"button\",\"title\":!_vm.openModal ? 'Maximize' : 'Minimize'},on:{\"click\":() => {\n _vm.openModal = !_vm.openModal\n _vm.focusEditor()\n }}},[_c('i',{class:!_vm.openModal ? 'fas fa-window-maximize' : 'fas fa-window-minimize'})])])]}}],null,true)}),(_vm.editor)?_c('editor-content',{staticClass:\"editor__content\",attrs:{\"editor\":_vm.editor}}):_vm._e(),(_vm.maxLength)?_c('div',{staticClass:\"small ml-1\"},[_c('span',{staticStyle:{\"display\":\"inline\"}},[_vm._v(_vm._s(_vm.charactersRemaining)+\" characters left (HTML tags are counted)\")])]):_vm._e(),(errors)?_c('i',{staticClass:\"small\",staticStyle:{\"color\":\"red\"},domProps:{\"textContent\":_vm._s(errors[0])}}):_vm._e()],1)]}}])})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Node } from 'tiptap'\nimport { toggleList, wrappingInputRule } from 'tiptap-commands'\nexport default class LetterList extends Node {\n get name() {\n return 'letter_list'\n }\n\n get schema() {\n return {\n attrs: {\n order: {\n default: 1,\n },\n },\n content: 'list_item+',\n group: 'block',\n parseDOM: [\n {\n tag: 'ol[type]',\n getAttrs: (dom: any) => ({\n order: dom.hasAttribute('start') ? +dom.getAttribute('start') : 1,\n type: dom.hasAttribute('type') ? dom.getAttribute('type') : 'a',\n }),\n },\n ],\n toDOM: (node: any) =>\n node.attrs.order === 1 ? ['ol', { type: 'a' }, 0] : ['ol', { start: node.attrs.order, type: 'a' }, 0],\n }\n }\n\n commands({ type, schema }: { type: any; schema: any }) {\n return () => toggleList(type, schema.nodes.list_item)\n }\n\n keys({ type, schema }: { type: any; schema: any }) {\n return {\n 'Shift-Ctrl-0': toggleList(type, schema.nodes.list_item),\n }\n }\n\n inputRules({ type }: { type: any }) {\n return [\n wrappingInputRule(\n /^(\\d+)\\.\\s$/,\n type,\n (match: (string | number)[]) => ({ order: +match[1], type: 'a' }),\n (match: any, node: any) => node.childCount + node.attrs.order === +match[1]\n ),\n ]\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n name: 'DivWrapper',\n})\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DivWrapper.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DivWrapper.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DivWrapper.vue?vue&type=template&id=18eab6b6\"\nimport script from \"./DivWrapper.vue?vue&type=script&lang=ts\"\nexport * from \"./DivWrapper.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Editor, EditorContent, EditorMenuBar, EditorMenuBubble } from 'tiptap'\nimport { Bold, Italic, Underline, BulletList, ListItem, OrderedList, Heading, Link } from 'tiptap-extensions'\nimport { defineComponent, onMounted, onUnmounted, ref, watch, computed } from 'vue'\nimport { ValidationProvider } from 'vee-validate'\nimport { ProviderInstance } from 'vee-validate/dist/types/types'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { TextLikeWrapperProps } from '@/elements/TextLikeWrapper/TextLikeWrapperProps'\nimport LetterList from '../LetterList'\nimport Modal from '@/components/Modal.vue'\nimport DivWrapper from '@/elements/DivWrapper.vue'\n\nexport default defineComponent({\n mixins: [TextLikeWrapperProps],\n name: 'HtmlEditor2',\n props: {\n value: { type: String, required: true },\n maxLength: { type: Number, required: false, default: null },\n },\n components: {\n EditorContent,\n EditorMenuBar,\n EditorMenuBubble,\n ValidationProvider,\n InputLabel,\n Modal,\n DivWrapper,\n },\n setup(props, { emit }) {\n const openModal = ref(false)\n const parentComponent = computed(() => (openModal.value ? Modal : DivWrapper))\n const internalValue = ref('')\n const charactersRemaining = ref('')\n const editorElement = ref(null)\n const menuBubbleElement = ref(null)\n const menuBarElement = ref(null)\n const provider = ref(null)\n const editorAreaElement = computed(() => editorElement.value?.querySelector('.ProseMirror'))\n const linkInputElement = computed(() => menuBubbleElement.value?.$el.querySelector('.menububble__input'))\n const linkUrl = ref(null)\n const linkMenuIsActive = ref(false)\n watch(\n () => props.value,\n (v) => {\n try {\n const isSame = v === editor?.value?.getHTML()\n if (isSame) {\n return\n }\n const limit = !props.maxLength ? 0 : props.maxLength\n charactersRemaining.value = (limit - (props.value?.length ?? 0)).toString()\n internalValue.value = v\n editor?.value?.setContent(v)\n } catch (err) {\n console.error(err)\n }\n },\n { immediate: true }\n )\n const menuBubbleIsActive = computed(() => menuBubbleElement?.value?.menu?.isActive ?? false)\n function showLinkMenu(attrs: any) {\n linkUrl.value = attrs.href\n linkMenuIsActive.value = menuBubbleIsActive.value\n linkInputElement?.value?.focus()\n }\n function hideLinkMenu() {\n linkUrl.value = null\n linkMenuIsActive.value = false\n }\n function setLinkUrl(command: any, url: any) {\n command({ href: url })\n hideLinkMenu()\n }\n function onInit() {\n if (!internalValue.value) return\n setTimeout(async () => {\n const validator = provider.value as ProviderInstance\n await validator.validate(internalValue.value)\n })\n }\n async function onUpdate({ getHTML }: { getHTML: () => string }) {\n // we can get the text minus html tags\n const text = editorAreaElement.value?.textContent?.trim()\n // having the text only allows us to determine if the control is truly empty\n const isEmpty = text?.length === 0 ?? true\n const limit = !props.maxLength ? 0 : props.maxLength\n const validator = provider.value as ProviderInstance\n if (isEmpty) {\n charactersRemaining.value = `${limit.toString()}`\n // if it's truly empty, validate and emit an empty string\n // to avoid an empty

tag from causing our\n // charactersRemaining from displaying an inaccurate\n // value. I wish tiptap would do this automatically.\n await validator.validate('')\n emit('input', '')\n } else {\n const html = getHTML()?.trim()\n charactersRemaining.value = `${(limit - html.length).toString()}`\n await validator.validate(html)\n emit('input', html)\n }\n }\n const focusEditor = () => {\n ;(editor!.value! as any).focus()\n }\n const editor = ref(null)\n onMounted(() => {\n editor.value = new Editor({\n extensions: [\n new Bold(),\n new Italic(),\n new Underline(),\n new BulletList(),\n new ListItem(),\n new OrderedList(),\n new Heading({ levels: [1, 2, 3, 4, 5, 6] }),\n new Link(),\n new LetterList(),\n ],\n content: internalValue.value,\n onInit,\n onUpdate,\n })\n /* This is a work-around to trigger the \n re-draw of the component to enable \n the bubble menu functionality. */\n openModal.value = 0\n })\n onUnmounted(() => editor.value?.destroy())\n return {\n editor,\n internalValue,\n editorElement,\n charactersRemaining,\n provider,\n showLinkMenu,\n hideLinkMenu,\n setLinkUrl,\n linkMenuIsActive,\n linkUrl,\n menuBubbleElement,\n menuBubbleIsActive,\n openModal,\n parentComponent,\n menuBarElement,\n focusEditor,\n }\n },\n})\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HtmlEditor2.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HtmlEditor2.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./HtmlEditor2.vue?vue&type=template&id=6423a5a3\"\nimport script from \"./HtmlEditor2.vue?vue&type=script&lang=ts\"\nexport * from \"./HtmlEditor2.vue?vue&type=script&lang=ts\"\nimport style0 from \"./HtmlEditor2.vue?vue&type=style&index=0&id=6423a5a3&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage.ts'\nimport { getEmptyPreviewMessage } from '@/modelHelpers/PreviewMessage.ts'\nimport { getEmptyAttachment } from '@/modelHelpers/Attachment.ts'\nimport { Attachment } from '@/GeneratedTypes/Communication/Attachment'\nimport TeamPageWidget from '@/components/TeamPageWidget.vue'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport { allowFirstRanking } from '@/plugins/Authorization/permissionChecks'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { cloneDeep } from 'lodash'\nimport Count from '@/utils/smsCount.ts'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport TextInput from '@/elements/TextInput.vue'\nimport FileInput from '@/elements/FileInput.vue'\nimport MemoInput from '@/elements/MemoInput.vue'\nimport HtmlEditor from '@/elements/HtmlEditor2.vue'\nimport Loading from '@/elements/Loading.vue'\nimport { denyIfAnyOnly } from '@/plugins/Authorization/permissionChecks'\n\n@Component({\n components: {\n InputLabel,\n TextInput,\n FileInput,\n MemoInput,\n HtmlEditor,\n Loading,\n TeamPageWidget,\n },\n})\nexport default class MessageContent extends Vue {\n @Prop({ type: String, default: 'Email', required: false })\n private readonly messageType!: string\n\n @Prop({ type: Object, default: getEmptyPreviewMessage, required: false })\n private readonly value!: PreviewMessage\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly loading!: boolean\n\n private localMessagePreview = getEmptyPreviewMessage()\n private attachmentObject: Attachment = getEmptyAttachment()\n private volunteerRoles = VolunteerRoles\n private allowFirstRanking = allowFirstRanking\n private denyIfAnyOnly = denyIfAnyOnly\n private superUsers = superUsers\n private denyThem = [\n ...this.superUsers,\n this.volunteerRoles.COACH_COMMISSIONER,\n this.volunteerRoles.CHEER_DIRECTOR,\n this.volunteerRoles.REFEREE_COMMISSIONER,\n ]\n\n private emitChange() {\n this.$emit('change', this.localMessagePreview)\n this.$emit('input', this.localMessagePreview)\n }\n\n private handleAttachmentChange(file: File) {\n if (file) {\n // Capture file name and file type in attachmentObject\n this.attachmentObject.name = file.name\n this.attachmentObject.type = file.type\n\n // Encode attachment as Base64\n const reader = new FileReader()\n reader.onload = this.onFileLoad // onFileLoad sets attachmentObject.data\n reader.readAsDataURL(file)\n } else {\n // Clear local data if user clicks 'remove' in component\n this.attachmentObject = getEmptyAttachment()\n this.$emit('fileAttached', '')\n }\n }\n\n private addToMessageBody(teamPageUrl: string) {\n this.localMessagePreview.messageBody = `${this.localMessagePreview.messageBody} ${teamPageUrl}`\n this.emitChange()\n }\n\n private onFileLoad(ev: ProgressEvent) {\n if (!ev || !ev.target || !ev.target.result) {\n // this.attachmentObject.data = ''\n this.$emit('fileAttached', '')\n return\n }\n // Capture Base64 encoding and remove extranious data before the comma\n const result = ev.target.result.toString().split(',')\n if (result.length >= 2) {\n this.attachmentObject.data = result[1]\n this.$emit('fileAttached', this.attachmentObject)\n } else {\n throw 'Error encoding email attachment'\n }\n }\n private get charactersRemaining() {\n return Count(this.localMessagePreview.messageBody)\n }\n\n private get maxCharactersReached() {\n return (\n this.charactersRemaining.messages > 3 ||\n (this.charactersRemaining.messages === 3 && this.charactersRemaining.remaining === 0)\n )\n }\n\n @Watch('value', { deep: true, immediate: true })\n private syncToLocalValue() {\n this.localMessagePreview = cloneDeep(this.value)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageContent.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageContent.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessageContent.vue?vue&type=template&id=5731959e&scoped=true\"\nimport script from \"./MessageContent.vue?vue&type=script&lang=ts\"\nexport * from \"./MessageContent.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessageContent.vue?vue&type=style&index=0&id=5731959e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5731959e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"row\"},[_c('inputless-string-validator',{staticClass:\"col-12 text-center\",attrs:{\"vee-validate-rules\":\"required_one_recipient\"},model:{value:(_vm.allRecipients),callback:function ($$v) {_vm.allRecipients=$$v},expression:\"allRecipients\"}}),(_vm.hasCheer)?[_c('role-access',{attrs:{\"deny-if-any\":_vm.forbidSettingProgramForEmail,\"ranking\":_vm.denyIfAnyOnly}},[_c('input-label',{staticClass:\"col-12\",attrs:{\"label\":\"program\"}}),_c('program-selector',{staticClass:\"col-12\",on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.typeProgramID),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"typeProgramID\", $$v)},expression:\"localMessagePreview.typeProgramID\"}})],1)]:_vm._e()],2),_c('div',{staticClass:\"row\"},[_c('input-label',{staticClass:\"col-12\",attrs:{\"label\":\"Check the recipients to send to\"}}),_c('role-access',{attrs:{\"deny-if-any\":[_vm.volunteerRoles.COACH_COMMISSIONER, _vm.volunteerRoles.REFEREE_COMMISSIONER],\"ranking\":_vm.denyIfAnyOnly}},[_c('toggle-slot',{staticClass:\"col mb-2\",model:{value:(_vm.sendToParents),callback:function ($$v) {_vm.sendToParents=$$v},expression:\"sendToParents\"}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_c('span',{staticClass:\"pl-3\"},[_vm._v(_vm._s(_vm.recipientTypes.ParentsGuardians))]),_c('div',{staticClass:\"d-inline\"},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1),(!_vm.loading)?_c('small',{staticClass:\"text-primary\"},[_vm._v(\"(\"+_vm._s(_vm.contactBuilder.selectionGroups['Parents/Guardians'])+\")\")]):_vm._e()]),_c('select-input',{attrs:{\"label\":\"Player Payment Status\",\"items-list\":_vm.playerPaymentStatusOptions,\"value-and-text-the-same\":\"\",\"show-blank-item\":false},on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.paymentStatus),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"paymentStatus\", $$v)},expression:\"localMessagePreview.paymentStatus\"}}),_c('select-input',{attrs:{\"label\":\"Player Evaluation Status\",\"items-list\":_vm.playerEvaluationStatusOptions,\"value-and-text-the-same\":\"\",\"show-blank-item\":false},on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.evalStatus),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"evalStatus\", $$v)},expression:\"localMessagePreview.evalStatus\"}})],1)],1)],1),_c('div',{staticClass:\"row\"},[_c('role-access',{attrs:{\"deny-if-any\":[_vm.volunteerRoles.REFEREE_COMMISSIONER],\"ranking\":_vm.denyIfAnyOnly}},[_c('toggle-slot',{staticClass:\"col mb-2\",model:{value:(_vm.sendToCoaches),callback:function ($$v) {_vm.sendToCoaches=$$v},expression:\"sendToCoaches\"}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_c('span',{staticClass:\"px-1 pl-3\"},[_vm._v(_vm._s(_vm.recipientTypes.Coaches))]),_c('div',{staticClass:\"d-inline\"},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1),(!_vm.loading)?_c('small',{staticClass:\"text-primary\"},[_vm._v(\"(\"+_vm._s(_vm.contactBuilder.selectionGroups.Coaches)+\")\")]):_vm._e()]),_c('select-input',{attrs:{\"label\":\"Team Assignment\",\"items-list\":_vm.coachAssignmentStatusOptions,\"value-and-text-the-same\":\"\",\"show-blank-item\":false},on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.coachTeamStatus),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"coachTeamStatus\", $$v)},expression:\"localMessagePreview.coachTeamStatus\"}}),_c('select-input',{attrs:{\"label\":\"Approval Status\",\"items-list\":_vm.coachApprovalStatusOptions,\"value-and-text-the-same\":\"\",\"show-blank-item\":false},on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.approvalStatus),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"approvalStatus\", $$v)},expression:\"localMessagePreview.approvalStatus\"}}),_c('checkbox-input',{staticClass:\"p-0 mt-2\",attrs:{\"label\":\"Head Coach Only\"},on:{\"change\":_vm.recipientFilterChange},model:{value:(_vm.localMessagePreview.headCoachOnly),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"headCoachOnly\", $$v)},expression:\"localMessagePreview.headCoachOnly\"}})],1)],1)],1),_c('role-access',{attrs:{\"deny-if-any\":[_vm.volunteerRoles.COACH_COMMISSIONER, _vm.volunteerRoles.CHEER_DIRECTOR],\"ranking\":_vm.denyIfAnyOnly}},[_c('div',{staticClass:\"row\"},[_c('checkbox-input',{staticClass:\"col correct-padding mb-3\",model:{value:(_vm.sendToReferees),callback:function ($$v) {_vm.sendToReferees=$$v},expression:\"sendToReferees\"}},[_c('span',{staticClass:\"pl-3\",attrs:{\"slot\":\"inline-label\"},slot:\"inline-label\"},[_vm._v(_vm._s(_vm.currentProgram.refLabel)+\"s \"),_c('div',{staticClass:\"d-inline\"},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1),(!_vm.loading)?_c('small',{staticClass:\"text-primary\"},[_vm._v(\"(\"+_vm._s(_vm.contactBuilder.selectionGroups.Referees)+\")\")]):_vm._e()])])],1)]),_c('role-access',{attrs:{\"deny-if-any\":[\n _vm.volunteerRoles.COACH_COMMISSIONER,\n _vm.volunteerRoles.CHEER_DIRECTOR,\n _vm.volunteerRoles.REFEREE_COMMISSIONER,\n ],\"ranking\":_vm.denyIfAnyOnly}},[_c('div',{staticClass:\"row\"},[_c('checkbox-input',{staticClass:\"col correct-padding mb-3\",model:{value:(_vm.sendToCommissioners),callback:function ($$v) {_vm.sendToCommissioners=$$v},expression:\"sendToCommissioners\"}},[_c('span',{staticClass:\"pl-3\",attrs:{\"slot\":\"inline-label\"},slot:\"inline-label\"},[_vm._v(_vm._s(_vm.recipientTypes.Commissioners)+\" \"),_c('div',{staticClass:\"d-inline\"},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1),(!_vm.loading)?_c('small',{staticClass:\"text-primary\"},[_vm._v(\"(\"+_vm._s(_vm.contactBuilder.selectionGroups.Commissioners)+\")\")]):_vm._e()])])],1),_c('div',{staticClass:\"row\"},[_c('checkbox-input',{staticClass:\"col correct-padding mb-3\",model:{value:(_vm.sendToOtherVolunteers),callback:function ($$v) {_vm.sendToOtherVolunteers=$$v},expression:\"sendToOtherVolunteers\"}},[_c('span',{staticClass:\"pl-3\",attrs:{\"slot\":\"inline-label\"},slot:\"inline-label\"},[_vm._v(_vm._s(_vm.recipientTypes.OtherVolunteers)+\" \"),_c('div',{staticClass:\"d-inline\"},[(_vm.loading)?_c('loading',{attrs:{\"is-small\":\"\"}}):_vm._e()],1),(!_vm.loading)?_c('small',{staticClass:\"text-primary\"},[_vm._v(\"(\"+_vm._s(_vm.contactBuilder.selectionGroups['Other Volunteers'])+\")\")]):_vm._e()])])],1)]),_c('div',{staticClass:\"row\"},[_c('memo-input',{staticClass:\"col\",attrs:{\"label\":_vm.additionalRecipientConfig.label,\"sub-text\":_vm.additionalRecipientConfig.subText,\"rows\":6,\"vee-validate-rules\":_vm.additionalRecipientConfig.validation,\"vee-validate-mode\":`eager`},on:{\"input\":_vm.setIndividualContactInfo,\"change\":_vm.emitPreviewMessageChange,\"blur\":_vm.removeTrailingComma},model:{value:(_vm.localMessagePreview.toDelimited),callback:function ($$v) {_vm.$set(_vm.localMessagePreview, \"toDelimited\", $$v)},expression:\"localMessagePreview.toDelimited\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[_c('checkbox-input',{staticClass:\"p-0\",attrs:{\"label\":_vm.label,\"inline\":\"\"},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}},[_c('template',{slot:\"inline-label\"},[_vm._t(\"label\")],2)],2),(_vm.internalValue)?_c('div',{staticClass:\"mt-1 border-left pl-3\"},[_vm._t(\"default\")],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport CheckboxInput from '@/elements/CheckboxInput.vue'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\n\n@Component({\n components: {\n CheckboxInput,\n },\n})\nexport default class SwitchSlot extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, required: false, default: false })\n private readonly value!: boolean\n\n private internalValue = this.value\n\n @Watch('internalValue')\n private onInternalValueChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChange() {\n this.internalValue = this.value\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleSlot.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleSlot.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ToggleSlot.vue?vue&type=template&id=488101c7\"\nimport script from \"./ToggleSlot.vue?vue&type=script&lang=ts\"\nexport * from \"./ToggleSlot.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationProvider',{attrs:{\"rules\":_vm.VeeValidateRules},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors, classes }){return [_c('div',{staticClass:\"form-group\"},[_c('input-label',{attrs:{\"label\":_vm.label,\"inline\":true,\"required\":_vm.required,\"for\":_vm.id,\"sub-label\":_vm.subLabel,\"sub-label-inline\":_vm.subLabelInline}}),(_vm.prependIcon)?_c('div',{staticClass:\"input-group-prepend\"},[_c('span',{staticClass:\"input-group-text\"},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.prependIcon})])]):_vm._e(),_c('div',{staticClass:\"input-group\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],staticClass:\"form-control\",class:classes,attrs:{\"id\":_vm.elementId,\"disabled\":!_vm.enabled,\"name\":_vm.name,\"tabindex\":_vm.tabIndex},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.internalValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},_vm.handleChange]}},[(_vm.showBlankItem)?_c('option',{attrs:{\"disabled\":_vm.required},domProps:{\"value\":_vm.blankItemValue}},[_vm._v(\" \"+_vm._s(_vm.blankItemText)+\" \")]):_vm._e(),_vm._l((_vm.itemsList),function(item,index){return _c('option',{key:_vm.getOptionKey(item, index),domProps:{\"value\":_vm.getOptionValue(item, index)}},[_vm._v(\" \"+_vm._s(_vm.getOptionText(item))+\" \")])})],2)]),(_vm.appendIcon)?_c('div',{staticClass:\"input-group-append\"},[_c('span',{staticClass:\"input-group-text\"},[_c('i',{staticClass:\"fa\",class:'fa-' + _vm.appendIcon})])]):_vm._e(),_c('div',[(errors[0])?_c('span',{staticClass:\"inline-error\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()])],1)]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Watch, Prop, Vue } from 'vue-property-decorator'\nimport { ValidationProvider } from 'vee-validate'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport uuid from 'uuid'\nimport { ComponentArgumentRuntimeException } from '@/elements/common/ComponentArgumentRuntimeException'\n\n@Component({\n components: {\n ValidationProvider,\n InputLabel,\n },\n})\nexport default class SelectInput extends Vue {\n private readonly guid = uuid.v4()\n\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly tabIndex!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly enabled!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly prependIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly appendIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly id!: string\n\n @Prop({ default: null, required: true })\n private readonly value!: any | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly textPropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly valuePropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly blankItemText!: string\n\n @Prop({ default: null, required: false })\n private readonly blankItemValue!: any\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showBlankItem!: boolean\n\n @Prop({ required: true }) //type is asserted on the watch\n private readonly itemsList!: [] | Record\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly valueAndTextTheSame!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly name!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly subLabel!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly subLabelInline!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly VeeValidateRules!: string\n\n private internalValue: any | null = this.value\n\n private getOptionValue(item: any, index: number | symbol | string): string {\n if (this.valueAndTextTheSame) {\n return item\n }\n if (this.valuePropertyName !== '') {\n return item[this.valuePropertyName]\n }\n if (this.textPropertyName !== '') {\n return item[this.textPropertyName]\n }\n return index.toString()\n }\n\n private getOptionKey(item: any, index: number | symbol | string): string {\n return JSON.stringify(this.getOptionValue(item, index))\n }\n\n private getOptionText(item: Record): string {\n if (this.textPropertyName !== '') {\n return `${item[this.textPropertyName]}`\n }\n return item.toString()\n }\n\n public get elementId() {\n return this.id || `select-${this.guid}`\n }\n\n private handleChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChanged() {\n if (this.internalValue !== this.value) {\n this.internalValue = this.value\n }\n }\n\n assertItemListType() {\n if (!Array.isArray(this.itemsList) && !(this.itemsList instanceof Object)) {\n throw new ComponentArgumentRuntimeException(\n `Select Input ${this.name || this.label} should have an item list of type Array or Object`\n )\n }\n }\n\n @Watch('itemsList')\n private itemsListChanged() {\n this.assertItemListType()\n }\n created() {\n this.assertItemListType()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SelectInput.vue?vue&type=template&id=028f9f56\"\nimport script from \"./SelectInput.vue?vue&type=script&lang=ts\"\nexport * from \"./SelectInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('radio-group-input',{attrs:{\"value\":_vm.value,\"items-list\":_vm.list,\"value-property-name\":\"value\",\"text-property-name\":\"text\",\"item-class\":\"form-check form-check-inline\",\"wrapperClass\":\"input-label-inline\"},on:{\"input\":_vm.emitValue}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('base-input-wrapper',{attrs:{\"required\":_vm.required,\"label\":_vm.label,\"prepend-icon\":_vm.prependIcon,\"append-icon\":_vm.appendIcon,\"id\":_vm.elementId}},_vm._l((_vm.itemsList),function(item,index){return _c('div',{key:index,class:_vm.itemClass},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.internalValue),expression:\"internalValue\"}],key:_vm.getOptionValue(item, index),attrs:{\"type\":\"radio\",\"disabled\":!_vm.enabled,\"name\":_vm.elementId,\"id\":_vm.elementId + index},domProps:{\"checked\":_vm.getOptionValue(item, index) === _vm.value,\"value\":_vm.getOptionValue(item, index),\"checked\":_vm._q(_vm.internalValue,_vm.getOptionValue(item, index))},on:{\"change\":[function($event){_vm.internalValue=_vm.getOptionValue(item, index)},_vm.handleChange]}}),_c('label',{staticClass:\"pl-2 form-check-label\",attrs:{\"for\":_vm.elementId + index}},[_vm._v(_vm._s(_vm.getOptionText(item)))])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport BaseInputWrapper from '@/elements/BaseInputWrapper/BaseInputWrapper.vue'\nimport uuid from 'uuid'\nimport { Component, Watch, Prop, Vue } from 'vue-property-decorator'\n\n@Component({\n components: {\n BaseInputWrapper,\n },\n})\nexport default class RadioGroupInput extends Vue {\n private readonly guid = uuid.v4()\n\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly enabled!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly prependIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly appendIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly id!: string\n\n @Prop({ required: true })\n private readonly value!: any | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly textPropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly valuePropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly itemClass!: string\n\n @Prop({ type: Array, required: true })\n private readonly itemsList!: []\n\n private internalValue: any | null = this.value\n\n private getOptionValue(item: any, index: number): string {\n if (this.valuePropertyName !== '') {\n return item[this.valuePropertyName]\n }\n if (this.textPropertyName !== '') {\n return item[this.textPropertyName]\n }\n return index.toString()\n }\n\n private getOptionText(item: any): string {\n if (this.textPropertyName !== '') {\n return item[this.textPropertyName]\n }\n return item.toString()\n }\n\n public get elementId() {\n return this.id || `radio-${this.guid}`\n }\n\n private handleChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChanged() {\n if (this.internalValue !== this.value) {\n this.internalValue = this.value\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroupInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RadioGroupInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./RadioGroupInput.vue?vue&type=template&id=4d2c2406\"\nimport script from \"./RadioGroupInput.vue?vue&type=script&lang=ts\"\nexport * from \"./RadioGroupInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport RadioGroupInput from '@/elements/RadioGroupInput.vue'\n\nexport const ProgramList = [\n { value: 'ALL', text: 'All' },\n { value: 'PLAYER', text: 'Players Only' },\n { value: 'CHEER', text: 'Cheer Only' },\n]\n\n@Component({\n components: { RadioGroupInput },\n})\nexport default class MessageProgramSelector extends Vue {\n @Prop({ type: String, required: false })\n private readonly value!: string\n\n currentOption = ''\n\n list = ProgramList\n\n clear() {\n this.$emit('input', '')\n this.$emit('change', '')\n }\n\n emitValue(val: string) {\n if (val === this.list[0].value) {\n this.clear()\n }\n this.currentOption = val\n this.$emit('input', val)\n this.$emit('change', val)\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageProgramSelector.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageProgramSelector.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessageProgramSelector.vue?vue&type=template&id=324563e0\"\nimport script from \"./MessageProgramSelector.vue?vue&type=script&lang=ts\"\nexport * from \"./MessageProgramSelector.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessageProgramSelector.vue?vue&type=style&index=0&id=324563e0&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { LeagueDivision } from '@/GeneratedTypes/LeagueDivision'\nimport { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\n\nexport interface SelectionGroups {\n Coaches: number\n Commissioners: number\n 'Other Volunteers': number\n 'Parents/Guardians': number\n Referees: number\n}\n\nexport interface PracticeNights {\n typeDayID: string\n}\n\nexport interface ContactBuilder {\n selectionGroups: SelectionGroups\n divisions: LeagueDivision[]\n divisionTeams: DivisionTeam[]\n grades: any\n practiceNights: PracticeNights\n}\n\nexport function getEmptyContactBuilder(): ContactBuilder {\n return {\n selectionGroups: {\n Coaches: 0,\n Commissioners: 0,\n 'Other Volunteers': 0,\n 'Parents/Guardians': 0,\n Referees: 0,\n },\n divisions: [],\n divisionTeams: [],\n grades: {},\n practiceNights: { typeDayID: '' },\n }\n}\n","export const PlayerPaymentStatusOptions = ['All', 'Paid', 'Not Paid']\nexport const PlayerEvaluationStatusOptions = ['All', 'Evaluated', 'Not Evaluated']\nexport const CoachAssignmentStatusOptions = ['All', 'Assigned to a Team', 'Unassigned']\nexport const CoachApprovalStatusOptions = ['All', 'Approved', 'Unapproved']\nexport const FilterByOptions = [\n { text: 'All', value: 'all' },\n { text: 'Division', value: 'division' },\n { text: 'Team', value: 'team' },\n { text: 'Practice Night', value: 'night' },\n]\nexport enum RecipientTypes {\n ParentsGuardians = 'Parents/Guardians',\n Coaches = 'Coaches',\n Referees = 'Referees',\n Commissioners = 'Commissioners',\n OtherVolunteers = 'Other Volunteers',\n}\n","\nimport { remove, cloneDeep } from 'lodash'\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\n\nimport TextInput from '@/elements/TextInput.vue'\nimport ToggleSlot from '@/elements/ToggleSlot.vue'\nimport SelectInput from '@/elements/SelectInput.vue'\nimport CheckboxInput from '@/elements/CheckboxInput.vue'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport MemoInput from '@/elements/MemoInput.vue'\nimport Loading from '@/elements/Loading.vue'\nimport InputlessStringValidator from '@/elements/InputlessStringValidator.vue'\n\nimport ProgramSelector from '@/components/MessageRecipient/MessageProgramSelector.vue'\n\nimport { forbidSettingProgramForEmail } from '@/common/Authorization/PermissionGroups'\nimport { denyIfAnyOnly } from '@/plugins/Authorization/permissionChecks'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport { getEmptyPreviewMessage } from '@/modelHelpers/PreviewMessage'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport { ContactBuilder, getEmptyContactBuilder } from '@/models/Communication/ContactBuilder'\n\nimport {\n PlayerPaymentStatusOptions,\n PlayerEvaluationStatusOptions,\n CoachAssignmentStatusOptions,\n RecipientTypes,\n CoachApprovalStatusOptions,\n} from '@/components/MessageRecipient/data'\n\nimport { Getter } from 'vuex-class'\nimport * as programStore from '@/store/programs'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\n\n@Component({\n components: {\n TextInput,\n ToggleSlot,\n SelectInput,\n CheckboxInput,\n MemoInput,\n Loading,\n InputlessStringValidator,\n ProgramSelector,\n InputLabel,\n },\n})\nexport default class MessageRecipient extends Vue {\n @Prop({ type: String, default: 'Email', required: false })\n private readonly messageType!: string\n\n @Prop({ type: Object, default: getEmptyPreviewMessage, required: false })\n private readonly value!: PreviewMessage\n\n @Prop({ type: Object, default: getEmptyContactBuilder, required: false })\n private readonly contactBuilder!: ContactBuilder\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly loading!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly hasCheer!: boolean\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n private readonly playerPaymentStatusOptions = PlayerPaymentStatusOptions\n private readonly playerEvaluationStatusOptions = PlayerEvaluationStatusOptions\n private readonly coachAssignmentStatusOptions = CoachAssignmentStatusOptions\n private readonly forbidSettingProgramForEmail = forbidSettingProgramForEmail\n private readonly coachApprovalStatusOptions = CoachApprovalStatusOptions\n private readonly superUsers = superUsers\n private readonly denyIfAnyOnly = denyIfAnyOnly\n private readonly volunteerRoles = VolunteerRoles\n private readonly recipientTypes = RecipientTypes\n private localMessagePreview = getEmptyPreviewMessage()\n private test = false\n\n private async mounted() {\n this.setDefaults()\n }\n\n private setDefaults() {\n this.localMessagePreview.paymentStatus =\n this.localMessagePreview.paymentStatus || this.playerPaymentStatusOptions[0]\n\n this.localMessagePreview.evalStatus =\n this.localMessagePreview.evalStatus || this.playerEvaluationStatusOptions[0]\n\n this.localMessagePreview.coachTeamStatus =\n this.localMessagePreview.coachTeamStatus || this.coachAssignmentStatusOptions[0]\n\n this.localMessagePreview.approvalStatus =\n this.localMessagePreview.approvalStatus || this.coachApprovalStatusOptions[0]\n }\n\n private get allRecipients() {\n // Joins selectedGroup and Additional recipients together for the purpose of validation\n return this.localMessagePreview.selectedGroups.join().concat(this.localMessagePreview.toDelimited)\n }\n\n private setIndividualContactInfo(val: string) {\n let emails: string[] = []\n if (val.length > 0) {\n let additionalEmails = val.split(';').join(',') // remove semi-colons\n additionalEmails = additionalEmails.split(' ').join('') // remove spaces\n emails = additionalEmails.split(',') // split into array on commas\n }\n this.localMessagePreview.individualContactInfo = emails\n }\n\n private removeTrailingComma() {\n this.localMessagePreview.toDelimited = this.localMessagePreview.toDelimited.replace(/(^,)|(,$)/g, '')\n }\n\n private get additionalRecipientConfig() {\n if (this.messageType === 'Email') {\n return {\n label: 'Additional email addresses',\n subText: 'Separate emails with commas',\n validation: 'exclude-semi-colon|email-list:multiple',\n }\n } else {\n return {\n label: 'Additional phone numbers',\n subText: 'Separate with commas - (999)999-9999, 999-999-9999',\n validation: 'exclude-semi-colon|northamerican_phone:multiple',\n }\n }\n }\n\n private setSelectionGroup(checked: boolean, type: string) {\n if (checked) {\n this.localMessagePreview.selectedGroups.push(type)\n this.localMessagePreview.selectedGroups = [...new Set(this.localMessagePreview.selectedGroups)]\n } else {\n this.localMessagePreview.selectedGroups = remove(\n this.localMessagePreview.selectedGroups,\n (group: string) => {\n return group != type\n }\n )\n }\n this.emitPreviewMessageChange()\n }\n\n private async restParentFilters(isChecked: boolean) {\n // if the checkbox is unchecked and the paymentStatus or evalStatus has changed, reset the filters\n if (!isChecked) {\n if (\n this.localMessagePreview.paymentStatus != this.playerPaymentStatusOptions[0] ||\n this.localMessagePreview.evalStatus != this.playerEvaluationStatusOptions[0]\n ) {\n this.localMessagePreview.paymentStatus = this.playerPaymentStatusOptions[0]\n this.localMessagePreview.evalStatus = this.playerEvaluationStatusOptions[0]\n this.emitPreviewMessageChange()\n this.emitRefreshContactBuilder()\n }\n }\n }\n\n private async resetCoachFilter(isChecked: boolean) {\n // if the checkbox is unchecked and the coachTeamStatus has changed, reset the filter\n if (!isChecked) {\n if (this.localMessagePreview.coachTeamStatus != this.coachAssignmentStatusOptions[0]) {\n this.localMessagePreview.coachTeamStatus = this.coachAssignmentStatusOptions[0]\n this.emitPreviewMessageChange()\n this.emitRefreshContactBuilder()\n }\n }\n }\n\n private async recipientFilterChange() {\n this.emitPreviewMessageChange()\n this.emitRefreshContactBuilder()\n }\n\n private emitPreviewMessageChange() {\n this.$emit('change', this.localMessagePreview)\n this.$emit('input', this.localMessagePreview)\n }\n\n private emitRefreshContactBuilder() {\n this.$emit('refreshContactBuilder')\n }\n\n private get sendToReferees() {\n return this.localMessagePreview.selectedGroups.includes(this.recipientTypes.Referees)\n }\n private set sendToReferees(checked: boolean) {\n this.setSelectionGroup(checked, this.recipientTypes.Referees)\n }\n\n private get sendToCoaches() {\n return this.localMessagePreview.selectedGroups.includes(this.recipientTypes.Coaches)\n }\n private set sendToCoaches(checked: boolean) {\n this.setSelectionGroup(checked, this.recipientTypes.Coaches)\n this.resetCoachFilter(checked)\n }\n\n private get sendToParents() {\n return this.localMessagePreview.selectedGroups.includes(this.recipientTypes.ParentsGuardians)\n }\n private set sendToParents(checked: boolean) {\n this.setSelectionGroup(checked, this.recipientTypes.ParentsGuardians)\n this.restParentFilters(checked)\n }\n\n private get sendToCommissioners() {\n return this.localMessagePreview.selectedGroups.includes(this.recipientTypes.Commissioners)\n }\n private set sendToCommissioners(checked: boolean) {\n this.setSelectionGroup(checked, this.recipientTypes.Commissioners)\n }\n\n private get sendToOtherVolunteers() {\n return this.localMessagePreview.selectedGroups.includes(this.recipientTypes.OtherVolunteers)\n }\n private set sendToOtherVolunteers(checked: boolean) {\n this.setSelectionGroup(checked, this.recipientTypes.OtherVolunteers)\n }\n\n private setSelectedGroups(val: boolean, groupType: string) {\n if (val) {\n this.localMessagePreview.selectedGroups.push(groupType)\n } else {\n this.localMessagePreview.selectedGroups = remove(\n this.localMessagePreview.selectedGroups,\n (group: string) => {\n return group != groupType\n }\n )\n }\n this.emitPreviewMessageChange()\n }\n @Watch('value', { deep: true, immediate: true })\n private syncToLocalValue() {\n this.localMessagePreview = cloneDeep(this.value)\n this.setDefaults()\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageRecipient.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageRecipient.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessageRecipient.vue?vue&type=template&id=39ff8fbc&scoped=true\"\nimport script from \"./MessageRecipient.vue?vue&type=script&lang=ts\"\nexport * from \"./MessageRecipient.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessageRecipient.vue?vue&type=style&index=0&id=39ff8fbc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"39ff8fbc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view mb-4\"},[_c('loading')],1):_vm._e(),_c('role-access',{attrs:{\"deny-if-any\":[\n _vm.volunteerRoles.COACH,\n _vm.volunteerRoles.COACH_COMMISSIONER,\n _vm.volunteerRoles.REFEREE_COMMISSIONER,\n ],\"ranking\":_vm.denyIfAnyOnly}},[(!_vm.loading)?_c('div',{staticClass:\"row\"},[_c('switch-slot',{staticClass:\"col-12\",attrs:{\"options\":_vm.filterByOptions,\"label\":\"Filter By\",\"mode\":\"select\"},on:{\"change\":_vm.filterOptionChanged},model:{value:(_vm.localFilterOptions.filterBy),callback:function ($$v) {_vm.$set(_vm.localFilterOptions, \"filterBy\", $$v)},expression:\"localFilterOptions.filterBy\"}},[_c('template',{slot:\"division\"},[_c('div',{staticClass:\"mb-3\"},[(_vm.divisions.length > 0)?_c('select-input',{attrs:{\"label\":\"Division\",\"items-list\":_vm.divisions,\"text-property-name\":\"divisionName\",\"value-property-name\":\"divisionID\",\"show-blank-item\":true,\"blank-item-text\":\"All\",\"blank-item-value\":\"-1\"},on:{\"change\":_vm.onDivisionChange},model:{value:(_vm.localFilterOptions.divisionId),callback:function ($$v) {_vm.$set(_vm.localFilterOptions, \"divisionId\", $$v)},expression:\"localFilterOptions.divisionId\"}}):_vm._e(),(_vm.divisions.length < 1)?_c('div',[_vm._v(\"No division found\")]):_vm._e()],1)]),_c('template',{slot:\"team\"},[_c('div',{staticClass:\"mb-3\"},[(_vm.divisions.length > 0)?[_c('select-input',{attrs:{\"label\":\"Division\",\"items-list\":_vm.teamDivisions,\"text-property-name\":\"divisionName\",\"value-property-name\":\"divisionID\"},on:{\"change\":_vm.emitFilterOptionsChange},model:{value:(_vm.localFilterOptions.teamDivisionId),callback:function ($$v) {_vm.$set(_vm.localFilterOptions, \"teamDivisionId\", $$v)},expression:\"localFilterOptions.teamDivisionId\"}}),_c('multiselect-input',{attrs:{\"placeholder\":\"tap to add a team\",\"text-property-name\":\"teamName\",\"value-property-name\":\"teamID\",\"items-list\":_vm.getSelectableTeams,\"multiple\":true,\"taggable\":true},on:{\"change\":_vm.onMultiselectChange},model:{value:(_vm.selectedTeams),callback:function ($$v) {_vm.selectedTeams=$$v},expression:\"selectedTeams\"}})]:_vm._e(),(_vm.divisions.length < 1)?_c('div',[_vm._v(\"No teams found\")]):_vm._e()],2)]),_c('template',{slot:\"night\"},[_c('div',{staticClass:\"mb-3\"},[_c('day-of-week-select',{attrs:{\"label\":\"Day of Week\",\"blank-item-text\":\"All\",\"blank-item-value\":null},on:{\"change\":_vm.emitFilterOptionsChange},model:{value:(_vm.localFilterOptions.practiceNight),callback:function ($$v) {_vm.$set(_vm.localFilterOptions, \"practiceNight\", $$v)},expression:\"localFilterOptions.practiceNight\"}})],1)])],2),_c('grade-dropdown-input',{staticClass:\"mt-1 col\",on:{\"change\":_vm.emitFilterOptionsChange},model:{value:(_vm.localFilterOptions.grades),callback:function ($$v) {_vm.$set(_vm.localFilterOptions, \"grades\", $$v)},expression:\"localFilterOptions.grades\"}})],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\nimport * as upwardTypesStore from '@/store/upwardTypes'\n\nexport interface FilterOptions {\n filterBy: string\n divisionId: number\n teamDivisionId: number\n teams: DivisionTeam[] | null\n practiceNight: string | null\n grades: string[]\n}\n\nexport function getInitialFilterOptions() {\n return {\n filterBy: 'all',\n divisionId: -1,\n teamDivisionId: -1,\n teams: null,\n practiceNight: null,\n grades: upwardTypesStore.upwardTypes.state.gradeTypes.map((x) => x.upwardTypeID!),\n } as FilterOptions\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[(_vm.mode === 'radio')?[(_vm.label)?_c('label',{staticClass:\"text-uppercase\"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('div',_vm._l((_vm.options),function(option,i){return _c('div',{key:i,staticClass:\"form-check form-check-inline\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedValue),expression:\"selectedValue\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"radio\",\"id\":_vm.name + i,\"name\":_vm.name},domProps:{\"value\":option.value,\"checked\":_vm._q(_vm.selectedValue,option.value)},on:{\"change\":function($event){_vm.selectedValue=option.value}}}),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":_vm.name + i}},[_vm._v(_vm._s(option.text))])])}),0)]:_vm._e(),(_vm.mode === 'buttons')?_c('button-group',{attrs:{\"options\":_vm.options},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}}):_vm._e(),(_vm.mode === 'select')?_c('select-input',{attrs:{\"items-list\":_vm.options,\"label\":_vm.label,\"text-property-name\":\"text\",\"value-property-name\":\"value\",\"enabled\":_vm.enabled},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}}):_vm._e(),_vm._l((_vm.slotNames),function(slotName,index){return _c('div',{key:index,staticClass:\"mt-3\",class:{ 'border-left pl-3': _vm.showBorder }},[_vm._t(slotName)],2)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"btn-group\"},_vm._l((_vm.options),function(option,index){return _c('button',{key:index,staticClass:\"col btn btn-default text-uppercase\",class:{ 'btn-primary': _vm.internalValue === option.value, 'bg-light-1': _vm.internalValue !== option.value },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.select(option.value)}}},[_vm._v(\" \"+_vm._s(option.text)+\" \"),(option.slotName)?_vm._t(option.slotName):_vm._e()],2)}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport BaseInputWrapper from '@/elements/BaseInputWrapper/BaseInputWrapper.vue'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\n\n@Component({\n components: {\n BaseInputWrapper,\n },\n})\nexport default class ButtonGroup extends Vue {\n @Prop({ type: Array, required: true })\n private readonly options!: Array<{ text: string; slotName: string; value: string }>\n\n @Prop({ required: true })\n private readonly value!: string | null\n\n private internalValue: string | null = null\n\n private select(value: any) {\n this.internalValue = value\n this.onInternalValueChange()\n }\n\n private created() {\n this.setInternalValue()\n }\n\n private setInternalValue() {\n this.internalValue = this.value ? this.value : this.options.length ? this.options[0].value : null\n }\n\n @Watch('value')\n private onValueChange() {\n this.setInternalValue()\n }\n\n @Watch('internalValue')\n private onInternalValueChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonGroup.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ButtonGroup.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ButtonGroup.vue?vue&type=template&id=723f5e97\"\nimport script from \"./ButtonGroup.vue?vue&type=script&lang=ts\"\nexport * from \"./ButtonGroup.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport InputLabel from '@/elements/InputLabel.vue'\nimport ButtonGroup from '@/elements/ButtonGroup.vue'\nimport SelectInput from '@/elements/SelectInput.vue'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport uuid from 'uuid'\n\n@Component({\n components: {\n InputLabel,\n ButtonGroup,\n SelectInput,\n },\n})\nexport default class SwitchSlot extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: String, default: 'radio', required: false })\n private readonly mode!: string\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly showBorder!: boolean\n\n @Prop({ required: false, default: '' })\n private readonly value!: string\n\n @Prop({ type: Array, required: true })\n private readonly options!: Array<{ text: string; value: string | string[] }>\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly enabled!: boolean\n\n private selectedValue = this.value || (this.options.length ? this.options[0].value : null)\n private readonly guid = uuid.v4()\n private readonly name = `switchslot-${this.guid}`\n\n private get slotNames() {\n if (!this.selectedValue) {\n return []\n }\n\n if (!Array.isArray(this.selectedValue)) {\n return [this.selectedValue]\n }\n\n return this.selectedValue\n }\n\n @Watch('selectedValue')\n private onSelectedValueChange() {\n this.$emit('input', this.selectedValue)\n this.$emit('change', this.selectedValue)\n }\n\n @Watch('value')\n private onValueChange() {\n this.selectedValue = this.value || (this.options.length ? this.options[0].value : null)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchSlot.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SwitchSlot.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./SwitchSlot.vue?vue&type=template&id=f53cdcec\"\nimport script from \"./SwitchSlot.vue?vue&type=script&lang=ts\"\nexport * from \"./SwitchSlot.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('select-input',{attrs:{\"label\":_vm.label,\"required\":_vm.required,\"items-list\":_vm.options,\"value-property-name\":\"value\",\"text-property-name\":\"text\",\"enabled\":true,\"show-blank-item\":true,\"blank-item-text\":_vm.blankItemText,\"blank-item-value\":_vm.blankItemValue,\"vee-validate-rules\":_vm.VeeValidateRules},on:{\"change\":_vm.handleChange},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport SelectInput from '@/elements/SelectInput.vue'\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\n\n@Component({\n components: {\n SelectInput,\n },\n})\nexport default class DayOfWeekSelect extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ required: true })\n private readonly value!: string | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly blankItemText!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showBlankItem!: boolean\n\n @Prop({ default: null, required: false })\n private readonly blankItemValue!: any\n\n @Prop({ type: String, default: '', required: false })\n private readonly VeeValidateRules!: string\n\n private internalValue = this.value\n\n private options = [\n { value: 'Sunday', text: 'Sunday' },\n { value: 'Monday', text: 'Monday' },\n { value: 'Tuesday', text: 'Tuesday' },\n { value: 'Wednesday', text: 'Wednesday' },\n { value: 'Thursday', text: 'Thursday' },\n { value: 'Friday', text: 'Friday' },\n { value: 'Saturday', text: 'Saturday' },\n ]\n\n private handleChange() {\n this.$emit('input', this.internalValue)\n this.$emit('change', this.internalValue)\n }\n\n @Watch('value')\n private onValueChanged() {\n this.internalValue = this.value\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayOfWeekSelect.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DayOfWeekSelect.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DayOfWeekSelect.vue?vue&type=template&id=25992df0\"\nimport script from \"./DayOfWeekSelect.vue?vue&type=script&lang=ts\"\nexport * from \"./DayOfWeekSelect.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('base-input-wrapper',{attrs:{\"required\":_vm.required,\"label\":_vm.label,\"prepend-icon\":_vm.prependIcon,\"append-icon\":_vm.appendIcon,\"id\":_vm.elementId}},[_c('multiselect',{attrs:{\"tag-placeholder\":_vm.tagPlaceholder,\"placeholder\":_vm.placeholder,\"label\":_vm.textPropertyName,\"track-by\":_vm.valuePropertyName,\"options\":_vm.itemsList,\"multiple\":true,\"show-pointer\":_vm.showPointer,\"disabled\":!_vm.enabled},on:{\"input\":_vm.emitInput},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport BaseInputWrapper from '@/elements/BaseInputWrapper/BaseInputWrapper.vue'\nimport uuid from 'uuid'\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport Multiselect from 'vue-multiselect'\nimport { cloneDeep } from 'lodash'\n\n@Component({\n components: {\n BaseInputWrapper,\n Multiselect,\n },\n})\nexport default class MultiSelectInput extends Vue {\n private readonly guid = uuid.v4()\n\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: true, required: false })\n private readonly enabled!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showPointer!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly prependIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly appendIcon!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly id!: string\n\n @Prop({ required: true })\n private readonly value!: any | null\n\n @Prop({ type: String, default: '', required: false })\n private readonly textPropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly valuePropertyName!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly tagPlaceholder!: string\n\n @Prop({ type: Array, required: true })\n private readonly itemsList!: []\n\n private internalValue: any = []\n\n private emitInput(value: any) {\n this.$emit('input', value)\n this.$emit('change', value)\n }\n\n private mounted() {\n this.internalValue = this.value\n }\n\n public get elementId() {\n return this.id || `multiselect-${this.guid}`\n }\n @Watch('value')\n private valueChange(newVal: any | null) {\n if (this.internalValue.join() != newVal.join()) this.internalValue = cloneDeep(newVal)\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiselectInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MultiselectInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MultiselectInput.vue?vue&type=template&id=52ce0d7d\"\nimport script from \"./MultiselectInput.vue?vue&type=script&lang=ts\"\nexport * from \"./MultiselectInput.vue?vue&type=script&lang=ts\"\nimport style0 from \"vue-multiselect/dist/vue-multiselect.min.css?vue&type=style&index=0&prod&lang=css&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('validation-observer',[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\" \"+_vm._s(_vm.labelText)+\" from \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.minLabel)+\" \")]),_vm._v(\" to \"),_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(\" \"+_vm._s(_vm.maxLabel)+\" \")])])]),_c('div',{staticClass:\"row\"},[_c('validation-provider',{staticClass:\"col-6\",attrs:{\"name\":\"minGrade\",\"rules\":\"minLessThanOrEqualToMaxGrade:min,@maxGrade\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('select-input',{attrs:{\"items-list\":_vm.allGradeTypes,\"valuePropertyName\":\"upwardTypeID\",\"textPropertyName\":_vm.currentProgram.isByAge ? 'ageByCutoff' : 'description'},on:{\"change\":_vm.handleChange},model:{value:(_vm.internalValueMin),callback:function ($$v) {_vm.internalValueMin=$$v},expression:\"internalValueMin\"}}),(errors[0])?_c('p',{staticClass:\"text-danger text-nowrap\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])}),_c('validation-provider',{staticClass:\"col-6\",attrs:{\"name\":\"maxGrade\",\"rules\":\"minLessThanOrEqualToMaxGrade:max,@minGrade\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('select-input',{attrs:{\"items-list\":_vm.allGradeTypes,\"valuePropertyName\":\"upwardTypeID\",\"textPropertyName\":_vm.currentProgram.isByAge ? 'ageByCutoff' : 'description'},on:{\"change\":_vm.handleChange},model:{value:(_vm.internalValueMax),callback:function ($$v) {_vm.internalValueMax=$$v},expression:\"internalValueMax\"}})]}}])})],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport SelectInput from '@/elements/SelectInput.vue'\nimport { ValidationObserver, ValidationProvider, extend } from 'vee-validate'\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { Getter } from 'vuex-class'\nimport * as programStore from '@/store/programs'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { UpwardGradeTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardGradeTypeID'\nimport { cloneDeep } from 'lodash'\n\nextend('minLessThanOrEqualToMaxGrade', {\n params: ['field', 'target'],\n // @ts-ignore\n validate(value, { field, target }) {\n const valueSortOrder =\n upwardTypesStore.upwardTypes.state.gradeTypes.find((x) => x.upwardTypeID == value)?.sortOrder ?? -1\n const targetSortOrder =\n upwardTypesStore.upwardTypes.state.gradeTypes.find((x) => x.upwardTypeID == target)?.sortOrder ?? -1\n\n if (field === 'min') {\n return valueSortOrder <= targetSortOrder\n } else if (field === 'max') {\n return valueSortOrder >= targetSortOrder\n }\n },\n message: 'The min grade has to be less than max grade.',\n})\n\n@Component({\n components: {\n SelectInput,\n ValidationObserver,\n ValidationProvider,\n },\n})\nexport default class GradeDropdownSelect extends Vue {\n @Prop({ type: Array, required: true })\n private readonly value!: string[]\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Getter(upwardTypesStore.getterNames.gradeTypes, { namespace: upwardTypesStore.namespace })\n readonly allGradeTypes!: UpwardGradeTypeID[]\n\n private grades: string[] = []\n\n private internalValueMax = ''\n private internalValueMin = ''\n\n private mounted() {\n this.grades = cloneDeep(this.allGradeTypes)\n .sort((a, b) => a.sortOrder - b.sortOrder)\n .map((x) => x.upwardTypeID!)\n\n this.internalValueMax = this.allGradeTypes[this.allGradeTypes.length - 1].upwardTypeID!\n this.internalValueMin = this.allGradeTypes[0].upwardTypeID!\n }\n\n private get selectedGrades() {\n const start = this.grades.indexOf(this.internalValueMin)\n const end = this.grades.indexOf(this.internalValueMax) + 1\n return this.grades.slice(start, end)\n }\n\n private get minLabel() {\n let retval = ''\n const typeID = upwardTypesStore.upwardTypes.state.gradeTypes.find(\n (x) => x.upwardTypeID == this.internalValueMin\n )\n if (typeID) {\n retval = this.currentProgram.isByAge ? typeID.ageByCutoff.toString() : typeID.description!\n }\n return retval\n }\n\n private get maxLabel() {\n let retval = ''\n const typeID = upwardTypesStore.upwardTypes.state.gradeTypes.find(\n (x) => x.upwardTypeID == this.internalValueMax\n )\n if (typeID) {\n retval = this.currentProgram.isByAge ? typeID.ageByCutoff.toString() : typeID.description!\n }\n return retval\n }\n\n private get labelText() {\n return this.currentProgram.isByAge ? 'Ages' : 'Grades'\n }\n\n private handleChange() {\n this.$emit('input', this.selectedGrades)\n this.$emit('change', this.selectedGrades)\n }\n\n @Watch('value')\n private onValueChanged() {\n if (this.value && this.value.length > 0) {\n this.internalValueMin = this.value[0]\n this.internalValueMax = this.value[this.value.length - 1]\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GradeDropdownInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GradeDropdownInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./GradeDropdownInput.vue?vue&type=template&id=181d0924\"\nimport script from \"./GradeDropdownInput.vue?vue&type=script&lang=ts\"\nexport * from \"./GradeDropdownInput.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Component, Vue, Prop, Watch } from 'vue-property-decorator'\nimport { FilterOptions, getInitialFilterOptions } from '@/components/MessageFilters/data.ts'\nimport { FilterByOptions } from '@/components/MessageRecipient/data.ts'\nimport { ContactBuilder, getEmptyContactBuilder } from '@/models/Communication/ContactBuilder'\nimport { LeagueDivision } from '@/GeneratedTypes/LeagueDivision'\nimport { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\nimport { cloneDeep } from 'lodash'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\nimport Loading from '@/elements/Loading.vue'\nimport SwitchSlot from '@/elements/SwitchSlot.vue'\nimport SelectInput from '@/elements/SelectInput.vue'\nimport DayOfWeekSelect from '@/elements/DayOfWeekSelect.vue'\nimport MultiselectInput from '@/elements/MultiselectInput.vue'\nimport GradeDropdownInput from '@/elements/GradeDropdownInput.vue'\nimport { denyIfAnyOnly } from '@/plugins/Authorization/permissionChecks'\n\n@Component({\n components: {\n Loading,\n SwitchSlot,\n SelectInput,\n DayOfWeekSelect,\n MultiselectInput,\n GradeDropdownInput,\n },\n})\nexport default class MessageFilters extends Vue {\n @Prop({ type: Object, default: getInitialFilterOptions, required: false })\n private readonly value!: FilterOptions\n\n @Prop({ type: Object, default: getEmptyContactBuilder, required: false })\n private readonly contactBuilder!: ContactBuilder\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly loading!: boolean\n\n private readonly filterByOptions = FilterByOptions\n private localFilterOptions = getInitialFilterOptions()\n private divisions: Array = []\n private teamDivisions: Array = []\n private teams: Array = []\n private selectedTeams: DivisionTeam[] = []\n private filterBy = this.filterByOptions[0].value\n private readonly volunteerRoles = VolunteerRoles\n private denyIfAnyOnly = denyIfAnyOnly\n private mounted() {\n this.initAllData()\n }\n\n private initAllData() {\n this.setDivisions()\n this.setTeams()\n this.setTeamDivisionDefault()\n this.setGrades()\n }\n\n private setGrades() {\n this.localFilterOptions.grades = this.value.grades\n }\n\n private setDivisions() {\n if (this.contactBuilder) {\n this.divisions = this.contactBuilder.divisions\n }\n }\n\n private onDivisionChange() {\n // in the API. filtering by division occures by sending the list of teams in the division\n // so get all the teamID and set this.localFilterOptions.teams\n if (this.localFilterOptions.divisionId) {\n const teams = this.teams.filter((team) => team.divisionID === this.localFilterOptions.divisionId)\n this.localFilterOptions.teams = teams.reduce((teams: DivisionTeam[], team: DivisionTeam) => {\n teams.push(team)\n return teams\n }, [])\n this.localFilterOptions.teams = teams\n this.emitFilterOptionsChange()\n }\n }\n\n private onMultiselectChange() {\n this.localFilterOptions.teams = this.selectedTeams\n this.emitFilterOptionsChange()\n }\n\n private setTeams() {\n if (this.contactBuilder) {\n this.teams = cloneDeep(this.contactBuilder.divisionTeams)\n this.teamDivisions = cloneDeep(this.contactBuilder.divisions)\n }\n }\n\n private get getSelectableTeams() {\n if (this.localFilterOptions.teamDivisionId) {\n this.localFilterOptions.teams = []\n if (this.localFilterOptions.teamDivisionId === -1) {\n return this.teams\n } else {\n const newTeams = this.teams.filter((team) => {\n return team.divisionID === this.localFilterOptions.teamDivisionId\n })\n return newTeams\n }\n }\n return []\n }\n\n private emitFilterOptionsChange() {\n if (this.localFilterOptions.filterBy === 'team') {\n this.localFilterOptions.teams = this.selectedTeams\n }\n this.$emit('change', this.localFilterOptions)\n this.$emit('input', this.localFilterOptions)\n }\n\n private filterOptionChanged(selection: string) {\n this.clearFilters()\n if (selection === 'team') this.setTeamDivisionDefault()\n this.emitFilterOptionsChange()\n }\n\n private setTeamDivisionDefault() {\n if (this.teamDivisions.length) {\n this.localFilterOptions.teamDivisionId = this.teamDivisions[0].divisionID\n this.localFilterOptions.teams = []\n }\n }\n private clearFilters() {\n this.localFilterOptions.teams = []\n this.selectedTeams = []\n this.localFilterOptions.practiceNight = null\n this.localFilterOptions.divisionId = -1\n this.localFilterOptions.teamDivisionId = -1\n }\n\n @Watch('contactBuilder', { deep: true })\n private async contactBuilderChanged() {\n this.initAllData()\n }\n\n @Watch('value', { deep: true, immediate: true })\n private syncToLocalValue() {\n this.localFilterOptions = cloneDeep(this.value)\n\n if (this.value.teams) {\n this.selectedTeams = this.value.teams\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageFilters.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageFilters.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessageFilters.vue?vue&type=template&id=6ffdfc42\"\nimport script from \"./MessageFilters.vue?vue&type=script&lang=ts\"\nexport * from \"./MessageFilters.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css mx-3\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 mt-2\"},[_c('div',{staticClass:\"panel panel-default border\",class:{\n 'background-secondary': _vm.recipientCount > 0,\n 'bg-danger': _vm.recipientCount <= 0,\n }},[_c('div',{staticClass:\"panel-body\"},[_c('p',{staticClass:\"m-0 py-3 text-center\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.summaryMessage)}})])])])])]),_vm._m(0),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"panel panel-default border w-100\"},[_c('div',{staticClass:\"panel-body w-100 p-1 recipients-panel\"},_vm._l((_vm.message.to),function(item){return _c('div',{key:item,staticClass:\"badge no-dismiss bg-light-3 badge-pill mr-2\"},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)])])]),(_vm.message.emailSubject && _vm.messageType === 'Email')?_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6 mt-4\"},[_c('label',{staticClass:\"text-uppercase\"},[_vm._v(\"Subject\")]),_c('div',[_vm._v(_vm._s(_vm.message.emailSubject))])]),(_vm.attachmentFileName)?_c('div',{staticClass:\"col-6 mt-4\"},[_c('label',{staticClass:\"text-uppercase\"},[_vm._v(\"Attachment\")]),_c('div',[_vm._v(_vm._s(_vm.attachmentFileName))])]):_vm._e()]):_vm._e(),_vm._m(1),_c('div',{staticClass:\"d-flex flex-column h-100 border message\"},[(_vm.sanitizedMessage)?_c('span',[_c('p',{staticClass:\"m-0 p-1\",domProps:{\"innerHTML\":_vm._s(_vm.sanitizedMessage)}})]):_vm._e()]),_c('div',{staticClass:\"mt-4 text-center\"},[_c('button',{staticClass:\"btn btn-outline-dark\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fas fa-times\"}),_vm._v(\" Close\")]),_c('button',{staticClass:\"btn btn-dark ml-4\",on:{\"click\":_vm.send}},[(_vm.sendingMessageInProgress)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_c('i',{staticClass:\"fa fa-paper-plane\"}),_vm._v(\" Send\")]],2)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 mt-4\"},[_c('label',{staticClass:\"text-uppercase\"},[_vm._v(\"To\")])])])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 mt-4\"},[_c('label',{staticClass:\"text-uppercase\"},[_vm._v(\"Message\")]),_c('span',{staticClass:\"m-0 text-danger small font-italic\"},[_vm._v(\" (not editable)\")])])])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Vue, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport * as DOMPurify from 'dompurify'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport * as messageStore from '@/store/message'\n@Component({\n components: {\n Loading,\n },\n})\nexport default class MessagePreview extends Vue {\n @Getter(messageStore.getterNames.previewMessage, { namespace: messageStore.namespace })\n private message!: PreviewMessage\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly sendingMessageInProgress!: boolean\n\n @Prop({ type: String, default: 'Email', required: false })\n private readonly messageType!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly attachmentFileName!: string\n\n private get sanitizedMessage() {\n const msg = this.message.messageBody ? this.message.messageBody : ''\n return DOMPurify.sanitize(msg, {\n ALLOWED_TAGS: [\n 'address',\n 'article',\n 'aside',\n 'footer',\n 'header',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'hgroup',\n 'main',\n 'nav',\n 'section',\n 'blockquote',\n 'dd',\n 'div',\n 'dl',\n 'dt',\n 'figcaption',\n 'figure',\n 'hr',\n 'li',\n 'main',\n 'ol',\n 'p',\n 'pre',\n 'ul',\n 'a',\n 'abbr',\n 'b',\n 'bdi',\n 'bdo',\n 'br',\n 'cite',\n 'code',\n 'data',\n 'dfn',\n 'em',\n 'i',\n 'kbd',\n 'mark',\n 'q',\n 'rb',\n 'rp',\n 'rt',\n 'rtc',\n 'ruby',\n 's',\n 'samp',\n 'small',\n 'span',\n 'strong',\n 'sub',\n 'sup',\n 'time',\n 'u',\n 'var',\n 'wbr',\n 'caption',\n 'col',\n 'colgroup',\n 'table',\n 'tbody',\n 'td',\n 'tfoot',\n 'th',\n 'thead',\n 'tr',\n ],\n })\n }\n\n private send() {\n this.$emit('send')\n }\n\n private close() {\n this.$emit('close')\n }\n\n private get recipientCount() {\n return this.message.to.length\n }\n\n private get summaryMessage() {\n if (!this.message) return ''\n const plural = this.recipientCount === 1 ? '' : 's'\n\n return ` You will send the following ${this.messageType}\n to ${this.recipientCount} recipient${plural}.`\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagePreview.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessagePreview.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./MessagePreview.vue?vue&type=template&id=b86f0590&scoped=true\"\nimport script from \"./MessagePreview.vue?vue&type=script&lang=ts\"\nexport * from \"./MessagePreview.vue?vue&type=script&lang=ts\"\nimport style0 from \"./MessagePreview.vue?vue&type=style&index=0&id=b86f0590&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b86f0590\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"border p-1\"},[_c('input-label',{staticClass:\"text-center d-block\",attrs:{\"label\":\"Parents\"}}),_c('div',{staticClass:\"d-flex justify-content-between p-3\"},[_c('div',{staticClass:\"clickable underline\",on:{\"click\":function($event){return _vm.setAll(true)}}},[_c('u',[_vm._v(\"Select All\")])]),_c('div',{staticClass:\"clickable underline\",on:{\"click\":function($event){return _vm.setAll(false)}}},[_c('u',[_vm._v(\"Remove All\")])])]),_c('listing',_vm._l((_vm.players),function(p,key){return _c('list-item',{key:key},[_c('div',{staticClass:\"p-1 text-dark bg-light font-weight-bold mb-2\"},[_c('i',{staticClass:\"fas fa-user mr-2\"}),_vm._v(\" \"+_vm._s(p.playerName)+\" \")]),_vm._l((p.contacts),function(c,keya){return _c('table',{key:keya,staticClass:\"mb-4 w-100\"},[_c('tr',[_c('td',{staticClass:\"align-text-top\"},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(c.parentName))]),(c.relationship)?_c('span',{staticClass:\"muted small\"},[_vm._v(\" (\"+_vm._s(c.relationship)+\")\")]):_vm._e()])]),_c('tr',[_c('td',_vm._l((c.touchPoints),function(e,keyb){return _c('table',{key:keyb,staticClass:\"w-100\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.fmtContactPoint(e.touchPoint)))]),_c('td',{staticClass:\"text-right\"},[_c('checkbox-input',{staticClass:\"pr-4 py-3\",attrs:{\"inline\":\"\"},model:{value:(e.selected),callback:function ($$v) {_vm.$set(e, \"selected\", $$v)},expression:\"e.selected\"}})],1)])])}),0)])])})],2)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',[_c('div',[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class ListItem extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListItem.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ListItem.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ListItem.vue?vue&type=template&id=010160fa\"\nimport script from \"./ListItem.vue?vue&type=script&lang=ts\"\nexport * from \"./ListItem.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"w-100\"},[_c('ul',{staticClass:\"p-0 list-item\"},[_c('li',{staticClass:\"item\"},[_vm._t(\"default\")],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\n\n@Component\nexport default class Listing extends Vue {}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Listing.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Listing.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Listing.vue?vue&type=template&id=2db63ef6&scoped=true\"\nimport script from \"./Listing.vue?vue&type=script&lang=ts\"\nexport * from \"./Listing.vue?vue&type=script&lang=ts\"\nimport style0 from \"./Listing.vue?vue&type=style&index=0&id=2db63ef6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2db63ef6\",\n null\n \n)\n\nexport default component.exports","\ninterface PlayerDetail {\n playerName: string | null\n contacts: PlayerContact[] | null\n}\n\ninterface PlayerContact {\n parentName: string | null\n relationship: string | null\n touchPoints: TouchPoint[] | null\n}\n\ninterface TouchPoint {\n id: number\n touchPoint: string | null\n type: string | null\n selected: boolean\n}\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport * as teamStore from '@/store/team'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { cloneDeep } from 'lodash'\nimport { TeamPlayerInfo } from '@/GeneratedTypes/ListInfo/TeamPlayerInfo'\nimport ListItem from '@/components/ListItem.vue'\nimport Listing from '@/components/Listing.vue'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport CheckboxInput from '@/elements/CheckboxInput.vue'\nimport { IndividualEmailInfo } from '@/GeneratedTypes/ListInfo/IndividualEmailInfo'\nimport { IndividualPhoneInfo } from '@/GeneratedTypes/ListInfo/IndividualPhoneInfo'\nimport { PlayerContactInfo } from '@/GeneratedTypes/ListInfo/PlayerContactInfo'\nimport InputlessStringValidator from '@/elements/InputlessStringValidator.vue'\nimport { formatPhone } from '@/formatters/phoneFmt'\nimport { maxStringLength } from '@/formatters/maxStringLength'\n\n@Component({\n components: {\n ListItem,\n Listing,\n CheckboxInput,\n InputLabel,\n InputlessStringValidator,\n },\n})\nexport default class ParentRecipientPicker extends Vue {\n @Prop({ type: Array, default: [], required: false })\n private readonly value!: string[]\n\n @Prop({ type: String, default: 'Email', required: false })\n private readonly messageType!: string\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n private players: PlayerDetail[] | null = [] as PlayerDetail[]\n private localValue: string[] = []\n\n private mounted() {\n this.initialize()\n }\n\n private initialize() {\n this.localValue = this.value\n this.players = this.emailList()\n this.setSelected()\n }\n\n private emailList(): PlayerDetail[] {\n const playerClone = cloneDeep(this.currentTeam.players)\n if (!playerClone) return [] as PlayerDetail[]\n const list = playerClone.map((a: TeamPlayerInfo) => {\n if (!a.contacts) return null\n const playerContacts = a.contacts.map((b: PlayerContactInfo) => {\n const emails = this.convertToContacts(b)\n if (!emails) return null\n return this.convertToPlayerContact(b, emails)\n })\n return this.convertToPlayerDetail(a, playerContacts)\n })\n return list as PlayerDetail[]\n }\n\n private convertToContacts(b: PlayerContactInfo) {\n if (this.messageType === 'Email') {\n if (!b.emailAddresses) return []\n return b.emailAddresses.map((c: IndividualEmailInfo) => this.convertEmailToTouchPoint(c))\n }\n\n if (this.messageType === 'SMS') {\n if (!b.phoneNumbers) return []\n return b.phoneNumbers\n .filter((e: IndividualPhoneInfo) => e.typePhoneID === 'MOBILE')\n .map((c: IndividualPhoneInfo) => this.convertPhoneToTouchPoint(c))\n }\n return []\n }\n\n private convertEmailToTouchPoint(e: IndividualEmailInfo): TouchPoint | null {\n return {\n id: e.emailID,\n touchPoint: e.emailAddress,\n type: (e.typeEmailID ?? '').toLowerCase(),\n selected: false,\n }\n }\n\n private fmtContactPoint(contact: string) {\n if (this.messageType === 'SMS') {\n return formatPhone(contact)\n }\n return maxStringLength(contact, 25)\n }\n private convertPhoneToTouchPoint(e: IndividualPhoneInfo): TouchPoint | null {\n return {\n id: e.phoneID,\n touchPoint: e.phoneNumber,\n type: (e.typePhoneID ?? '').toLowerCase(),\n selected: false,\n }\n }\n\n private setAll(val: boolean) {\n if (!this.players) return\n this.players.forEach((a) => {\n if (!a.contacts) return\n a.contacts.forEach((b) => {\n if (!b.touchPoints) return\n b.touchPoints?.forEach((c) => (c.selected = val))\n })\n })\n }\n\n private convertToPlayerDetail(t: TeamPlayerInfo, contacts: (PlayerContact | null)[]): PlayerDetail {\n return {\n playerName: t.formattedNameFirstLast,\n contacts: contacts,\n } as PlayerDetail\n }\n\n private convertToPlayerContact(\n p: PlayerContactInfo,\n touchPoints: (TouchPoint | null)[]\n ): PlayerContact | null {\n return {\n parentName: p.formattedNameFirstLast,\n relationship: p.typeRelationshipID?.toLowerCase(),\n touchPoints,\n } as PlayerContact\n }\n\n @Watch('players', { deep: true })\n private emitSelectionChange() {\n const recipients: string[] = []\n if (!this.players) return\n\n this.players.forEach((a) => {\n if (!a.contacts) return\n a.contacts.forEach((b) => {\n if (!b.touchPoints) return\n b.touchPoints.forEach((c) => {\n if (!c.touchPoint || !c.selected) return\n recipients.push(c.touchPoint)\n })\n })\n })\n this.$emit('input', recipients)\n }\n\n private setSelected() {\n if (!this.players) return\n this.players.forEach((a) => {\n if (!a.contacts) return\n a.contacts.forEach((b) => {\n if (!b.touchPoints) return\n b.touchPoints.forEach((c) => {\n if (!c.touchPoint) return\n if (this.localValue.includes(c.touchPoint)) {\n c.selected = true\n }\n })\n })\n })\n }\n\n @Watch('value')\n private valueChanged() {\n this.localValue = this.value\n this.setSelected()\n }\n\n @Watch('messageType')\n private messageTypeChanged() {\n this.initialize()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParentRecipientPicker.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ParentRecipientPicker.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./ParentRecipientPicker.vue?vue&type=template&id=4ee8c57d\"\nimport script from \"./ParentRecipientPicker.vue?vue&type=script&lang=ts\"\nexport * from \"./ParentRecipientPicker.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.coaches.length > 0)?_c('div',{staticClass:\"border p-1\"},[_c('input-label',{staticClass:\"text-center d-block\",attrs:{\"label\":\"Coaches\"}}),_c('div',{staticClass:\"d-flex justify-content-between p-3\"},[_c('div',{staticClass:\"clickable underline\",on:{\"click\":function($event){return _vm.setAll(true)}}},[_c('u',[_vm._v(\"Select All\")])]),_c('div',{staticClass:\"clickable underline\",on:{\"click\":function($event){return _vm.setAll(false)}}},[_c('u',[_vm._v(\"Remove All\")])])]),_c('listing',_vm._l((_vm.coaches),function(p,key){return _c('list-item',{key:key},[_c('div',{staticClass:\"p-1 text-dark bg-light font-weight-bold mb-2\"},[_c('i',{staticClass:\"fas fa-chalkboard-teacher mr-2\"}),_vm._v(\" \"+_vm._s(p.name)+\" \")]),_vm._l((p.touchPoints),function(e,keyb){return _c('table',{key:e.id,staticClass:\"w-100\"},[_c('tr',[_c('td',[_vm._v(\" \"+_vm._s(_vm.fmtContactPoint(e.touchPoint)))]),_c('td',{staticClass:\"text-right\"},[_c('checkbox-input',{staticClass:\"pr-4 py-3\",attrs:{\"inline\":\"\"},model:{value:(e.selected),callback:function ($$v) {_vm.$set(e, \"selected\", $$v)},expression:\"e.selected\"}})],1)])])})],2)}),1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\ninterface CoachDetail {\n id: number\n name: string | null\n touchPoints: TouchPoint[]\n}\n\ninterface TouchPoint {\n id: number\n touchPoint: string\n selected: boolean\n type: string //email, mobile, home etc\n}\n\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport { cloneDeep } from 'lodash'\n\nimport * as teamStore from '@/store/team'\nimport * as authStore from '@/store/authentication'\n\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { TeamCoachInfo } from 'src/GeneratedTypes/ListInfo/TeamCoachInfo'\n\nimport ListItem from '@/components/ListItem.vue'\nimport Listing from '@/components/Listing.vue'\n\nimport InputLabel from '@/elements/InputLabel.vue'\nimport CheckboxInput from '@/elements/CheckboxInput.vue'\n\nimport { formatPhone } from '@/formatters/phoneFmt'\nimport { maxStringLength } from '@/formatters/maxStringLength'\n\n@Component({\n components: {\n ListItem,\n Listing,\n CheckboxInput,\n InputLabel,\n },\n})\nexport default class CoachRecipientPicker extends Vue {\n @Prop({ type: Array, default: [], required: false })\n private readonly value!: string[]\n\n @Prop({ type: String, default: 'Email', required: false })\n private readonly messageType!: string\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private currentTeam!: DivisionTeamInfoExt\n\n @Getter(authStore.getterNames.fullName, { namespace: authStore.namespace })\n private readonly fullName!: string\n\n private localValue: string[] = []\n private coaches: CoachDetail[] | null = [] as CoachDetail[]\n\n private mounted() {\n this.initialize()\n }\n\n private initialize() {\n this.localValue = this.value\n this.coaches = this.coachList()\n this.setSelected()\n }\n\n private get recipientString() {\n return this.localValue.join()\n }\n\n private coachList(): CoachDetail[] {\n const coaches = cloneDeep(this.currentTeam.coaches)\n if (!coaches) return []\n if (this.messageType == 'SMS') return this.smsList(coaches)\n if (this.messageType == 'Email') return this.emailList(coaches)\n return []\n }\n\n emailList(coaches: TeamCoachInfo[]): CoachDetail[] {\n return coaches.map((c) => {\n return {\n name: c.formattedNameFirstLast,\n id: c.individualID,\n touchPoints: c.emailAddresses?.map((e) => {\n return {\n id: e.emailID,\n touchPoint: e.emailAddress,\n selected: false,\n } as TouchPoint\n }),\n } as CoachDetail\n })\n }\n\n smsList(coaches: TeamCoachInfo[]): CoachDetail[] {\n // Coach phone numbers. Filtered for only MOBILE number\n // and to remove logged in user.\n const list = coaches.map((c) => {\n const mobiles = c.phoneNumbers\n ?.filter((p) => p.typePhoneID === 'MOBILE')\n .map((m) => {\n return {\n id: m.phoneID,\n selected: false,\n touchPoint: m.phoneNumber,\n } as TouchPoint\n })\n\n return {\n name: c.formattedNameFirstLast,\n id: c.individualID,\n touchPoints: mobiles ? mobiles : null,\n } as CoachDetail\n })\n\n return list.filter((c) => c.touchPoints?.length > 0).filter((c) => c.name !== this.fullName)\n }\n\n private fmtContactPoint(contact: string) {\n if (this.messageType === 'SMS') {\n return formatPhone(contact)\n }\n return maxStringLength(contact, 25)\n }\n\n private setAll(val: boolean) {\n if (!this.coaches) return\n this.coaches.forEach((c) => {\n c.touchPoints.forEach((t) => {\n t.selected = val\n })\n })\n }\n\n private setSelected() {\n if (!this.coaches) return\n this.coaches.forEach((a) => {\n if (!a.touchPoints) return\n a.touchPoints.forEach((c) => {\n if (!c.touchPoint) return\n if (this.localValue.includes(c.touchPoint)) {\n c.selected = true\n }\n })\n })\n }\n\n @Watch('coaches', { deep: true })\n private emitSelectionChange() {\n const recipients: string[] = []\n if (!this.coaches) return\n\n this.coaches.forEach((a) => {\n if (!a.touchPoints) return\n a.touchPoints.forEach((b) => {\n if (!b.selected) return\n recipients.push(b.touchPoint)\n })\n })\n this.$emit('input', recipients)\n }\n\n @Watch('value')\n private valueChanged() {\n this.localValue = this.value\n this.setSelected()\n }\n\n @Watch('messageType')\n private messageTypeChanged() {\n this.initialize()\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachRecipientPicker.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachRecipientPicker.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CoachRecipientPicker.vue?vue&type=template&id=7df24437\"\nimport script from \"./CoachRecipientPicker.vue?vue&type=script&lang=ts\"\nexport * from \"./CoachRecipientPicker.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css mx-3\"},[_vm._m(0),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12\"},[_c('div',{staticClass:\"panel panel-default border w-100 mt-1\"},[_c('div',{staticClass:\"panel-body w-100 p-1 recipients-panel\"},_vm._l((_vm.phoneNumbers),function(item,i){return _c('div',{key:i,staticClass:\"badge no-dismiss bg-light-3 badge-pill mr-2\"},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)])])]),_c('div',{staticClass:\"mt-4 text-center\"},[_c('button',{staticClass:\"btn btn-outline-dark b-block\",on:{\"click\":_vm.close}},[_c('i',{staticClass:\"fas fa-times\"}),_vm._v(\" Close\")]),_c('button',{staticClass:\"btn btn-dark ml-4\",on:{\"click\":_vm.copy}},[_c('i',{staticClass:\"fas fa-copy\"}),_vm._v(\" Copy\")])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"row\"},[_c('h5',{staticClass:\"col text-center\"},[_vm._v(\"Phone Number Preview\")])])\n}]\n\nexport { render, staticRenderFns }","\nimport { Component, Vue } from 'vue-property-decorator'\nimport { Getter } from 'vuex-class'\nimport Loading from '@/elements/Loading.vue'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport * as messageStore from '@/store/message'\n@Component({\n components: {\n Loading,\n },\n})\nexport default class MessagePreview extends Vue {\n @Getter(messageStore.getterNames.previewMessage, { namespace: messageStore.namespace })\n private message!: PreviewMessage\n\n private get phoneNumberString() {\n return this.phoneNumbers.join()\n }\n\n private get phoneNumbers() {\n return [...this.message.to, ...this.message.individualContactInfo]\n }\n\n private async copy() {\n if (!navigator.clipboard)\n throw new Error('Cannot copy to clipboard. This is probably because you are not using https.')\n\n await navigator.clipboard.writeText(this.phoneNumberString)\n this.$emit('copied')\n this.close()\n }\n\n private close() {\n this.$emit('close')\n }\n}\n","export enum ViewStates {\n PREVIEWING = 'preview',\n EDITING = 'editing',\n CONFIRMING = 'confirming',\n CLIPBOARDING = 'Clipboarding',\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CopyPhoneRecipientsToClipboard.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CopyPhoneRecipientsToClipboard.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./CopyPhoneRecipientsToClipboard.vue?vue&type=template&id=3a04a192\"\nimport script from \"./CopyPhoneRecipientsToClipboard.vue?vue&type=script&lang=ts\"\nexport * from \"./CopyPhoneRecipientsToClipboard.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { Attachment } from '@/GeneratedTypes/Communication/Attachment'\nimport { EmailMessage } from '@/GeneratedTypes/Communication/EmailMessage'\n\nexport class EmailMessageImpl implements EmailMessage {\n accountNumber!: string | null\n upwardLeagueID!: string | null\n displayName!: string | null\n replyTo!: string | null\n emailSubject!: string | null\n messageBody!: string | null\n to!: string[] | null\n attachments!: Attachment[] | null\n}\n","\nimport { Getter, Action } from 'vuex-class'\nimport { Component, Vue, Mixins, Ref, Watch } from 'vue-property-decorator'\nimport { cloneDeep } from 'lodash'\n\nimport VeeValidateForm from '@/elements/VeeValidateForm.vue'\nimport InputlessStringValidator from '@/elements/InputlessStringValidator.vue'\nimport InputLabel from '@/elements/InputLabel.vue'\nimport Loading from '@/elements/Loading.vue'\n\nimport MessageContent from '@/components/MessageContent.vue'\nimport MessageRecipient from '@/components/MessageRecipient/MessageRecipient.vue'\nimport MessageFilters from '@/components/MessageFilters/MessageFilters.vue'\nimport MessagePreview from '@/components/MessagePreview.vue'\nimport ParentRecipientPicker from '@/components/ParentRecipientPicker.vue'\nimport CoachRecipientPicker from '@/components/CoachRecipientPicker.vue'\nimport CopyRecipientsToClipboard from '@/components/CopyPhoneRecipientsToClipboard.vue'\nimport { FilterOptions, getInitialFilterOptions } from '@/components/MessageFilters/data'\nimport { ProgramList } from '@/components/MessageRecipient/MessageProgramSelector.vue'\n\nimport { ViewStates } from '@/views/Message/data'\n\nimport { getEmptyPreviewMessage } from '@/modelHelpers/PreviewMessage'\nimport { PreviewMessage } from '@/models/Communication/PreviewMessage'\nimport { EmailMessageImpl } from '@/models/Communication/EmailMessageImpl.ts'\nimport { getEmptyAttachment } from '@/modelHelpers/Attachment.ts'\nimport { getEmptyContactBuilder } from '@/models/Communication/ContactBuilder'\nimport { Attachment } from '@/GeneratedTypes/Communication/Attachment'\nimport { DivisionTeam } from '@/GeneratedTypes/DivisionTeam'\nimport { LeagueProgramInfo } from 'src/GeneratedTypes/ListInfo/LeagueProgramInfo'\n\nimport authorizationClient from '@/clients/authorizationClient'\nimport communicationsClient from '@/clients/communicationsClient'\nimport programClient from '@/clients/programsClient'\n\nimport * as programStore from '@/store/programs'\nimport * as messageStore from '@/store/message'\nimport * as auth from '@/store/authentication'\nimport * as authorization from '@/store/authorization'\n\nimport { iOSTestMixin } from '@/common/iOSTestMixin'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { VolunteerRoles, allVolunteerRoles, commissionerGroup } from '@/common/Authorization/VolunteerRoles'\nimport {\n communicationVolunteerRoles,\n bulkEmailerGroup,\n forbidBulkEmailerGroup,\n denyMessaging,\n localSMSClientGroup,\n} from '@/common/Authorization/PermissionGroups'\nimport { allowFirstRanking, denyIfAnyOnly, allowIfAnyOnly } from '@/plugins/Authorization/permissionChecks'\n\ntype EditableInput = HTMLTextAreaElement | HTMLInputElement\n\n@Component({\n components: {\n MessageContent,\n MessageRecipient,\n MessageFilters,\n MessagePreview,\n VeeValidateForm,\n Loading,\n ParentRecipientPicker,\n CoachRecipientPicker,\n InputLabel,\n InputlessStringValidator,\n CopyRecipientsToClipboard,\n },\n})\nexport default class Message extends Mixins(iOSTestMixin) {\n @Ref('form') readonly form!: HTMLFormElement\n\n @Getter(programStore.getterNames.currentProgramId, { namespace: programStore.namespace })\n private currentProgramId!: string\n\n @Getter(messageStore.getterNames.previewMessage, { namespace: messageStore.namespace })\n private message!: PreviewMessage\n\n @Getter(auth.getterNames.email, { namespace: auth.namespace })\n private loggedInUserEmail!: string | null\n\n @Getter(auth.getterNames.fullName, { namespace: auth.namespace })\n private loggedInUserFullName!: string | null\n\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: RoleUnion\n\n @Action(messageStore.actionNames.retrievePreviewMessage, { namespace: messageStore.namespace })\n private retrievePreviewMessage!: ({\n previewMessage,\n }: {\n previewMessage: PreviewMessage\n }) => Promise\n\n private readonly viewStates = ViewStates\n private currentState = ViewStates.EDITING\n\n private leagueSettingsLoading = false\n private contactBuilderLoading = false\n private previewLoading = false\n private sendMessageLoading = false\n private clipboardFull = false\n private loadingClipboardData = false\n\n private contentMessagePreview = getEmptyPreviewMessage()\n private recipientMessagePreview = getEmptyPreviewMessage()\n private filterOptions = getInitialFilterOptions()\n private contactBuilder = getEmptyContactBuilder()\n private attachment: Attachment = getEmptyAttachment()\n private superUsers = superUsers\n private allVolunteerRoles = allVolunteerRoles\n private commissionerGroup = commissionerGroup\n private denyIfAnyOnly = denyIfAnyOnly\n private allowIfAnyOnly = allowIfAnyOnly\n private volunteerRoles = VolunteerRoles\n private denyMessaging = denyMessaging\n private bulkEmailerGroup = bulkEmailerGroup\n private forbidBulkEmailerGroup = forbidBulkEmailerGroup\n private recipientCount = 0\n private parentRecipients: string[] = []\n private coachRecipients: string[] = []\n private copyToClipboardString = ''\n private coachOnlyRoleAccessRanking = allowFirstRanking\n private programs: LeagueProgramInfo[] | null = [] as LeagueProgramInfo[]\n\n private async mounted() {\n this.loadData()\n }\n\n get messageType() {\n return this.$route.params.channel\n }\n\n private async loadData() {\n await this.retrievePrograms()\n await Promise.all([this.loadLeagueSettings(), this.loadContactBuilder()])\n }\n\n private async retrievePrograms() {\n if (!this.currentProgramId) return\n const result = await programClient.retrieve(this.currentProgramId)\n if (result?.myLeagueInfo?.programs) {\n this.programs = result.myLeagueInfo?.programs\n }\n }\n\n private get programTypeID(): string {\n if (!this.programs || this.recipientMessagePreview.typeProgramID == 'ALL') return ''\n const cheer: string = ProgramList[2].value\n if (this.recipientMessagePreview.typeProgramID == cheer) {\n const cheerProgram = this.programs.find((p) => p.typeProgramID?.includes(cheer))\n return cheerProgram?.typeProgramID ?? ''\n }\n\n //this.program will be SPORT\n const sportProgram = this.programs.find((p) => !p.typeProgramID?.includes(cheer))\n return sportProgram?.typeProgramID ?? ''\n }\n\n private resetAll() {\n this.contentMessagePreview = getEmptyPreviewMessage()\n this.recipientMessagePreview = getEmptyPreviewMessage()\n this.parentRecipients = []\n this.loadData()\n }\n\n private clipboardCopied() {\n this.clipboardFull = true\n }\n\n private get smsViaAPIRule() {\n const isSMS = this.messageType === 'SMS'\n return {\n allowIfAnyRoles: isSMS ? [...superUsers, VolunteerRoles.CHEER_DIRECTOR] : null,\n denyIfAnyRoles: isSMS ? localSMSClientGroup : null,\n }\n }\n\n private get smsViaLocalClientRule() {\n const isSMS = this.messageType === 'SMS'\n return {\n allowIfAnyRoles: isSMS\n ? [VolunteerRoles.COACH, VolunteerRoles.COACH_COMMISSIONER, VolunteerRoles.REFEREE_COMMISSIONER]\n : null,\n denyIfAnyRoles: isSMS ? [...superUsers, VolunteerRoles.CHEER_DIRECTOR] : null,\n }\n }\n\n private get showPreview(): boolean {\n // show preview button for all emails and SuperUser SMS\n if (this.messageType === 'Email') return true\n if (\n this.messageType === 'SMS' &&\n this.$allowIfAny(this.superUsers) &&\n !this.$denyIfAny([\n this.volunteerRoles.COACH,\n this.volunteerRoles.COACH_COMMISSIONER,\n this.volunteerRoles.REFEREE_COMMISSIONER,\n ])\n ) {\n return true\n }\n return false\n }\n private populateMessageObject(preview: PreviewMessage) {\n const message = new EmailMessageImpl()\n message.accountNumber = authorizationClient.getFirstAccount()\n message.upwardLeagueID = this.currentProgramId\n message.displayName = preview.displayName\n message.replyTo = preview.replyTo\n message.emailSubject = preview.emailSubject\n message.messageBody = preview.messageBody\n message.to = preview.to\n if (!this.emptyAttachment(this.attachment)) {\n message.attachments = [this.attachment]\n } else {\n message.attachments = null\n }\n return message\n }\n\n private emptyAttachment(a: Attachment) {\n return !a || (!a.data && !a.name && !a.type)\n }\n\n private async formIsValid() {\n const isValid = await this.form.reportValidity()\n if (!isValid) {\n this.moveTo('page_top')\n }\n return isValid\n }\n\n private async sendMessage() {\n if (await this.formIsValid()) {\n try {\n await this.postMessage()\n } finally {\n this.currentState = this.viewStates.CONFIRMING\n }\n }\n }\n\n private get smsPhoneListForCoaches() {\n let list = 'sms://'\n if (this.isIosOnBrowser()) {\n list = `${list}open?addresses=`\n }\n const body = encodeURIComponent(this.contentMessagePreview.messageBody)\n const parentRecipients = this.parentRecipients.map((r) => '+1' + r)\n const coachRecipients = this.coachRecipients.map((r) => '+1' + r)\n const recipients = [...parentRecipients, ...coachRecipients]\n list = `${list}${recipients}`\n list = `${list};?&body=${body}`\n\n return list\n }\n\n private async loadSMSRecipients() {\n await this.loadMessagePreview()\n }\n\n private get smsPhoneListForCommissioners() {\n //this.loadSMSRecipients() //this causes a spamming of the API. Commenting out for now to just stop it. Needs to be reviewed for downstream bugs. Was added as part of PR 3119.\n\n if (!this.message) return\n let list = 'sms://'\n if (this.isIosOnBrowser()) {\n list = `${list}open?addresses=`\n }\n const body = encodeURIComponent(this.contentMessagePreview.messageBody)\n const commRecipients = this.message.to.map((r) => '+1' + r)\n const recipients = [...commRecipients]\n list = `${list}${recipients}`\n list = `${list};?&body=${body}`\n\n return list\n }\n\n private async sendMessageFromPreview() {\n try {\n await this.postMessage()\n } finally {\n this.currentState = this.viewStates.CONFIRMING\n }\n }\n\n private nextMessage() {\n this.currentState = this.viewStates.EDITING\n this.resetAll()\n }\n\n private async postMessage() {\n this.sendMessageLoading = true\n try {\n await this.loadMessagePreview()\n if (!this.message) return\n this.recipientCount = this.message.to.length\n const messageObject = this.populateMessageObject(this.message)\n const type = this.messageType === 'Email' ? 'sendemail' : 'sendsms'\n await communicationsClient.sendMessage(messageObject, type)\n } finally {\n this.sendMessageLoading = false\n }\n }\n\n private async onPreview() {\n if (await this.formIsValid()) {\n try {\n this.previewLoading = true\n await this.loadMessagePreview()\n this.currentState = this.viewStates.PREVIEWING\n this.moveTo('page_top')\n } finally {\n this.previewLoading = false\n }\n }\n }\n\n private moveTo(id: string) {\n Vue.nextTick(() => {\n const elem = document.getElementById(id)\n if (elem) elem.scrollIntoView()\n })\n }\n\n private backToEditing() {\n this.currentState = this.viewStates.EDITING\n }\n\n private async loadMessagePreview() {\n let recipients = getEmptyPreviewMessage()\n if (this.$allowIfAny([this.volunteerRoles.COACH])) {\n recipients.individualContactInfo = [...this.parentRecipients, ...this.coachRecipients]\n } else {\n recipients = cloneDeep(this.recipientMessagePreview)\n }\n\n const message = this.mergeMessagePreview(this.contentMessagePreview, recipients, this.filterOptions)\n\n await this.retrievePreviewMessage({ previewMessage: message })\n }\n\n private mergeMessagePreview(\n contentMessagePreview: PreviewMessage,\n recipientMessagePreview: PreviewMessage,\n filterOptions: FilterOptions\n ) {\n const previewMessage = getEmptyPreviewMessage()\n previewMessage.displayName = contentMessagePreview.displayName\n previewMessage.replyTo = contentMessagePreview.replyTo\n previewMessage.emailSubject = contentMessagePreview.emailSubject\n previewMessage.messageBody = contentMessagePreview.messageBody\n\n previewMessage.paymentStatus = recipientMessagePreview.paymentStatus\n previewMessage.evalStatus = recipientMessagePreview.evalStatus\n previewMessage.coachTeamStatus = recipientMessagePreview.coachTeamStatus\n previewMessage.approvalStatus = recipientMessagePreview.approvalStatus\n previewMessage.headCoachOnly = recipientMessagePreview.headCoachOnly\n previewMessage.selectedGroups = recipientMessagePreview.selectedGroups\n previewMessage.individualContactInfo = recipientMessagePreview.individualContactInfo\n previewMessage.typeProgramID = this.programTypeID\n\n previewMessage.startGrade = filterOptions.grades[0]\n previewMessage.endGrade = filterOptions.grades[filterOptions.grades.length - 1]\n previewMessage.practiceNight = filterOptions.practiceNight\n previewMessage.teams = this.teamIdArray(this.filterOptions.teams)\n\n previewMessage.upwardLeagueID = this.currentProgramId\n previewMessage.accountNumber = authorizationClient.getFirstAccount()\n previewMessage.communicationType = this.messageType.toLowerCase()\n\n return previewMessage\n }\n\n private teamIdArray(teamFilters: DivisionTeam[] | null) {\n if (!teamFilters) return []\n return teamFilters.reduce((teams: number[], team: DivisionTeam) => {\n if (team.teamID) {\n teams.push(team.teamID)\n }\n return teams\n }, [])\n }\n private async loadLeagueSettings() {\n const account = authorizationClient.getFirstAccount()\n const upwID = this.currentProgramId\n if (!upwID || !account) return\n\n this.leagueSettingsLoading = true\n try {\n const leagueSetting = await communicationsClient.retrieveLeagueSettings(upwID, account)\n if (leagueSetting) {\n this.contentMessagePreview.displayName = this.useLeagueReplySetting\n ? leagueSetting.emailDisplayName ?? ''\n : this.loggedInUserFullName ?? ''\n\n this.contentMessagePreview.replyTo = this.useLeagueReplySetting\n ? leagueSetting.emailReplyTo\n : this.loggedInUserEmail ?? ''\n }\n } finally {\n this.leagueSettingsLoading = false\n }\n }\n\n get useLeagueReplySetting(): boolean {\n if (this.$hasAtLeastOne(communicationVolunteerRoles) && !this.$hasAtLeastOne(superUsers)) {\n // This is a volunteer with communication permissions (not a super user who selected the coach role)\n return false\n } else if (this.$hasAtLeastOne(superUsers)) {\n // this is a super user\n return true\n } else {\n // user should not have access to communication\n throw Error('No permissions for this action')\n }\n }\n\n private get coachAndParentRecipientString() {\n this.clipboardFull = false\n const recipients = [...this.coachRecipients, ...this.parentRecipients]\n return recipients.join()\n }\n\n private async copyToClipboard() {\n this.loadingClipboardData = true\n if (this.$currentRoleIsOneOf(this.bulkEmailerGroup)) {\n //Bulk Emailers use groups so need to make API call to get phone numbers.\n await this.loadMessagePreview()\n //Safari requires a pure user gesture for clipboard API, so api call can't be in clipboard event.\n //therefore show data to user, then copy\n this.currentState = this.viewStates.CLIPBOARDING\n } else {\n //Emailing people individually. No additional API call needed. Just send to clipboard.\n //This will only work over https and localhost\n if (!navigator.clipboard)\n throw new Error('Cannot copy to clipboard. This is probably because you are not using https')\n await navigator.clipboard.writeText(this.coachAndParentRecipientString)\n this.clipboardFull = true\n }\n this.loadingClipboardData = false\n }\n\n get copyToClipboardClass() {\n if (!this.clipboardFull) return 'far fa-copy'\n return 'fas fa-copy'\n }\n\n private async loadContactBuilder() {\n const account = authorizationClient.getFirstAccount()\n const upwID = this.currentProgramId\n if (!upwID || !account) return\n\n if (this.$hasAtLeastOne([VolunteerRoles.CHEER_DIRECTOR])) {\n //Cheer Director can only email cheer coaches and parents\n this.recipientMessagePreview.typeProgramID = 'CHEER'\n }\n\n if (this.$hasAtLeastOne([VolunteerRoles.COACH_COMMISSIONER])) {\n //Coach Commissioner can only email sport coaches\n this.recipientMessagePreview.typeProgramID = 'PLAYER'\n }\n\n if (this.$hasAtLeastOne([VolunteerRoles.REFEREE_COMMISSIONER])) {\n //Referee Commissioner can only email referees\n this.recipientMessagePreview.typeProgramID = 'REFEREE'\n }\n\n this.contactBuilderLoading = true\n try {\n const results = await communicationsClient.getContactBuilder(\n upwID,\n account,\n this.recipientMessagePreview.paymentStatus ? this.recipientMessagePreview.paymentStatus : '',\n this.recipientMessagePreview.evalStatus ? this.recipientMessagePreview.evalStatus : '',\n this.recipientMessagePreview.coachTeamStatus ? this.recipientMessagePreview.coachTeamStatus : '',\n this.programTypeID,\n this.recipientMessagePreview.approvalStatus,\n this.recipientMessagePreview.headCoachOnly\n )\n if (results) {\n this.contactBuilder = results\n }\n } finally {\n this.contactBuilderLoading = false\n }\n }\n\n get hasCheer(): boolean {\n if (!this.programs) return false\n return this.programs.length > 1\n }\n @Watch('messageType')\n private async currentMessageType() {\n this.currentState = this.viewStates.EDITING\n this.resetAll()\n }\n\n @Watch('recipientMessagePreview.typeProgramID', { immediate: true })\n private typeProgramIDChanged() {\n this.filterOptions = getInitialFilterOptions()\n }\n @Watch('recipientMessagePreview', { immediate: true })\n private recipientsChanged() {\n //used for CoachComm to copy phonenumbers to clipboard\n if (this.messageType == 'SMS') {\n this.clipboardFull = false\n }\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Message.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./Message.vue?vue&type=template&id=0a22eaba\"\nimport script from \"./Message.vue?vue&type=script&lang=ts\"\nexport * from \"./Message.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\"},[_c('div',{staticClass:\"container-fluid\"},[(!_vm.loading)?_c('div',{staticClass:\"row\"},[(!_vm.currentRole)?_c('div',{staticClass:\"col\"},[_vm._v(\"Please select a role to view Team Alerts.\")]):[_c('div',{staticClass:\"col-12\"},[_c('accordion',{staticClass:\"mt-2\"},_vm._l((_vm.taxonomies),function(taxonomy){return _c('accordion-item',{key:taxonomy.alertID},[_c('template',{slot:\"header\"},[_c('div',{staticClass:\"p-2\",class:taxonomy.alertID == -1\n ? 'btn-dark'\n : taxonomy.isActive\n ? 'bg-active'\n : taxonomy.isPast\n ? 'bg-past'\n : 'bg-future'},[_c('h5',{staticClass:\"mb-1 truncate\",domProps:{\"innerHTML\":_vm._s(taxonomy.title)}}),(taxonomy.alertID > 0)?_c('h6',{staticClass:\"mb-0\"},[_c('i',{staticClass:\"pl-2\"},[_vm._v(_vm._s(taxonomy.subTitle))])]):_vm._e(),(taxonomy.alertID > 0)?_c('p',{staticClass:\"small text-nuted mb-0\"},[_c('i',{staticClass:\"pl-2\"},[_vm._v(_vm._s(taxonomy.visibility))])]):_vm._e()])]),_c('div',{staticClass:\"row\"},[_c('team-alert',{attrs:{\"alert\":taxonomy.alertInfo},on:{\"saved\":_vm.onAlertSaved}})],1)],2)}),1)],1)]],2):_vm._e()]),(_vm.loading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AlertInfo } from '@/GeneratedTypes/ListInfo/AlertInfo'\nimport { TeamPageAlertInfo } from '@/GeneratedTypes/ListInfo/TeamPageAlertInfo'\n\nexport function getEmptyAlertInfo(): AlertInfo {\n return {\n id: 0,\n typeAlertMessageID: null,\n typeAlertTargetID: null,\n typeAlertPriorityID: null,\n message: '',\n startDate: null,\n expireDate: null,\n expireViewCount: 0,\n registeredViewCount: 0,\n userCanHide: false,\n userDidHide: false,\n }\n}\n\nexport function getEmptyAlertInfoList(): AlertInfo[] {\n return [getEmptyAlertInfo()]\n}\n\nexport function getEmptyTeamPageAlertInfo(): TeamPageAlertInfo {\n return {\n id: 0,\n typeAlertMessageID: null,\n typeAlertTargetID: null,\n typeAlertPriorityID: null,\n message: '',\n startDate: null,\n expireDate: null,\n expireViewCount: 0,\n registeredViewCount: 0,\n userCanHide: false,\n userDidHide: false,\n typeProgramID: '',\n divisionID: 0,\n divisionName: null,\n teamID: 0,\n teamName: null,\n upwardTeamID: null,\n }\n}\n\nexport function getEmptyTeamPageAlertInfoList(): TeamPageAlertInfo[] {\n return [getEmptyTeamPageAlertInfo()]\n}\n","import restService from '@/services/restService'\nimport { TeamPageAlertInfo } from '@/GeneratedTypes/ListInfo/TeamPageAlertInfo'\nimport { getEmptyTeamPageAlertInfoList } from '@/modelHelpers/AlertInfo'\n\nconst alertUrl = 'alerts/'\nconst teamsUrl = `${alertUrl}teams/`\n\nconst retrieve = async (upwId: string) => {\n try {\n const results = await restService.get(`${teamsUrl}byLeague/${upwId}`)\n if (results.isSuccess) {\n return results.data\n } else {\n throw new Error('Error in alertClient.retrieve')\n }\n } catch (e) {\n if (e.status === 404) {\n // no alert exists for this program/programType. Return empty alert.\n return getEmptyTeamPageAlertInfoList()\n } else {\n throw e\n }\n }\n}\n\nconst save = async (upwId: string, alert: TeamPageAlertInfo) => {\n const results = await restService.post(`${teamsUrl}${upwId}`, alert)\n\n if (!results.isSuccess) {\n throw new Error(`Error in alertClient.save`)\n }\n return results.data\n}\n\nconst remove = async (alertId: number) => {\n const results = await restService.delete(`${alertUrl}${alertId}`)\n\n if (!results.isSuccess) {\n throw new Error(`Error in alertClient.remove`)\n }\n return results.isSuccess\n}\n\nexport default {\n retrieve,\n save,\n remove,\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"views-base-css\",attrs:{\"id\":\"page_top\"}},[(!_vm.isLoading)?_c('div',{staticClass:\"d-inline-block p-2 mx-2 text-left\"},[(_vm.showAlertStatus)?_c('alert',{attrs:{\"status\":_vm.alertOption.status}},[_c('i',{staticClass:\"mr-1\",class:_vm.alertOption.icon}),_vm._v(_vm._s(_vm.alertOption.message))]):_vm._e(),_c('vee-validate-form',{ref:\"alertForm\",scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [(!_vm.isLoading && _vm.programOptions.length > 1)?_c('stylable-select-input',{attrs:{\"label\":\"Show alert for\",\"value\":_vm.selectedProgram,\"text-property-name\":\"optionText\",\"value-property-name\":\"optionValue\",\"items-list\":_vm.programOptions,\"config\":_vm.selectConfig,\"enabled\":_vm.programOptions.length > 1 && !_vm.isCoach},on:{\"input\":_vm.setProgram}}):_vm._e(),(!_vm.isLoading)?_c('stylable-select-input',{attrs:{\"label\":_vm.programOptions.length == 1 ? 'Show alert for' : '',\"value\":_vm.selectedDivision,\"text-property-name\":\"optionText\",\"value-property-name\":\"optionValue\",\"items-list\":_vm.divisionOptions,\"config\":_vm.selectConfig,\"enabled\":_vm.selectedProgram != null && _vm.selectedProgram.optionValue != 'NONE' && !_vm.isCoach},on:{\"input\":_vm.setDivision}}):_vm._e(),(!_vm.isLoading)?_c('stylable-select-input',{attrs:{\"value\":_vm.selectedTeam,\"text-property-name\":\"optionText\",\"value-property-name\":\"optionValue\",\"items-list\":_vm.teamOptions,\"config\":_vm.selectConfig,\"enabled\":_vm.selectedDivision != null && _vm.selectedDivision.optionValue > 0 && !_vm.isCoach},on:{\"input\":_vm.setTeam}}):_vm._e(),_c('date-input',{attrs:{\"required\":\"\",\"label\":\"Start displaying on\",\"vee-validate-rules\":\"required\",\"validation-provider-name\":\"beginDate\"},model:{value:(_vm.internalAlert.startDate),callback:function ($$v) {_vm.$set(_vm.internalAlert, \"startDate\", $$v)},expression:\"internalAlert.startDate\"}}),_c('date-input',{attrs:{\"required\":\"\",\"label\":\"End displaying on\",\"vee-validate-rules\":\"required|beginDateLessThanEndDate:@beginDate\"},model:{value:(_vm.internalAlert.expireDate),callback:function ($$v) {_vm.$set(_vm.internalAlert, \"expireDate\", $$v)},expression:\"internalAlert.expireDate\"}}),_c('html-editor',{attrs:{\"required\":\"\",\"label\":\"Message\",\"vee-validate-rules\":\"required\"},model:{value:(_vm.internalAlert.message),callback:function ($$v) {_vm.$set(_vm.internalAlert, \"message\", $$v)},expression:\"internalAlert.message\"}})]}}],null,false,1503119897)}),_c('div',{staticClass:\"text-center mt-2\"},[(_vm.alert.id > 0)?_c('button',{staticClass:\"btn btn-outline-dark mr-5 mx-sm-3 px-3\",on:{\"click\":_vm.clear}},[(_vm.isClearing)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_c('i',{staticClass:\"fa fa-times\"}),_vm._v(\" Delete\")]],2):_vm._e(),_c('button',{staticClass:\"btn btn-dark mx-sm-3 px-3\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.save}},[(_vm.isSaving)?_c('loading',{attrs:{\"is-small\":\"\"}}):[_c('i',{staticClass:\"fas fa-check\"}),_vm._v(\" Save\")]],2)])],1):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"center-spinner-on-view\"},[_c('loading')],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"form-group\"},[_c('input-label',{attrs:{\"label\":_vm.label,\"required\":_vm.required,\"input-name\":_vm.inputId,\"show-help\":_vm.showHelp},on:{\"helpClicked\":function($event){return _vm.$emit('helpClicked')}}}),_c('validation-provider',{attrs:{\"rules\":_vm.VeeValidateRules,\"mode\":_vm.veeValidateMode,\"name\":_vm.validationProviderName},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors, classes, failedRules }){return [_c('div',{staticClass:\"input-group\"},[_c('datepicker',{ref:\"datepicker\",staticClass:\"form-control\",attrs:{\"format\":\"MM/dd/yyyy\",\"id\":_vm.inputId,\"placeholder\":_vm.placeholder,\"typeable\":true,\"required\":_vm.required,\"disabled-dates\":_vm.disabledDates,\"inputClass\":\"pl-2\",\"calendarClass\":_vm.displayCalendarTop ? 'calendar-top' : ''},on:{\"input\":_vm.handleChange},model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v},expression:\"internalValue\"}}),_c('button',{staticClass:\"input-group-append\",on:{\"click\":_vm.onIconClick}},[_c('span',{staticClass:\"input-group-text bg-white\",staticStyle:{\"height\":\"100%\"}},[_c('i',{staticClass:\"far fa-calendar-alt\"})])])],1),(errors[0])?_c('p',{staticClass:\"inline-error m-0\"},[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { memoize } from 'lodash'\n/**\n * Converts a time string into component parts [0]=hr [1]=min [2]=sec\n */\nexport function timeStringSplit(time: string) {\n let arr: number[] = []\n if (time) {\n arr = time.split(/[:\\s]/).map(function (item) {\n return parseInt(item)\n })\n return arr\n }\n return [NaN, NaN, NaN]\n}\n\n/**\n * Converts a time to milliseconds past midnight.\n *\n * @param {string} time - looks like \"8:00\" or \"12:00:11\" etc\n * @return {number} ms since midnight or NaN if not a time\n */\nexport const timeStringToMilliseconds = memoize(function (time: string) {\n let secs = 0\n let arr: number[] = []\n if (time) {\n arr = timeStringSplit(time)\n secs = (arr[0] * 3600 + arr[1] * 60 + (arr[2] === undefined ? 0 : arr[2])) * 1000\n\n return secs\n }\n return NaN\n})\n\n/**\n * Will return a time string padded for sorting.\n */\nexport function millisecondsToTimeString(ms: number) {\n const d = new Date(ms)\n return dateToTimeString(d)\n}\n\nexport function dateToTimeString(d: Date) {\n return `${d.getUTCHours().toString().padStart(2, '0')}:${d.getUTCMinutes().toString().padStart(2, '0')}`\n}\n\n/**\n * Looks at a string and returns if it looks valid or not.\n * @param time\n */\nexport function timeStringLooksValid(time: string | Date | undefined | null) {\n if (time) {\n if (time instanceof Date) {\n return true\n }\n return !isNaN(timeStringSplit(time)[0])\n }\n return false\n}\n\n/**\n * Creates a new date from the existing date with the time specified from the parameters.\n * @param hours\n * @param minutes\n * @param seconds\n */\nexport function getDateWithTime(\n date: string | Date | null,\n hours: number,\n minutes: number,\n seconds: number\n): Date | null {\n if (!date) {\n return null\n }\n if (date instanceof Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), hours, minutes, seconds)\n }\n date = new Date(date)\n return new Date(date.getFullYear(), date.getMonth(), date.getDate(), hours, minutes, seconds)\n}\n\n/**\n * Creates a new date from the existing date with the time specified from the parameters.\n * @param date\n */\nexport function convertDateTimeToUTC(date: string | Date | null): Date | null {\n if (!date) {\n return null\n }\n if (date instanceof Date) {\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n }\n date = new Date(date)\n return new Date(date.getTime() - date.getTimezoneOffset() * 60000)\n}\n\nexport function convertDateTimeToLocalTime(date: string | Date | null): Date | null {\n if (!date) {\n return null\n }\n if (date instanceof Date) {\n return new Date(date.getTime() + date.getTimezoneOffset() * 60000)\n }\n date = new Date(date)\n return new Date(date.getTime() + date.getTimezoneOffset() * 60000)\n}\n","\nimport uuid from 'uuid'\n\nimport InputLabel from '@/elements/InputLabel.vue'\nimport { Component, Vue, Watch, Prop } from 'vue-property-decorator'\nimport { ValidationProvider } from 'vee-validate'\nimport { VueConstructor } from 'vue'\n\n/// \nimport Datepicker from 'vuejs-datepicker'\nimport { getDateWithTime } from '@/utils/time/time'\n\n@Component({\n components: {\n InputLabel,\n ValidationProvider,\n Datepicker: Datepicker as unknown as VueConstructor,\n },\n})\nexport default class DateInput extends Vue {\n @Prop({ type: String, default: '', required: false })\n private readonly VeeValidateRules!: string\n\n @Prop({ type: String, default: 'aggressive', required: false })\n private readonly veeValidateMode!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly validationProviderName!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly required!: boolean\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly strictMode!: boolean\n\n @Prop({ type: String, default: '', required: false })\n private readonly label!: string\n\n @Prop({ type: String, default: '', required: false })\n private readonly placeholder!: string\n\n @Prop({ type: Boolean, default: false, required: false })\n private readonly showHelp!: boolean\n\n @Prop({ type: Boolean, default: false })\n private readonly displayCalendarTop!: boolean\n\n // prop: time\n // format = HH:mm:ss\n // The date component is really just for setting dates, but it carries with it the time the user\n // set the date. If you need the time to be something else, like the begining or end of the day,\n // use the time prop.\n @Prop({ type: String, default: '', required: false })\n private readonly time!: string\n\n @Prop({\n default: () => {\n const d = new Date()\n d.setDate(d.getDate() - 90)\n return d\n },\n required: false,\n })\n private readonly minDate!: Date | null\n\n @Prop({\n default: () => {\n const d = new Date()\n d.setDate(d.getDate() + 730)\n return d\n },\n required: false,\n })\n private readonly maxDate!: Date | null\n\n @Prop({ required: true })\n private readonly value!: Date | string | null\n\n private internalValue: Date | null = null\n private inputId = ''\n private once = false\n\n private created() {\n this.setInternalValue()\n this.inputId = 'datepicker-' + uuid.v4()\n }\n\n private get disabledDates() {\n const minDate = this.minDate\n\n if (minDate) {\n minDate.setDate(minDate.getDate() - 1)\n }\n\n return {\n to: minDate,\n from: this.maxDate,\n }\n }\n\n private onIconClick() {\n const input = (this.$refs.datepicker as Vue).$el.querySelectorAll('input')[0]\n input.click()\n input.focus()\n }\n\n private setInternalValue() {\n if (!this.value) {\n this.internalValue = null\n } else if (typeof this.value === 'string') {\n this.internalValue = new Date(this.value)\n } else {\n this.internalValue = this.value\n }\n }\n\n private handleChange() {\n if (this.time && this.internalValue) {\n this.internalValue = this.setTime(this.internalValue)\n }\n this.$emit('input', this.internalValue)\n }\n\n private setTime(date: Date) {\n if (this.time && date) {\n const parts = this.time.split(':')\n return getDateWithTime(date, Number(parts[0]), Number(parts[1]), Number(parts[2]))\n }\n return date\n }\n\n @Watch('value', { immediate: true })\n private onValueChanged() {\n this.setInternalValue()\n if (this.time && !this.once) {\n this.handleChange()\n this.once = true\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DateInput.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./DateInput.vue?vue&type=template&id=96bd918a&scoped=true\"\nimport script from \"./DateInput.vue?vue&type=script&lang=ts\"\nexport * from \"./DateInput.vue?vue&type=script&lang=ts\"\nimport style0 from \"./DateInput.vue?vue&type=style&index=0&id=96bd918a&prod&scoped=true&lang=css\"\nimport style1 from \"./DateInput.vue?vue&type=style&index=1&id=96bd918a&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"96bd918a\",\n null\n \n)\n\nexport default component.exports","export function convertToOldFashionDateTime(fullDate: Date, hours: number, minutes: number, seconds: number) {\n const dt = new Date(fullDate)\n const y = dt.getFullYear()\n const d = ('0' + dt.getDate().toString()).slice(-2)\n const m = ('0' + (dt.getMonth() + 1).toString()).slice(-2)\n return `${y}-${m}-${d}T${hours}:${minutes}:${seconds}`\n}\n","\nimport { Getter } from 'vuex-class'\nimport { Component, Vue, Ref, Prop, Watch } from 'vue-property-decorator'\nimport { cloneDeep } from 'lodash'\n\nimport HtmlEditor from '@/elements/HtmlEditor2.vue'\nimport DateInput from '@/elements/DateInput.vue'\nimport Loading from '@/elements/Loading.vue'\nimport Alert from '@/elements/Alert/Alert.vue'\nimport VeeValidateForm from '@/elements/VeeValidateForm.vue'\nimport { AlertStatusEnum, TeamAlertOptions } from '@/elements/Alert/data'\nimport StylableSelectInput, { SelectConfig } from '@/elements/StylableSelectInput.vue'\n\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { LeagueProgramInfo } from 'src/GeneratedTypes/ListInfo/LeagueProgramInfo'\nimport { LeagueDivisionInfo } from '@/GeneratedTypes/ListInfo/LeagueDivisionInfo'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { getEmptyTeamPageAlertInfo } from '@/modelHelpers/AlertInfo'\nimport { TeamPageAlertInfo } from '@/GeneratedTypes/ListInfo/TeamPageAlertInfo'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\n\nimport * as programStore from '@/store/programs'\nimport * as divisionStore from '@/store/divisions'\nimport * as teamStore from '@/store/team'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as authorization from '@/store/authorization'\n\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport alertClient from '@/clients/alertClient'\nimport programClient from '@/clients/programsClient'\n\nimport { convertToOldFashionDateTime } from '@/utils/convertToOldFashionDateTime'\n\ninterface ProgramSelectInputOption {\n optionText: string\n optionValue: string | null\n}\n\ninterface DivisionSelectInputOption {\n optionText: string\n optionValue: number\n}\n\ninterface TeamSelectInputOption {\n optionText: string\n optionValue: string | null\n}\n\n@Component({\n components: {\n HtmlEditor,\n DateInput,\n Loading,\n Alert,\n VeeValidateForm,\n StylableSelectInput,\n },\n})\nexport default class TeamAlert extends Vue {\n @Ref('alertForm') readonly alertForm!: HTMLFormElement\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private currentProgram!: LeagueInfoCondensed\n\n @Prop({ type: Object, default: getEmptyTeamPageAlertInfo, required: false })\n readonly alert!: TeamPageAlertInfo\n\n @Getter(divisionStore.getterNames.allItems, { namespace: divisionStore.namespace })\n readonly allDivisions!: LeagueDivisionInfo[]\n\n @Getter(teamStore.getterNames.teams, { namespace: teamStore.namespace })\n readonly allTeams!: DivisionTeamInfo[]\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: RoleUnion\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n private isLoading = false\n private isClearing = false\n private isSaving = false\n private alertIds: number[] = []\n private programs: LeagueProgramInfo[] | null = [] as LeagueProgramInfo[]\n private alertOption = TeamAlertOptions.get('default')\n\n private selectedProgram: ProgramSelectInputOption | null = null\n\n private programDivisions: LeagueDivisionInfo[] | null = [] as LeagueDivisionInfo[]\n private selectedDivision: DivisionSelectInputOption | null = null\n\n private divisionTeams: DivisionTeamInfo[] | null = [] as DivisionTeamInfo[]\n private selectedTeam: TeamSelectInputOption | null = null\n\n private selectConfig: SelectConfig = {\n bgColor: 'white',\n color: 'black',\n borderColor: '#3e3e3e',\n placeholderColor: 'white',\n highlightBgColor: '#3e3e3e',\n highlightColor: 'white',\n }\n\n private internalAlert = cloneDeep(this.alert)\n\n private async mounted() {\n await this.loadData()\n if (this.isCoach) {\n this.selectedProgram = this.programOptions[0]\n this.selectedDivision = this.divisionOptions[0]\n this.selectedTeam = this.teamOptions[0]\n this.internalAlert.typeProgramID = this.selectedProgram.optionValue\n this.internalAlert.divisionID = this.selectedDivision.optionValue\n this.internalAlert.upwardTeamID = this.selectedTeam.optionValue\n } else {\n if (this.alert.id == 0) {\n if (this.programOptions.length == 1) {\n this.selectedProgram = this.programOptions[0]\n } else {\n this.selectedProgram = this.blankProgramOption\n }\n this.selectedDivision = this.blankDivisionOption\n this.selectedTeam = this.blankTeamOption\n } else {\n this.selectedProgram =\n this.alert.typeProgramID != 'NONE'\n ? {\n optionText: this.programTypeDescription(this.alert.typeProgramID) ?? '',\n optionValue: this.alert.typeProgramID,\n }\n : this.blankProgramOption\n this.selectedDivision =\n this.alert.divisionID != 0\n ? {\n optionText: this.alert.divisionName ?? '',\n optionValue: this.alert.divisionID,\n }\n : this.blankDivisionOption\n this.selectedTeam =\n this.alert.teamID > 0\n ? {\n optionText: this.alert.teamName ?? '',\n optionValue: this.alert.upwardTeamID,\n }\n : this.blankTeamOption\n }\n }\n }\n private async loadData() {\n this.isLoading = true\n await this.retrievePrograms()\n this.setAlertOption()\n this.isLoading = false\n }\n\n private async retrievePrograms() {\n if (!this.currentProgram) return\n const result = await programClient.retrieve(this.currentProgram.upwardLeagueID || '')\n if (result?.myLeagueInfo?.programs) {\n this.programs = result.myLeagueInfo?.programs\n }\n }\n\n private get currentAlertStatus(): string {\n if (!this.alert.startDate || !this.alert.expireDate || this.alert.id === 0) {\n return AlertStatusEnum.default\n }\n const startDate = new Date(this.alert.startDate).setHours(0, 0, 0, 0)\n const expireDate = new Date(this.alert.expireDate).setHours(0, 0, 0, 0)\n const today = new Date().setHours(0, 0, 0, 0)\n if (startDate <= today && expireDate >= today) return AlertStatusEnum.info\n if (startDate > today) return AlertStatusEnum.warning\n if (expireDate < today) return AlertStatusEnum.danger\n return AlertStatusEnum.default\n }\n\n private setAlertOption() {\n this.alertOption = TeamAlertOptions.get(this.currentAlertStatus)\n }\n\n private get showAlertStatus() {\n return this.currentAlertStatus != AlertStatusEnum.default\n }\n\n private async formIsValid() {\n const isValid = await this.alertForm.reportValidity()\n if (!isValid) {\n this.moveTo('page_top')\n }\n return isValid\n }\n\n private moveTo(id: string) {\n Vue.nextTick(() => {\n const elem = document.getElementById(id)\n if (elem) elem.scrollIntoView()\n })\n }\n\n private async save() {\n if (await this.formIsValid()) {\n if (!this.currentProgram || !this.programs || !this.internalAlert.expireDate) return\n this.upsertAlert()\n }\n }\n\n private async upsertAlert() {\n // See comment at the top of this component\n const upwId = this.currentProgram.upwardLeagueID ?? ''\n const alert = this.dealWithLocalTime()\n try {\n this.isSaving = true\n await alertClient.save(upwId, alert)\n //await this.retrieveAlert()\n this.setAlertOption()\n this.$emit('saved')\n } finally {\n this.isSaving = false\n }\n }\n\n private get programList(): string[] {\n if (!this.programs) return []\n return this.programs.map((p) => p.typeProgramID ?? '')\n }\n\n private async clear() {\n this.isClearing = true\n await alertClient.remove(this.alert.id)\n this.$emit('saved')\n this.isClearing = false\n }\n\n private dealWithLocalTime() {\n // deal with local vs UTC time\n const newAlert = cloneDeep(this.internalAlert)\n //@ts-ignore\n newAlert.startDate = convertToOldFashionDateTime(this.internalAlert.startDate, '00', '00', '00')\n //@ts-ignore\n newAlert.expireDate = convertToOldFashionDateTime(this.internalAlert.expireDate, '23', '59', '59')\n\n return newAlert\n }\n\n private get isCoach() {\n return this.currentRole.roleId == VolunteerRoles.COACH\n }\n\n private programTypeDescription(typeProgramID: string | null): string | null {\n const allprograms = cloneDeep(this.allProgramTypes)\n const prog = allprograms.find((p) => p.upwardTypeID == typeProgramID)\n return prog ? prog.shortDescription : ''\n }\n\n private get programOptions(): ProgramSelectInputOption[] {\n if (this.isCoach) {\n return [\n {\n optionText: this.programTypeDescription(this.currentTeam.typeProgramID) ?? '',\n optionValue: this.currentTeam.typeProgramID,\n },\n ]\n } else {\n if (this.programs) {\n if (this.programs.length == 1) {\n const p = this.programs[0]\n return [\n {\n optionText: this.programTypeDescription(p.typeProgramID) ?? '',\n optionValue: p.typeProgramID,\n },\n ]\n } else {\n const retval = [this.blankProgramOption]\n const progs =\n this.programs?.map((p) => {\n return {\n optionText: this.programTypeDescription(p.typeProgramID) ?? '',\n optionValue: p.typeProgramID,\n } as ProgramSelectInputOption\n }) ?? []\n\n retval.push(...progs)\n return retval\n }\n } else {\n return []\n }\n }\n }\n\n private get blankProgramOption(): ProgramSelectInputOption {\n return {\n optionText:\n this.programs && this.programs.length > 0\n ? `Both ${this.programTypeDescription(this.programs[0].typeProgramID)} and Cheer`\n : '?All?',\n optionValue: 'NONE',\n }\n }\n\n private get divisionOptions(): DivisionSelectInputOption[] {\n if (this.isCoach) {\n return [\n {\n optionText: this.currentTeam.divisionName ?? '',\n optionValue: this.currentTeam.divisionID,\n },\n ]\n } else {\n const retval = [this.blankDivisionOption]\n const divs =\n this.programDivisions?.map((p) => {\n return {\n optionText: p.divisionName ?? '',\n optionValue: p.divisionID,\n }\n }) ?? []\n\n retval.push(...divs)\n\n return retval\n }\n }\n\n private get blankDivisionOption(): DivisionSelectInputOption {\n return {\n optionText: 'All Divisions',\n optionValue: 0,\n }\n }\n\n private get teamOptions(): TeamSelectInputOption[] {\n if (this.isCoach) {\n return [\n {\n optionText: this.currentTeam.teamName ?? '',\n optionValue: this.currentTeam.upwardTeamID,\n },\n ]\n } else {\n const retval = [this.blankTeamOption]\n const teams =\n this.divisionTeams?.map((p) => {\n return {\n optionText: p.teamName ?? '',\n optionValue: p.upwardTeamID ?? '',\n }\n }) ?? []\n\n retval.push(...teams)\n\n return retval\n }\n }\n\n private get blankTeamOption(): TeamSelectInputOption {\n return {\n optionText: 'All Teams',\n optionValue: 'N/A',\n }\n }\n\n private setProgram(item: ProgramSelectInputOption) {\n this.selectedProgram = item\n }\n\n private setDivision(item: DivisionSelectInputOption) {\n this.selectedDivision = item\n }\n\n private setTeam(item: TeamSelectInputOption) {\n this.selectedTeam = item\n }\n\n private nullNA(val: string | null) {\n return val == 'N/A' ? null : val\n }\n\n @Watch('selectedProgram')\n private onProgramChanged() {\n if (!this.isCoach) {\n if (this.selectedProgram != null && this.selectedProgram.optionValue != 'NONE') {\n this.programDivisions = this.allDivisions.filter(\n (x) => x.typeProgramID == this.selectedProgram?.optionValue\n )\n } else {\n this.programDivisions = []\n }\n\n if (this.internalAlert.typeProgramID != this.selectedProgram?.optionValue) {\n this.selectedDivision = this.blankDivisionOption\n this.internalAlert.typeProgramID = this.selectedProgram?.optionValue ?? 'NONE'\n }\n }\n }\n\n @Watch('selectedDivision')\n private onDivisionChanged() {\n if (!this.isCoach) {\n if (this.selectedDivision != null && this.selectedDivision.optionValue > 0) {\n this.divisionTeams = this.allTeams.filter(\n (x) =>\n x.typeProgramID == this.selectedProgram?.optionValue &&\n x.divisionID == this.selectedDivision?.optionValue\n )\n } else {\n this.divisionTeams = []\n }\n\n if (this.internalAlert.divisionID != (this.selectedDivision?.optionValue ?? 0)) {\n this.selectedTeam = this.blankTeamOption\n this.internalAlert.divisionID = this.selectedDivision?.optionValue ?? 0\n }\n }\n }\n\n @Watch('selectedTeam')\n private onTeamChanged() {\n if (!this.isCoach) {\n if (this.internalAlert.upwardTeamID != this.nullNA(this.selectedTeam?.optionValue ?? null)) {\n this.internalAlert.upwardTeamID = this.nullNA(this.selectedTeam?.optionValue ?? null)\n }\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAlert.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAlert.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TeamAlert.vue?vue&type=template&id=b6cf5df4\"\nimport script from \"./TeamAlert.vue?vue&type=script&lang=ts\"\nexport * from \"./TeamAlert.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\nimport { Vue, Component } from 'vue-property-decorator'\nimport { Getter, Action, Mutation } from 'vuex-class'\nimport { cloneDeep } from 'lodash'\nimport dayjs from 'dayjs'\n\nimport * as authorization from '@/store/authorization'\nimport * as auth from '@/store/authentication'\nimport * as programStore from '@/store/programs'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport * as divisionStore from '@/store/divisions'\nimport * as teamStore from '@/store/team'\n\nimport alertClient from '@/clients/alertClient'\nimport teamClient from '@/clients/teamClient'\n\nimport Loading from '@/elements/Loading.vue'\nimport Accordion from '@/components/Accordion.vue'\nimport AccordionItem from '@/components/AccordionItem.vue'\nimport TeamAlert from '@/views/TeamAlert.vue'\n\nimport { RoleUnion } from '@/common/Authorization/RoleUnion'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { UpwardLeagueTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardLeagueTypeID'\nimport { TeamPageAlertInfo } from '@/GeneratedTypes/ListInfo/TeamPageAlertInfo'\nimport { DivisionTeamInfo } from '@/GeneratedTypes/ListInfo/DivisionTeamInfo'\nimport { DivisionTeamInfoExt } from '@/models/DivisionTeamInfoExt'\nimport { LeagueDivisionInfo } from '@/GeneratedTypes/ListInfo/LeagueDivisionInfo'\nimport { UpwardProgramTypeID } from '@/GeneratedTypes/UpwardTypes/UpwardProgramTypeID'\nimport { getEmptyTeamPageAlertInfo } from '@/modelHelpers/AlertInfo'\n\ninterface Taxonomy {\n alertID: number\n title: string\n subTitle: string\n visibility: string\n message: string\n isActive: boolean\n isPast: boolean\n isFuture: boolean\n alertInfo: TeamPageAlertInfo\n}\n\n@Component({\n components: {\n Loading,\n Accordion,\n AccordionItem,\n TeamAlert,\n },\n})\nexport default class TeamAlertList extends Vue {\n @Getter(authorization.getterNames.currentRole, { namespace: authorization.namespace })\n private readonly currentRole!: RoleUnion\n\n @Getter(programStore.getterNames.currentProgram, { namespace: programStore.namespace })\n private readonly currentProgram!: LeagueInfoCondensed\n\n @Getter(teamStore.getterNames.currentTeam, { namespace: teamStore.namespace })\n private readonly currentTeam!: DivisionTeamInfoExt\n\n @Getter(auth.getterNames.email, { namespace: auth.namespace })\n private readonly email!: string\n\n @Getter(auth.getterNames.firstAccountNumber, { namespace: auth.namespace })\n private readonly firstAccountNumber!: string\n\n @Action(upwardTypesStore.actionNames.fetchLeagueTypes, { namespace: upwardTypesStore.namespace })\n private fetchLeagueTypes!: ({ force }: { force: boolean }) => Promise\n\n @Getter(upwardTypesStore.getterNames.leagueTypes, { namespace: upwardTypesStore.namespace })\n private readonly leagueTypes!: UpwardLeagueTypeID[]\n\n @Action(upwardTypesStore.actionNames.fetchProgramTypes, { namespace: upwardTypesStore.namespace })\n private fetchProgramTypes!: ({ force }: { force: boolean }) => Promise\n\n @Getter(upwardTypesStore.getterNames.programTypes, { namespace: upwardTypesStore.namespace })\n readonly allProgramTypes!: UpwardProgramTypeID[]\n\n @Action(divisionStore.actionNames.fetchAll, { namespace: divisionStore.namespace })\n private fetchAllDivisions!: ({ upwardLeagueId }: { upwardLeagueId: string }) => Promise\n\n @Getter(divisionStore.getterNames.allItems, { namespace: divisionStore.namespace })\n readonly allDivisions!: LeagueDivisionInfo[]\n\n @Mutation(teamStore.mutationNames.setTeams, { namespace: teamStore.namespace })\n private setTeams!: ({ teams }: { teams: DivisionTeamInfo[] }) => void\n\n private loading = false\n private alerts: TeamPageAlertInfo[] = []\n\n private async mounted() {\n try {\n this.loading = true\n await this.fetchDivisions()\n await this.fetchTeams()\n await this.fetchProgramTypes({ force: false })\n await this.fetchLeagueTypes({ force: false })\n await this.fetchAlerts()\n } finally {\n this.loading = false\n }\n }\n\n private async fetchAlerts() {\n this.alerts = []\n\n if (!this.currentRole || !this.currentRole.roleId || !this.currentProgram) {\n return\n }\n\n this.alerts = (await alertClient.retrieve(this.currentProgram.upwardLeagueID ?? '')) ?? []\n }\n\n private async fetchDivisions() {\n if (\n !this.currentRole ||\n !this.currentRole.roleId ||\n this.currentRole.roleId == VolunteerRoles.COACH ||\n !this.currentProgram\n ) {\n return\n }\n\n await this.fetchAllDivisions({ upwardLeagueId: this.currentProgram.upwardLeagueID ?? '' })\n }\n\n private async fetchTeams() {\n if (\n !this.currentRole ||\n !this.currentRole.roleId ||\n this.currentRole.roleId == VolunteerRoles.COACH ||\n !this.currentProgram\n ) {\n return\n }\n\n const teams = await teamClient.retrieveLeagueTeamList({ upwId: this.currentProgram.upwardLeagueID ?? '' })\n this.setTeams({ teams: teams })\n }\n\n private allAlertTaxonomies() {\n return this.alerts\n .filter((f) => f.message && f.message.trim())\n .map((a) => {\n return this.createTaxonomy(a)\n })\n }\n\n private coachAlertTaxonomies() {\n return this.alerts\n .filter((f) => f.message && f.message.trim() && f.upwardTeamID == this.currentTeam.upwardTeamID)\n .map((a) => {\n return this.createTaxonomy(a)\n })\n }\n\n private createTaxonomy(a: TeamPageAlertInfo): Taxonomy {\n const isActive = dayjs().isAfter(a.startDate) && dayjs().isBefore(a.expireDate)\n const isPast = dayjs().isAfter(a.expireDate)\n const isFuture = dayjs().isBefore(a.startDate)\n return {\n alertID: a.id,\n title: a.message?.replace(/

/g, '').replace(/<\\/p>/g, '') ?? '',\n subTitle: a.teamName\n ? `Intended for Team: ${a.teamName}`\n : a.divisionName\n ? `Intended for Division: ${a.divisionName}`\n : `Intended for ${this.programTypeDescription(a.typeProgramID) ?? 'Everyone'}`,\n visibility: isActive\n ? `Currently showing. Expires on ${this.formattedDate(a.expireDate)}`\n : isPast\n ? `Expired on ${this.formattedDate(a.expireDate)}`\n : `Becomes visible on ${this.formattedDate(a.startDate)}`,\n message: a.message ?? '',\n isActive: isActive,\n isPast: isPast,\n isFuture: isFuture,\n alertInfo: a,\n }\n }\n\n private get taxonomies() {\n const addNew = {\n alertID: -1,\n title: 'Add New Team Alert',\n subTitle: '',\n visibility: '',\n message: '',\n isActive: false,\n isPast: false,\n isFuture: false,\n alertInfo: getEmptyTeamPageAlertInfo(),\n } as Taxonomy\n const retval = [addNew]\n if (this.currentRole.roleId == VolunteerRoles.COACH) {\n retval.push(...this.coachAlertTaxonomies())\n } else {\n retval.push(...this.allAlertTaxonomies())\n }\n\n return retval\n }\n\n private programTypeDescription(typeProgramID: string | null): string | null {\n const allprograms = cloneDeep(this.allProgramTypes)\n const prog = allprograms.find((p) => p.upwardTypeID == typeProgramID)\n return prog ? prog.shortDescription : null\n }\n\n private formattedDate(d: Date | null) {\n return dayjs(d).format('MMM DD')\n }\n\n private async onAlertSaved() {\n try {\n this.loading = true\n await this.fetchAlerts()\n } finally {\n this.loading = false\n }\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAlertList.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TeamAlertList.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./TeamAlertList.vue?vue&type=template&id=44dcf898&scoped=true\"\nimport script from \"./TeamAlertList.vue?vue&type=script&lang=ts\"\nexport * from \"./TeamAlertList.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TeamAlertList.vue?vue&type=style&index=0&id=44dcf898&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44dcf898\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\nimport Message from '@/views/Message/Message.vue'\nimport TeamAlertList from '@/views/TeamAlertList.vue'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nexport default [\n {\n path: 'individual/:channel',\n name: 'Individual',\n meta: {\n guard: {\n allowIfAny: [\n VolunteerRoles.COACH,\n VolunteerRoles.CHEER_DIRECTOR,\n VolunteerRoles.COACH_COMMISSIONER,\n VolunteerRoles.REFEREE_COMMISSIONER,\n ...superUsers,\n ],\n },\n },\n component: Message,\n },\n {\n path: 'team',\n name: 'Team',\n meta: {\n title: 'Team',\n guard: { allowIfAny: [VolunteerRoles.COACH, ...superUsers] },\n },\n component: TeamAlertList,\n },\n] as RouteConfig[]\n","import { Vue, Component } from 'vue-property-decorator'\nimport Router from 'vue-router'\nimport Home from '@/views/Home.vue'\nimport Communication from '@/views/Communication.vue'\nimport Player from '@/views/Player.vue'\nimport Team from '@/views/Team.vue'\nimport TeamManage from '@/views/TeamManage.vue'\nimport Coach from '@/views/Coach.vue'\nimport InstallOption from '@/views/InstallOption.vue'\nimport DefaultError from '@/views/DefaultError.vue'\nimport ForgotPassword from '@/views/ForgotPassword.vue'\nimport Resources from '@/views/Resources.vue'\nimport PracticeResources from '@/views/PracticeResources/PracticeResources.vue'\nimport MinistryResources from '@/views/PracticeResources/MinistryResources.vue'\nimport CheerResources from '@/views/PracticeResources/CheerResources.vue'\nimport SelectResources from '@/views/PracticeResources/SelectResources.vue'\nimport Search from '@/views/Search.vue'\nimport Programs from '@/views/Programs.vue'\nimport GettingStarted from '@/views/GettingStarted.vue'\nimport GameDay from '@/views/GameDay.vue'\nimport Impersonate from '@/views/Account/Impersonate/Impersonate.vue'\nimport RefereeSchedule from '@/views/RefereeSchedule.vue'\nimport Profile from '@/views/Account/Profile.vue'\nimport Password from '@/views/Account/Password.vue'\nimport Account from '@/views/Account/Account.vue'\n\nimport { MainMenu, MainMenuEnum } from '@/common/MainMenuItems'\nimport { RouterItems, RouterItemsEnum } from '@/common/RouterItems'\nimport { superUsers } from '@/common/Authorization/AccountRoles'\n\nimport practiceResourcesRoutes from '@/router/practiceResources'\nimport ministryResourcesRoutes from '@/router/ministryResources'\nimport cheerResourcesRoutes from '@/router/cheerResources'\nimport selectResourcesRoutes from '@/router/selectResources'\nimport gameRoute from '@/router/game'\nimport gameDayRoutes from '@/router/gameDay'\nimport communicationRoutes from '@/router/communication'\nimport startDistributionRoutes from '@/router/startDistribution'\nimport { VolunteerRoles } from '@/common/Authorization/VolunteerRoles'\n\nVue.use(Router)\n\nexport interface RouteMeta {\n isPublic: boolean\n isHome: boolean\n}\n\n@Component\nexport class RouteMetaMixin extends Vue {\n // This allows components while in the context of nested routes to see the aggregate meta,\n // which should just be the root level route.\n protected get currentRouteMeta() {\n return {\n isPublic: this.$route.matched.some((r) => (r.meta as RouteMeta).isPublic),\n } as RouteMeta\n }\n}\n\nconst router = new Router({\n mode: 'history',\n base: process.env.BASE_URL,\n routes: [\n {\n path: '/',\n name: 'Root',\n },\n {\n path: '/forgot-password',\n name: 'ForgotPassword',\n component: ForgotPassword,\n meta: {\n isPublic: true,\n },\n },\n {\n path: '/expired-password',\n name: 'ExpiredPassword',\n component: ForgotPassword,\n meta: {\n isPublic: true,\n },\n },\n {\n path: '/locked-account',\n name: 'LockedAccount',\n component: ForgotPassword,\n meta: {\n isPublic: true,\n },\n },\n {\n path: '/403',\n name: 'error',\n component: DefaultError,\n },\n {\n path: '/programs',\n name: 'Programs',\n component: Programs,\n },\n {\n path: '/account',\n name: 'Account',\n children: [\n {\n path: RouterItems[RouterItemsEnum.PROFILE].route,\n name: RouterItems[RouterItemsEnum.PROFILE].name,\n component: Profile,\n },\n {\n path: RouterItems[RouterItemsEnum.PASSWORD].route,\n name: RouterItems[RouterItemsEnum.PASSWORD].name,\n component: Password,\n },\n ],\n component: Account,\n },\n {\n path: '/account/impersonate',\n name: 'Impersonate',\n component: Impersonate,\n },\n\n {\n path: RouterItems[RouterItemsEnum.HOME].route,\n name: RouterItems[RouterItemsEnum.HOME].name,\n component: Home,\n },\n {\n path: RouterItems[RouterItemsEnum.SEARCH].route,\n name: RouterItems[RouterItemsEnum.SEARCH].name,\n component: Search,\n },\n {\n path: MainMenu[MainMenuEnum.INSTALL].route,\n name: MainMenu[MainMenuEnum.INSTALL].name,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.INSTALL].allowIfAnyRoles },\n },\n component: InstallOption,\n },\n {\n path: MainMenu[MainMenuEnum.COMMUNICATION].route,\n name: MainMenu[MainMenuEnum.COMMUNICATION].name,\n children: communicationRoutes,\n meta: {\n guard: {\n allowIfAny: [...MainMenu[MainMenuEnum.COMMUNICATION].allowIfAnyRoles!, VolunteerRoles.COACH],\n },\n },\n component: Communication,\n },\n {\n path: MainMenu[MainMenuEnum.RESOURCES].route,\n name: MainMenu[MainMenuEnum.RESOURCES].name,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.RESOURCES].allowIfAnyRoles },\n },\n component: Resources,\n },\n {\n path: MainMenu[MainMenuEnum.PRACTICE_RESOURCES].route,\n name: MainMenu[MainMenuEnum.PRACTICE_RESOURCES].name,\n children: practiceResourcesRoutes,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.PRACTICE_RESOURCES].allowIfAnyRoles },\n },\n component: PracticeResources,\n },\n {\n path: MainMenu[MainMenuEnum.MINISTRY_RESOURCES].route,\n name: MainMenu[MainMenuEnum.MINISTRY_RESOURCES].name,\n children: ministryResourcesRoutes,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.MINISTRY_RESOURCES].allowIfAnyRoles },\n },\n component: MinistryResources,\n },\n {\n path: MainMenu[MainMenuEnum.CHEER_PRACTICE_RESOURCES].route,\n name: MainMenu[MainMenuEnum.CHEER_PRACTICE_RESOURCES].name,\n children: cheerResourcesRoutes,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.CHEER_PRACTICE_RESOURCES].allowIfAnyRoles },\n },\n component: CheerResources,\n },\n {\n path: MainMenu[MainMenuEnum.SELECT_PRACTICE_RESOURCES].route,\n name: MainMenu[MainMenuEnum.SELECT_PRACTICE_RESOURCES].name,\n children: selectResourcesRoutes,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.SELECT_PRACTICE_RESOURCES].allowIfAnyRoles },\n },\n component: SelectResources,\n },\n {\n path: MainMenu[MainMenuEnum.REFEREE_SCHEDULE].route,\n name: MainMenu[MainMenuEnum.REFEREE_SCHEDULE].name,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.REFEREE_SCHEDULE].allowIfAnyRoles },\n },\n component: RefereeSchedule,\n },\n {\n path: RouterItems[RouterItemsEnum.PLAYER].route,\n name: RouterItems[RouterItemsEnum.PLAYER].name,\n meta: {\n guard: { allowIfAny: [...superUsers, VolunteerRoles.COACH] },\n },\n component: Player,\n },\n {\n path: RouterItems[RouterItemsEnum.COACH].route,\n name: RouterItems[RouterItemsEnum.COACH].name,\n meta: {\n guard: { allowIfAny: superUsers },\n },\n component: Coach,\n },\n {\n path: MainMenu[MainMenuEnum.MANAGE_TEAM].route,\n name: MainMenu[MainMenuEnum.MANAGE_TEAM].name,\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.MANAGE_TEAM].allowIfAnyRoles },\n },\n component: TeamManage,\n },\n {\n path: RouterItems[RouterItemsEnum.TEAM].route,\n name: RouterItems[RouterItemsEnum.TEAM].name,\n meta: {\n guard: { allowIfAny: superUsers },\n },\n component: Team,\n },\n {\n path: MainMenu[MainMenuEnum.GAMEDAY].route,\n name: MainMenu[MainMenuEnum.GAMEDAY].name,\n redirect: `${MainMenu[MainMenuEnum.GAMEDAY].route}/${MainMenu[MainMenuEnum.GAMEDAY].defaultChildRoute}`,\n children: [...gameRoute('gameday'), ...gameDayRoutes, ...startDistributionRoutes],\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.GAMEDAY].allowIfAnyRoles },\n },\n component: GameDay,\n },\n {\n path: MainMenu[MainMenuEnum.STAR_DISTRIBUTION].route,\n name: MainMenu[MainMenuEnum.STAR_DISTRIBUTION].name,\n redirect: `${MainMenu[MainMenuEnum.STAR_DISTRIBUTION].route}/${\n MainMenu[MainMenuEnum.STAR_DISTRIBUTION].defaultChildRoute\n }`,\n children: [...gameRoute('startdistribution'), ...startDistributionRoutes],\n meta: {\n guard: { allowIfAny: MainMenu[MainMenuEnum.STAR_DISTRIBUTION].allowIfAnyRoles },\n },\n component: GameDay,\n },\n {\n path: RouterItems[RouterItemsEnum.START].route,\n name: RouterItems[RouterItemsEnum.START].name,\n component: GettingStarted,\n },\n ],\n})\n\nexport default router\n","// Used to detect when a service worker recognizes a change\n// in the application, then reloads the app\n\nimport { Component, Vue } from 'vue-property-decorator'\n@Component\nexport class SWRefreshMixin extends Vue {\n private refreshing = false\n private registration = null\n protected updateExists = false\n\n created() {\n // Listen for our custom event from the SW registration\n document.addEventListener('swUpdated', this.updateAvailable, { once: true })\n\n if (navigator && navigator.serviceWorker) {\n // Prevent multiple refreshes\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n console.log('controllerchange triggered')\n if (this.refreshing) return\n this.refreshing = true\n // Here the actual reload of the page occurs\n window.location.reload()\n })\n }\n }\n\n // Store the SW registration so we can send it a message\n // We use `updateExists` to control whatever alert, toast, dialog, etc we want to use\n // To alert the user there is an update they need to refresh for\n protected updateAvailable(event: any) {\n console.log('updateAvailable')\n this.registration = event.detail\n this.updateExists = true\n }\n\n // Called when the user accepts the update\n protected refreshApp() {\n console.log('refreshApp')\n this.updateExists = false\n // Make sure we only send a 'skip waiting' message if the SW is waiting\n //@ts-ignore\n if (!this.registration || !this.registration.waiting) return\n // send message to SW to skip the waiting and activate the new SW\n //@ts-ignore\n this.registration.waiting.postMessage({ type: 'SKIP_WAITING' })\n }\n}\n","\nimport '@/css'\nimport Loading from '@/elements/Loading.vue'\nimport Toaster, { AlertTypeEnum } from '@/components/Toaster.vue'\nimport TheErrorRenderer from '@/singletons/TheErrorRenderer.vue'\nimport TheSidebar from '@/singletons/TheSidebar.vue'\nimport TheHeader from '@/singletons/TheHeader.vue'\nimport TheFooter from '@/singletons/TheFooter.vue'\nimport FullBody from '@/components/FullBody.vue'\nimport TheAuthWall from '@/singletons/TheAuthWall.vue'\nimport PwaInstallPrompt from '@/components/PwaInstallPrompt.vue'\nimport { LeagueInfoCondensed } from '@/models/Program/LeagueInfoCondensed'\nimport { Mixins, Component, Watch } from 'vue-property-decorator'\nimport { Action, Getter, Mutation } from 'vuex-class'\nimport { RouteMetaMixin } from '@/router/'\nimport { SWRefreshMixin } from '@/common/SWRefreshMixin'\nimport * as programStore from '@/store/programs'\nimport * as errors from '@/store/errors'\nimport * as auth from '@/store/authentication'\nimport * as root from '@/store/index'\nimport * as lineupStore from '@/store/lineup'\nimport * as upwardTypesStore from '@/store/upwardTypes'\nimport { convertToRestServiceResult, convertToVerificationDetails } from '@/services/restService'\nimport { UpwardExceptionResult, UpwardError } from '@/models/UpwardExceptionResult'\nimport { UpwardVerificationDetails } from '@/models/UpwardVerificationDetails'\nimport { adminUsers } from '@/common/Authorization/AccountRoles'\nimport { logoutUser } from '@/common/Authentication/logoutUser'\n\n@Component({\n components: {\n Loading,\n Toaster,\n FullBody,\n TheSidebar,\n TheFooter,\n TheHeader,\n TheErrorRenderer,\n PwaInstallPrompt,\n TheAuthWall,\n },\n})\nexport default class App extends Mixins(RouteMetaMixin, SWRefreshMixin) {\n @Getter(auth.getterNames.isAuthenticated, { namespace: auth.namespace })\n private isAuthenticated!: boolean\n\n @Getter(auth.getterNames.refreshTime, { namespace: auth.namespace })\n private refreshTime!: Date | null\n\n @Getter(root.getterNames.now)\n private now!: Date\n\n @Getter(root.getterNames.userInactiveMS)\n private userInactiveMS!: number\n\n @Action(root.actionNames.startTimekeeping)\n private startTimekeeping!: () => void\n\n @Mutation(root.mutationNames.updateUserLastSeen)\n private updateUserLastSeen!: () => void\n\n @Action(auth.actionNames.tryLoadSavedToken, { namespace: auth.namespace })\n private tryLoadSavedToken!: () => void\n\n @Action(auth.actionNames.refreshToken, { namespace: auth.namespace })\n private refreshToken!: () => void\n\n @Mutation(lineupStore.mutationNames.clearOldLineups, { namespace: lineupStore.namespace })\n private clearOldLineups!: () => void\n\n @Mutation(lineupStore.mutationNames.clearAllLineups, { namespace: lineupStore.namespace })\n private clearAllLineups!: () => void\n\n @Getter(programStore.getterNames.programs, { namespace: programStore.namespace })\n private programs!: LeagueInfoCondensed[]\n\n @Getter(programStore.getterNames.currentProgramId, { namespace: programStore.namespace })\n private currentProgramId!: string\n\n @Getter(auth.getterNames.impersonationActive, { namespace: auth.namespace })\n private impersonationActive!: boolean\n\n @Mutation(programStore.mutationNames.setCurrentProgram, { namespace: programStore.namespace })\n private setCurrentProgram!: ({ upwId }: { upwId: string }) => void\n\n @Mutation(errors.mutationNames.addError, { namespace: errors.namespace })\n private addErrorToStore!: ({ item }: { item: UpwardExceptionResult }) => void\n\n @Mutation(errors.mutationNames.addValidationError, { namespace: errors.namespace })\n private addValidationErrorToStore!: ({ item }: { item: UpwardVerificationDetails }) => void\n\n @Action(upwardTypesStore.actionNames.fetchProgramTypes, { namespace: upwardTypesStore.namespace })\n private fetchProgramTypes!: ({ force }: { force: boolean }) => Promise\n\n @Action(upwardTypesStore.actionNames.fetchLeagueTypes, { namespace: upwardTypesStore.namespace })\n private fetchLeagueTypes!: ({ force }: { force: boolean }) => Promise\n\n @Action(upwardTypesStore.actionNames.fetchPositionTypes, { namespace: upwardTypesStore.namespace })\n private fetchPositionTypes!: ({ force }: { force: boolean }) => Promise\n\n @Action(upwardTypesStore.actionNames.fetchGradeTypes, { namespace: upwardTypesStore.namespace })\n private fetchGradeTypes!: ({ force }: { force: boolean }) => Promise\n\n @Action(lineupStore.actionNames.loadSubstitutionPreference, { namespace: lineupStore.namespace })\n private loadSubstitutionPreference!: () => void\n\n private alertTypeEnum = AlertTypeEnum\n private loading = true\n private userHasBeenSeenThisTimePeriod = false\n\n private get isLoading() {\n return this.loading || this.updateExists\n }\n\n private async mounted() {\n if (this.$route.query.token) {\n //The user is trying to login with a passthrough token from another app.\n //Clear any creditals they had from old authenications.\n logoutUser()\n this.loading = false\n } else {\n try {\n this.loading = true\n this.startTimekeeping()\n this.tryLoadSavedToken()\n this.watchForActivity()\n } finally {\n this.loading = false\n }\n }\n }\n\n private watchForActivity() {\n const onActivity = () => (this.userHasBeenSeenThisTimePeriod = true)\n\n document.addEventListener('mousemove', onActivity, false)\n document.addEventListener('mousedown', onActivity, false)\n document.addEventListener('keypress', onActivity, false)\n document.addEventListener('touchmove', onActivity, false)\n }\n\n private get isCurrentRoutePublic() {\n const currentRoute = this.currentRouteMeta\n if (currentRoute.isPublic) {\n return true\n }\n return false\n }\n\n private errorCaptured(err: any) {\n // Validation result object\n const validationResult = convertToVerificationDetails(err)\n\n if (err.name == 'QuotaExceededError') {\n // local storage has exceeded max capacity\n // clear out lineups\n this.clearAllLineups()\n return false // stop propogation\n }\n\n if (\n validationResult &&\n validationResult.data &&\n validationResult.data.brokenRules &&\n validationResult.data.brokenRules.length\n ) {\n this.addValidationErrorToStore({ item: validationResult.data! })\n return false // Stop propogation\n }\n\n // Rest service result object\n const genericResult = convertToRestServiceResult(err)\n\n if (genericResult !== null && genericResult.errorObject !== null) {\n this.addErrorToStore({ item: genericResult.errorObject })\n return false // Stop propogation\n }\n\n // Unknown\n this.addErrorToStore({\n item: {\n message: 'An unknown error occurred',\n errors: [\n {\n message: `${err}`,\n } as UpwardError,\n ],\n } as UpwardExceptionResult,\n })\n\n return true\n }\n\n @Watch('now')\n private onTimeChange() {\n if (this.isAuthenticated) {\n if (this.userHasBeenSeenThisTimePeriod) {\n this.updateUserLastSeen()\n this.userHasBeenSeenThisTimePeriod = false\n } else if (this.userInactiveMS >= 120 * 60 * 1000) {\n logoutUser()\n this.addErrorToStore({\n item: {\n message: 'You have been logged out because of inactivity',\n } as UpwardExceptionResult,\n })\n\n return\n }\n\n if (this.refreshTime && this.now >= this.refreshTime) {\n this.refreshToken()\n }\n }\n }\n\n private async loadAppWideData() {\n try {\n this.loading = true\n this.clearOldLineups() // remove old lineups from localstorage (via store and vuexpersist)\n this.loadSubstitutionPreference()\n await Promise.all([\n this.fetchProgramTypes({ force: false }),\n this.fetchLeagueTypes({ force: false }),\n this.fetchPositionTypes({ force: false }),\n this.fetchGradeTypes({ force: false }),\n ])\n } catch (error) {\n const genericResult = convertToRestServiceResult(error)\n if (genericResult && genericResult.errorObject) {\n this.addErrorToStore({ item: genericResult.errorObject })\n }\n } finally {\n this.loading = false\n }\n }\n\n @Watch('isAuthenticated')\n private async authenticationChange() {\n if (this.isAuthenticated) {\n this.loadAppWideData()\n }\n if (this.isAuthenticated) {\n //force admin users to impersonate\n if (this.$hasAtLeastOne(adminUsers) && !this.impersonationActive) {\n if (this.$route.name !== 'Impersonate') {\n await this.$router.push({ name: 'Impersonate' })\n }\n } else {\n if (this.$route.name !== 'Programs') {\n //force everyone else to pick a program\n if (this.$route.query.token) {\n //$router.replace used to smooths back button navigation\n //when authenticating via query parameter token\n this.$router.replace({ name: 'Programs' })\n } else {\n this.$router.push({ name: 'Programs' })\n }\n }\n }\n }\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--15-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--15-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=197fd412&scoped=true\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=197fd412&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"197fd412\",\n null\n \n)\n\nexport default component.exports","import { VueConstructor, ComponentOptions } from 'vue/types'\nimport VueRouter from 'vue-router/types'\nimport { AuthorizationOptions, Roles } from './types/types'\nimport { isPermitted, isDenied, PermissionChecks, defaultRanking } from './permissionChecks'\n\nfunction AuthorizationPlugin(Vue: VueConstructor, options: AuthorizationOptions = {}): void {\n if (options.router) {\n const errorRoute = options.errorRoute ? options.errorRoute : '/'\n addRouterGuards(options.router, errorRoute)\n }\n\n Vue.component('role-access', {\n functional: true,\n props: {\n allowIfAny: {\n type: [Array, String],\n default: null,\n },\n allowIfAll: {\n type: [Array, String],\n default: null,\n },\n denyIfAny: {\n type: [Array, String],\n default: null,\n },\n denyIfAll: {\n type: [Array, String],\n default: null,\n },\n ranking: {\n type: Array,\n default: () => defaultRanking,\n },\n },\n render(h, { props, slots, ...rest }) {\n const { $getRoles } = rest.parent\n if (!$getRoles) {\n console.error(`[role-access]`, `role-access must be a descendant of a component with a roles options`)\n }\n\n const { allowIfAll, allowIfAny, denyIfAny, denyIfAll, ranking } = props\n const userRoles = $getRoles()\n\n if (show(userRoles, allowIfAll, allowIfAny, denyIfAny, denyIfAll, ranking)) {\n return slots().default\n } else {\n return h()\n }\n },\n })\n\n Vue.mixin({\n beforeCreate: authorizationInit,\n })\n\n function authorizationInit(this: Vue) {\n const options = this.$options as ComponentOptions\n const rolesFunction = getPropFromSelfOrAcenstor('userRoles', options)\n const currentRoleFunction = getPropFromSelfOrAcenstor('currentRole', options)\n if (!rolesFunction || !currentRoleFunction) {\n return\n }\n\n Vue.prototype.$getRoles =\n typeof rolesFunction === 'function' ? rolesFunction.bind(this) : () => rolesFunction\n\n Vue.prototype.$currentRole =\n typeof currentRoleFunction === 'function' ? currentRoleFunction.bind(this) : () => currentRoleFunction\n\n Vue.prototype.$currentRoleIsOneOf = function currentRolePermission(roles: Roles) {\n const currentRole = Vue.prototype.$currentRole()\n if (Array.isArray(roles)) {\n return roles.filter((r) => r == currentRole.roleId).length > 0\n }\n\n return roles == currentRole.roleId\n }\n\n Vue.prototype.$allowIfAll = function permitsAll(roles: Roles) {\n return isPermitted(Vue.prototype.$getRoles(), roles, true)\n }\n\n Vue.prototype.$hasAllOf = function permitsAll(roles: Roles) {\n return isPermitted(Vue.prototype.$getRoles(), roles, true)\n }\n\n Vue.prototype.$allowIfAny = function permitsAll(roles: Roles) {\n return isPermitted(Vue.prototype.$getRoles(), roles, false)\n }\n\n Vue.prototype.$hasAtLeastOne = function permitsAll(roles: Roles) {\n return isPermitted(Vue.prototype.$getRoles(), roles, false)\n }\n\n Vue.prototype.$denyIfAll = function denyAll(roles: Roles) {\n return isDenied(Vue.prototype.$getRoles(), roles, true)\n }\n\n Vue.prototype.$denyIfAny = function denyAll(roles: Roles) {\n return isDenied(Vue.prototype.$getRoles(), roles, false)\n }\n }\n\n function addRouterGuards(router: VueRouter, errorRoute: string) {\n router.beforeResolve((to, from, next) => {\n const guard = to.meta && to.meta.guard\n if (!guard) {\n return next()\n }\n const { $getRoles } = Vue.prototype\n if (!$getRoles) {\n const { errorRoute } = options\n if (errorRoute) {\n return next(errorRoute)\n }\n throw new Error('You need an error route.')\n }\n const usersRoles = $getRoles()\n const { allowIfAll, allowIfAny, denyIfAny, denyIfAll, ranking } = guard\n const rank = ranking || defaultRanking\n\n if (show(usersRoles, allowIfAll, allowIfAny, denyIfAny, denyIfAll, rank)) {\n return next()\n } else {\n return next(errorRoute)\n }\n })\n }\n}\n\n// @ts-ignore\nfunction getPropFromSelfOrAcenstor(prop: string, config: ComponentOptions): Function | null {\n if (config[prop]) {\n return config[prop]\n }\n if (config.parent) {\n return getPropFromSelfOrAcenstor(prop, config.parent)\n }\n return null\n}\n\nfunction show(\n userRoles: string[],\n allowIfAll: string | unknown[] | null,\n allowIfAny: string | unknown[] | null,\n denyIfAny: string | unknown[] | null,\n denyIfAll: string | unknown[] | null,\n ranking: unknown[] //Array of permission checks. Order of the array is the order of precedence\n) {\n if (!allowIfAll && !allowIfAny && !denyIfAny && !denyIfAll) {\n return true\n }\n let show: boolean | null = null\n\n // Iterate over the ranking array. The first time\n // a check returns true, that check will take precedence\n // over all other checks.\n for (let i = 0; i < ranking.length; ++i) {\n const permissionCheck = ranking[i]\n\n //Deny If Any\n if (permissionCheck === PermissionChecks.DENY_IF_ANY) {\n if (denyIfAny) {\n if (isDenied(userRoles || [], denyIfAny as Roles, false)) {\n show = false\n break\n } else {\n show = true\n }\n }\n }\n\n // Allow If Any\n if (permissionCheck === PermissionChecks.ALLOW_IF_ANY) {\n if (allowIfAny) {\n if (isPermitted(userRoles || [], allowIfAny as Roles, false)) {\n show = true\n break\n } else {\n show = false\n }\n }\n }\n\n // Deny If All\n if (permissionCheck === PermissionChecks.DENY_IF_ALL) {\n if (denyIfAll) {\n if (isDenied(userRoles || [], denyIfAll as Roles, true)) {\n show = false\n break\n } else {\n show = true\n }\n }\n }\n\n //Allow If All\n if (permissionCheck === PermissionChecks.ALLOW_IF_ALL) {\n if (allowIfAll) {\n if (isPermitted(userRoles || [], allowIfAll as Roles, true)) {\n show = true\n break\n } else {\n show = false\n }\n }\n }\n }\n return show\n}\n\nexport default AuthorizationPlugin\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n updated(registration) {\n console.log('New content is available')\n console.log('swUpdated', registration)\n document.dispatchEvent(new CustomEvent('swUpdated', { detail: registration }))\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n offline() {\n console.log('No internet connection found. App is running in offline mode.')\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import * as authorization from '@/store/authorization'\nimport * as auth from '@/store/authentication'\nimport { cloneDeep } from 'lodash'\n\nexport function getUserRoles(that: Vue) {\n return getCurrentRoles(that)\n}\n\nexport function getCurrentUserRole(that: Vue) {\n return getCurrentRole(that)\n}\n\nconst getCurrentRole = (that: Vue) => {\n const currentRoleGetter = `${authorization.namespace}/${authorization.getterNames.currentRole}`\n const currentRole = cloneDeep(that.$store.getters[currentRoleGetter])\n return currentRole\n}\n\nconst getCurrentRoles = (that: Vue): string[] => {\n const currentRoleGetter = `${authorization.namespace}/${authorization.getterNames.currentRole}`\n const applicationRoleGetter = `${authorization.namespace}/${authorization.getterNames.applicationRoles}`\n const accountRolesGetter = `${auth.namespace}/${auth.getterNames.accountRoles}`\n const currentRole = cloneDeep(that.$store.getters[currentRoleGetter]) //The roles being used by the current user. These are volunteer roles.\n const acctRoles = cloneDeep(that.$store.getters[accountRolesGetter]) //Account roles returned by the API.\n const appRoles = cloneDeep(that.$store.getters[applicationRoleGetter]) //Application Roles assigned to the user based on logic contained in the application.\n let allRoles: string[] = []\n if (currentRole) allRoles = [currentRole.roleId]\n if (acctRoles) allRoles = [...allRoles, ...acctRoles]\n if (appRoles) allRoles = [...allRoles, ...appRoles]\n return allRoles\n}\n","import Vue from 'vue'\nimport store from './store'\nimport App from './App.vue'\nimport './registerServiceWorker'\nimport router from './router'\n\nimport Authorization from '@/plugins/Authorization/authorization'\nimport { getUserRoles, getCurrentUserRole } from '@/services/roles'\n\nimport LogRocket from 'logrocket'\n\nif (process.env.VUE_APP_LOG_ROCKET_KEY) {\n LogRocket.init(process.env.VUE_APP_LOG_ROCKET_KEY, {\n network: {\n requestSanitizer: (request) => {\n // if the url contains 'authorization api calls'\n if (request.url.toLowerCase().indexOf('api/authorization') !== -1) {\n // ignore the request response pair\n //return null\n //temporarily log the request with no body to track oddball issue\n request.body = undefined\n }\n\n // otherwise log the request normally\n return request\n },\n },\n })\n}\n\nVue.config.productionTip = false\nVue.prototype.$deferredPrompt = null\nVue.use(Authorization, { router, errorRoute: '/403' })\n\nnew Vue({\n router,\n store: store.original,\n currentRole() {\n return getCurrentUserRole(this)\n },\n userRoles() {\n return getUserRoles(this)\n },\n render: (h) => h(App),\n}).$mount('#app')\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegenerateLineup.vue?vue&type=style&index=0&id=0ac37968&prod&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/star-blue.64fd43eb.png\";","module.exports = __webpack_public_path__ + \"img/star-grey.060fdadb.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SimpleMenu.vue?vue&type=style&index=0&id=2ff00a09&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkingListItem.vue?vue&type=style&index=0&id=2aa4c4e4&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LineupWithRotation.vue?vue&type=style&index=0&id=82a4d284&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PlayerRankable.vue?vue&type=style&index=0&id=4c118470&prod&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CoachSkillsList.vue?vue&type=style&index=0&id=74bbe518&prod&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheerResourceList.vue?vue&type=style&index=0&id=2d11b3c5&prod&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/star-blank.6f4aeb39.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Resources.vue?vue&type=style&index=0&id=1bab8541&prod&lang=scss&scoped=true\""],"sourceRoot":""}